Changeset 4601
- Timestamp:
- 02/28/14 14:12:39 (10 years ago)
- Location:
- vlo/branches/vlo-3.0/vlo-web-app/src/main
- Files:
-
- 2 added
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/components/FacetPanel.html
r4582 r4601 24 24 <body> 25 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> 26 28 <wicket:container wicket:id="facetValues" /> 27 29 <wicket:container wicket:id="facetSelection" /> -
vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/components/FacetPanel.java
r4599 r4601 17 17 package eu.clarin.cmdi.vlo.wicket.components; 18 18 19 import eu.clarin.cmdi.vlo.pojo.ExpansionState; 19 20 import eu.clarin.cmdi.vlo.pojo.FacetSelection; 20 21 import eu.clarin.cmdi.vlo.pojo.QueryFacetsSelection; … … 22 23 import java.util.HashSet; 23 24 import org.apache.solr.client.solrj.response.FacetField; 25 import org.apache.wicket.AttributeModifier; 24 26 import org.apache.wicket.ajax.AjaxRequestTarget; 27 import org.apache.wicket.ajax.markup.html.AjaxFallbackLink; 28 import org.apache.wicket.markup.html.link.Link; 25 29 import org.apache.wicket.markup.html.panel.Panel; 30 import org.apache.wicket.model.AbstractReadOnlyModel; 26 31 import org.apache.wicket.model.IModel; 32 import org.apache.wicket.model.Model; 27 33 import org.apache.wicket.model.PropertyModel; 28 34 … … 41 47 private final SelectedFacetPanel selectedFacetPanel; 42 48 private final FacetValuesPanel facetValuesPanel; 49 private final IModel<ExpansionState> expansionStateModel; 43 50 44 public FacetPanel(String id, IModel<FacetSelection> model ) {51 public FacetPanel(String id, IModel<FacetSelection> model, IModel<ExpansionState> expansionState) { 45 52 super(id, model); 46 53 this.model = model; 54 this.expansionStateModel = expansionState; 47 55 48 56 // panel showing values for selection … … 53 61 selectedFacetPanel = createSelectedFacetPanel("facetSelection"); 54 62 add(selectedFacetPanel); 63 64 addExpansionComponents(); 65 } 66 67 private void addExpansionComponents() { 68 69 // class modifier to apply correct class depending on state 70 add(new AttributeModifier("class", new AbstractReadOnlyModel<String>() { 71 72 @Override 73 public String getObject() { 74 switch (expansionStateModel.getObject()) { 75 case COLLAPSED: 76 return "facet collapsedfacet"; 77 case EXPANDED: 78 return "facet expandedfacet"; 79 default: 80 return "facet"; 81 } 82 } 83 })); 84 85 // add expansion link 86 add(new AjaxFallbackLink("expand") { 87 88 @Override 89 public void onClick(AjaxRequestTarget target) { 90 expansionStateModel.setObject(ExpansionState.EXPANDED); 91 if (target != null) { 92 target.add(FacetPanel.this); 93 } 94 } 95 }); 96 97 // add collapse link 98 add(new AjaxFallbackLink("collapse") { 99 100 @Override 101 public void onClick(AjaxRequestTarget target) { 102 expansionStateModel.setObject(ExpansionState.COLLAPSED); 103 if (target != null) { 104 target.add(FacetPanel.this); 105 } 106 } 107 }); 108 setOutputMarkupId(true); 55 109 } 56 110 … … 68 122 @Override 69 123 public void onValuesSelected(String facet, Collection<String> value, AjaxRequestTarget target) { 70 // A value has been selected on this facet's panel, 71 // update the model! 124 // A value has been selected on this facet's panel, update the model! 72 125 model.getObject().getSelection().selectValues(facet, value); 126 // collapse after selection 127 expansionStateModel.setObject(ExpansionState.COLLAPSED); 73 128 if (target != null) { 74 129 // reload entire page for now … … 90 145 // Update model 91 146 selection.selectValues(facet, newSelection); 147 // collapse after removal 148 expansionStateModel.setObject(ExpansionState.COLLAPSED); 92 149 if (target != null) { 93 150 // reload entire page for now -
vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/components/FacetValuesPanel.html
r4595 r4601 24 24 <body> 25 25 <wicket:panel> 26 <a href="#" class="expandfacet"><span>expand</span></a>27 <a href="#" class="collapsefacet"><span>collapse</span></a>28 26 <h1><a href="#"><wicket:container wicket:id="name">[TITLE]</wicket:container></a></h1> 29 27 <a href class="filtertoggle"><span>filter</span></a> -
vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/components/FacetsPanel.html
r4595 r4601 32 32 </p> 33 33 <wicket:container wicket:id="facets"> 34 <div class="facet collapsedfacet"wicket:id="facet">[facet]</div>34 <div wicket:id="facet">[facet]</div> 35 35 </wicket:container> 36 36 <!-- rounded corners - bottom **** --> -
vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/components/FacetsPanel.java
r4599 r4601 17 17 package eu.clarin.cmdi.vlo.wicket.components; 18 18 19 import eu.clarin.cmdi.vlo.pojo.ExpansionState; 19 20 import eu.clarin.cmdi.vlo.pojo.QueryFacetsSelection; 21 import eu.clarin.cmdi.vlo.wicket.model.FacetExpansionStateModel; 20 22 import eu.clarin.cmdi.vlo.wicket.model.FacetSelectionModel; 23 import java.util.HashMap; 21 24 import java.util.List; 25 import java.util.Map; 22 26 import org.apache.solr.client.solrj.response.FacetField; 23 27 import org.apache.wicket.ajax.AjaxRequestTarget; … … 26 30 import org.apache.wicket.markup.html.panel.Panel; 27 31 import org.apache.wicket.model.IModel; 32 import org.apache.wicket.model.util.MapModel; 28 33 29 34 /** … … 47 52 public FacetsPanel(final String id, final IModel<List<FacetField>> facetsModel, final IModel<QueryFacetsSelection> selectionModel) { 48 53 super(id, selectionModel); 49 54 55 final Map<String, ExpansionState> expansionStateMap = new HashMap<String, ExpansionState>(); 56 final MapModel<String, ExpansionState> expansionModel = new MapModel<String, ExpansionState>(expansionStateMap); 57 50 58 add(new ListView<FacetField>("facets", facetsModel) { 51 59 52 60 @Override 53 61 protected void populateItem(ListItem<FacetField> item) { 54 62 item.add( 55 new FacetPanel("facet", new FacetSelectionModel(item.getModel(), selectionModel)) { 56 63 new FacetPanel("facet", 64 new FacetSelectionModel(item.getModel(), selectionModel), 65 new FacetExpansionStateModel(item.getModel(), expansionModel)) { 66 57 67 @Override 58 68 protected void selectionChanged(AjaxRequestTarget target) { -
vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/components/SelectedFacetPanel.html
r4595 r4601 24 24 <body> 25 25 <wicket:panel> 26 <a href="#" class="expandfacet"><span>expand</span></a>27 <a href="#" class="collapsefacet"><span>collapse</span></a>28 26 <h1><a href="#"><wicket:container wicket:id="facet">[TITLE]</wicket:container></a></h1> 29 27 <div wicket:id="facetValueRemover" class="selectedvaluelabel"> … … 35 33 <div class="sbilinks facetvalues"> 36 34 <ul> 37 <li><span class="selectedfacetvalue"> Dutch</span><a class="unselectfacetvalue" title="unselect value" href="index2.html"><span>[unselect]</span></a></li>38 <li><span class="facetvalue">English</span></li>35 <li><span class="selectedfacetvalue">ITEM</span><a class="unselectfacetvalue" title="unselect value" href="index2.html"><span>[unselect]</span></a></li> 36 <!-- <li><span class="facetvalue">English</span></li> 39 37 <li><span class="facetvalue">German</span></li> 40 38 <li><span class="facetvalue">French</span></li> … … 43 41 <li><span class="facetvalue">Japanese</span></li> 44 42 <li><span class="facetvalue">Turkish</span></li> 45 <li><span class="facetvalue">Chinese</span></li> 43 <li><span class="facetvalue">Chinese</span></li>--> 46 44 <!--<li class="more-link"><a href="#">more...</a></li>--> 47 45 </ul> -
vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/pages/FacetedSearchPage.html
r4599 r4601 62 62 </div> 63 63 64 <div class=" facet collapsedfacettopbar" id="collections">64 <div class="topbar" id="collections"> 65 65 <div class="rtop"><div class="r1"></div><div class="r2"></div><div class="r3"></div><div class="r4"></div></div> 66 66 <div wicket:id="collectionsFacet">[COLLECTIONS]</div> -
vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/pages/FacetedSearchPage.java
r4599 r4601 2 2 3 3 import eu.clarin.cmdi.vlo.config.VloConfig; 4 import eu.clarin.cmdi.vlo.pojo.ExpansionState; 4 5 import eu.clarin.cmdi.vlo.wicket.components.FacetsPanel; 5 6 import eu.clarin.cmdi.vlo.pojo.QueryFacetsSelection; … … 63 64 final FacetFieldModel collectionFacetFieldModel = new FacetFieldModel(facetFieldsService, vloConfig.getCollectionFacet(), queryModel); 64 65 final FacetSelectionModel collectionSelectionModel = new FacetSelectionModel(collectionFacetFieldModel, queryModel); 65 final FacetPanel panel = new FacetPanel(id, collectionSelectionModel ) {66 final FacetPanel panel = new FacetPanel(id, collectionSelectionModel, new Model<ExpansionState>(ExpansionState.COLLAPSED)) { 66 67 67 68 @Override -
vlo/branches/vlo-3.0/vlo-web-app/src/main/webapp/js/vlo-facets.js
r4599 r4601 16 16 */ 17 17 18 function expandFacet(p) { 19 p.find(".facetvalues").show(200); 20 p.addClass("expandedfacet"); 21 p.removeClass("collapsedfacet"); 22 p.find(".filterform input").focus(); 23 } 24 25 function collapseFacet(p) { 26 p.find(".facetvalues").hide(200); 27 p.addClass("collapsedfacet"); 28 p.removeClass("expandedfacet"); 29 } 30 31 $(document).ready(function() { 32 /* facet collapse/expand */ 33 $("a.expandfacet, a#showvalues").click(function(event) { 34 event.preventDefault(); 35 var p = $(this).parents(".collapsedfacet"); 36 expandFacet(p); 37 }); 38 $("a.collapsefacet").click(function(event) { 39 event.preventDefault(); 40 var p = $(this).parents(".expandedfacet"); 41 collapseFacet(p); 42 }); 43 44 $(".facet h1 a").click(function(event) { 45 event.preventDefault(); 46 if ($(this).parents(".expandedfacet").length === 1) { 47 var p = $(this).parents(".expandedfacet"); 48 collapseFacet(p); 49 } else { 50 var p = $(this).parents(".collapsedfacet"); 51 expandFacet(p); 52 } 53 }); 54 55 /* facet filter */ 56 // $(".filterform").hide(); 18 //function expandFacet(p) { 19 // p.find(".facetvalues").show(200); 20 // p.addClass("expandedfacet"); 21 // p.removeClass("collapsedfacet"); 22 // p.find(".filterform input").focus(); 23 //} 57 24 // 58 // $("a.filtertoggle").click(function(event) { 59 // // toggle link clicked, show or hide filter box and focus on input 25 //function collapseFacet(p) { 26 // p.find(".facetvalues").hide(200); 27 // p.addClass("collapsedfacet"); 28 // p.removeClass("expandedfacet"); 29 //} 30 // 31 //$(document).ready(function() { 32 // /* facet collapse/expand */ 33 // $("a.expandfacet, a#showvalues").click(function(event) { 60 34 // event.preventDefault(); 61 // var form = $(this).parent(".facet").find(".filterform"); 62 // form.siblings(".facetvalues").find("li").show(); 63 // expandFacet($(this).parent(".collapsedfacet")); 64 // form.toggle(100, function(event) { 65 // var input = form.children("input"); 66 // input.val(''); 67 // input.focus(); 68 // }); 35 // var p = $(this).parents(".collapsedfacet"); 36 // expandFacet(p); 69 37 // }); 70 71 var filterHandler = function(event) { 72 // filter text entered, update result list 73 var links = $(this).parents(".filterform").siblings(".facetvalues").find("li"); 74 var match = $(this).val().toUpperCase(); 75 if (match.length === 0) { 76 links.show(); 77 } else { 78 // hide all results 79 links.hide(); 80 // show all matching results 81 links.filter(function(index) { 82 // case insensitive match 83 return links[index].textContent.toUpperCase().indexOf(match) >= 0; 84 }).show(); 85 } 86 }; 87 88 $(".filterform input").on('input', filterHandler); 89 90 /* Facet values popup */ 91 92 $(".more-link").click(function(event) { 93 event.preventDefault(); 94 $("#facetvalues").toggle(); 95 var name = $(this).parents(".facet").find("h1").text(); 96 $("#facetvalues h2").text(name); 97 $(window).scrollTop($('#facetvalues').position().top); 98 }); 99 100 $("#facetvalues a").click(function(event) { 101 event.preventDefault(); 102 $("#facetvalues").toggle(); 103 }); 104 }); 38 // $("a.collapsefacet").click(function(event) { 39 // event.preventDefault(); 40 // var p = $(this).parents(".expandedfacet"); 41 // collapseFacet(p); 42 // }); 43 // 44 // $(".facet h1 a").click(function(event) { 45 // event.preventDefault(); 46 // if ($(this).parents(".expandedfacet").length === 1) { 47 // var p = $(this).parents(".expandedfacet"); 48 // collapseFacet(p); 49 // } else { 50 // var p = $(this).parents(".collapsedfacet"); 51 // expandFacet(p); 52 // } 53 // }); 54 // 55 // /* facet filter */ 56 //// $(".filterform").hide(); 57 //// 58 //// $("a.filtertoggle").click(function(event) { 59 //// // toggle link clicked, show or hide filter box and focus on input 60 //// event.preventDefault(); 61 //// var form = $(this).parent(".facet").find(".filterform"); 62 //// form.siblings(".facetvalues").find("li").show(); 63 //// expandFacet($(this).parent(".collapsedfacet")); 64 //// form.toggle(100, function(event) { 65 //// var input = form.children("input"); 66 //// input.val(''); 67 //// input.focus(); 68 //// }); 69 //// }); 70 // 71 // var filterHandler = function(event) { 72 // // filter text entered, update result list 73 // var links = $(this).parents(".filterform").siblings(".facetvalues").find("li"); 74 // var match = $(this).val().toUpperCase(); 75 // if (match.length === 0) { 76 // links.show(); 77 // } else { 78 // // hide all results 79 // links.hide(); 80 // // show all matching results 81 // links.filter(function(index) { 82 // // case insensitive match 83 // return links[index].textContent.toUpperCase().indexOf(match) >= 0; 84 // }).show(); 85 // } 86 // }; 87 // 88 // $(".filterform input").on('input', filterHandler); 89 // 90 // /* Facet values popup */ 91 // 92 // $(".more-link").click(function(event) { 93 // event.preventDefault(); 94 // $("#facetvalues").toggle(); 95 // var name = $(this).parents(".facet").find("h1").text(); 96 // $("#facetvalues h2").text(name); 97 // $(window).scrollTop($('#facetvalues').position().top); 98 // }); 99 // 100 // $("#facetvalues a").click(function(event) { 101 // event.preventDefault(); 102 // $("#facetvalues").toggle(); 103 // }); 104 //});
Note: See TracChangeset
for help on using the changeset viewer.