Ignore:
Timestamp:
12/21/10 19:35:08 (13 years ago)
Author:
oschonef
Message:
  • use IWiQueryPlugin for jQuery enabled components
  • move JavaScript? code to separate files
File:
1 edited

Legend:

Unmodified
Added
Removed
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/border/AjaxToggleBorder.java

    r991 r1004  
    11package eu.clarin.cmdi.virtualcollectionregistry.gui.border;
    22
     3import org.apache.wicket.ResourceReference;
    34import org.apache.wicket.behavior.AttributeAppender;
    45import org.apache.wicket.markup.html.WebMarkupContainer;
     
    78import org.apache.wicket.model.IModel;
    89import org.apache.wicket.model.Model;
    9 import org.odlabs.wiquery.core.effects.EffectSpeed;
    10 import org.odlabs.wiquery.core.effects.sliding.SlideToggle;
    11 import org.odlabs.wiquery.core.events.Event;
    12 import org.odlabs.wiquery.core.events.MouseEvent;
    13 import org.odlabs.wiquery.core.events.WiQueryEventBehavior;
    14 import org.odlabs.wiquery.core.javascript.JsScope;
     10import org.odlabs.wiquery.core.commons.IWiQueryPlugin;
     11import org.odlabs.wiquery.core.commons.WiQueryResourceManager;
    1512import org.odlabs.wiquery.core.javascript.JsStatement;
    1613
    1714@SuppressWarnings("serial")
    18 public class AjaxToggleBorder extends Border {
    19     private final static String COLLAPSED_CLASS = "collapsed";
     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;
    2019
    2120    public AjaxToggleBorder(String id, IModel<String> title,
     
    2423        setRenderBodyOnly(true);
    2524
     25        border = new WebMarkupContainer("border");
     26        border.setOutputMarkupId(true);
     27
    2628        final WebMarkupContainer header = new WebMarkupContainer("header");
    27         add(header);
    2829        header.add(new Label("title", title));
     30        border.add(header);
    2931
    3032        final WebMarkupContainer content = new WebMarkupContainer("content");
    31         add(content);
    3233        content.setOutputMarkupId(true);
    3334        content.add(getBodyContainer());
     35        border.add(content);
     36        add(border);
    3437
    35         header.add(new WiQueryEventBehavior(new Event(MouseEvent.CLICK) {
    36             @Override
    37             public JsScope callback() {
    38                 final JsScope cb = JsScope.quickScope(new JsStatement()
    39                     .$(header).toggleClass(COLLAPSED_CLASS));
    40                 final SlideToggle effect = new SlideToggle(EffectSpeed.SLOW);
    41                 effect.setCallback(cb);
    42                 return JsScope.quickScope(new JsStatement()
    43                     .$(content).chain(effect));
    44             }
    45         }));
    4638        if (!expanded) {
    4739            header.add(new AttributeAppender("class",
    48                     new Model<String>(COLLAPSED_CLASS), " "));
     40                    new Model<String>("collapsed"), " "));
    4941            content.add(new AttributeAppender("style",
    5042                    new Model<String>("display:none"), ";"));
     
    6456    }
    6557
     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
    6668} // class AjaxToggleBorder
Note: See TracChangeset for help on using the changeset viewer.