If you call #getEstimate() you pull the value once out of your object and never again. With PropertyModel(model, "estimate") you'll always get a fresh value from your model.

Calling a getter  should *always* be done as late as possible.

Hope this helps

Sven


Jeffrey Schneller wrote:
It does change its values.  I have since changed it to:

final TotalPanel totalPanel = new TotalPanel("total_panel", new
CompoundPropertyModel(new PropertyModel(model, "estimate")));

this seems to work. I guess I had the chaining of models wrong.
Am I right, or is still off base?



-----Original Message-----
From: Sven Meier [mailto:s...@meiers.net] Sent: Tuesday, January 19, 2010 3:11 PM
To: users@wicket.apache.org
Subject: Re: Panel and Model inside of a wizard

Hi Jeffrey,

new CompoundPropertyModel(model.getObject().getEstimate())

this doesn't look good, does the estimate object change its values or is
it replaced by another object after an AJAX request?

Sven


Jeffrey Schneller wrote:
I am trying to figure out why a panel in a step of my wizard is not
showing the correct data after an Ajax call.  The step contains a
re-usable panel (TotalPanel) for displaying information from the
wizard
that is backing the model.    The problem is the values in the
TotalPanel never reflect the values that have been updated via the
Ajax
call.  I know everything should work because if I change the
TotalPanel
to take the entire model then everything works.  The problem being, I
only want my TotalPanel to need to take an Estimate and not the
CheckoutModel.

At the wizard level I have:

                                CheckoutModel bean = new
CheckoutModel();

                                CompoundPropertyModel<CheckoutModel>
myModel = new CompoundPropertyModel<CheckoutModel>(bean);

                                setDefaultModel(myModel);

On the step of the wizard that I want to display my re-usable panel I
have:

                    final TotalPanel totalPanel = new
TotalPanel("total_panel", new
CompoundPropertyModel(model.getObject().getEstimate()));

                    totalPanel.setOutputMarkupId(true);

                    add(totalPanel);

btw... Estimate is a property of the CheckoutModel.


Thanks.




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