Changeset 6315


Ignore:
Timestamp:
06/22/15 09:39:44 (9 years ago)
Author:
Twan Goosen
Message:

Added filter for selecting collections only
Refs #382

Location:
vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/service/impl/QueryFacetsSelectionParametersConverter.java

    r6023 r6315  
    2727import eu.clarin.cmdi.vlo.service.FacetParameterMapper;
    2828import eu.clarin.cmdi.vlo.service.PageParametersConverter;
     29import eu.clarin.cmdi.vlo.wicket.panels.search.AdvancedSearchOptionsPanel;
     30import static eu.clarin.cmdi.vlo.wicket.panels.search.AdvancedSearchOptionsPanel.OPTIONS_FIELDS;
    2931import java.util.Arrays;
    3032import java.util.HashMap;
     
    5355    public final static Splitter FILTER_SPLITTER = Splitter.on(":").limit(2);
    5456
     57    /**
     58     * Fields that aren't true facets but can be queried by the user via the
     59     * {@link AdvancedSearchOptionsPanel}
     60     */
    5561    private final Set<String> facetsDefined;
    5662    private final FacetParameterMapper facetParamMapper;
     
    9399                    final String type = fqType.get(1).toUpperCase();
    94100
    95                     if (facetsDefined.contains(facet)) {
     101                    if (facetsDefined.contains(facet) || OPTIONS_FIELDS.contains(facet)) {
    96102                        try {
    97103                            final FacetSelectionType facetSelectionType = FacetSelectionType.valueOf(type);
  • vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/service/solr/impl/AbstractSolrQueryFactory.java

    r6284 r6315  
    5252                        case NOT_EMPTY:
    5353                            //TODO: test
    54                             encodedQueries.add(String.format("%s:['' TO *]", facetName));
     54                            encodedQueries.add(String.format("%s:[* TO *]", facetName));
    5555                            break;
    5656                        case AND:
  • vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/BreadCrumbPanel.java

    r6228 r6315  
    208208
    209209        private String getAnyValueString() {
    210             if (FacetConstants.FIELD_SEARCH_SERVICE.equals(facet)) {
    211                 return "Content searchable";
    212             }
    213             return "any " + facet;
     210            if (null != facet) {
     211                switch (facet) {
     212                    case FacetConstants.FIELD_SEARCH_SERVICE:
     213                        return "Content searchable"; //TODO: make string property
     214                    case FacetConstants.FIELD_HAS_PART_COUNT:
     215                        return "Collection records"; //TODO: make string property
     216                    default:
     217                        return "any " + facet;
     218                }
     219            }
     220            return "";
    214221        }
    215222
  • vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/search/AdvancedSearchOptionsPanel.html

    r4976 r6315  
    3131                            <label for="onlyfcs">Only include resources that support content search</label>
    3232                        </li>
    33                         <!--                           
    3433                        <li>
    35                             <input type="checkbox" id="onlymdformat"/>
    36                             <label for="onlyfcs">Only include resources described with</label>
    37                             <select>
    38                                 <option>CMDI</option>
    39                                 <option>OLAC</option>
    40                             </select>
     34                            <input wicket:id="collection" type="checkbox" id="onlycollections"/>
     35                            <label for="onlycollections">Only include collection resources</label>
    4136                        </li>
    42                         -->
    4337                    </ul>
    4438                    <input type="submit" value="Apply" class="nonjsfallback" />
  • vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/search/AdvancedSearchOptionsPanel.java

    r5023 r6315  
    1717package eu.clarin.cmdi.vlo.wicket.panels.search;
    1818
     19import com.google.common.collect.ImmutableSet;
    1920import eu.clarin.cmdi.vlo.FacetConstants;
    2021import eu.clarin.cmdi.vlo.pojo.ExpansionState;
     
    2526import eu.clarin.cmdi.vlo.wicket.model.ToggleModel;
    2627import eu.clarin.cmdi.vlo.wicket.panels.ExpandablePanel;
     28import java.util.Collection;
    2729import org.apache.wicket.ajax.AjaxRequestTarget;
    2830import org.apache.wicket.ajax.form.OnChangeAjaxBehavior;
     
    4345public abstract class AdvancedSearchOptionsPanel extends ExpandablePanel<QueryFacetsSelection> {
    4446
     47    /**
     48     * The fields that this panel provides options for
     49     */
     50    public final static Collection<String> OPTIONS_FIELDS = ImmutableSet.of(
     51            FacetConstants.FIELD_HAS_PART_COUNT,
     52            FacetConstants.FIELD_SEARCH_SERVICE);
     53
    4554    public AdvancedSearchOptionsPanel(String id, IModel<QueryFacetsSelection> model) {
    4655        super(id, model);
     56        final Form options = new Form("options");
    4757
    48         // create a model for the selection state for the FCS facet
    49         final IModel<FacetSelection> fcsFacetModel = new FacetSelectionModel(model, FacetConstants.FIELD_SEARCH_SERVICE);
     58        final CheckBox fcsCheck = createFieldNotEmptyOption("fcs", FacetConstants.FIELD_SEARCH_SERVICE);
     59        options.add(fcsCheck);
     60        final CheckBox collectionCheck = createFieldNotEmptyOption("collection", FacetConstants.FIELD_HAS_PART_COUNT);
     61        options.add(collectionCheck);
     62        add(options);
     63    }
     64
     65    private CheckBox createFieldNotEmptyOption(String id, String fieldName) {
     66        // create a model for the selection state of the facet
     67        final IModel<FacetSelection> facetModel = new FacetSelectionModel(getModel(), fieldName);
    5068        // wrap in a toggle model that allows switching between a null selection and a 'not empty' selection
    51         final ToggleModel<FacetSelection> toggleModel = new ToggleModel<FacetSelection>(fcsFacetModel, null, new FacetSelection(FacetSelectionType.NOT_EMPTY));
     69        final ToggleModel<FacetSelection> toggleModel = new ToggleModel<>(facetModel, null, new FacetSelection(FacetSelectionType.NOT_EMPTY));
    5270
    53         final Form options = new Form("options");
    54         final CheckBox fcsCheck = new CheckBox("fcs", toggleModel);
    55         fcsCheck.add(new OnChangeAjaxBehavior() {
     71        final CheckBox checkBox = new CheckBox(id, toggleModel);
     72        checkBox.add(new OnChangeAjaxBehavior() {
    5673
    5774            @Override
     
    6077            }
    6178        });
    62         options.add(fcsCheck);
    63         add(options);
    64 
    6579        // should initially be epxanded if one of the options was selected
    6680        if (toggleModel.getObject()) {
    6781            getExpansionModel().setObject(ExpansionState.EXPANDED);
    6882        }
     83        return checkBox;
    6984    }
    7085
Note: See TracChangeset for help on using the changeset viewer.