Changeset 5995


Ignore:
Timestamp:
02/19/15 09:36:41 (9 years ago)
Author:
Twan Goosen
Message:

Stripping of language prefix in descriptions
Refs #699

Location:
vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/model/SolrFieldStringModel.java

    r4996 r5995  
    1717package eu.clarin.cmdi.vlo.wicket.model;
    1818
     19import eu.clarin.cmdi.vlo.FacetConstants;
    1920import java.util.Collection;
    2021import java.util.Iterator;
     
    2526/**
    2627 * Model that provides field values as String values for a given field values
    27  * model, both for singular values and multiple values (imploding the
    28  * latter into a single string)
     28 * model, both for singular values and multiple values (imploding the latter
     29 * into a single string)
    2930 *
    3031 * @author twagoo
     
    3334
    3435    private final IModel<Collection<Object>> fieldModel;
     36    private final String field;
    3537
    3638    /**
     
    4244     */
    4345    public SolrFieldStringModel(IModel<SolrDocument> documentModel, String fieldName) {
    44         this(new SolrFieldModel<Object>(documentModel, fieldName));
    45     }
    46 
    47     /**
    48      *
    49      * @param fieldModel model that provides field values as a collection
    50      */
    51     public SolrFieldStringModel(IModel<Collection<Object>> fieldModel) {
    52         this.fieldModel = fieldModel;
     46        fieldModel = new SolrFieldModel<Object>(documentModel, fieldName);
     47        field = fieldName;
    5348    }
    5449
     
    6560        final Iterator<Object> iterator = fieldValues.iterator();
    6661        if (iterator.hasNext()) {
    67             final String firstValue = iterator.next().toString();
     62            final String firstValue = postprocessValue(iterator.next().toString());
    6863            if (iterator.hasNext()) {
    6964                return getMultipleValuesString(firstValue, iterator);
     
    9388    }
    9489
     90    private String postprocessValue(String value) {
     91        if (value != null) {
     92            if (FacetConstants.FIELD_DESCRIPTION.equals(field)) {
     93                //remove language prefix
     94                return value.replaceAll(FacetConstants.DESCRIPTION_LANGUAGE_PATTERN, "");
     95            }
     96        }
     97        return value;
     98    }
     99
    95100}
  • vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/record/FieldsTablePanel.java

    r5268 r5995  
    2424import eu.clarin.cmdi.vlo.pojo.QueryFacetsSelection;
    2525import eu.clarin.cmdi.vlo.service.PageParametersConverter;
     26import eu.clarin.cmdi.vlo.wicket.model.DescriptionFieldModel;
    2627import eu.clarin.cmdi.vlo.wicket.model.HandleLinkModel;
    2728import eu.clarin.cmdi.vlo.wicket.model.SolrFieldNameModel;
     
    116117    }
    117118
    118     private Label createValueLabel(String id, final IModel<String> facetNameModel, final IModel<String> valueModel) {
     119    private Label createValueLabel(String id, final IModel<String> facetNameModel, final IModel<String> originalValueModel) {
    119120        final String fieldName = facetNameModel.getObject();
     121       
     122        // allow for postprocessing or wrapping of the value model depending on the field
     123        final IModel<String> valueModel = getValueModel(facetNameModel, originalValueModel);
     124       
    120125        if (SMART_LINK_FIELDS.contains(fieldName)) {
    121126            // create label that generates links
     
    124129            // add a label for the facet value
    125130            final Label fieldLabel = new Label(id, valueModel);
     131           
    126132            // some selected fields may have HTML that needs to be preserved...
    127133            fieldLabel.setEscapeModelStrings(!UNESCAPED_VALUE_FIELDS.contains(fieldName));
     
    155161    }
    156162
     163    private IModel<String> getValueModel(IModel<String> facetNameModel, IModel<String> valueModel) {
     164        if (FacetConstants.FIELD_DESCRIPTION.equals(facetNameModel.getObject())) {
     165            //wrap in model that removes the language prefix
     166            return new DescriptionFieldModel(valueModel);
     167        }
     168        return valueModel;
     169    }
     170
    157171}
Note: See TracChangeset for help on using the changeset viewer.