Changeset 4975


Ignore:
Timestamp:
04/15/14 07:57:13 (10 years ago)
Author:
Twan Goosen
Message:

extracted expand/collapse functionality from FacetPanel? into a new abstract Expandable Panel which the advanced options panel now also inherits from

Location:
vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket
Files:
1 added
5 edited
1 copied

Legend:

Unmodified
Added
Removed
  • vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/pages/FacetedSearchPage.html

    r4971 r4975  
    6767
    6868                <div wicket:id="facets">[facets]</div>
    69                 <div wicket:id="options">[options]</div>
     69
     70                <div class="sidebaritem">
     71                    <!--rounded corners - top ****-->
     72                    <div class="rtop"><div class="r1"></div><div class="r2"></div><div class="r3"></div><div class="r4"></div></div>
     73                    <div wicket:id="options">[options]</div>
     74                    <!--rounded corners - bottom ****-->
     75                    <div class="rbottom"><div class="r4"></div><div class="r3"></div><div class="r2"></div><div class="r1"></div></div>
     76                </div>
    7077            </div>
    7178        </wicket:extend>
  • vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/ExpandablePanel.html

    r4964 r4975  
    2626            <a wicket:id="expand" class="expandfacet"><span>expand</span></a>
    2727            <a wicket:id="collapse" class="collapsefacet"><span>collapse</span></a>
    28             <h1><a wicket:id="titleToggle" href="#"><wicket:container wicket:id="title">[TITLE]</wicket:container></a></h1>
    29             <div wicket:id="facetValues" />
    30             <div wicket:id="facetSelection" />
     28            <wicket:child />
    3129        </wicket:panel>
    3230    </body>
  • vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/search/AdvancedSearchOptionsPanel.html

    r4971 r4975  
    2323    </head>
    2424    <body>
    25         <wicket:panel>
    26             <div class="sidebaritem facet expandedfacet">
    27                 <!--rounded corners - top ****-->
    28                 <div class="rtop"><div class="r1"></div><div class="r2"></div><div class="r3"></div><div class="r4"></div></div>
    29                 <a href="#" class="expandfacet"><span>expand</span></a>
    30                 <a href="#" class="collapsefacet"><span>collapse</span></a>
    31                 <h1><a href="#">Search options</a></h1>
    32                 <div class="sbilinks facetvalues">
    33                     <form wicket:id="options" id="advancedoptions" action="">
    34                         <ul>
    35                             <li>
    36                                 <input wicket:id="fcs" type="checkbox" id="onlyfcs"/>
    37                                 <label for="onlyfcs">Only include resources that support content search</label>
    38                             </li>
    39                             <li>
    40                                 <input type="checkbox" id="onlymdformat"/>
    41                                 <label for="onlyfcs">Only include resources described with</label>
    42                                 <select>
    43                                     <option>CMDI</option>
    44                                     <option>OLAC</option>
    45                                 </select>
    46                             </li>
    47                         </ul>
    48                         <input type="submit" value="Apply" class="nonjsfallback" />
    49                     </form>
    50                 </div>
    51                 <!--rounded corners - bottom ****-->
    52                 <div class="rbottom"><div class="r4"></div><div class="r3"></div><div class="r2"></div><div class="r1"></div></div>
     25        <wicket:extend>
     26            <h1><a href="#">Search options</a></h1>
     27            <div class="sbilinks facetvalues">
     28                <form wicket:id="options" id="advancedoptions">
     29                    <ul>
     30                        <li>
     31                            <input wicket:id="fcs" type="checkbox" id="onlyfcs"/>
     32                            <label for="onlyfcs">Only include resources that support content search</label>
     33                        </li>
     34                        <!--                           
     35                        <li>
     36                            <input type="checkbox" id="onlymdformat"/>
     37                            <label for="onlyfcs">Only include resources described with</label>
     38                            <select>
     39                                <option>CMDI</option>
     40                                <option>OLAC</option>
     41                            </select>
     42                        </li>
     43                        -->
     44                    </ul>
     45                    <input type="submit" value="Apply" class="nonjsfallback" />
     46                </form>
    5347            </div>
    54         </wicket:panel>
     48        </wicket:extend>
    5549    </body>
    5650</html>
  • vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/search/AdvancedSearchOptionsPanel.java

    r4971 r4975  
    1818
    1919import eu.clarin.cmdi.vlo.FacetConstants;
     20import eu.clarin.cmdi.vlo.pojo.ExpansionState;
    2021import eu.clarin.cmdi.vlo.pojo.FacetSelection;
    2122import eu.clarin.cmdi.vlo.pojo.FacetSelectionType;
     
    2324import eu.clarin.cmdi.vlo.wicket.model.FacetSelectionModel;
    2425import eu.clarin.cmdi.vlo.wicket.model.ToggleModel;
     26import eu.clarin.cmdi.vlo.wicket.panels.ExpandablePanel;
    2527import org.apache.wicket.ajax.AjaxRequestTarget;
    2628import org.apache.wicket.ajax.form.OnChangeAjaxBehavior;
    2729import org.apache.wicket.markup.html.form.CheckBox;
    2830import org.apache.wicket.markup.html.form.Form;
    29 import org.apache.wicket.markup.html.panel.GenericPanel;
    3031import org.apache.wicket.model.IModel;
     32import org.apache.wicket.model.Model;
    3133
    3234/**
     
    3941 * @author twagoo
    4042 */
    41 public abstract class AdvancedSearchOptionsPanel extends GenericPanel<QueryFacetsSelection> {
     43public abstract class AdvancedSearchOptionsPanel extends ExpandablePanel<QueryFacetsSelection> {
    4244
    4345    public AdvancedSearchOptionsPanel(String id, IModel<QueryFacetsSelection> model) {
    44         super(id, model);
     46        super(id, model, Model.of(ExpansionState.COLLAPSED));
    4547
    4648        // create a model for the selection state for the FCS facet
  • vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/search/FacetPanel.html

    r4964 r4975  
    2323    </head>
    2424    <body>
    25         <wicket:panel>
    26             <a wicket:id="expand" class="expandfacet"><span>expand</span></a>
    27             <a wicket:id="collapse" class="collapsefacet"><span>collapse</span></a>
     25        <wicket:extend>
    2826            <h1><a wicket:id="titleToggle" href="#"><wicket:container wicket:id="title">[TITLE]</wicket:container></a></h1>
    2927            <div wicket:id="facetValues" />
    3028            <div wicket:id="facetSelection" />
    31         </wicket:panel>
     29        </wicket:extend>
    3230    </body>
    3331</html>
  • vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/search/FacetPanel.java

    r4963 r4975  
    2222import eu.clarin.cmdi.vlo.pojo.QueryFacetsSelection;
    2323import eu.clarin.cmdi.vlo.wicket.model.SolrFieldNameModel;
     24import eu.clarin.cmdi.vlo.wicket.panels.ExpandablePanel;
    2425import java.util.Collection;
    2526import java.util.HashSet;
    2627import org.apache.solr.client.solrj.response.FacetField;
    27 import org.apache.wicket.AttributeModifier;
    2828import org.apache.wicket.ajax.AjaxRequestTarget;
    2929import org.apache.wicket.ajax.markup.html.AjaxFallbackLink;
    3030import org.apache.wicket.extensions.ajax.markup.html.IndicatingAjaxFallbackLink;
    3131import org.apache.wicket.markup.html.basic.Label;
    32 import org.apache.wicket.markup.html.panel.GenericPanel;
    33 import org.apache.wicket.model.AbstractReadOnlyModel;
    3432import org.apache.wicket.model.IModel;
    3533import org.apache.wicket.model.PropertyModel;
     
    4341 * @author twagoo
    4442 */
    45 public abstract class FacetPanel extends GenericPanel<FacetFieldSelection> {
     43public abstract class FacetPanel extends ExpandablePanel<FacetFieldSelection> {
    4644
    4745    private final IModel<ExpansionState> expansionStateModel;
     
    5149
    5250    public FacetPanel(String id, IModel<FacetFieldSelection> selectionModel, IModel<ExpansionState> expansionState) {
    53         super(id, selectionModel);
    54 
     51        super(id, selectionModel, expansionState);
    5552        this.expansionStateModel = expansionState;
    5653
     
    6562        selectedFacetPanel = createSelectedFacetPanel("facetSelection");
    6663        add(selectedFacetPanel);
    67 
    68         addExpansionComponents();
    6964    }
    7065
     
    157152    }
    158153
    159     private void addExpansionComponents() {
    160 
    161         // class modifier to apply correct class depending on state
    162         add(new AttributeModifier("class", new AbstractReadOnlyModel<String>() {
    163 
    164             @Override
    165             public String getObject() {
    166                 switch (expansionStateModel.getObject()) {
    167                     case COLLAPSED:
    168                         return "facet collapsedfacet";
    169                     case EXPANDED:
    170                         return "facet expandedfacet";
    171                     default:
    172                         return "facet";
    173                 }
    174             }
    175         }));
    176 
    177         // add expansion link
    178         add(new IndicatingAjaxFallbackLink("expand") {
    179 
    180             @Override
    181             public void onClick(AjaxRequestTarget target) {
    182                 expansionStateModel.setObject(ExpansionState.EXPANDED);
    183                 if (target != null) {
    184                     target.add(FacetPanel.this);
    185                 }
    186             }
    187         });
    188 
    189         // add collapse link
    190         add(new IndicatingAjaxFallbackLink("collapse") {
    191 
    192             @Override
    193             public void onClick(AjaxRequestTarget target) {
    194                 expansionStateModel.setObject(ExpansionState.COLLAPSED);
    195                 if (target != null) {
    196                     target.add(FacetPanel.this);
    197                 }
    198             }
    199         });
    200         setOutputMarkupId(true);
    201     }
    202 
    203     @Override
    204     public void detachModels() {
    205         // this will detach selection model (passed to super through constructor)
    206         super.detachModels();
    207         // additional model not known by supertype
    208         expansionStateModel.detach();
    209     }
    210 
    211154    protected abstract void selectionChanged(AjaxRequestTarget target);
    212155
Note: See TracChangeset for help on using the changeset viewer.