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