Hello again,

I tested in a quickstart and it works. (I just noticed you did not called
super.onInitialize())

The code I used:

class MyPOJO
{
    public Boolean isSelected()
    {
        return true;
    }
}

public class HomePage extends WebPage
{
    private static final long serialVersionUID = 1L;

    public MyPOJO getMyPOJO()
    {
        return new MyPOJO();
    }

    public void onInitialize()
    {
        super.onInitialize();

        this.add(new MyPanel("myPanel", this.getMyPOJO()));
    }
}


class MyPanel extends Panel
{
    private static final long serialVersionUID = 1L;

    public MyPanel(String id, MyPOJO pojo)
    {
        super(id);

        MyDetachableModel mdl = new MyDetachableModel(this);
        this.add(new CheckBox("myCheckbox", new PropertyModel<Boolean>(mdl,
"selected")));
    }
}

class MyDetachableModel extends LoadableDetachableModel<MyPOJO>
{
    private static final long serialVersionUID = 1L;
    private MyPanel myPanel;

    public MyDetachableModel(MyPanel panel)
    {
        this.myPanel = panel;
    }

    protected MyPOJO load()
    {
        HomePage page = (HomePage) myPanel.getPage();

        MyPOJO pojo = page.getMyPOJO();
        System.out.println(pojo.isSelected());

        return pojo;
    }
}

Reply via email to