Changeset 1004 for VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/border/AjaxToggleBorder.java
- Timestamp:
- 12/21/10 19:35:08 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/border/AjaxToggleBorder.java
r991 r1004 1 1 package eu.clarin.cmdi.virtualcollectionregistry.gui.border; 2 2 3 import org.apache.wicket.ResourceReference; 3 4 import org.apache.wicket.behavior.AttributeAppender; 4 5 import org.apache.wicket.markup.html.WebMarkupContainer; … … 7 8 import org.apache.wicket.model.IModel; 8 9 import 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; 10 import org.odlabs.wiquery.core.commons.IWiQueryPlugin; 11 import org.odlabs.wiquery.core.commons.WiQueryResourceManager; 15 12 import org.odlabs.wiquery.core.javascript.JsStatement; 16 13 17 14 @SuppressWarnings("serial") 18 public class AjaxToggleBorder extends Border { 19 private final static String COLLAPSED_CLASS = "collapsed"; 15 public 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; 20 19 21 20 public AjaxToggleBorder(String id, IModel<String> title, … … 24 23 setRenderBodyOnly(true); 25 24 25 border = new WebMarkupContainer("border"); 26 border.setOutputMarkupId(true); 27 26 28 final WebMarkupContainer header = new WebMarkupContainer("header"); 27 add(header);28 29 header.add(new Label("title", title)); 30 border.add(header); 29 31 30 32 final WebMarkupContainer content = new WebMarkupContainer("content"); 31 add(content);32 33 content.setOutputMarkupId(true); 33 34 content.add(getBodyContainer()); 35 border.add(content); 36 add(border); 34 37 35 header.add(new WiQueryEventBehavior(new Event(MouseEvent.CLICK) {36 @Override37 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 }));46 38 if (!expanded) { 47 39 header.add(new AttributeAppender("class", 48 new Model<String>( COLLAPSED_CLASS), " "));40 new Model<String>("collapsed"), " ")); 49 41 content.add(new AttributeAppender("style", 50 42 new Model<String>("display:none"), ";")); … … 64 56 } 65 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 66 68 } // class AjaxToggleBorder
Note: See TracChangeset
for help on using the changeset viewer.