Two possible problems:
- duplicated instances, then you set some property at instance 1 expecting
to see it changed at instance 2
- missing Component#modelChanged, since you need to signal the form
component that you have set some property into its model
the best would be you send a quickstart showing the problem
On Mon, Jan 31, 2011 at 1:01 PM, Brown, Berlin [GCG-PFS]
berlin.br...@primerica.com wrote:
In this code, do you think I am using the method
CompoundPropertyModel.bind properly? See my example in Code2, below.
In my snippet Code1, the values for the propertymodel were lost when I
did an ajax onClick.
But in Code2, the values are retained...
Code1:
Panel {
Panel() {
CompoundPropertyModel compoundPropertyModel = new
CompoundPropertyModel(someObject);
Form f = new Form(compoundPropertyModel);
f.add(new TextField(name)); This works fine, data able to
setObject and getObject on ajax and other cases
f.add(new TextField(name, new PropertyModel(someObject); --- ON
AJAX, VALUES LOST
f.add(new AjaxLink() {
onClick() {
target.add(form);
}
}
}
}
...
...
Code2:
As a fix, I did the following:
final PropertyModel pm = new
PropertyModel(compoundPropertyModel, number) {
@Override
public Object getObject() {
return ((CompoundPropertyModel)
form.getDefaultModel()).bind(number).getObject();
}
public void setObject(final Object obj) {
((CompoundPropertyModel)
billingForm.getDefaultModel()).bind(number).setObject(obj);
}
};
f.add(new TextField(name)); This works fine, data able to
setObject and getObject on ajax and other cases
f.add(new TextField(name, pm)--- ON AJAX, NOW VALUES ARE
AVAILABLE, FIXED!
Berlin Brown
--
Pedro Henrique Oliveira dos Santos