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

Reply via email to