Thanks, that's interesting, I didn't realise that AbstractBehaviour could be
used for rendering into the html body.

I ended up overriding the DropDownChoice onRender method to get what I
wanted. In my case the script is so specific that there's little point in
creating a reusable behavior.

Thanks to everyone for their contributions. 

> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:wicket-user-
> [EMAIL PROTECTED] On Behalf Of Harald Gruber
> Sent: Wednesday, 23 May 2007 5:55 PM
> To: wicket-user@lists.sourceforge.net
> Subject: Re: [Wicket-user] Best way to insert inline Javascript
> 
> 
> you could implement it as behavior and just add it to the dropdown...
> 
> have a look at my example. the javascript is composed and written in the
> "onRendered"
> method so its written out right after the component.
> 
> harald
> 
> 
> -------- example ---------------
> 
> import org.apache.wicket.Component;
> import org.apache.wicket.ResourceReference;
> import org.apache.wicket.Response;
> import org.apache.wicket.behavior.AbstractBehavior;
> import org.apache.wicket.markup.ComponentTag;
> import org.apache.wicket.markup.html.IHeaderContributor;
> import org.apache.wicket.markup.html.IHeaderResponse;
> import
> org.apache.wicket.markup.html.resources.JavascriptResourceReference;
> 
> public class RoundedCorners extends AbstractBehavior implements
> IHeaderContributor {
>       private static final long serialVersionUID = 1L;
> 
>       private String componentTag;
>       private String options;
> 
>       public RoundedCorners() {
>               this.options = "normal,all";
>       }
> 
>       public RoundedCorners(final String options) {
>               this.options = options;
>       }
> 
>       public void bind(final Component component) {
>               component.setOutputMarkupId(true);
>       }
> 
>       public void onComponentTag(final Component component, final
> ComponentTag tag) {
>               componentTag = tag.getName();
>       }
> 
>       public void onRendered(Component component) {
>               String markupId = component.getMarkupId();
>               Response response = component.getResponse();
>               response.write("\n<script type=\"text/javascript\">\n");
>               response.write("<!--\n");
>               response.write("Nifty(\"");
>               response.write(componentTag);
>               response.write("#");
>               response.write(markupId);
>               response.write("\",\"");
>               response.write(options);
>               response.write("\");\n");
>               response.write(" -->\n");
>               response.write("</script>");
>       }
> 
>       public void renderHead(IHeaderResponse response) {
>               response.renderCSSReference(new
> ResourceReference(RoundedCorners.class, "nifty.css"));
>               response.renderJavascriptReference(new
> JavascriptResourceReference(RoundedCorners.class, "nifty.js"));
>       }
> 
> }
> 
> 
> -------------------------------------------------------------------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> Wicket-user mailing list
> Wicket-user@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wicket-user

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user

Reply via email to