Changeset 1004


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
Location:
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui
Files:
2 added
4 edited

Legend:

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

    r975 r1004  
    77<body>
    88<wicket:border>
    9   <div class="toggleBorder">
     9  <div wicket:id="border" class="toggleBorder">
    1010    <div wicket:id="header" class="toggleBorderHeader">
    1111          <span wicket:id="title">Title</span>
  • 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
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/table/ColumnName$ItemCell.html

    r976 r1004  
    66<body>
    77<wicket:panel>
    8   <div wicket:id="name" class="name"></div>
    9   <div wicket:id="details" class="details">
    10     <div wicket:id="desc" class="desc"></div>
    11     <ul style="list-style: none; margin: 0; padding: 0;">
    12       <li style="display: inline"><a href="#">[Display]</a></li>
    13       <li style="display: inline"><a href="#">[Action1]</a></li>
    14       <li style="display: inline"><a href="#">[Action2]</a></li>
    15     </ul>
     8  <div wicket:id="nameColumn">
     9    <div wicket:id="name" class="name"></div>
     10    <div wicket:id="details" class="details">
     11      <div wicket:id="desc" class="desc"></div>
     12      <ul style="list-style: none; margin: 0; padding: 0;">
     13        <li style="display: inline"><a href="#">[Display]</a></li>
     14        <li style="display: inline"><a href="#">[Action1]</a></li>
     15        <li style="display: inline"><a href="#">[Action2]</a></li>
     16      </ul>
     17    </div>
    1618  </div>
    1719</wicket:panel>
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/table/ColumnName.java

    r976 r1004  
    11package eu.clarin.cmdi.virtualcollectionregistry.gui.table;
    22
     3import org.apache.wicket.ResourceReference;
    34import org.apache.wicket.behavior.AttributeAppender;
    45import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
     
    1213import org.apache.wicket.model.Model;
    1314import org.apache.wicket.model.ResourceModel;
    14 import org.odlabs.wiquery.core.effects.EffectSpeed;
    15 import org.odlabs.wiquery.core.effects.sliding.SlideToggle;
    16 import org.odlabs.wiquery.core.events.Event;
    17 import org.odlabs.wiquery.core.events.MouseEvent;
    18 import org.odlabs.wiquery.core.events.WiQueryEventBehavior;
    19 import org.odlabs.wiquery.core.javascript.JsScope;
     15import org.odlabs.wiquery.core.commons.IWiQueryPlugin;
     16import org.odlabs.wiquery.core.commons.WiQueryResourceManager;
    2017import org.odlabs.wiquery.core.javascript.JsStatement;
    2118
     
    2421@SuppressWarnings("serial")
    2522final class ColumnName extends AbstractColumn<VirtualCollection> {
    26     private final class ItemCell extends Panel {
    27         private final static String DETAILS_SHOWN_CLASS = "detailsShown";
     23    private static final ResourceReference JAVASCRIPT_RESOURCE =
     24        new ResourceReference(ColumnName.class, "ColumnName.js");
    2825
     26    private final class ItemCell extends Panel implements IWiQueryPlugin {
     27        private final WebMarkupContainer nameColumn;
     28       
    2929        public ItemCell(String id, IModel<VirtualCollection> model) {
    3030            super(id);
    3131            setRenderBodyOnly(true);
     32           
     33            nameColumn = new WebMarkupContainer("nameColumn");
     34            nameColumn.setOutputMarkupId(true);
    3235            final VirtualCollection vc = model.getObject();
    33             final Label nameLabel = new Label("name", vc.getName());
    34             add(nameLabel);
    35            
     36            nameColumn.add(new Label("name", vc.getName()));
     37
    3638            final WebMarkupContainer details =
    3739                new WebMarkupContainer("details");
    38             details.setOutputMarkupId(true);
    39            
    4040            final String desc = vc.getDescription();
    4141            final MultiLineLabel descLabel = new MultiLineLabel("desc", desc);
     
    4444            }
    4545            details.add(descLabel);
    46             add(details);
    47             nameLabel.add(new WiQueryEventBehavior(new Event(MouseEvent.CLICK) {
    48                 @Override
    49                 public JsScope callback() {
    50                     final JsScope cb = JsScope.quickScope(new JsStatement()
    51                         .$(nameLabel).toggleClass(DETAILS_SHOWN_CLASS));
    52                     final SlideToggle effect = new SlideToggle(EffectSpeed.SLOW);
    53                     effect.setCallback(cb);
    54                     return JsScope.quickScope(new JsStatement()
    55                         .$(details).chain(effect));
    56                 }
    57             }));
     46            // move to css?
    5847            details.add(new AttributeAppender("style",
    5948                    new Model<String>("display:none"), ";"));
     49            nameColumn.add(details);
     50            add(nameColumn);
    6051        }
     52       
     53        @Override
     54        public void contribute(WiQueryResourceManager manager) {
     55            manager.addJavaScriptResource(JAVASCRIPT_RESOURCE);
     56        }
     57
     58        @Override
     59        public JsStatement statement() {
     60            return new JsStatement().$(nameColumn).append(".detailsToggle()");
     61        }
     62
    6163    } // class ColumnName.ItemCell
    6264
Note: See TracChangeset for help on using the changeset viewer.