See code, hope it gives you an idea ;)
<head>
<link id="wicket-styles" rel="stylesheet" type="text/css" href="wehkamp.css" ></link>
...
public class MainPage extends HtmlPage
{
/** default styles. */
private static final List DEFAULT_STYLES = new ArrayList(1);
static {
DEFAULT_STYLES.add("wehkamp.css");
} public MainPage()
{
add(new StylesListView("styles", new StylesModel()));
... private static final class StylesListView extends ListView
{
public StylesListView(String name, IModel model)
{
super(name, model);
} protected void populateItem(ListItem listItem)
{
String style = (String)listItem.getModelObject();
listItem.add(new AttributeModifier("href", new Model(style)));
} protected void handleRender()
{
removeAll();
super.handleRender();
}
}private final class StylesModel extends Model
{
public Object getObject()
{
final List styles = new ArrayList();
styles.addAll(DEFAULT_STYLES);
MainPage.this.visitChildren(HeaderContributor.class, new IVisitor()
{
public Object component(final Component component)
{
styles.addAll(((HeaderContributor)component).getCSSStyleHrefs());
return CONTINUE_TRAVERSAL;
}
});
return styles;
}
}
public interface HeaderContributor
{
List getCSSStyleHrefs();
}Eelco
Juergen Donnerstag wrote:
Kamil,
yes there has been a discussion around it and we decided not to put it into 1.0. The workarounds I can think of:
a) simply put the reference to *.js into the header section of your page markup or inline it. You're component than doesn't know anything about it, but would rely on it. I know that this approach is not super elegant (javascript and component disconnected), but it is easy and it works.
b) your component may have a <div id="wicket-myscript"> region (actually a HtmlContainer), which you yourself setVisible(true/false).The region may contain the inline javascript.
c) Eelco has designed some components in order to tests his ideas. Sorry, but I forgot how exactly they work (please scan the mail archiv). May be he provides an example to you
Juergen
On Mon, 7 Feb 2005 13:56:16 +0100, Kamil Rembalski <[EMAIL PROTECTED]> wrote:
Hi guys,
I am trying to create a popup calendar component, which involves massive javascript. I remember a discussion about special markup elements that would allow the components to render some parts of their markup only once per page and in the given section. Was there any progress on this since then? I can't think of any elegant workaround and I can't do without it... This may quite an issue for some components...
Cheers, Kamil
------------------------------------------------------- This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl _______________________________________________ Wicket-develop mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/wicket-develop
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
Tool for open source databases. Create drag-&-drop reports. Save time
by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
Download a FREE copy at http://www.intelliview.com/go/osdn_nl
_______________________________________________
Wicket-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-develop
------------------------------------------------------- This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl _______________________________________________ Wicket-develop mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/wicket-develop
