Ignore:
Timestamp:
02/27/14 15:14:16 (10 years ago)
Author:
twagoo
Message:

refactored construction of facet panels, both in facets panel and single collections facet panel

File:
1 edited

Legend:

Unmodified
Added
Removed
  • vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/components/FacetsPanel.java

    r4579 r4582  
    1717package eu.clarin.cmdi.vlo.wicket.components;
    1818
    19 import eu.clarin.cmdi.vlo.config.VloSpringConfig;
    2019import eu.clarin.cmdi.vlo.pojo.QueryFacetsSelection;
    2120import eu.clarin.cmdi.vlo.service.FacetFieldsService;
    22 import eu.clarin.cmdi.vlo.wicket.provider.FacetFieldsDataProvider;
    23 import java.util.Collection;
     21import eu.clarin.cmdi.vlo.wicket.model.FacetSelectionModel;
     22import java.util.List;
    2423import org.apache.solr.client.solrj.response.FacetField;
     24import org.apache.wicket.markup.html.list.ListItem;
     25import org.apache.wicket.markup.html.list.ListView;
    2526import org.apache.wicket.markup.html.panel.Panel;
    26 import org.apache.wicket.markup.repeater.Item;
    27 import org.apache.wicket.markup.repeater.data.DataView;
    2827import org.apache.wicket.model.IModel;
    29 import org.apache.wicket.spring.injection.annot.SpringBean;
    3028
    3129/**
     
    4038 * @author twagoo
    4139 */
    42 public class FacetsPanel extends AbstractFacetsPanel {
     40public class FacetsPanel extends Panel {
    4341
    44     @SpringBean(name = VloSpringConfig.FACETS_PANEL_SERVICE)
    45     private FacetFieldsService facetFieldsService;
     42    public FacetsPanel(final String id, final IModel<List<FacetField>> facetsModel, final IModel<QueryFacetsSelection> selectionModel) {
     43        super(id, selectionModel);
    4644
    47     public FacetsPanel(final String id, IModel<QueryFacetsSelection> model) {
    48         super(id, model);
    49 
    50         add(new DataView<FacetField>("facets", new FacetFieldsDataProvider(facetFieldsService, model)) {
     45        add(new ListView<FacetField>("facets", facetsModel) {
    5146
    5247            @Override
    53             protected void populateItem(Item<FacetField> item) {
    54                 item.add(createFacetPanel("facet", item.getModel()));
     48            protected void populateItem(ListItem<FacetField> item) {
     49                item.add(
     50                        new FacetPanel("facet", new FacetSelectionModel(item.getModel(), selectionModel))
     51                );
    5552            }
    5653        });
    5754    }
    58 
    59     private Panel createFacetPanel(String id, IModel<FacetField> facetFieldModel) {
    60         // Is there a selection for this facet?
    61         final String facetName = facetFieldModel.getObject().getName();
    62         final Collection<String> selectionValues = model.getObject().getSelectionValues(facetName);
    63         // Show different panel, depending on selected values
    64         if (selectionValues == null || selectionValues.isEmpty()) {
    65             // No values selected, show value selection panel
    66             return createFacetValuesPanel(id, facetFieldModel);
    67         } else {
    68             // Values selected, show selected values panel (with option to remove)
    69             return createSelectedFacetPanel(id, facetName);
    70         }
    71     }
    7255}
Note: See TracChangeset for help on using the changeset viewer.