Hans,
I'm agreeing. I'm just saying that if you start treating the onIniliaze() as
the place to create your components then you are stuck with the same problem
as before:
class MyPage {
MyPage() {
}
* onInitialize() <---- Using onInitialize in the page doesn't give you
anything, so that is why its 'final'
add(new MyPanel());
}*
}
class MyPanel {
MyPanel() {
log.debug("getPage() = " + getPage()); <= null
add(new Label("id", getString("resKey")); <= does not resolve
}
}
On Thu, Feb 10, 2011 at 2:08 AM, Hans Lesmeister 2 <
[email protected]> wrote:
>
> Hi,
>
>
> Clint Checketts wrote:
> >
> > I don't believe the goal of onInitiallize is to move all component
> > creation
> > from the constructor to onInitialize, since if you are adding the
> > component
> > to the parent in the onInitialize method then you are back to the problem
> > of
> > not being able to call getPage() in your components.
> >
>
> I think it is the opposite: if I create and add components in their
> respective constructors I do not have access to getPage():
>
>
> class MyPage {
> MyPage() {
> add(new MyPanel());
> }
> }
>
> class MyPanel {
> MyPanel() {
> log.debug("getPage() = " + getPage()); <= null
> add(new Label("id", getString("resKey")); <= does not resolve
> }
> }
>
>
> So at least in my panels and other containers I would keep creating
> components in onInitialize(). Is that right?
>
> Overridable factory methods in my base page (which should not be called
> from
> the constructor) are mainly there to create Components, so from where can
> they be called if I can't override onInitialize()? I would not like to go
> back to onBeforeRender and maintain a flag myself.
>
> Cheers
> Hans
>
> --
> View this message in context:
> http://apache-wicket.1842946.n4.nabble.com/final-Page-onInitialize-tp3250951p3298712.html
> Sent from the Forum for Wicket Core developers mailing list archive at
> Nabble.com.
>