Changeset 6048
- Timestamp:
- 02/25/15 08:34:16 (9 years ago)
- Location:
- vlo/branches/vlo-3.1
- Files:
-
- 1 deleted
- 12 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
vlo/branches/vlo-3.1
- Property svn:mergeinfo changed
/vlo/trunk merged: 6045-6047
- Property svn:mergeinfo changed
-
vlo/branches/vlo-3.1/CHANGES
r6041 r6048 6 6 * More fields get indexed for the autocomplete/suggestion function in the search box 7 7 <https://trac.clarin.eu/ticket/624> 8 * Fixed an issue with resolving resource handles 9 <https://trac.clarin.eu/ticket/666> 8 10 * Mapping improvements: 9 11 * Fallback to fields defined by pattern (path) if no value is found in a field with a matching concept link -
vlo/branches/vlo-3.1/UPGRADE
- Property svn:mergeinfo changed
/vlo/trunk/UPGRADE merged: 6032,6047
r6017 r6048 28 28 * Update the external service running at <http://infra.clarin.eu/service/language/ 29 29 info.php> to select the 'languageCode' facet using ISO639-3 language codes, e.g. 30 <http://catalog.clarin.eu/vlo/search?fq=languageCode:code:nep> for 'nep'. 30 <http://catalog.clarin.eu/vlo/search?fq=languageCode:code:nep> for 'nep'. Contact 31 Sander Maijers <sander@clarin.eu> for more information. 31 32 32 33 --------------------------- - Property svn:mergeinfo changed
-
vlo/branches/vlo-3.1/vlo-commons/src/main/java/eu/clarin/cmdi/vlo/FacetConstants.java
r6031 r6048 43 43 */ 44 44 public static final String FIELD_SEARCHPAGE = "_searchPageRef"; 45 45 46 46 //Deprecated fields 47 47 public static final String DEPRECATED_FIELD_LANGUAGE = "language"; … … 71 71 */ 72 72 public static final String DESCRIPTION_LANGUAGE_PATTERN = "^\\{lang='([a-z]{3})'\\}"; 73 74 /** 75 * regular expression that matches the syntax of the 'languageCode' field 76 * (with either a language code or a name as indicated by the prefix) 77 */ 78 public static final String LANGUAGE_CODE_PATTERN = "(name|code):(.*)"; 73 79 } -
vlo/branches/vlo-3.1/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/VloWicketApplication.java
r5227 r6048 10 10 import eu.clarin.cmdi.vlo.wicket.pages.SimpleSearchPage; 11 11 import eu.clarin.cmdi.vlo.wicket.pages.VloBasePage; 12 import eu.clarin.cmdi.vlo.wicket.provider.FieldValueConverterProvider; 12 13 import javax.inject.Inject; 13 14 import org.apache.wicket.Application; … … 37 38 @Inject 38 39 private XmlTransformationService cmdiTransformationService; 40 @Inject 41 private FieldValueConverterProvider fieldValueConverterProvider; 39 42 @Inject 40 43 private VloConfig vloConfig; … … 145 148 return cmdiTransformationService; 146 149 } 150 151 public FieldValueConverterProvider getFieldValueConverterProvider() { 152 return fieldValueConverterProvider; 153 } 147 154 148 155 } -
vlo/branches/vlo-3.1/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/service/handle/impl/HandleRestApiClient.java
r6029 r6048 24 24 import eu.clarin.cmdi.vlo.service.handle.HandleClient; 25 25 import javax.ws.rs.core.MediaType; 26 import javax.ws.rs.core.Response; 26 27 import org.apache.wicket.ajax.json.JSONArray; 27 28 import org.apache.wicket.ajax.json.JSONException; … … 80 81 .get(ClientResponse.class); 81 82 82 if (response.getClientResponseStatus() != ClientResponse.Status.OK) { 83 logger.error("Unexpected response status {} for {}", response.getClientResponseStatus(), requestUrl); 83 if (Response.Status.OK.getStatusCode() != response.getStatus()) { 84 final Response.StatusType statusInfo = response.getStatusInfo(); 85 logger.error("Unexpected response status {} - {} for {}", statusInfo.getStatusCode(), statusInfo.getReasonPhrase(), requestUrl); 84 86 } else { 85 87 final String responseString = response.getEntity(String.class); -
vlo/branches/vlo-3.1/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/service/solr/impl/AutoCompleteServiceImpl.java
r4850 r6048 1 1 package eu.clarin.cmdi.vlo.service.solr.impl; 2 2 3 import com.google.common.collect.Iterators;4 3 import eu.clarin.cmdi.vlo.service.solr.AutoCompleteService; 5 4 import eu.clarin.cmdi.vlo.config.VloConfig; 5 import java.util.Collections; 6 6 import java.util.Iterator; 7 7 import java.util.List; … … 50 50 } 51 51 52 return Iterators.emptyIterator();52 return Collections.emptyIterator(); 53 53 } 54 54 } -
vlo/branches/vlo-3.1/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/components/FieldValueLabel.java
r6029 r6048 19 19 import eu.clarin.cmdi.vlo.wicket.provider.FieldValueConverterProvider; 20 20 import eu.clarin.cmdi.vlo.wicket.provider.FieldValueConverterProviderImpl; 21 import org.apache.solr.client.solrj.response.FacetField;22 21 import org.apache.wicket.markup.html.basic.Label; 23 22 import org.apache.wicket.model.IModel; -
vlo/branches/vlo-3.1/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/components/SolrFieldLabel.java
r4871 r6048 35 35 * @param documentModel model that holds document to show field of 36 36 * @param fieldName name of field to show value of 37 */38 public SolrFieldLabel(String id, IModel<SolrDocument> documentModel, String fieldName) {39 super(id, new SolrFieldStringModel(documentModel, fieldName));40 }41 42 /**43 *44 * @param id id of label45 * @param documentModel model that holds document to show field of46 * @param fieldName name of field to show value of47 * @param maxLength maximum length to allow48 * @param truncatePoint point to truncate if string is too long49 */50 public SolrFieldLabel(String id, IModel<SolrDocument> documentModel, String fieldName, int maxLength, int truncatePoint) {51 super(id,52 new TruncatingStringModel(53 new SolrFieldStringModel(documentModel, fieldName), maxLength, truncatePoint));54 }55 56 /**57 *58 * @param id id of label59 * @param documentModel model that holds document to show field of60 * @param fieldName name of field to show value of61 37 * @param nullFallback string to show if actual value is null 62 38 */ -
vlo/branches/vlo-3.1/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/model/SolrFieldStringModel.java
r6029 r6048 17 17 package eu.clarin.cmdi.vlo.wicket.model; 18 18 19 import eu.clarin.cmdi.vlo. FacetConstants;19 import eu.clarin.cmdi.vlo.VloWicketApplication; 20 20 import java.util.Collection; 21 21 import java.util.Iterator; … … 23 23 import org.apache.wicket.model.AbstractReadOnlyModel; 24 24 import org.apache.wicket.model.IModel; 25 import org.apache.wicket.util.convert.IConverter; 25 26 26 27 /** … … 44 45 */ 45 46 public SolrFieldStringModel(IModel<SolrDocument> documentModel, String fieldName) { 46 fieldModel = new SolrFieldModel< Object>(documentModel, fieldName);47 fieldModel = new SolrFieldModel<>(documentModel, fieldName); 47 48 field = fieldName; 48 49 } … … 60 61 final Iterator<Object> iterator = fieldValues.iterator(); 61 62 if (iterator.hasNext()) { 62 final String firstValue = postprocessValue(iterator.next().toString());63 final String firstValue = iterator.next().toString(); 63 64 if (iterator.hasNext()) { 64 65 return getMultipleValuesString(firstValue, iterator); … … 72 73 73 74 protected String getMultipleValuesString(final String firstValue, final Iterator<Object> iterator) { 74 final StringBuilder valuesBuilder = new StringBuilder(firstValue).append("; "); 75 // for multiple value strings, run every individual value through the converter 76 final StringBuilder valuesBuilder = new StringBuilder(postprocessValue(firstValue)).append("; "); 75 77 while (iterator.hasNext()) { 76 valuesBuilder.append( iterator.next().toString());78 valuesBuilder.append(postprocessValue(iterator.next().toString())); 77 79 if (iterator.hasNext()) { 78 80 valuesBuilder.append("; "); … … 90 92 private String postprocessValue(String value) { 91 93 if (value != null) { 92 if (FacetConstants.FIELD_DESCRIPTION.equals(field)) {93 //remove language prefix94 return value.replaceAll(FacetConstants.DESCRIPTION_LANGUAGE_PATTERN, "");94 final IConverter<String> converter = getFieldValueConverter(); 95 if (converter != null) { 96 return converter.convertToString(value, null); 95 97 } 96 98 } … … 98 100 } 99 101 102 private IConverter<String> getFieldValueConverter() { 103 return VloWicketApplication.get().getFieldValueConverterProvider().getConverter(field); 104 } 105 100 106 } -
vlo/branches/vlo-3.1/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/record/FieldsTablePanel.java
r6029 r6048 26 26 import eu.clarin.cmdi.vlo.service.PageParametersConverter; 27 27 import eu.clarin.cmdi.vlo.wicket.components.FieldValueLabel; 28 import eu.clarin.cmdi.vlo.wicket. model.DescriptionFieldModel;28 import eu.clarin.cmdi.vlo.wicket.components.SmartLinkFieldValueLabel; 29 29 import eu.clarin.cmdi.vlo.wicket.model.HandleLinkModel; 30 30 import eu.clarin.cmdi.vlo.wicket.model.SolrFieldNameModel; … … 35 35 import org.apache.wicket.AttributeModifier; 36 36 import org.apache.wicket.Component; 37 import org.apache.wicket.extensions.markup.html.basic.SmartLinkLabel;38 37 import org.apache.wicket.extensions.markup.html.basic.SmartLinkMultiLineLabel; 39 38 import org.apache.wicket.markup.html.basic.Label; … … 118 117 } 119 118 120 private Component createValueLabel(String id, final IModel<String> facetNameModel, final IModel<String> originalValueModel) {119 private Component createValueLabel(String id, final IModel<String> facetNameModel, final IModel<String> valueModel) { 121 120 final String fieldName = facetNameModel.getObject(); 122 123 // allow for postprocessing or wrapping of the value model depending on the field124 final IModel<String> valueModel = getValueModel(facetNameModel, originalValueModel);125 121 126 122 if (FacetConstants.FIELD_LANGUAGE_CODE.equals(facetNameModel.getObject())) { … … 128 124 } else if (SMART_LINK_FIELDS.contains(fieldName)) { 129 125 // create label that generates links 130 return new SmartLink Label(id, new HandleLinkModel(valueModel));126 return new SmartLinkFieldValueLabel(id, new HandleLinkModel(valueModel), facetNameModel); 131 127 } else { 132 128 // add a label for the facet value … … 164 160 } 165 161 166 private IModel<String> getValueModel(IModel<String> facetNameModel, IModel<String> valueModel) {167 if (FacetConstants.FIELD_DESCRIPTION.equals(facetNameModel.getObject())) {168 //wrap in model that removes the language prefix169 return new DescriptionFieldModel(valueModel);170 }171 return valueModel;172 }173 174 162 } -
vlo/branches/vlo-3.1/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/provider/FieldValueConverterProviderImpl.java
r6029 r6048 31 31 public class FieldValueConverterProviderImpl implements FieldValueConverterProvider { 32 32 33 private final static Pattern LANGUAGE_CODE_PATTERN = Pattern.compile(FacetConstants.LANGUAGE_CODE_PATTERN); 33 34 private final LanguageCodeUtils languageCodeUtils; 34 private Pattern LANGUAGE_CODE_PATTERN = Pattern.compile("(name|code):(.*)");35 35 36 36 public FieldValueConverterProviderImpl(LanguageCodeUtils languageCodeUtils) { … … 43 43 case FacetConstants.FIELD_LANGUAGE_CODE: 44 44 return languageCodeConverter; 45 case FacetConstants.FIELD_DESCRIPTION: 46 return descriptionConverter; 45 47 default: 46 48 return null; … … 49 51 } 50 52 53 /** 54 * Abstract base class for one directional string converters 55 */ 51 56 private abstract class FieldValueConverter implements IConverter<String> { 52 57 … … 58 63 } 59 64 65 /** 66 * Converter for language code/name strings (following the pattern of 67 * {@link #LANGUAGE_CODE_PATTERN}) into language names 68 * 69 * @see LanguageCodeUtils#getLanguageNameForLanguageCode(java.lang.String) 70 */ 60 71 private final FieldValueConverter languageCodeConverter = new FieldValueConverter() { 61 72 … … 75 86 } 76 87 } 77 88 78 89 // does not match expected pattern, return original value 79 90 return fieldValue; … … 82 93 }; 83 94 95 /** 96 * Converter for description field values that strips out any language code 97 * prefix 98 */ 99 private final FieldValueConverter descriptionConverter = new FieldValueConverter() { 100 101 @Override 102 public String convertToString(String fieldValue, Locale locale) throws ConversionException { 103 return fieldValue.replaceAll(FacetConstants.DESCRIPTION_LANGUAGE_PATTERN, ""); 104 } 105 106 }; 107 84 108 }
Note: See TracChangeset
for help on using the changeset viewer.