I only explicitly set the selectedRecordA in two places, during the cancel and add onSubmit methods (I removed the initialization in the declaration in my code). As you alluded to earlier, add is done via
setSelectedRecordA(new RecordA()); and cancel is done via: RecordAPanel.this.selectedRecordA = null; I changed cancel to be: setSelectedRecordA(new RecordA()); but it doesn't seem to make a difference, still get the issue when cancelling. Should I be setting the selectedRecordA to null on cancel? It makes sense to me and it's what I've done in other applications/frameworks, but perhaps it's not correct in Wicket... Shelli -----Original Message----- From: nino martinez wael [mailto:nino.martinez.w...@gmail.com] Sent: Tuesday, October 12, 2010 3:00 PM To: users@wicket.apache.org Subject: Re: PropertyModel Not Refreshing Think I was going in the wrong direction.. Looking at the error, seems to get triggered by pressing the cancel button only.. 2010/10/12 Shelli Orton <shelli.or...@sjrb.ca> > This is where my confusion about models may be kicking in. I thought > that property models (PropertModel or CompoundPropertyModel) > automatically checked if the model object changed. How do I tell the > model it has? > > Shelli > > -----Original Message----- > From: nino martinez wael [mailto:nino.martinez.w...@gmail.com] > Sent: Tuesday, October 12, 2010 12:10 PM > To: users@wicket.apache.org > Subject: Re: PropertyModel Not Refreshing > > in your add button you call setSelectedRecordA(new RecordA()) but never > notify the model that a change has occured... > > 2010/10/12 nino martinez wael <nino.martinez.w...@gmail.com> > > > hmm getting a lot of errors on the services not implementing > > serialization... > > > > But does seem theres a difference between calling : > > > > selectedRecordAModel.getObject().getName() and > > RecordAPanel.this.selectedRecordA > > > > 2010/10/12 nino martinez wael <nino.martinez.w...@gmail.com> > > > > sorry.. Did'nt see it attached.. So did igor provide you with an fixed > >> quickstart (working on his system).. That did not work on glassfish? > >> > >> > >> 2010/10/12 Shelli Orton <shelli.or...@sjrb.ca> > >> > >>> The quickstart was sent to the list this morning at 10:04 MST. Does > it > >>> need to be resent? > >>> > >>> Shelli > >>> > >>> -----Original Message----- > >>> From: nino martinez wael [mailto:nino.martinez.w...@gmail.com] > >>> Sent: Tuesday, October 12, 2010 11:52 AM > >>> To: users@wicket.apache.org > >>> Subject: Re: PropertyModel Not Refreshing > >>> > >>> No dont think so.. Please provide a quickstart.. I have had property > >>> models > >>> working in 1.2, 1.3, 1.4 and 1.5 so must be error 42:) > >>> > >>> 2010/10/12 Shelli Orton <shelli.or...@sjrb.ca> > >>> > >>> > Hi, > >>> > > >>> > Thanks for file. Your first email was missing these changes: > >>> > > >>> > IModel<RecordA> selectedRecordAModel; (I had set mine to > >>> > PropertyModel<RecordA> selectedRecordAModel;) > >>> > recordAs.setModel(selectedRecordAModel) > >>> > > >>> > However, even with those changes applied, I still get the same > issue > >>> of the > >>> > selected record not updating in the edit group. > >>> > > >>> > I am deploying in Glassfish v3. Could that have anything to do > with > >>> my > >>> > problems? > >>> > > >>> > Shelli > >>> > > >>> > -----Original Message----- > >>> > From: Igor Vaynberg [mailto:igor.vaynb...@gmail.com] > >>> > Sent: Tuesday, October 12, 2010 11:35 AM > >>> > To: users@wicket.apache.org > >>> > Subject: Re: PropertyModel Not Refreshing > >>> > > >>> > On Tue, Oct 12, 2010 at 10:30 AM, Shelli Orton > <shelli.or...@sjrb.ca> > >>> > wrote: > >>> > > Thanks for the help. Your changes got rid of the errors and I > can > >>> delete > >>> > records now (and the list is updated). > >>> > > > >>> > > However, once a record has been selected for edit and either > saved > >>> or > >>> > cancelled, that same record is always displayed in the edit group > when > >>> I > >>> > choose another record to edit or even when I try to create a new > one. > >>> I can > >>> > even delete the chosen record and it still displays in the edit > group. > >>> > > >>> > works fine here, meaning you did not completely/propery apply my > >>> > changes. below is the complete file. > >>> > > >>> > -igor > >>> > > >>> > public class RecordAPanel extends Panel > >>> > { > >>> > private static final long serialVersionUID = 1L; > >>> > > >>> > RecordAService recordAService; > >>> > RecordBService recordBService; > >>> > > >>> > RecordA selectedRecordA = new RecordA(); > >>> > IModel<RecordA> selectedRecordAModel; > >>> > String unmodifiedRecordA; > >>> > > >>> > boolean isNew = false; > >>> > > >>> > WebMarkupContainer selectGroup; > >>> > WebMarkupContainer editGroup; > >>> > > >>> > Form selectForm; > >>> > Form editForm; > >>> > > >>> > DropDownChoice<RecordA> recordAs; > >>> > DropDownChoice<RecordB> recordBs; > >>> > > >>> > Button add; > >>> > Button edit; > >>> > Button save; > >>> > Button delete; > >>> > Button cancel; > >>> > > >>> > Label editLegendLabel; > >>> > String editLegend; > >>> > Label recordALabel; > >>> > Label recordBLabel; > >>> > > >>> > RequiredTextField recordAText; > >>> > > >>> > @SuppressWarnings({ "rawtypes", "unchecked" }) > >>> > public RecordAPanel(String id) > >>> > { > >>> > super(id); > >>> > > >>> > recordAService = ((Application) > >>> > RequestCycle.get().getApplication()).getRecordAService(); > >>> > recordBService = ((Application) > >>> > RequestCycle.get().getApplication()).getRecordBService(); > >>> > > >>> > selectedRecordAModel = new PropertyModel<RecordA>(this, > >>> > "selectedRecordA"); > >>> > this.setDefaultModel(selectedRecordAModel); > >>> > > >>> > // ************* Select Group ************* > >>> > > >>> > selectGroup = new WebMarkupContainer("selectGroup"); > >>> > selectForm = new Form("selectForm"); > >>> > > >>> > recordAs = new DropDownChoice<RecordA>("recordAs"); > >>> > recordAs.setModel(selectedRecordAModel); > >>> > recordAs.setChoices(recordAsModel); > >>> > recordAs.setChoiceRenderer(new RecordARenderer()); > >>> > > >>> > // recordAs = (DropDownChoice<RecordA>) new > >>> > DropDownChoice<RecordA>("recordAs", > >>> > // new PropertyModel<RecordA>(this, > >>> > "selectedRecordA"), > >>> > // recordAsModel, > >>> > // new RecordARenderer()); > >>> > > >>> > recordAs.setNullValid(false); > >>> > > >>> > selectForm.add(recordAs); > >>> > > >>> > add = new Button("add") > >>> > { > >>> > private static final long serialVersionUID = 1L; > >>> > > >>> > public void onSubmit() > >>> > { > >>> > setSelectedRecordA(new RecordA()); > >>> > isNew = true; > >>> > editLegend = "New"; > >>> > editGroup.setVisible(true); > >>> > selectGroup.setVisible(false); > >>> > } > >>> > }; > >>> > > >>> > selectForm.add(add); > >>> > > >>> > edit = new Button("edit") > >>> > { > >>> > private static final long serialVersionUID = 1L; > >>> > > >>> > public void onSubmit() > >>> > { > >>> > if (selectedRecordA == null) > >>> > { > >>> > info("You must select a record to edit."); > >>> > } > >>> > else > >>> > { > >>> > unmodifiedRecordA = selectedRecordA.getName(); > >>> > isNew = false; > >>> > editLegend = "Edit"; > >>> > editGroup.setVisible(true); > >>> > selectGroup.setVisible(false); > >>> > } > >>> > } > >>> > }; > >>> > > >>> > selectForm.add(edit); > >>> > > >>> > delete = new Button("delete") > >>> > { > >>> > private static final long serialVersionUID = 1L; > >>> > > >>> > public void onSubmit() > >>> > { > >>> > if (selectedRecordA == null) > >>> > { > >>> > info("You must select a record to delete."); > >>> > } > >>> > else > >>> > { > >>> > // Delete the selected record > >>> > unmodifiedRecordA = selectedRecordA.getName(); > >>> > > recordAService.delete(selectedRecordA.getName()); > >>> > selectedRecordA = null; > >>> > info("Deleted '" + unmodifiedRecordA + "'"); > >>> > > >>> > // Force refresh of records list > >>> > RecordAPanel.this.recordAsModel.detach(); > >>> > } > >>> > } > >>> > }; > >>> > > >>> > // Add confirmation dialog box > >>> > delete.add(new SimpleAttributeModifier("onclick", > >>> > "if (!confirm('Please confirm you want to delete > this > >>> > record') ){ return false; }")); > >>> > > >>> > selectForm.add(delete); > >>> > selectGroup.add(selectForm); > >>> > > >>> > this.add(selectGroup); > >>> > > >>> > // ************* Edit Group ************* > >>> > > >>> > editGroup = new WebMarkupContainer("editGroup"); > >>> > > >>> > editLegendLabel = new Label("editLegend", new > >>> PropertyModel(this, > >>> > "editLegend")); > >>> > > >>> > editGroup.add(editLegendLabel); > >>> > > >>> > editForm = new Form("editForm"); > >>> > > >>> > recordALabel = new Label("recordALabel", "Record A"); > >>> > editForm.add(recordALabel); > >>> > > >>> > recordBLabel = new Label("recordBLabel", "Record B"); > >>> > editForm.add(recordBLabel); > >>> > > >>> > recordAText = new RequiredTextField("recordAText", > >>> > new PropertyModel(selectedRecordAModel, "name")); > >>> > > >>> > editForm.add(recordAText); > >>> > > >>> > recordBs = new DropDownChoice<RecordB>("recordBs"); > >>> > recordBs.setModel(new PropertyModel(selectedRecordAModel, > >>> > "recordB")); > >>> > recordBs.setChoices(RecordAPanel.this.getRecordBs()); > >>> > recordBs.setChoiceRenderer(new RecordBRenderer()); > >>> > > >>> > editForm.add(recordBs); > >>> > > >>> > save = new Button("save") > >>> > { > >>> > private static final long serialVersionUID = 1L; > >>> > > >>> > @Override > >>> > public void onSubmit() > >>> > { > >>> > if (isNew) > >>> > { > >>> > > >>> > recordAService.create(RecordAPanel.this.selectedRecordA); > >>> > info("Created '" > >>> > + > >>> > RecordAPanel.this.selectedRecordA.getName() > >>> > + "'"); > >>> > } > >>> > else > >>> > { > >>> > recordAService.update(unmodifiedRecordA, > >>> > RecordAPanel.this.selectedRecordA); > >>> > info("Updated '" > >>> > + > >>> > RecordAPanel.this.selectedRecordA.getName() > >>> > + "'"); > >>> > } > >>> > > >>> > // TODO Update the dropdown list? > >>> > > >>> > editGroup.setVisible(false); > >>> > selectGroup.setVisible(true); > >>> > } > >>> > }; > >>> > > >>> > editForm.add(save); > >>> > > >>> > cancel = new Button("cancel") > >>> > { > >>> > private static final long serialVersionUID = 1L; > >>> > > >>> > public void onSubmit() > >>> > { > >>> > RecordAPanel.this.selectedRecordA = null; > >>> > editGroup.setVisible(false); > >>> > selectGroup.setVisible(true); > >>> > } > >>> > }; > >>> > > >>> > cancel.setDefaultFormProcessing(false); > >>> > editForm.add(cancel); > >>> > > >>> > editGroup.add(editForm); > >>> > > >>> > editGroup.setVisible(false); > >>> > this.add(editGroup); > >>> > } > >>> > > >>> > public RecordA getSelectedRecordA() > >>> > { > >>> > return selectedRecordA; > >>> > } > >>> > > >>> > public void setSelectedRecordA(RecordA selectedRecordA) > >>> > { > >>> > this.selectedRecordA = selectedRecordA; > >>> > } > >>> > > >>> > public LoadableDetachableModel<List<RecordA>> recordAsModel = > new > >>> > LoadableDetachableModel<List<RecordA>>() > >>> > { > >>> > private static final long serialVersionUID = 1L; > >>> > > >>> > @Override > >>> > protected List<RecordA> load() > >>> > { > >>> > return recordAService.getList(); > >>> > } > >>> > > >>> > public void detach() > >>> > { > >>> > super.detach(); > >>> > } > >>> > }; > >>> > > >>> > // TODO change this to LDM? > >>> > List<RecordB> getRecordBs() > >>> > { > >>> > return recordBService.getList(); > >>> > } > >>> > > >>> > class RecordARenderer implements IChoiceRenderer<RecordA> > >>> > { > >>> > private static final long serialVersionUID = 1L; > >>> > > >>> > public Object getDisplayValue(RecordA recordA) > >>> > { > >>> > return recordA.getName(); > >>> > } > >>> > > >>> > public String getIdValue(RecordA recordA, int index) > >>> > { > >>> > return recordA.getName(); > >>> > } > >>> > } > >>> > > >>> > class RecordBRenderer implements IChoiceRenderer<RecordB> > >>> > { > >>> > private static final long serialVersionUID = 1L; > >>> > > >>> > public Object getDisplayValue(RecordB recordB) > >>> > { > >>> > return recordB.getName(); > >>> > } > >>> > > >>> > public String getIdValue(RecordB recordB, int index) > >>> > { > >>> > return recordB.getName(); > >>> > } > >>> > } > >>> > } > >>> > > >>> > > > >>> > > Shelli > >>> > > > >>> > > -----Original Message----- > >>> > > From: Igor Vaynberg [mailto:igor.vaynb...@gmail.com] > >>> > > Sent: Tuesday, October 12, 2010 10:38 AM > >>> > > To: users@wicket.apache.org > >>> > > Subject: Re: PropertyModel Not Refreshing > >>> > > > >>> > > here are the tweaks you need to make this work: > >>> > > > >>> > > selectedRecordAModel = new PropertyModel<RecordA>(this, > >>> > "selectedRecordA"); > >>> > > > >>> > > recordAText = new RequiredTextField("recordAText", > >>> > > new PropertyModel(selectedRecordAModel, "name")); > >>> > > > >>> > > recordBs.setModel(new PropertyModel(selectedRecordAModel, > >>> "recordB")); > >>> > > > >>> > > have fun > >>> > > > >>> > > -igor > >>> > > > >>> > > On Tue, Oct 12, 2010 at 9:03 AM, Shelli Orton > <shelli.or...@sjrb.ca> > >>> > wrote: > >>> > >> I've been able to create a sample application that exhibits the > >>> > >> same/similar problems to mine. The sample makes use of an > >>> in-memory > >>> > >> list for the data versus accessing a database and so there's > some > >>> > >> differences. However, I believe the problems that this sample > >>> exhibits > >>> > >> have the same root cause as my project (which I believe have > >>> something > >>> > >> to do with how my models are set up...). > >>> > >> > >>> > >> Issues this sample exhibits: > >>> > >> > >>> > >> 1. Choose to edit an existing record, then cancel the edit. > Choose > >>> > >> another/the same record to edit and the selected record is null > >>> (error > >>> > >> message "You must select a record to edit" is displayed). Must > >>> > >> close/open session to reset. > >>> > >> > >>> > >> 2. Choose to edit an existing record and save the edit. Choose > >>> > >> another/the same record to edit and you get a NPE: > >>> > >> > >>> > >> WicketMessage: Method onFormSubmitted of interface > >>> > >> org.apache.wicket.markup.html.form.IFormSubmitListener targeted > at > >>> > >> component [MarkupContainer [Component id = selectForm]] threw > an > >>> > >> exception > >>> > >> > >>> > >> Root cause: > >>> > >> > >>> > >> java.lang.NullPointerException > >>> > >> at > >>> > >> > >>> > org.apache.wicket.markup.html.form.AbstractSingleSelectChoice.convertCho > >>> > >> iceIdToChoice(AbstractSingleSelectChoice.java:247) > >>> > >> > >>> > >> 3. Create a new record and try to save it and get > >>> > >> WicketRuntimeException: > >>> > >> > >>> > >> WicketMessage: Attempted to set property value on a null > object. > >>> > >> Property expression: name Value: New One > >>> > >> > >>> > >> Root cause: > >>> > >> > >>> > >> org.apache.wicket.WicketRuntimeException: Attempted to set > >>> property > >>> > >> value on a null object. Property expression: name Value: New > One > >>> > >> at > >>> > >> > >>> > org.apache.wicket.util.lang.PropertyResolver.setValue(PropertyResolver.j > >>> > >> ava:125) > >>> > >> > >>> > >> 4. Create a new record and then cancel the add, Choose an > existing > >>> > >> record to edit and the selected record is null (error message > "You > >>> must > >>> > >> select a record to edit" is displayed). Must close/open > session to > >>> > >> reset. > >>> > >> > >>> > >> As always, all help is greatly appreciated as I am stumped. > >>> > >> > >>> > >> Thanks, > >>> > >> Shelli > >>> > >> > >>> > >> -----Original Message----- > >>> > >> From: jcgarciam [mailto:jcgarc...@gmail.com] > >>> > >> Sent: Friday, October 08, 2010 1:41 PM > >>> > >> To: users@wicket.apache.org > >>> > >> Subject: Re: PropertyModel Not Refreshing > >>> > >> > >>> > >> > >>> > >> The attachment didn't make it, > >>> > >> > >>> > >> Can you try to extract out the relevant part and creates a > >>> quickstart > >>> > >> project that actually reproduces your issue? > >>> > >> > >>> > >> > >>> > >> On Fri, Oct 8, 2010 at 1:41 PM, Shelli Orton [via Apache > Wicket] < > >>> > >> > >>> > ml-node+2968688-305091622-65...@n4.nabble.com<ml-node%2B2968688-30509162 2-65...@n4.nabble.com> > <ml-node%2B2968688-30509162 > 2-65...@n4.nabble.com> > >>> <ml-node%2B2968688-30509162 > >>> 2-65...@n4.nabble.com> > >>> > <ml-node%2B2968688-30509162 > >>> > >> 2-65...@n4.nabble.com> > >>> > >>> wrote: > >>> > >> > >>> > >>> Hi, > >>> > >>> > >>> > >>> I have been trying different things to see if I could get my > code > >>> to > >>> > >> work > >>> > >>> (and understand Wicket models better), but am still stuck. I > have > >>> a > >>> > >>> attached the (latest) panel class code which I hope is > sufficient > >>> to > >>> > >> help. > >>> > >>> > >>> > >>> I was reading about different models (both online and the > Wicket > >>> in > >>> > >> Action > >>> > >>> book) and thought that perhaps using a CompoundPropertyModel > was > >>> more > >>> > >>> appropriate and may help with my issues. Originally, I only > >>> declared > >>> > >>> selectedRecordA (line 40) but didn't instantiate it. The > select > >>> group > >>> > >>> displayed properly but when I chose a record from the list and > >>> tried > >>> > >> to edit > >>> > >>> it, this exception was thrown: > >>> > >>> > >>> > >>> WicketMessage: Attempted to set property value on a null > >>> object. > >>> > >>> Property expression: recordA Value: Name=A-One > >>> > >>> Root cause: > >>> > >>> > >>> > >>> org.apache.wicket.WicketRuntimeException: Attempted to set > >>> > >> property > >>> > >>> value on a null object. Property expression: recordA Value: > >>> Name=A-One > >>> > >>> at > >>> > >>> > >>> > >> > >>> > org.apache.wicket.util.lang.PropertyResolver.setValue(PropertyResolver.j > >>> > >> ava:125) > >>> > >>> > >>> > >>> at > >>> > >>> > >>> > >> > >>> > org.apache.wicket.model.AbstractPropertyModel.setObject(AbstractProperty > >>> > >> Model.java:169) > >>> > >>> > >>> > >>> at > >>> > >>> > >>> > org.apache.wicket.Component.setDefaultModelObject(Component.java:3125) > >>> > >>> .... > >>> > >>> > >>> > >>> I set breakpoints on the getSelectedRecordA and > setSelectedRecordA > >>> > >> methods, > >>> > >>> but these aren't called when during the request cycle when the > >>> edit > >>> > >> button > >>> > >>> is clicked. > >>> > >>> > >>> > >>> I then changed the class so that selectedRecordA is > initialized to > >>> an > >>> > >> empty > >>> > >>> instance of RecordA. This got rid of the above error. > However, I > >>> > >> cannot > >>> > >>> save the edit changes because the selectedRecordA is still the > >>> empty > >>> > >>> instance that was created in the initialization and the > >>> persistence > >>> > >> layer > >>> > >>> throws an exception. This same problem exists if I try to add > a > >>> new > >>> > >> RecordA > >>> > >>> or try to delete an existing one. > >>> > >>> > >>> > >>> If I choose to cancel the edit and then select another record > to > >>> edit, > >>> > >> I > >>> > >>> get the message "You must select a record to edit" (line 131). > >>> This > >>> > >> is > >>> > >>> because the cancel onSubmit sets selectedRecordA to null and > >>> choosing > >>> > >> the > >>> > >>> record from the DDC is not setting it to the chosen record. > >>> > >>> > >>> > >>> Clearly I am not setting up this CompoundPropertyModel > properly so > >>> > >> that the > >>> > >>> selectedARecord is set by the model. Can someone tell me what > I'm > >>> > >> doing > >>> > >>> wrong? > >>> > >>> > >>> > >>> All help is greatly appreciated, > >>> > >>> > >>> > >>> Shelli > >>> > >>> > >>> > >>> > >>> > >>> -----Original Message----- > >>> > >>> From: Igor Vaynberg [mailto:[hidden > >>> > >> email]<http://user/SendEmail.jtp?type=node&node=2968688&i=0>] > >>> > >>> > >>> > >>> Sent: Thursday, October 07, 2010 11:27 AM > >>> > >>> To: [hidden email] > >>> > >> <http://user/SendEmail.jtp?type=node&node=2968688&i=1> > >>> > >>> Subject: Re: PropertyModel Not Refreshing > >>> > >>> > >>> > >>> you have posted an incomplete piece of code and somehow from > that > >>> we > >>> > >>> are supposed to guess what is not working? create a quickstart > and > >>> > >>> provide that. > >>> > >>> > >>> > >>> -igor > >>> > >>> > >>> > >>> On Thu, Oct 7, 2010 at 10:15 AM, Shelli Orton <[hidden > >>> > >> email]<http://user/SendEmail.jtp?type=node&node=2968688&i=2>> > >>> > >>> wrote: > >>> > >>> > >>> > >>> > Does nobody have any suggestions? If I can't get this > fixed, > >>> I'm > >>> > >> going > >>> > >>> > to have to write the app in another framework (possibly GWT) > and > >>> I'd > >>> > >>> > really rather not have to do that. > >>> > >>> > > >>> > >>> > Shelli > >>> > >>> > > >>> > >>> > -----Original Message----- > >>> > >>> > From: Shelli Orton > >>> > >>> > Sent: Wednesday, October 06, 2010 3:52 PM > >>> > >>> > To: [hidden > >>> > >> email]<http://user/SendEmail.jtp?type=node&node=2968688&i=3> > >>> > >>> > Subject: PropertyModel Not Refreshing > >>> > >>> > > >>> > >>> > Hi, > >>> > >>> > > >>> > >>> > First, thanks to all who have been helping me as I am new to > >>> Wicket. > >>> > >> I > >>> > >>> > am splitting out two issues I am dealing with to try to keep > >>> things > >>> > >>> > clear. > >>> > >>> > > >>> > >>> > I am trying to write a simple app that does CRUD operations > on > >>> > >> database > >>> > >>> > records. The goal is for the app to make use of a tab panel > >>> where > >>> > >> each > >>> > >>> > tab encapsulates one table from the database. Each tab > panel > >>> has > >>> > >> two > >>> > >>> > groups (WebMarkupContainer). The first, selectGroup, > displays a > >>> > >> list > >>> > >>> > (DDC) of the current items, and three buttons, add, edit and > >>> delete. > >>> > >>> > The second, editGroup, is displayed when either the add or > edit > >>> > >> button > >>> > >>> > was clicked on the select group, displays the record > attributes > >>> and > >>> > >> save > >>> > >>> > and cancel buttons. The tab panel has a "selectedRecord" > which > >>> is > >>> > >> used > >>> > >>> > by both groups' components via PropertyModels. Very basic > stuff. > >>> > >>> > > >>> > >>> > When I choose a record and click the edit button, the record > is > >>> > >>> > displayed in the edit group properly. If I then choose > cancel, > >>> the > >>> > >> edit > >>> > >>> > group is no longer displayed and the select group DDC > selection > >>> is > >>> > >> null > >>> > >>> > as expected. I then choose another record from the list and > >>> click > >>> > >> the > >>> > >>> > edit button and the previous record information is displayed > in > >>> the > >>> > >> edit > >>> > >>> > group even though the select group DDC shows the > >>> correct/selected > >>> > >>> > record. > >>> > >>> > > >>> > >>> > This problem also occurs if I first choose to add a new > record > >>> and > >>> > >> then > >>> > >>> > cancel the add and then choose to edit a different record. > The > >>> DDC > >>> > >>> > shows the correct/selected record, but all the attributes in > the > >>> > >> edit > >>> > >>> > group are null/defaults for a new record. > >>> > >>> > > >>> > >>> > If I remove the call to setDefaultFormProcessing(false) on > the > >>> > >> cancel > >>> > >>> > button, selecting other records for edit works correctly, > but I > >>> > >> can't > >>> > >>> > cancel a creating a new record if I use a RequiredTextField > >>> because > >>> > >> the > >>> > >>> > form validation fails. > >>> > >>> > > >>> > >>> > If I select a record for editing or save the newly created > >>> record, I > >>> > >> can > >>> > >>> > select a different record for edit or create another one > >>> correctly. > >>> > >> So > >>> > >>> > I must be doing something wrong in the cancel logic. My > editForm > >>> > >>> > (created in the EditGroup constructor) looks like this: > >>> > >>> > > >>> > >>> > Form editForm = new Form("editForm"); > >>> > >>> > > >>> > >>> > editForm.add(new Label("nameLabel", "Name")); > >>> > >>> > > >>> > >>> > editForm.add(new Label("attributeLabel", > >>> "Attribute")); > >>> > >>> > > >>> > >>> > editForm.add(new > >>> > >> RequiredTextField<String>("recordNameText", > >>> > >>> > new > PropertyModel<String>(MyRecordPanel.this, > >>> > >>> > "selectedRecord.name"))); > >>> > >>> > > >>> > >>> > editForm.add(new > DropDownChoice<Lir>("attributes", > >>> > >>> > new > >>> PropertyModel<Attribute>(MyRecordPanel.this, > >>> > >>> > "selectedRecord.attribute"), > >>> > >>> > RateCentrePanel.this.getAttributes(), > >>> > >>> > new AttributeRenderer())); > >>> > >>> > > >>> > >>> > .... > >>> > >>> > > >>> > >>> > editForm.add(new Button("cancel") > >>> > >>> > { > >>> > >>> > private static final long serialVersionUID = > 1L; > >>> > >>> > > >>> > >>> > public void onSubmit() > >>> > >>> > { > >>> > >>> > MyRecordPanel.this.selectedRecord = null; > >>> > >>> > editGroup.setVisible(false); > >>> > >>> > selectGroup.setVisible(true); > >>> > >>> > } > >>> > >>> > }.setDefaultFormProcessing(false)); > >>> > >>> > > >>> > >>> > add(editForm); > >>> > >>> > > >>> > >>> > Other than setting the selectedRecord to null, what should I > be > >>> > >> doing > >>> > >>> > differently? > >>> > >>> > > >>> > >>> > Thanks in advance! > >>> > >>> > > >>> > >>> > Shelli > >>> > >>> > > >>> > >>> > > >>> > >> > >>> > --------------------------------------------------------------------- > >>> > >>> > To unsubscribe, e-mail: [hidden > >>> > >> email]<http://user/SendEmail.jtp?type=node&node=2968688&i=4> > >>> > >>> > For additional commands, e-mail: [hidden > >>> > >> email]<http://user/SendEmail.jtp?type=node&node=2968688&i=5> > >>> > >>> > > >>> > >>> > > >>> > >>> > > >>> > >> > >>> > --------------------------------------------------------------------- > >>> > >>> > To unsubscribe, e-mail: [hidden > >>> > >> email]<http://user/SendEmail.jtp?type=node&node=2968688&i=6> > >>> > >>> > For additional commands, e-mail: [hidden > >>> > >> email]<http://user/SendEmail.jtp?type=node&node=2968688&i=7> > >>> > >>> > > >>> > >>> > > >>> > >>> > >>> > --------------------------------------------------------------------- > >>> > >>> To unsubscribe, e-mail: [hidden > >>> > >> email]<http://user/SendEmail.jtp?type=node&node=2968688&i=8> > >>> > >>> For additional commands, e-mail: [hidden > >>> > >> email]<http://user/SendEmail.jtp?type=node&node=2968688&i=9> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > --------------------------------------------------------------------- > >>> > >>> To unsubscribe, e-mail: [hidden > >>> > >> email]<http://user/SendEmail.jtp?type=node&node=2968688&i=10> > >>> > >>> For additional commands, e-mail: [hidden > >>> > >> email]<http://user/SendEmail.jtp?type=node&node=2968688&i=11> > >>> > >>> > >>> > >>> ------------------------------ > >>> > >>> View message @ > >>> > >>> > >>> > >> > >>> > > >>> > http://apache-wicket.1842946.n4.nabble.com/DropDownChoice-Model-Confusio > >>> > >> n-tp2955144p2968688.html > >>> > >>> To start a new topic under Apache Wicket, email > >>> > >>> > >>> > >> > >>> > ml-node+1842946-398011874-65...@n4.nabble.com<ml-node%2B1842946-39801187 4-65...@n4.nabble.com> > <ml-node%2B1842946-39801187 > 4-65...@n4.nabble.com> > >>> <ml-node%2B1842946-39801187 > >>> 4-65...@n4.nabble.com> > >>> > <ml-node%2B1842946-39801187 > >>> > >> 4-65...@n4.nabble.com> > >>> > >>> To unsubscribe from Apache Wicket, click > >>> > >> > >>> > here<http://apache-wicket.1842946.n4.nabble.com/template/TplServlet.jtp > >>> > ? > >>> > >> > >>> > tpl=unsubscribe_by_code&node=1842946&code=amNnYXJjaWFtQGdtYWlsLmNvbXwxOD > >>> > >> QyOTQ2fDEyNTYxMzc3ODY=>. > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >> > >>> > >> > >>> > >> -- > >>> > >> Sincerely, > >>> > >> JC (http://www.linkedin.com/in/jcgarciam) > >>> > >> Work smarter, not harder!. > >>> > >> > >>> > >> -- > >>> > >> View this message in context: > >>> > >> > >>> > > >>> > http://apache-wicket.1842946.n4.nabble.com/DropDownChoice-Model-Confusio > >>> > >> n-tp2955144p2968936.html > >>> > >> Sent from the Users forum mailing list archive at Nabble.com. > >>> > >> > >>> > >> > >>> > --------------------------------------------------------------------- > >>> > >> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > >>> > >> For additional commands, e-mail: users-h...@wicket.apache.org > >>> > >> > >>> > >> > >>> > >> > >>> > >> > >>> > --------------------------------------------------------------------- > >>> > >> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > >>> > >> For additional commands, e-mail: users-h...@wicket.apache.org > >>> > >> > >>> > > > >>> > > > >>> > --------------------------------------------------------------------- > >>> > > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > >>> > > For additional commands, e-mail: users-h...@wicket.apache.org > >>> > > > >>> > > > >>> > > > >>> > --------------------------------------------------------------------- > >>> > > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > >>> > > For additional commands, e-mail: users-h...@wicket.apache.org > >>> > > > >>> > > > >>> > > >>> > > --------------------------------------------------------------------- > >>> > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > >>> > For additional commands, e-mail: users-h...@wicket.apache.org > >>> > > >>> > > >>> > > --------------------------------------------------------------------- > >>> > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > >>> > For additional commands, e-mail: users-h...@wicket.apache.org > >>> > > >>> > > >>> > >>> > --------------------------------------------------------------------- > >>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > >>> For additional commands, e-mail: users-h...@wicket.apache.org > >>> > >>> > >> > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > For additional commands, e-mail: users-h...@wicket.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org