Hello smallufo:
> public class MyPanel extends Panel
> {
> private MyObj myObj;
>
> public MyPanel(String id , IModel model)
> {
> super(id);
> this.myObj = (MyObj) model.getObject();
>
> add(new Label("xxx" , myObj.getFieldX.toString()));
> add(new Label("yyy" , myObj.getFieldY.toString()));
>
> }
> }
This is the problem. Don't store the instance in the panel. Use the provided
model. The Labels can get their data by a PropertyModel related to that
model.
public class MyPanel extends Panel
{
// removed while not required private MyObj myObj;
public MyPanel(String id , IModel model)
{
super(id, model); <-- use this constructor
// removed while not required this.myObj = (MyObj) model.getObject();
// instead add(new Label("xxx" , myObj.getFieldX.toString()));
add(new Label("xxx" , new PropertyModel(model, "fieldX")));
// instead add(new Label("yyy" , myObj.getFieldY.toString()));
add(new Label("yyy" , new PropertyModel(model, "fieldY")));
}
}
You simply wire the models together. So a model related to view can't be null
(instanciated in panel self). That's what i mean if i always say "path to
data". It's a description which properties have to be used to get the data.
So the underlying business object can be null. The behavior if a null will be
return will be determined by the component. A label for instance is
displaying simply a blank. Textfield to.
HTH
Per
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]