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>
>> 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>
>> 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

Reply via email to