Changeset 4618
- Timestamp:
- 03/05/14 08:34:57 (10 years ago)
- Location:
- vlo/branches/vlo-3.0/vlo-web-app/src/main
- Files:
-
- 6 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/config/VloSpringConfig.java
r4597 r4618 20 20 import eu.clarin.cmdi.vlo.VloWicketApplication; 21 21 import eu.clarin.cmdi.vlo.service.FacetFieldsService; 22 import eu.clarin.cmdi.vlo.service.ResourceTypeCountingService; 22 23 import eu.clarin.cmdi.vlo.service.SearchResultsDao; 23 24 import eu.clarin.cmdi.vlo.service.SolrDocumentService; 24 25 import eu.clarin.cmdi.vlo.service.SolrFacetQueryFactory; 26 import eu.clarin.cmdi.vlo.service.impl.ResourceTypeCountingServiceImpl; 25 27 import eu.clarin.cmdi.vlo.service.impl.SearchResultsDaoImpl; 26 28 import eu.clarin.cmdi.vlo.service.impl.SolrDocumentQueryFactoryImpl; … … 97 99 98 100 @Bean 101 public ResourceTypeCountingService resourceTypeCountingService() { 102 return new ResourceTypeCountingServiceImpl(); 103 } 104 105 @Bean 99 106 public SolrServer solrServer() { 100 107 return new HttpSolrServer(vloConfig().getSolrUrl()); -
vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/components/SearchResultItemPanel.html
r4560 r4618 34 34 [DESCRIPTION] 35 35 </p> 36 <p class="searchresultresources"> 37 Resources: <a href="record1.html">1 text file</a>, <a href="record1.html">1 audio file</a>, <a href="record1.html">1 annotation file</a> 38 </p> 36 <div class="searchresultresources"> 37 Resources: 38 <ul> 39 <li wicket:id="resourceCount"> 40 <a wicket:id="recordLink" href="record1.html"> 41 <wicket:container wicket:id="resourceCountLabel">1 text file</wicket:container> 42 </a> 43 </li> 44 </ul> 45 </div> 39 46 </div> 40 47 <!-- -
vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/components/SearchResultItemPanel.java
r4614 r4618 17 17 package eu.clarin.cmdi.vlo.wicket.components; 18 18 19 import eu.clarin.cmdi.vlo.wicket.provider.ResouceTypeCountDataProvider; 19 20 import eu.clarin.cmdi.vlo.FacetConstants; 21 import eu.clarin.cmdi.vlo.pojo.ResourceTypeCount; 22 import eu.clarin.cmdi.vlo.service.ResourceTypeCountingService; 20 23 import eu.clarin.cmdi.vlo.wicket.model.NullFallbackModel; 24 import eu.clarin.cmdi.vlo.wicket.model.SolrFieldModel; 21 25 import eu.clarin.cmdi.vlo.wicket.model.SolrFieldStringModel; 26 import java.util.Locale; 22 27 import org.apache.solr.common.SolrDocument; 23 28 import org.apache.wicket.markup.html.basic.Label; 29 import org.apache.wicket.markup.html.link.Link; 24 30 import org.apache.wicket.markup.html.panel.Panel; 31 import org.apache.wicket.markup.repeater.Item; 32 import org.apache.wicket.markup.repeater.data.DataView; 33 import org.apache.wicket.markup.repeater.data.IDataProvider; 25 34 import org.apache.wicket.model.IModel; 35 import org.apache.wicket.spring.injection.annot.SpringBean; 36 import org.apache.wicket.util.convert.ConversionException; 37 import org.apache.wicket.util.convert.IConverter; 26 38 27 39 /** … … 31 43 public class SearchResultItemPanel extends Panel { 32 44 45 @SpringBean 46 private ResourceTypeCountingService countingService; 47 33 48 public SearchResultItemPanel(String id, IModel<SolrDocument> model) { 34 49 super(id, model); 35 50 add(new SolrFieldLabel("title", model, FacetConstants.FIELD_NAME)); 36 51 add(new SolrFieldLabel("description", model, FacetConstants.FIELD_DESCRIPTION, "<no description>")); 52 53 // get model for resources 54 final SolrFieldModel<String> resourcesModel = new SolrFieldModel<String>(model, FacetConstants.FIELD_RESOURCE); 55 final ResouceTypeCountDataProvider countProvider = new ResouceTypeCountDataProvider(resourcesModel, countingService); 56 add(new ResourceCountDataView("resourceCount", countProvider)); 37 57 } 38 58 39 40 public static class SolrFieldLabel extends Label { 59 private static class SolrFieldLabel extends Label { 41 60 42 61 public SolrFieldLabel(String id, IModel<SolrDocument> documentModel, String fieldName) { … … 51 70 52 71 } 72 73 private static class ResourceCountDataView extends DataView<ResourceTypeCount> { 74 75 private final static ResourceTypeCountConverter resourceTypeCountConverter 76 = new ResourceTypeCountConverter(); 77 78 public ResourceCountDataView(String id, IDataProvider<ResourceTypeCount> dataProvider) { 79 super(id, dataProvider); 80 } 81 82 @Override 83 protected void populateItem(Item<ResourceTypeCount> item) { 84 final Link resourceLink = new Link("recordLink") { 85 86 @Override 87 public void onClick() { 88 throw new UnsupportedOperationException("Not supported yet."); 89 } 90 }; 91 final Label label = new Label("resourceCountLabel", item.getModel()) { 92 93 @Override 94 public <C> IConverter<C> getConverter(Class<C> type) { 95 if (type == ResourceTypeCount.class) { 96 return (IConverter<C>) resourceTypeCountConverter; 97 } else { 98 return super.getConverter(type); 99 } 100 } 101 102 }; 103 104 resourceLink.add(label); 105 item.add(resourceLink); 106 } 107 } 108 109 private static class ResourceTypeCountConverter implements IConverter<ResourceTypeCount> { 110 111 @Override 112 public ResourceTypeCount convertToObject(String value, Locale locale) throws ConversionException { 113 throw new UnsupportedOperationException("Not supported"); 114 } 115 116 @Override 117 public String convertToString(ResourceTypeCount value, Locale locale) { 118 final String resourceTypeString; 119 if (value.getCount() == 1) { 120 resourceTypeString = getSingularResourceTypeString(value); 121 } else { 122 resourceTypeString = getPluralResourceTypeString(value); 123 } 124 return String.format("%d %s", value.getCount(), resourceTypeString); 125 } 126 127 private String getSingularResourceTypeString(ResourceTypeCount value) { 128 //TODO: read from resource bundle 129 switch (value.getResourceType()) { 130 case ANNOTATION: 131 return "annotation file"; 132 case AUDIO: 133 return "audio file"; 134 case VIDEO: 135 return "video file"; 136 case TEXT: 137 return "text document"; 138 case OTHER: 139 return "other"; 140 default: 141 return "unknown"; 142 } 143 } 144 145 private String getPluralResourceTypeString(ResourceTypeCount value) { 146 //TODO: read from resource bundle 147 switch (value.getResourceType()) { 148 case ANNOTATION: 149 return "annotation files"; 150 case AUDIO: 151 return "audio files"; 152 case VIDEO: 153 return "video files"; 154 case TEXT: 155 return "text documents"; 156 case OTHER: 157 return "other"; 158 default: 159 return "unknown"; 160 } 161 } 162 163 } 53 164 } -
vlo/branches/vlo-3.0/vlo-web-app/src/main/webapp/style/vlo-search.css
r4466 r4618 95 95 } 96 96 97 p.searchresultresources {97 .searchresultresources { 98 98 width: 70%; 99 99 float: left; … … 101 101 padding: 0px; 102 102 } 103 104 .searchresultresources ul { 105 display: inline; 106 padding: 0em 0em 0em .5em; 107 margin: 0px; 108 border-right: 1px solid; 109 } 110 111 .searchresultresources ul li { 112 display: inline; 113 list-style: none; 114 padding: 0em 0em 0em .5em; 115 margin: 0em .5em 0em 0em; 116 border-left: 1px solid; 117 } 118 103 119 104 120 div.searchresultattributes {
Note: See TracChangeset
for help on using the changeset viewer.