Changeset 5473


Ignore:
Timestamp:
07/10/14 13:24:47 (10 years ago)
Author:
Twan Goosen
Message:

added config option that determines the maximum number of items in a search result to show the 'create virtual collection' option for (defaults to 1000 for now)

Location:
vlo/branches/vlo-3.1-vcr
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • vlo/branches/vlo-3.1-vcr/vlo-commons/src/main/java/eu/clarin/cmdi/vlo/config/VloConfig.java

    r5470 r5473  
    11package eu.clarin.cmdi.vlo.config;
    22
    3 import java.io.UnsupportedEncodingException;
    4 import java.net.URLEncoder;
    53import java.util.ArrayList;
    64import java.util.Collection;
     
    9795
    9896    private String vcrSubmitEndpoint;
     97   
     98    private Long vcrMaximumItemsCount = 0L;
     99   
    99100    /**
    100101     * A set of fields to be excluded from display<br><br>
     
    636637    public void setVcrSubmitEndpoint(String vcrSubmitEndpoint) {
    637638        this.vcrSubmitEndpoint = vcrSubmitEndpoint;
     639    }
     640
     641    public Long getVcrMaximumItemsCount() {
     642        return vcrMaximumItemsCount;
     643    }
     644
     645    public void setVcrMaximumItemsCount(Long vcrMaximumItemsCount) {
     646        this.vcrMaximumItemsCount = vcrMaximumItemsCount;
    638647    }
    639648
  • vlo/branches/vlo-3.1-vcr/vlo-commons/src/main/resources/VloConfig.xml

    r5470 r5473  
    150150    <cqlEndpointAlternative>http://cqlservlet.mpi.nl/</cqlEndpointAlternative>
    151151   
     152    <!-- Set to -1 to disable virtual collection creation from VLO -->
     153    <vcrMaximumItemsCount>1000</vcrMaximumItemsCount>
     154
    152155    <vcrSubmitEndpoint>http://catalog-clarin.esc.rzg.mpg.de/vcr/service/submit</vcrSubmitEndpoint>
     156
    153157</VloConfig>
  • vlo/branches/vlo-3.1-vcr/vlo-commons/src/test/java/eu/clarin/cmdi/vlo/config/DefaultVloConfigFactoryTest.java

    r5470 r5473  
    22
    33import java.io.File;
    4 import java.io.UnsupportedEncodingException;
    5 import java.net.URLEncoder;
    6 import java.util.ArrayList;
    74import java.util.Arrays;
    8 import java.util.HashSet;
    95import java.util.List;
    106import java.util.Set;
     
    939935        assertEquals(5, result.size());
    940936    }
    941    
    942     @Test
    943     public void testGetVcrSubmitEndpoint(){
     937
     938    @Test
     939    public void testGetVcrSubmitEndpoint() {
    944940        assertEquals("http://catalog-clarin.esc.rzg.mpg.de/vcr/service/submit", config.getVcrSubmitEndpoint());
    945941    }
     942
     943    @Test
     944    public void testGetVcrMaximumItemsCount() {
     945        assertEquals(Long.valueOf(1000), config.getVcrMaximumItemsCount());
     946    }
    946947}
  • vlo/branches/vlo-3.1-vcr/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/pages/FacetedSearchPage.java

    r5205 r5473  
    1515import eu.clarin.cmdi.vlo.wicket.panels.TopLinksPanel;
    1616import eu.clarin.cmdi.vlo.wicket.panels.search.AdvancedSearchOptionsPanel;
     17import eu.clarin.cmdi.vlo.wicket.provider.SolrDocumentProvider;
    1718import java.util.List;
    1819import org.apache.solr.client.solrj.response.FacetField;
     20import org.apache.solr.common.SolrDocument;
    1921import org.apache.wicket.Component;
    2022import org.apache.wicket.ajax.AjaxRequestTarget;
     
    2224import org.apache.wicket.request.mapper.parameter.PageParameters;
    2325import org.apache.wicket.markup.html.panel.Panel;
     26import org.apache.wicket.markup.repeater.data.IDataProvider;
    2427import org.apache.wicket.model.IModel;
    2528import org.apache.wicket.model.Model;
     
    4245    private PageParametersConverter<QueryFacetsSelection> paramsConverter;
    4346
     47    private IDataProvider<SolrDocument> documentsProvider;
    4448    private SearchResultsPanel searchResultsPanel;
    4549    private Component facetsPanel;
    4650    private Component collectionsPanel;
    4751    private Component navigation;
     52    private Component optionsPanel;
    4853
    4954    public FacetedSearchPage(IModel<QueryFacetsSelection> queryModel) {
     
    6267
    6368    private void addComponents() {
     69        documentsProvider = new SolrDocumentProvider(getModel());
     70
    6471        navigation = createNavigation("navigation");
    6572        add(navigation);
     
    7380        add(facetsPanel);
    7481
    75         Panel optionsPanel = createOptionsPanel("options");
     82        optionsPanel = createOptionsPanel("options");
    7683        add(optionsPanel);
    7784
    78         searchResultsPanel = new SearchResultsPanel("searchResults", getModel());
     85        searchResultsPanel = new SearchResultsPanel("searchResults", getModel(), documentsProvider);
    7986        add(searchResultsPanel);
    8087    }
     
    105112    }
    106113
    107     private Panel createOptionsPanel(String id) {
    108         final Panel optionsPanel = new AdvancedSearchOptionsPanel(id, getModel()) {
     114    private Component createOptionsPanel(String id) {
     115        final Panel panel = new AdvancedSearchOptionsPanel(id, getModel(), documentsProvider) {
    109116
    110117            @Override
     
    113120            }
    114121        };
    115         return optionsPanel;
     122        return panel.setOutputMarkupId(true);
    116123    }
    117124
     
    174181            target.add(facetsPanel);
    175182            target.add(collectionsPanel);
     183            target.add(optionsPanel);
    176184        }
    177185    }
  • vlo/branches/vlo-3.1-vcr/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/pages/VirtualCollectionSubmissionPage.java

    r5471 r5473  
    3535import org.apache.wicket.markup.repeater.Item;
    3636import org.apache.wicket.markup.repeater.data.DataView;
     37import org.apache.wicket.markup.repeater.data.IDataProvider;
    3738import org.apache.wicket.model.AbstractReadOnlyModel;
    3839import org.apache.wicket.model.IModel;
     
    5051    @SpringBean
    5152    private VloConfig vloConfig;
    52     private final SolrDocumentProvider documentProvider;
     53    private final IDataProvider<SolrDocument> documentProvider;
    5354
    54     public VirtualCollectionSubmissionPage(IModel<QueryFacetsSelection> model) {
     55    public VirtualCollectionSubmissionPage(IModel<QueryFacetsSelection> model, IDataProvider<SolrDocument> documentProvider) {
    5556        super(model);
    56         this.documentProvider = new SolrDocumentProvider(getModel());
     57        this.documentProvider = documentProvider;
    5758
    5859        // add a label with the number of URI's for the description
  • vlo/branches/vlo-3.1-vcr/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/search/AdvancedSearchOptionsPanel.java

    r5464 r5473  
    1818
    1919import eu.clarin.cmdi.vlo.FacetConstants;
     20import eu.clarin.cmdi.vlo.config.VloConfig;
    2021import eu.clarin.cmdi.vlo.pojo.ExpansionState;
    2122import eu.clarin.cmdi.vlo.pojo.FacetSelection;
     
    2627import eu.clarin.cmdi.vlo.wicket.pages.VirtualCollectionSubmissionPage;
    2728import eu.clarin.cmdi.vlo.wicket.panels.ExpandablePanel;
     29import org.apache.solr.common.SolrDocument;
    2830import org.apache.wicket.ajax.AjaxRequestTarget;
    2931import org.apache.wicket.ajax.form.OnChangeAjaxBehavior;
     
    3234import org.apache.wicket.markup.html.form.Form;
    3335import org.apache.wicket.markup.html.link.Link;
     36import org.apache.wicket.markup.repeater.data.IDataProvider;
    3437import org.apache.wicket.model.IModel;
     38import org.apache.wicket.spring.injection.annot.SpringBean;
    3539
    3640/**
     
    4549public abstract class AdvancedSearchOptionsPanel extends ExpandablePanel<QueryFacetsSelection> {
    4650
    47     public AdvancedSearchOptionsPanel(String id, final IModel<QueryFacetsSelection> model) {
     51    @SpringBean
     52    private VloConfig vloConfig;
     53
     54    private final IDataProvider<SolrDocument> documentProvider;
     55
     56    /**
     57     *
     58     * @param id component id
     59     * @param model model of current search query
     60     * @param documentProvider provider for looking up number of search results
     61     */
     62    public AdvancedSearchOptionsPanel(String id, final IModel<QueryFacetsSelection> model, final IDataProvider<SolrDocument> documentProvider) {
    4863        super(id, model);
     64        this.documentProvider = documentProvider;
    4965
    5066        // create a model for the selection state for the FCS facet
     
    6884
    6985            @Override
     86            protected void onConfigure() {
     87                // hide if there are no documents to create collection from
     88                // or number of items is too high (according to configuration)
     89                final long documentCount = documentProvider.size();
     90                setVisible(documentCount > 0 && documentCount <= vloConfig.getVcrMaximumItemsCount());
     91            }
     92
     93            @Override
    7094            public void onClick() {
    71                 setResponsePage(new VirtualCollectionSubmissionPage(model));
     95                setResponsePage(new VirtualCollectionSubmissionPage(model, documentProvider));
    7296            }
    7397        });
     
    84108    }
    85109
     110    @Override
     111    public void detachModels() {
     112        super.detachModels();
     113        documentProvider.detach();
     114    }
     115
    86116    protected abstract void selectionChanged(AjaxRequestTarget target);
    87117
  • vlo/branches/vlo-3.1-vcr/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/search/SearchResultsPanel.java

    r5353 r5473  
    2020import eu.clarin.cmdi.vlo.wicket.model.SearchContextModel;
    2121import eu.clarin.cmdi.vlo.wicket.model.SearchResultExpansionStateModel;
    22 import eu.clarin.cmdi.vlo.wicket.provider.SolrDocumentProvider;
    2322import java.util.Arrays;
    2423import java.util.HashSet;
     
    4140import org.apache.wicket.model.Model;
    4241import org.apache.wicket.model.PropertyModel;
    43 import org.apache.wicket.model.StringResourceModel;
    4442
    4543/**
     
    5654    private final IModel<Set<Object>> expansionsModel;
    5755   
    58     public SearchResultsPanel(String id, final IModel<QueryFacetsSelection> selectionModel) {
     56    public SearchResultsPanel(String id, final IModel<QueryFacetsSelection> selectionModel, IDataProvider<SolrDocument> solrDocumentProvider) {
    5957        super(id, selectionModel);
     58        this.solrDocumentProvider = solrDocumentProvider;
     59       
    6060        add(new Label("title", new SearchResultsTitleModel(selectionModel)));
    61 
    62         solrDocumentProvider = new SolrDocumentProvider(selectionModel);
    6361
    6462        expansionsModel = new Model(new HashSet<Object>());
     
    165163    }
    166164
     165    @Override
     166    public void detachModels() {
     167        super.detachModels();
     168        solrDocumentProvider.detach();
     169    } 
     170
    167171    private static class SearchResultsTitleModel extends AbstractReadOnlyModel<String> {
    168172
Note: See TracChangeset for help on using the changeset viewer.