I guess it would make sense to provide just a single implementation to
be used by both components, avoiding problems while trying to keep
them in sync.

Juergen

On 11/7/05, Ruud Booltink <[EMAIL PROTECTED]> wrote:
> I think adding this code to WebComponent's renderHead() would solve this
> problem.
>
>            String stmt =
> ((IBodyOnloadContributor)handlers[i]).getBodyOnload();
>                if (stmt != null)
>                {
>                    ((WebPage)getPage()).appendToBodyOnLoad(stmt);
>                }
> Maby one of the core developers could look at this....
>
> Ruud
>
>
> Marco van de Haar wrote:
>
> > I dived into the wicket core code and I ended up in
> > WebComponent.renderHead().
> > Since I noticed that getBodyOnLoad() was only called for
> > FormComponents and WebMarkupContainers I expected a difference in
> > renderHead() for WebComponent and WebMarkupContainer....... and I
> > found it.
> >
> > Webcomponent.renderHead()
> >
> >    /**
> >     * THIS IS NOT PART OF WICKETS PUBLIC API. DO NOT CALL IT YOURSELF
> >     * Print to the web response what ever the component wants
> >     * to contribute to the head section. Does nothing by default.
> >     *
> >     * @param container The HtmlHeaderContainer
> >     * @see
> > wicket.markup.html.IHeaderContributor#renderHead(wicket.markup.html.HtmlHeaderContainer)
> >
> >     */
> >    public void renderHead(final HtmlHeaderContainer container)
> >    {
> >        AjaxHandler[] handlers = getAjaxHandlers();
> >        if (handlers != null)
> >        {
> >            for (int i = 0; i < handlers.length; i++)
> >            {
> >                handlers[i].renderHead(container);
> >            }
> >        }
> >    }
> >
> > and WebMarkupContainer.renderHead():
> > public void renderHead(final HtmlHeaderContainer container)
> >    {
> > ....
> > .....
> >        // get head and body contributions in one loop
> >        AjaxHandler[] handlers = getAjaxHandlers();
> >        if (handlers != null)
> >        {
> >            for (int i = 0; i < handlers.length; i++)
> >            {
> >                ((IHeaderContributor)handlers[i]).renderHead(container);
> >
> >                String stmt =
> > ((IBodyOnloadContributor)handlers[i]).getBodyOnload();
> >                if (stmt != null)
> >                {
> >                    ((WebPage)getPage()).appendToBodyOnLoad(stmt);
> >                }
> >            }          }
> >    }
> >
> > I believe that getBodyOnload() is not called in WebComponent. And thus
> > any bodyonload contributions made in AjaxHandlers bound to
> > WebComponents are ignored. Is this a bug? If so, it must be easy to fix.
> >
> > Marco
> >
> >> That should work. Might be a bug. Could you pls try to step into it?
> >>
> >> Eelco
> >>
> >> On 11/4/05, Marco van de Haar <[EMAIL PROTECTED]> wrote:
> >>
> >>
> >>> I encountered somewhat unexpected behavior when I tried using
> >>> getBodyOnloadContribution().
> >>> When adding custom Ajaxhandlers to components I noticed that the
> >>> getBodyOnloadContribution() is not called when I added the handler
> >>> to an
> >>> Image or a Label. It was however called upon loading the page when I
> >>> added my handler to a WebMarkupContainer.
> >>>
> >>> Is this method meant to hehave this way? If so, I did not find it in
> >>> the
> >>> documentation. I think it is logical that the method is also called for
> >>> Components like Label and Image. I am not really familliar with
> >>> AjaxHandler's internal code however.
> >>>
> >>> Marco
> >>>
> >>>
> >>>
> >>>
> >>> -------------------------------------------------------
> >>> SF.Net email is sponsored by:
> >>> Tame your development challenges with Apache's Geronimo App Server.
> >>> Download
> >>> it for free - -and be entered to win a 42" plasma tv or your very own
> >>> Sony(tm)PSP.  Click here to play: http://sourceforge.net/geronimo.php
> >>> _______________________________________________
> >>> Wicket-user mailing list
> >>> Wicket-user@lists.sourceforge.net
> >>> https://lists.sourceforge.net/lists/listinfo/wicket-user
> >>>
> >>>
> >>
> >>
> >>
> >> -------------------------------------------------------
> >> SF.Net email is sponsored by:
> >> Tame your development challenges with Apache's Geronimo App Server.
> >> Download
> >> it for free - -and be entered to win a 42" plasma tv or your very own
> >> Sony(tm)PSP.  Click here to play: http://sourceforge.net/geronimo.php
> >> _______________________________________________
> >> Wicket-user mailing list
> >> Wicket-user@lists.sourceforge.net
> >> https://lists.sourceforge.net/lists/listinfo/wicket-user
> >>
> >>
> >>
> >
> >
> >
> > -------------------------------------------------------
> > SF.Net email is sponsored by:
> > Tame your development challenges with Apache's Geronimo App Server.
> > Download
> > it for free - -and be entered to win a 42" plasma tv or your very own
> > Sony(tm)PSP.  Click here to play: http://sourceforge.net/geronimo.php
> > _______________________________________________
> > Wicket-user mailing list
> > Wicket-user@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/wicket-user
> >
>
>
>
> -------------------------------------------------------
> SF.Net email is sponsored by:
> Tame your development challenges with Apache's Geronimo App Server. Download
> it for free - -and be entered to win a 42" plasma tv or your very own
> Sony(tm)PSP.  Click here to play: http://sourceforge.net/geronimo.php
> _______________________________________________
> Wicket-user mailing list
> Wicket-user@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wicket-user
>


-------------------------------------------------------
SF.Net email is sponsored by:
Tame your development challenges with Apache's Geronimo App Server. Download
it for free - -and be entered to win a 42" plasma tv or your very own
Sony(tm)PSP.  Click here to play: http://sourceforge.net/geronimo.php
_______________________________________________
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user

Reply via email to