Changeset 6480


Ignore:
Timestamp:
08/19/15 11:31:02 (9 years ago)
Author:
davor.ostojic@oeaw.ac.at
Message:

Model of FacetsPanel? is replaced with FacetNamesModel?
components in FacetPanel? are rendered only if state is expanded and smth is selected -> reduces number of SOLR requests

Location:
vlo/branches/vlo-3.3-oeaw/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket
Files:
1 added
3 edited

Legend:

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

    r6350 r6480  
    11package eu.clarin.cmdi.vlo.wicket.pages;
    22
    3 import eu.clarin.cmdi.vlo.wicket.model.PermaLinkModel;
    4 import eu.clarin.cmdi.vlo.wicket.panels.SingleFacetPanel;
    5 import eu.clarin.cmdi.vlo.config.VloConfig;
    6 import eu.clarin.cmdi.vlo.wicket.panels.search.FacetsPanel;
    7 import eu.clarin.cmdi.vlo.pojo.QueryFacetsSelection;
    8 import eu.clarin.cmdi.vlo.service.PageParametersConverter;
    9 import eu.clarin.cmdi.vlo.service.solr.FacetFieldsService;
    10 import eu.clarin.cmdi.vlo.wicket.panels.search.FacetPanel;
    11 import eu.clarin.cmdi.vlo.wicket.panels.search.SearchFormPanel;
    12 import eu.clarin.cmdi.vlo.wicket.panels.search.SearchResultsPanel;
    13 import eu.clarin.cmdi.vlo.wicket.model.FacetFieldsModel;
    14 import eu.clarin.cmdi.vlo.wicket.panels.BreadCrumbPanel;
    15 import eu.clarin.cmdi.vlo.wicket.panels.search.FacetValuesPanel;
    16 import eu.clarin.cmdi.vlo.wicket.panels.TopLinksPanel;
    17 import eu.clarin.cmdi.vlo.wicket.panels.search.AdvancedSearchOptionsPanel;
    183import java.util.List;
     4
    195import org.apache.solr.client.solrj.response.FacetField;
    206import org.apache.wicket.Component;
    217import org.apache.wicket.ajax.AjaxRequestTarget;
    228import org.apache.wicket.markup.html.WebMarkupContainer;
    23 import org.apache.wicket.request.mapper.parameter.PageParameters;
    249import org.apache.wicket.markup.html.panel.Panel;
    2510import org.apache.wicket.model.IModel;
    2611import org.apache.wicket.model.Model;
     12import org.apache.wicket.request.mapper.parameter.PageParameters;
    2713import org.apache.wicket.spring.injection.annot.SpringBean;
     14
     15import eu.clarin.cmdi.vlo.config.VloConfig;
     16import eu.clarin.cmdi.vlo.pojo.QueryFacetsSelection;
     17import eu.clarin.cmdi.vlo.service.PageParametersConverter;
     18import eu.clarin.cmdi.vlo.service.solr.FacetFieldsService;
     19import eu.clarin.cmdi.vlo.wicket.model.FacetFieldsModel;
     20import eu.clarin.cmdi.vlo.wicket.model.FacetNamesModel;
     21import eu.clarin.cmdi.vlo.wicket.model.PermaLinkModel;
     22import eu.clarin.cmdi.vlo.wicket.panels.BreadCrumbPanel;
     23import eu.clarin.cmdi.vlo.wicket.panels.SingleFacetPanel;
     24import eu.clarin.cmdi.vlo.wicket.panels.TopLinksPanel;
     25import eu.clarin.cmdi.vlo.wicket.panels.search.AdvancedSearchOptionsPanel;
     26import eu.clarin.cmdi.vlo.wicket.panels.search.FacetPanel;
     27import eu.clarin.cmdi.vlo.wicket.panels.search.FacetValuesPanel;
     28import eu.clarin.cmdi.vlo.wicket.panels.search.FacetsPanel;
     29import eu.clarin.cmdi.vlo.wicket.panels.search.SearchFormPanel;
     30import eu.clarin.cmdi.vlo.wicket.panels.search.SearchResultsPanel;
    2831
    2932/**
     
    160163        final IModel<QueryFacetsSelection> queryModel = getModel();
    161164        final IModel<List<FacetField>> facetFieldsModel = new FacetFieldsModel(facetFieldsService, vloConfig.getFacetFields(), queryModel, FacetValuesPanel.MAX_NUMBER_OF_FACETS_TO_SHOW);
    162         final FacetsPanel panel = new FacetsPanel(id, facetFieldsModel, queryModel) {
     165        final IModel<List<String>> facetNamesModel = new FacetNamesModel(vloConfig.getFacetFields());
     166        final FacetsPanel panel = new FacetsPanel(id, facetNamesModel, facetFieldsModel, queryModel) {
    163167
    164168            @Override
  • vlo/branches/vlo-3.3-oeaw/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/search/FacetPanel.java

    r6478 r6480  
    7878
    7979        final boolean valuesSelected = !getModelObject().getFacetValues().isEmpty();
    80         facetValuesPanel.setVisible(true);
     80       
    8181        selectedFacetPanel.setVisible(valuesSelected);
     82       
     83        facetValuesPanel.setVisible((!valuesSelected && expansionModel.getObject() == ExpansionState.COLLAPSED)? false : true);       
    8284
    8385        // hide this entire panel is no values are selectable
     
    8587    }
    8688   
    87     @Override
    88     protected void onBeforeRender() {
    89         final boolean valuesSelected = !getModelObject().getFacetValues().isEmpty();
    90         if(!valuesSelected && expansionModel.getObject() == ExpansionState.COLLAPSED){
    91                  facetValuesPanel.setVisible(false);
    92              selectedFacetPanel.setVisible(false);
    93         }
    94        
    95         super.onBeforeRender();
    96     }
    9789
    9890    /**
  • vlo/branches/vlo-3.3-oeaw/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/search/FacetsPanel.java

    r6350 r6480  
    5050 * @author twagoo
    5151 */
    52 public abstract class FacetsPanel extends GenericPanel<List<FacetField>> {
     52public abstract class FacetsPanel extends GenericPanel<List<String>> {
    5353
    5454    @SpringBean
     
    6464     * selection state
    6565     */
    66     public FacetsPanel(final String id, final IModel<List<FacetField>> facetsModel, final IModel<QueryFacetsSelection> selectionModel) {
    67         super(id, facetsModel);
     66    public FacetsPanel(final String id, final IModel<List<String>> facetNamesModel, final IModel<List<FacetField>> facetsModel, final IModel<QueryFacetsSelection> selectionModel) {
     67        super(id, facetNamesModel);
    6868
    6969        final Map<String, ExpansionState> expansionStateMap = new HashMap<String, ExpansionState>();
     
    140140    private void setAllFacetsExpansionState(final ExpansionState state) {
    141141        final Map<String, ExpansionState> expansionMap = expansionModel.getObject();
    142         for (FacetField facet : getModelObject()) {
    143             expansionMap.put(facet.getName(), state);
     142        for (String facetName : getModelObject()) {
     143            expansionMap.put(facetName, state);
    144144        }
    145145    }
Note: See TracChangeset for help on using the changeset viewer.