source: VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/border/AjaxToggleBorder.java @ 1004

Last change on this file since 1004 was 1004, checked in by oschonef, 13 years ago
  • use IWiQueryPlugin for jQuery enabled components
  • move JavaScript? code to separate files
  • Property svn:eol-style set to native
File size: 2.4 KB
Line 
1package eu.clarin.cmdi.virtualcollectionregistry.gui.border;
2
3import org.apache.wicket.ResourceReference;
4import org.apache.wicket.behavior.AttributeAppender;
5import org.apache.wicket.markup.html.WebMarkupContainer;
6import org.apache.wicket.markup.html.basic.Label;
7import org.apache.wicket.markup.html.border.Border;
8import org.apache.wicket.model.IModel;
9import org.apache.wicket.model.Model;
10import org.odlabs.wiquery.core.commons.IWiQueryPlugin;
11import org.odlabs.wiquery.core.commons.WiQueryResourceManager;
12import org.odlabs.wiquery.core.javascript.JsStatement;
13
14@SuppressWarnings("serial")
15public class AjaxToggleBorder extends Border implements IWiQueryPlugin {
16    private static final ResourceReference JAVASCRIPT_RESOURCE =
17        new ResourceReference(AjaxToggleBorder.class, "AjaxToggleBorder.js");
18    private final WebMarkupContainer border;
19
20    public AjaxToggleBorder(String id, IModel<String> title,
21            boolean expanded, String cssClass) {
22        super(id);
23        setRenderBodyOnly(true);
24
25        border = new WebMarkupContainer("border");
26        border.setOutputMarkupId(true);
27
28        final WebMarkupContainer header = new WebMarkupContainer("header");
29        header.add(new Label("title", title));
30        border.add(header);
31
32        final WebMarkupContainer content = new WebMarkupContainer("content");
33        content.setOutputMarkupId(true);
34        content.add(getBodyContainer());
35        border.add(content);
36        add(border);
37
38        if (!expanded) {
39            header.add(new AttributeAppender("class",
40                    new Model<String>("collapsed"), " "));
41            content.add(new AttributeAppender("style",
42                    new Model<String>("display:none"), ";"));
43        }
44        if (cssClass != null) {
45            content.add(new AttributeAppender("class",
46                    new Model<String>(cssClass), " "));
47        }
48    }
49
50    public AjaxToggleBorder(String id, IModel<String> title, String cssClass) {
51        this(id, title, true, cssClass);
52    }
53
54    public AjaxToggleBorder(String id, IModel<String> title) {
55        this(id, title, true, null);
56    }
57
58    @Override
59    public void contribute(WiQueryResourceManager manager) {
60        manager.addJavaScriptResource(JAVASCRIPT_RESOURCE);
61    }
62
63    @Override
64    public JsStatement statement() {
65        return new JsStatement().$(border).append(".ajaxToggleBorder()");
66    }
67
68} // class AjaxToggleBorder
Note: See TracBrowser for help on using the repository browser.