You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Gonzalo Aguilar Delgado <ga...@aguilardelgado.com> on 2011/03/02 20:35:11 UTC
body tag contributions with wicket 1.5 (Dojo needs it)
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-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org
Re: body tag contributions with wicket 1.5 (Dojo needs it)
Posted by Matt Brictson <ma...@55minutes.com>.
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-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org