Changeset 4526
- Timestamp:
- 02/17/14 14:33:27 (10 years ago)
- Location:
- vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/pojo/QueryFacetsSelection.java
r4520 r4526 91 91 return queryString; 92 92 } 93 94 public void selectValues(String facet, Collection<String> values){ 95 selection.put(facet, values); 96 } 93 97 94 98 } -
vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/components/FacetPanel.java
r4522 r4526 18 18 19 19 import eu.clarin.cmdi.vlo.wicket.provider.FacetFieldValuesProvider; 20 import java.util.Collection; 21 import java.util.Collections; 20 22 import org.apache.solr.client.solrj.response.FacetField; 21 23 import org.apache.solr.client.solrj.response.FacetField.Count; 24 import org.apache.wicket.ajax.AjaxRequestTarget; 25 import org.apache.wicket.ajax.markup.html.AjaxFallbackLink; 22 26 import org.apache.wicket.markup.html.basic.Label; 23 27 import org.apache.wicket.markup.html.link.Link; … … 33 37 * @author twagoo 34 38 */ 35 public class FacetPanel extends Panel {39 public abstract class FacetPanel extends Panel { 36 40 37 41 private final int maxNumberOfFacetsToShow = 10; //TODO: get from config 38 42 39 43 public FacetPanel(String id, IModel<FacetField> model) { 40 44 super(id, model); … … 43 47 // 'name' field from FacetField 44 48 add(new Label("name")); 45 49 46 50 // provider that extracts values and counts from FacetField 47 51 final FacetFieldValuesProvider valuesProvider = new FacetFieldValuesProvider(model, maxNumberOfFacetsToShow); … … 49 53 50 54 @Override 51 protected void populateItem( Item<Count> item) {55 protected void populateItem(final Item<Count> item) { 52 56 item.setDefaultModel(new CompoundPropertyModel<Count>(item.getModel())); 53 final Link selectLink = new Link("facetSelect") {54 57 final Link selectLink = new AjaxFallbackLink("facetSelect") { 58 55 59 @Override 56 public void onClick() { 57 //TODO: select facet 58 throw new UnsupportedOperationException("Not supported yet."); 60 public void onClick(AjaxRequestTarget target) { 61 FacetPanel.this.onValuesSelected( 62 item.getModelObject().getFacetField().getName(), 63 Collections.singleton(item.getModelObject().getName()), 64 target); 59 65 } 60 66 }; … … 68 74 } 69 75 76 /** 77 * Callback triggered when values have been selected on this facet 78 * 79 * @param facet name of the facet this panel represents 80 * @param values selected values 81 * @param target Ajax target allowing for a partial update. May be null 82 * (fallback)! 83 */ 84 public abstract void onValuesSelected(String facet, Collection<String> values, AjaxRequestTarget target); 85 70 86 } -
vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/components/FacetsPanel.java
r4522 r4526 20 20 import eu.clarin.cmdi.vlo.service.FacetFieldsService; 21 21 import eu.clarin.cmdi.vlo.wicket.provider.FacetFieldsDataProvider; 22 import java.util.Collection; 22 23 import org.apache.solr.client.solrj.response.FacetField; 24 import org.apache.wicket.ajax.AjaxRequestTarget; 23 25 import org.apache.wicket.markup.html.panel.Panel; 24 26 import org.apache.wicket.markup.repeater.Item; … … 37 39 private FacetFieldsService facetFieldsService; 38 40 39 public FacetsPanel( String id,IModel<QueryFacetsSelection> model) {41 public FacetsPanel(final String id, final IModel<QueryFacetsSelection> model) { 40 42 super(id, model); 41 add(new FacetsDataView("facets", model)); 43 44 add(new DataView<FacetField>("facets", new FacetFieldsDataProvider(facetFieldsService, model)) { 45 46 @Override 47 protected void populateItem(Item<FacetField> item) { 48 item.add(new FacetPanel("facet", item.getModel()) { 49 50 @Override 51 public void onValuesSelected(String facet, Collection<String> value, AjaxRequestTarget target) { 52 // A value has been selected on this facet's panel, 53 // update the model! 54 model.getObject().selectValues(facet, value); 55 56 // Trigger updates to reflect new model state 57 modelChanged(); 58 59 if (target != null) { 60 // reload entire page for now 61 target.add(getPage()); 62 } 63 } 64 }); 65 } 66 }); 42 67 } 43 68 44 private class FacetsDataView extends DataView<FacetField> {45 46 public FacetsDataView(String id, IModel<QueryFacetsSelection> model) {47 super(id, new FacetFieldsDataProvider(facetFieldsService, model));48 }49 50 @Override51 protected void populateItem(Item<FacetField> item) {52 item.add(new FacetPanel("facet", item.getModel()));53 }54 }55 69 }
Note: See TracChangeset
for help on using the changeset viewer.