== Juergen Donnerstag <[EMAIL PROTECTED]>
== Scott Sauyet <[EMAIL PROTECTED]>
RFE: allow wicket:id on <body> tag which currently is not possible due
to wickets body onLoad handling.
Okay. It's at http://tinyurl.com/7azmc [ ... ]
I'll look to see if I can create a patch for this.
Okay, a patch is attached that modifies WebPage and BodyOnloadContainer.
It's a suggestion for something less than the wicket:id on the body
tag. It simply adds
public void addBodyAttributeModifier(AttributeModifier modifier)
to WebPage, so that you can do, for instance,
addBodyAttributeModifier(new AttributeModifier("class", true, new
Model("blah")));
I don't know if my use-case is enough of a reason to clutter up the
interface of WebPage. I also don't know if there is a reason to widen
this facility beyond adding AttributeModifiers. But for what it's
worth, here is my simple suggestion.
-- Scott
? lib/commons-logging-1.0.4.jar
? lib/concurrent-1.3.4.jar
? lib/junit-3.8.1.jar
? lib/log4j-1.2.11.jar
? lib/ognl-2.6.7.jar
? lib/servletapi-2.3.jar
? src/test/com/voicetribe/util/parse/metapattern
Index: src/java/wicket/markup/html/BodyOnLoadContainer.java
===================================================================
RCS file:
/cvsroot/wicket/wicket/src/java/wicket/markup/html/BodyOnLoadContainer.java,v
retrieving revision 1.6
diff -u -r1.6 BodyOnLoadContainer.java
--- src/java/wicket/markup/html/BodyOnLoadContainer.java 2 Oct 2005
10:06:29 -0000 1.6
+++ src/java/wicket/markup/html/BodyOnLoadContainer.java 23 Nov 2005
19:08:46 -0000
@@ -17,6 +17,8 @@
*/
package wicket.markup.html;
+import java.util.Iterator;
+
import wicket.AttributeModifier;
import wicket.Component;
import wicket.IComponentResolver;
@@ -75,6 +77,9 @@
{
add(new AttributeModifier("onload", true, new
Model(onLoad)));
}
+ for (Iterator it =
((WebPage)this.getPage()).getBodyAttributeModifiers().iterator(); it.hasNext();
) {
+ add((AttributeModifier) it.next());
+ }
}
// go on with default implementation
Index: src/java/wicket/markup/html/WebPage.java
===================================================================
RCS file: /cvsroot/wicket/wicket/src/java/wicket/markup/html/WebPage.java,v
retrieving revision 1.52
diff -u -r1.52 WebPage.java
--- src/java/wicket/markup/html/WebPage.java 7 Nov 2005 19:41:05 -0000
1.52
+++ src/java/wicket/markup/html/WebPage.java 23 Nov 2005 19:51:51 -0000
@@ -20,6 +20,8 @@
import java.io.UnsupportedEncodingException;
import java.lang.reflect.Method;
import java.net.URLEncoder;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Iterator;
import org.apache.commons.logging.Log;
@@ -27,6 +29,7 @@
import wicket.Application;
import wicket.ApplicationPages;
+import wicket.AttributeModifier;
import wicket.Component;
import wicket.IBehaviourListener;
import wicket.Page;
@@ -474,4 +477,18 @@
public void afterCallComponent(final Component component, final Method
method)
{
}
+
+ /** AttributeModifiers to be added to the body. */
+ private List bodyAttributeModifiers = new ArrayList();
+
+ public void addBodyAttributeModifier(AttributeModifier modifier)
+ {
+ bodyAttributeModifiers.add(modifier);
+ }
+
+ List getBodyAttributeModifiers()
+ {
+ return bodyAttributeModifiers;
+ }
+
}
\ No newline at end of file