Since isTransparentResolver() is going away in 1.5, the trick that I found is to create a normal WebMarkupContainer for the <body> element, then override add(Component...) of the page to mimic the transparent resolver feature.
Your pages can then contribute to the <body> element by adding AttributeModifier, etc. to the WebMarkupContainer. See: <https://cwiki.apache.org/WICKET/migration-to-wicket-15.html#MigrationtoWicket1.5-MarkupContainer.isTransparentResolver%2528%2529removed> Here's an example: public abstract class BasePage extends WebPage { private WebMarkupContainer _body; public BasePage(PageParameters params) { super(params); // Allow subclasses to register CSS classes on the body tag WebMarkupContainer body = new WebMarkupContainer("body"); body.setOutputMarkupId(true); add(body); // From now on add() will add to _body instead of page this._body = body; } /** * Return a component that represents the {@code <body>} of the page. * Use this to add CSS classes or set the markup ID for styling purposes. */ public WebMarkupContainer getBody() { return _body; } /** * When subclasses of BasePage add components to the page, in reality * they need to be added as children of the {@code <body>} container. * This implementation ensures the page hierarchy is correctly enforced. * * @return {@code this} to allow chaining */ @Override public BasePage add(Component... childs) { for(Component c : childs) { // Wicket automatically translates <head> into an // HtmlHeaderContainer and adds it to the page. Make sure this // is registered as a direct child of the page itself, not the // body. if(null == _body || c instanceof HtmlHeaderContainer) { super.add(c); } // Everything else goes into the <body>. else { _body.add(c); } } return this; } } -- Matt On Mar 2, 2011, at 11:35 AM, Gonzalo Aguilar Delgado wrote: > Hello, > > I'm building a wiJQuery equivalent for Dojo. And it seems to work nice > with new wicket 1.5. HeaderContributions are really nice... Great work! > > But I ran into problems when trying to setup the themes. > > I have to put something like this in the body: > > <body class="claro"> > > </body> > > But I rode a lot and discovered that wicket no longer supports > contributing to body because onLoad handler as well others. > > Reading in forums I found the BodyTagAttributeModifier but you need a > panel that I wont have. > > And the: > > <body wicket:id="body"> > > add(new WebMarkupContainer("body"){ > @Override > public boolean isTransparentResolver() { > return true; > } > @Override > protected void onComponentTag(ComponentTag tag) { > tag.put("class", "somestyle"); > } > }); > It will not work because wicket:id attribute removed from body in version 1.5. > > > So... What's they way to go? > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > For additional commands, e-mail: users-h...@wicket.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org