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-305091622-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.java:125) > > at > org.apache.wicket.model.AbstractPropertyModel.setObject(AbstractPropertyModel.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-Confusion-tp2955144p2968688.html > To start a new topic under Apache Wicket, email > ml-node+1842946-398011874-65...@n4.nabble.com<ml-node%2b1842946-398011874-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=amNnYXJjaWFtQGdtYWlsLmNvbXwxODQyOTQ2fDEyNTYxMzc3ODY=>. > > > -- 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-Confusion-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