- Timestamp:
- 11/17/15 11:55:14 (9 years ago)
- Location:
- vlo/trunk/vlo-web-app/src
- Files:
-
- 1 deleted
- 21 edited
- 2 copied
Legend:
- Unmodified
- Added
- Removed
-
vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/VloWicketApplication.java
r6405 r6813 1 1 package eu.clarin.cmdi.vlo; 2 2 3 import eu.clarin.cmdi.vlo.service.FacetDescriptionService;4 import eu.clarin.cmdi.vlo.config.VloConfig;5 import eu.clarin.cmdi.vlo.service.PermalinkService;6 import eu.clarin.cmdi.vlo.service.XmlTransformationService;7 import eu.clarin.cmdi.vlo.service.solr.SolrDocumentService;8 import eu.clarin.cmdi.vlo.wicket.pages.AboutPage;9 import eu.clarin.cmdi.vlo.wicket.pages.HelpPage;10 import eu.clarin.cmdi.vlo.wicket.pages.AllFacetValuesPage;11 import eu.clarin.cmdi.vlo.wicket.pages.FacetedSearchPage;12 import eu.clarin.cmdi.vlo.wicket.pages.RecordPage;13 import eu.clarin.cmdi.vlo.wicket.pages.SimpleSearchPage;14 import eu.clarin.cmdi.vlo.wicket.pages.VloBasePage;15 import eu.clarin.cmdi.vlo.wicket.provider.FieldValueConverterProvider;16 3 import java.io.IOException; 17 4 import java.io.InputStream; 18 5 import java.util.Properties; 6 19 7 import javax.inject.Inject; 8 20 9 import org.apache.wicket.Application; 21 10 import org.apache.wicket.markup.html.WebPage; … … 29 18 import org.springframework.context.ApplicationContext; 30 19 import org.springframework.context.ApplicationContextAware; 20 21 import eu.clarin.cmdi.vlo.config.VloConfig; 22 import eu.clarin.cmdi.vlo.service.FacetDescriptionService; 23 import eu.clarin.cmdi.vlo.service.PermalinkService; 24 import eu.clarin.cmdi.vlo.service.XmlTransformationService; 25 import eu.clarin.cmdi.vlo.service.solr.SolrDocumentService; 26 import eu.clarin.cmdi.vlo.wicket.pages.AboutPage; 27 import eu.clarin.cmdi.vlo.wicket.pages.AllFacetValuesPage; 28 import eu.clarin.cmdi.vlo.wicket.pages.FacetedSearchPage; 29 import eu.clarin.cmdi.vlo.wicket.pages.HelpPage; 30 import eu.clarin.cmdi.vlo.wicket.pages.RecordPage; 31 import eu.clarin.cmdi.vlo.wicket.pages.SimpleSearchPage; 32 import eu.clarin.cmdi.vlo.wicket.pages.VloBasePage; 33 import eu.clarin.cmdi.vlo.wicket.provider.FieldValueConverterProvider; 31 34 32 35 /** -
vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/pojo/FacetSelection.java
r6314 r6813 30 30 31 31 private final FacetSelectionType selectionType; 32 private finalCollection<String> values;32 private Collection<String> values; 33 33 34 34 /** … … 77 77 return values; 78 78 } 79 80 public void setValues(Collection<String> values){ 81 this.values = values; 82 83 } 84 85 public void removeValues(Collection<String> valuesToBeRemoved){ 86 if(valuesToBeRemoved != null){ 87 for(String val: valuesToBeRemoved){ 88 this.values.remove(val); 89 } 90 } 91 } 92 79 93 80 94 public FacetSelection getCopy() { -
vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/pojo/QueryFacetsSelection.java
r4974 r6813 122 122 } 123 123 } 124 125 public void addNewFacetValue(String facet, Collection<String> values){ 126 FacetSelection curSel = selection.get(facet); 127 if(curSel != null){ 128 curSel.setValues(values); 129 }else{ 130 curSel = new FacetSelection(values); 131 } 132 133 selectValues(facet, curSel); 134 } 135 136 public void removeFacetValue(String facet, Collection<String> valuestoBeRemoved){ 137 FacetSelection curSel = selection.get(facet); 138 if (curSel != null){ 139 curSel.removeValues(valuestoBeRemoved); 140 } 141 //to remove facet from map if does not have any value 142 selectValues(facet, curSel); 143 } 124 144 125 145 @Override -
vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/model/FacetExpansionStateModel.java
r4606 r6813 30 30 public class FacetExpansionStateModel implements IModel<ExpansionState> { 31 31 32 private final IModel< FacetField> facetModel;32 private final IModel<String> facetName; 33 33 private final IModel<Map<String, ExpansionState>> expansionStateMapModel; 34 34 … … 38 38 * @param expansionStateMapModel model that holds the map of expansion states 39 39 */ 40 public FacetExpansionStateModel(IModel< FacetField> facetModel, IModel<Map<String, ExpansionState>> expansionStateMapModel) {41 this.facet Model = facetModel;40 public FacetExpansionStateModel(IModel<String> facetName, IModel<Map<String, ExpansionState>> expansionStateMapModel) { 41 this.facetName = facetName; 42 42 this.expansionStateMapModel = expansionStateMapModel; 43 43 } … … 45 45 @Override 46 46 public ExpansionState getObject() { 47 final String facet = facet Model.getObject().getName();47 final String facet = facetName.getObject(); 48 48 final ExpansionState state = expansionStateMapModel.getObject().get(facet); 49 49 if (state == null) { … … 56 56 @Override 57 57 public void setObject(ExpansionState object) { 58 final String facet = facet Model.getObject().getName();58 final String facet = facetName.getObject(); 59 59 expansionStateMapModel.getObject().put(facet, object); 60 60 } … … 62 62 @Override 63 63 public void detach() { 64 facetModel.detach();64 facetName.detach(); 65 65 expansionStateMapModel.detach(); 66 66 } -
vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/model/FacetFieldModel.java
r4869 r6813 22 22 import java.util.List; 23 23 import org.apache.solr.client.solrj.response.FacetField; 24 import org.apache.wicket.model.AbstractReadOnlyModel; 24 25 import org.apache.wicket.model.IModel; 25 26 import org.apache.wicket.model.LoadableDetachableModel; … … 38 39 * @author twagoo 39 40 */ 40 public class FacetFieldModel extends LoadableDetachableModel<FacetField> {41 public class FacetFieldModel extends AbstractReadOnlyModel<FacetField> { 41 42 42 //todo: can probably be made more efficient/elegant than wrapping fields model43 43 private final FacetFieldsModel fieldsModel; 44 private final String facetName; 44 45 45 /** 46 * 47 * @param facetField facet field to provide 48 * @param selectionModel model that provides current query/selection 49 */ 50 public FacetFieldModel(FacetFieldsService service, FacetField facetField, IModel<QueryFacetsSelection> selectionModel) { 51 super(facetField); 52 fieldsModel = new FacetFieldsModel(service, Collections.singletonList(facetField.getName()), selectionModel, -1); 53 } 54 46 55 47 /** 56 48 * … … 59 51 * @param selectionModel model that provides current query/selection 60 52 */ 61 public FacetFieldModel(FacetFieldsService service, String facet, IModel<QueryFacetsSelection> selectionModel, int valueLimit) { 62 fieldsModel = new FacetFieldsModel(service, Collections.singletonList(facet), selectionModel, valueLimit); 53 public FacetFieldModel(String facet, FacetFieldsService service, IModel<QueryFacetsSelection> selectionModel) { 54 this(facet, new FacetFieldsModel(service, Collections.singletonList(facet), selectionModel, -1)); 55 } 56 57 public FacetFieldModel(String facetName, FacetFieldsModel fieldsModel){ 58 this.fieldsModel = fieldsModel; 59 this.facetName = facetName; 63 60 } 64 61 65 62 @Override 66 protected FacetField load() { 67 final List<FacetField> fieldsList = fieldsModel.getObject(); 68 if (fieldsList == null || fieldsList.isEmpty()) { 69 return null; 70 } else { 71 return fieldsList.get(0); 72 } 63 public FacetField getObject() { 64 return fieldsModel.getFacetField(facetName); 73 65 } 74 66 75 @Override 76 public void detach() { 77 super.detach(); 78 fieldsModel.detach(); 67 68 public void detachFacetFieldsModel(){ 69 fieldsModel.detach(); 79 70 } 71 72 80 73 } -
vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/model/FacetFieldSelectionModel.java
r6246 r6813 17 17 package eu.clarin.cmdi.vlo.wicket.model; 18 18 19 import eu.clarin.cmdi.vlo.pojo.FacetFieldSelection;20 import eu.clarin.cmdi.vlo.pojo.FacetSelection;21 import eu.clarin.cmdi.vlo.pojo.QueryFacetsSelection;22 19 import java.util.Collection; 23 20 import java.util.Collections; 24 21 import java.util.List; 25 22 import java.util.concurrent.CopyOnWriteArrayList; 23 26 24 import org.apache.solr.client.solrj.response.FacetField; 27 25 import org.apache.wicket.model.AbstractReadOnlyModel; 28 26 import org.apache.wicket.model.IModel; 27 28 import eu.clarin.cmdi.vlo.pojo.FacetSelection; 29 import eu.clarin.cmdi.vlo.pojo.QueryFacetsSelection; 29 30 30 31 /** … … 34 35 * @author twagoo 35 36 */ 36 public class FacetFieldSelectionModel extends AbstractReadOnlyModel<Facet FieldSelection> implements FacetFieldSelection{37 public class FacetFieldSelectionModel extends AbstractReadOnlyModel<FacetSelection> { 37 38 38 39 private final IModel<QueryFacetsSelection> selectionModel; … … 49 50 } 50 51 51 @Override 52 53 //@Override 54 public IModel<FacetField> getFacetFieldAsModel() { 55 return facetFieldModel; 56 } 57 58 59 //@Override 52 60 public FacetField getFacetField() { 53 61 return facetFieldModel.getObject(); 54 62 } 63 55 64 56 @Override 65 66 // @Override 57 67 public List<String> getFacetValues() { 58 final String facetName = getFacetField().getName(); 59 final FacetSelection selection = getSelection().getSelectionValues(facetName); 68 final FacetSelection selection = getObject(); 60 69 if (selection == null) { 61 70 return Collections.emptyList(); … … 69 78 } 70 79 } 80 81 71 82 72 @Override 83 //@Override 84 public IModel<QueryFacetsSelection> getSelectionAsModel() { 85 return selectionModel; 86 } 87 88 89 //@Override 73 90 public QueryFacetsSelection getSelection() { 74 91 return selectionModel.getObject(); … … 76 93 77 94 @Override 78 public FacetFieldSelection getObject() { 79 return this; 95 public FacetSelection getObject() { 96 final String facetName = getFacetField().getName(); 97 return getSelection().getSelectionValues(facetName); 80 98 } 81 99 … … 90 108 return String.format("[Field: %s; Selection: %s]", facetFieldModel.getObject().getName(), selectionModel.getObject().toString()); 91 109 } 92 110 111 93 112 } -
vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/model/FacetFieldsModel.java
r4943 r6813 17 17 package eu.clarin.cmdi.vlo.wicket.model; 18 18 19 import eu.clarin.cmdi.vlo.pojo.QueryFacetsSelection;20 import eu.clarin.cmdi.vlo.service.solr.FacetFieldsService;21 19 import java.util.List; 20 22 21 import org.apache.solr.client.solrj.response.FacetField; 23 22 import org.apache.wicket.model.IModel; 24 23 import org.apache.wicket.model.LoadableDetachableModel; 24 25 import eu.clarin.cmdi.vlo.pojo.FacetSelection; 26 import eu.clarin.cmdi.vlo.pojo.QueryFacetsSelection; 27 import eu.clarin.cmdi.vlo.service.solr.FacetFieldsService; 25 28 26 29 /** … … 41 44 private final IModel<QueryFacetsSelection> selectionModel; 42 45 private final int valueLimit; 46 47 48 /** 49 * now we are returning all facets and model is shared between facetValuesPanel and FacetsPagePanel 50 * 51 * @param service service to use for facet field retrieval 52 * @param facets facets to include 53 * @param selectionModel model that provides current query/selection 54 */ 55 public FacetFieldsModel(FacetFieldsService service, List<String> facets, IModel<QueryFacetsSelection> selectionModel) { 56 this(service, facets, selectionModel, -1); 57 } 43 58 44 59 /** … … 56 71 this.valueLimit = valueLimit; 57 72 } 73 74 75 58 76 59 77 @Override … … 67 85 selectionModel.detach(); 68 86 } 87 88 public FacetField getFacetField(String facetName){ 89 List<FacetField> facetList = getObject(); 90 if(facetList != null) 91 for(FacetField facet: facetList) 92 if(facet.getName().equals(facetName)) 93 return removeSelected(facet, selectionModel.getObject().getSelectionValues(facetName)); 94 95 return null; 96 } 97 98 private FacetField removeSelected(FacetField facetField, FacetSelection selection){ 99 FacetField filtered = new FacetField(facetField.getName()); 100 if(selection != null) 101 for(FacetField.Count value: facetField.getValues()) 102 if(selection.getValues().contains(value.getName())) 103 continue; 104 else 105 filtered.add(value.getName(), value.getCount()); 106 else 107 filtered = facetField; 108 109 return filtered; 110 } 69 111 70 112 } -
vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/pages/AllFacetValuesPage.java
r6372 r6813 17 17 package eu.clarin.cmdi.vlo.wicket.pages; 18 18 19 import eu.clarin.cmdi.vlo.config.VloConfig; 20 import eu.clarin.cmdi.vlo.pojo.FacetSelection; 21 import eu.clarin.cmdi.vlo.pojo.QueryFacetsSelection; 22 import eu.clarin.cmdi.vlo.service.FacetParameterMapper; 23 import eu.clarin.cmdi.vlo.service.PageParametersConverter; 24 import eu.clarin.cmdi.vlo.service.solr.FacetFieldsService; 25 import eu.clarin.cmdi.vlo.wicket.model.FacetFieldModel; 26 import eu.clarin.cmdi.vlo.wicket.model.SolrFieldNameModel; 27 import eu.clarin.cmdi.vlo.wicket.panels.search.AllFacetValuesPanel; 28 import eu.clarin.cmdi.vlo.wicket.panels.BreadCrumbPanel; 19 import java.util.Collection; 20 29 21 import org.apache.solr.client.solrj.response.FacetField; 30 22 import org.apache.wicket.RestartResponseException; … … 39 31 import org.apache.wicket.spring.injection.annot.SpringBean; 40 32 import org.apache.wicket.util.string.StringValue; 33 34 import eu.clarin.cmdi.vlo.config.VloConfig; 35 import eu.clarin.cmdi.vlo.pojo.FacetSelection; 36 import eu.clarin.cmdi.vlo.pojo.QueryFacetsSelection; 37 import eu.clarin.cmdi.vlo.service.FacetParameterMapper; 38 import eu.clarin.cmdi.vlo.service.PageParametersConverter; 39 import eu.clarin.cmdi.vlo.service.solr.FacetFieldsService; 40 import eu.clarin.cmdi.vlo.wicket.model.FacetFieldModel; 41 import eu.clarin.cmdi.vlo.wicket.model.SolrFieldNameModel; 42 import eu.clarin.cmdi.vlo.wicket.panels.BreadCrumbPanel; 43 import eu.clarin.cmdi.vlo.wicket.panels.search.AllFacetValuesPanel; 41 44 42 45 /** … … 73 76 if (vloConfig.getAllFacetFields().contains(facet)) { 74 77 // create a new model so that all values will be retrieved 75 setModel(new FacetFieldModel(facetFieldsService, facet, selectionModel, -1)); // gets all facet values 78 79 setModel(new FacetFieldModel(facet, facetFieldsService, selectionModel)); // gets all facet values 76 80 } 77 81 if (getModelObject() == null) { … … 97 101 98 102 @Override 99 protected void onValuesSelected( String facet, FacetSelectionvalues, AjaxRequestTarget target) {103 protected void onValuesSelected(Collection<String> values, AjaxRequestTarget target) { 100 104 // Create updated selection state 101 105 final QueryFacetsSelection newSelection; … … 105 109 newSelection = new QueryFacetsSelection(); 106 110 } 107 newSelection.selectValues( facet, values);111 newSelection.selectValues(getModelObject().getName(), new FacetSelection(values)); 108 112 109 113 // Redirect to search page with updated model -
vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/pages/FacetedSearchPage.java
r6334 r6813 1 1 package eu.clarin.cmdi.vlo.wicket.pages; 2 2 3 import eu.clarin.cmdi.vlo.wicket.model.PermaLinkModel;4 import eu.clarin.cmdi.vlo.wicket.panels.SingleFacetPanel;5 import eu.clarin.cmdi.vlo.config.VloConfig;6 import eu.clarin.cmdi.vlo.wicket.panels.search.FacetsPanel;7 import eu.clarin.cmdi.vlo.pojo.QueryFacetsSelection;8 import eu.clarin.cmdi.vlo.service.PageParametersConverter;9 import eu.clarin.cmdi.vlo.service.solr.FacetFieldsService;10 import eu.clarin.cmdi.vlo.wicket.panels.search.FacetPanel;11 import eu.clarin.cmdi.vlo.wicket.panels.search.SearchFormPanel;12 import eu.clarin.cmdi.vlo.wicket.panels.search.SearchResultsPanel;13 import eu.clarin.cmdi.vlo.wicket.model.FacetFieldsModel;14 import eu.clarin.cmdi.vlo.wicket.panels.BreadCrumbPanel;15 import eu.clarin.cmdi.vlo.wicket.panels.search.FacetValuesPanel;16 import eu.clarin.cmdi.vlo.wicket.panels.TopLinksPanel;17 import eu.clarin.cmdi.vlo.wicket.panels.search.AdvancedSearchOptionsPanel;18 3 import java.util.List; 4 19 5 import org.apache.solr.client.solrj.response.FacetField; 20 6 import org.apache.wicket.Component; 21 7 import org.apache.wicket.ajax.AjaxRequestTarget; 22 8 import org.apache.wicket.markup.html.WebMarkupContainer; 23 import org.apache.wicket.request.mapper.parameter.PageParameters;24 9 import org.apache.wicket.markup.html.panel.Panel; 25 10 import org.apache.wicket.model.IModel; 26 11 import org.apache.wicket.model.Model; 12 import org.apache.wicket.request.mapper.parameter.PageParameters; 27 13 import org.apache.wicket.spring.injection.annot.SpringBean; 14 15 import eu.clarin.cmdi.vlo.config.VloConfig; 16 import eu.clarin.cmdi.vlo.pojo.QueryFacetsSelection; 17 import eu.clarin.cmdi.vlo.service.PageParametersConverter; 18 import eu.clarin.cmdi.vlo.service.solr.FacetFieldsService; 19 import eu.clarin.cmdi.vlo.wicket.model.FacetFieldsModel; 20 import eu.clarin.cmdi.vlo.wicket.model.FacetNamesModel; 21 import eu.clarin.cmdi.vlo.wicket.model.PermaLinkModel; 22 import eu.clarin.cmdi.vlo.wicket.panels.BreadCrumbPanel; 23 import eu.clarin.cmdi.vlo.wicket.panels.SingleFacetPanel; 24 import eu.clarin.cmdi.vlo.wicket.panels.TopLinksPanel; 25 import eu.clarin.cmdi.vlo.wicket.panels.search.AdvancedSearchOptionsPanel; 26 import eu.clarin.cmdi.vlo.wicket.panels.search.FacetPanel; 27 import eu.clarin.cmdi.vlo.wicket.panels.search.FacetValuesPanel; 28 import eu.clarin.cmdi.vlo.wicket.panels.search.FacetsPanel; 29 import eu.clarin.cmdi.vlo.wicket.panels.search.SearchFormPanel; 30 import eu.clarin.cmdi.vlo.wicket.panels.search.SearchResultsPanel; 28 31 29 32 /** … … 48 51 private Component navigation; 49 52 private Component searchForm; 53 54 55 IModel<List<String>> facetNamesModel; 56 FacetFieldsModel fieldsModel; 57 58 50 59 51 60 public FacetedSearchPage(IModel<QueryFacetsSelection> queryModel) { 52 61 super(queryModel); 62 createModels(); 53 63 addComponents(); 54 64 } … … 60 70 final IModel<QueryFacetsSelection> queryModel = new Model<QueryFacetsSelection>(selection); 61 71 setModel(queryModel); 72 createModels(); 62 73 addComponents(); 74 } 75 76 77 private void createModels(){ 78 facetNamesModel = new FacetNamesModel(vloConfig.getFacetFields()); 79 fieldsModel = new FacetFieldsModel(facetFieldsService, facetNamesModel.getObject(), getModel(), -1); 63 80 } 64 81 … … 139 156 enclosure.setOutputMarkupId(true); 140 157 if (vloConfig.getCollectionFacet() != null) { 141 final FacetPanel panel = new SingleFacetPanel("collectionsFacet", getModel(), vloConfig.getCollectionFacet(), facetFieldsService, 3) {158 final FacetPanel panel = new SingleFacetPanel("collectionsFacet", vloConfig.getCollectionFacet(), getModel(), facetFieldsService, 3) { 142 159 143 160 @Override … … 158 175 159 176 private Panel createFacetsPanel(final String id) { 160 final IModel<QueryFacetsSelection> queryModel = getModel(); 161 final IModel<List<FacetField>> facetFieldsModel = new FacetFieldsModel(facetFieldsService, vloConfig.getFacetFields(), queryModel, FacetValuesPanel.MAX_NUMBER_OF_FACETS_TO_SHOW); 162 final FacetsPanel panel = new FacetsPanel(id, facetFieldsModel, queryModel) { 177 178 final FacetsPanel panel = new FacetsPanel(id, facetNamesModel, fieldsModel, getModel()) { 163 179 164 180 @Override … … 172 188 173 189 private void updateSelection(AjaxRequestTarget target) { 190 191 //detach facetFieldsModel when selection is changed 192 fieldsModel.detach(); 193 174 194 // selection changed, update facets and search results 175 195 if (target != null) { // null if JavaScript disabled -
vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/pages/SimpleSearchPage.java
r6432 r6813 107 107 // collection facet is optional... 108 108 if (vloConfig.getCollectionFacet() != null) { 109 return new SingleFacetPanel(id, getModel(), vloConfig.getCollectionFacet(), facetFieldsService, 3) {109 return new SingleFacetPanel(id, vloConfig.getCollectionFacet(), getModel(), facetFieldsService, 3) { 110 110 111 111 @Override -
vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/ExpandablePanel.java
r5023 r6813 39 39 public abstract class ExpandablePanel<T> extends GenericPanel<T> { 40 40 41 pr ivatefinal IModel<ExpansionState> expansionModel;41 protected final IModel<ExpansionState> expansionModel; 42 42 43 43 /** -
vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/SingleFacetPanel.java
r5140 r6813 17 17 package eu.clarin.cmdi.vlo.wicket.panels; 18 18 19 import org.apache.wicket.model.IModel; 20 import org.apache.wicket.model.Model; 21 19 22 import eu.clarin.cmdi.vlo.pojo.ExpansionState; 20 23 import eu.clarin.cmdi.vlo.pojo.QueryFacetsSelection; 21 24 import eu.clarin.cmdi.vlo.service.solr.FacetFieldsService; 22 25 import eu.clarin.cmdi.vlo.wicket.model.FacetFieldModel; 23 import eu.clarin.cmdi.vlo.wicket.model.FacetFieldSelectionModel;24 26 import eu.clarin.cmdi.vlo.wicket.panels.search.FacetPanel; 25 import org.apache.wicket.model.IModel;26 import org.apache.wicket.model.Model;27 27 28 28 /** … … 31 31 */ 32 32 public abstract class SingleFacetPanel extends FacetPanel { 33 34 //public FacetPanel(String id, IModel<String> facetName, IModel<FacetFieldSelection> selectionModel, IModel<ExpansionState> expansionState, int subListSize) { 33 35 34 public SingleFacetPanel(String id, IModel<QueryFacetsSelection> queryModel, String facetName,FacetFieldsService facetFieldsService, int subListSize) {36 public SingleFacetPanel(String id, String facetName, IModel<QueryFacetsSelection> queryModel, FacetFieldsService facetFieldsService, int subListSize) { 35 37 //TODO: Limit to number of items shown while keeping 'more' function? 36 super(id, new FacetFieldSelectionModel(new FacetFieldModel(facetFieldsService, facetName, queryModel, -1), queryModel), Model.of(ExpansionState.COLLAPSED), subListSize); 38 super(id, 39 new Model(facetName), 40 new FacetFieldModel(facetName, facetFieldsService, queryModel), 41 queryModel, 42 Model.of(ExpansionState.COLLAPSED), 43 subListSize); 37 44 } 38 45 -
vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/search/AllFacetValuesPanel.java
r6437 r6813 28 28 import eu.clarin.cmdi.vlo.wicket.provider.FacetFieldValuesProvider; 29 29 import eu.clarin.cmdi.vlo.wicket.provider.FieldValueConverterProvider; 30 31 import java.util.Collection; 30 32 import java.util.Collections; 31 33 import org.apache.solr.client.solrj.response.FacetField; … … 143 145 // call callback 144 146 onValuesSelected( 145 item.getModelObject().getFacetField().getName(),146 147 // for now only single values can be selected 147 new FacetSelection(Collections.singleton(item.getModelObject().getName())),148 Collections.singleton(item.getModelObject().getName()), 148 149 target); 149 150 } … … 256 257 * Callback triggered when values have been selected on this facet 257 258 * 258 * @param facet name of the facet this panel represents259 259 * @param values selected values 260 260 * @param target Ajax target allowing for a partial update. May be null 261 261 * (fallback)! 262 262 */ 263 protected abstract void onValuesSelected( String facet, FacetSelectionvalues, AjaxRequestTarget target);263 protected abstract void onValuesSelected(Collection<String> values, AjaxRequestTarget target); 264 264 265 265 } -
vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/search/FacetPanel.java
r6248 r6813 17 17 package eu.clarin.cmdi.vlo.wicket.panels.search; 18 18 19 import eu.clarin.cmdi.vlo.wicket.model.SolrFieldDescriptionModel;20 import eu.clarin.cmdi.vlo.pojo.ExpansionState;21 import eu.clarin.cmdi.vlo.pojo.FacetFieldSelection;22 import eu.clarin.cmdi.vlo.pojo.FacetSelection;23 import eu.clarin.cmdi.vlo.pojo.QueryFacetsSelection;24 import eu.clarin.cmdi.vlo.wicket.model.SolrFieldNameModel;25 import eu.clarin.cmdi.vlo.wicket.panels.ExpandablePanel;26 19 import java.util.Collection; 27 import java.util.HashSet; 20 28 21 import org.apache.solr.client.solrj.response.FacetField; 29 22 import org.apache.wicket.ajax.AjaxRequestTarget; … … 31 24 import org.apache.wicket.markup.html.basic.Label; 32 25 import org.apache.wicket.model.IModel; 33 import org.apache.wicket.model.PropertyModel;34 26 import org.slf4j.Logger; 35 27 import org.slf4j.LoggerFactory; 28 29 import eu.clarin.cmdi.vlo.pojo.ExpansionState; 30 import eu.clarin.cmdi.vlo.pojo.QueryFacetsSelection; 31 import eu.clarin.cmdi.vlo.wicket.model.SelectionModel; 32 import eu.clarin.cmdi.vlo.wicket.model.SolrFieldDescriptionModel; 33 import eu.clarin.cmdi.vlo.wicket.model.SolrFieldNameModel; 34 import eu.clarin.cmdi.vlo.wicket.panels.ExpandablePanel; 36 35 37 36 /** … … 43 42 * @author twagoo 44 43 */ 45 public abstract class FacetPanel extends ExpandablePanel< FacetFieldSelection> {44 public abstract class FacetPanel extends ExpandablePanel<String> { 46 45 private final static Logger logger = LoggerFactory.getLogger(FacetPanel.class); 47 48 private final IModel<ExpansionState> expansionStateModel;49 46 50 47 private final SelectedFacetPanel selectedFacetPanel; 51 48 private final FacetValuesPanel facetValuesPanel; 52 49 53 public FacetPanel(String id, IModel< FacetFieldSelection> selectionModel, IModel<ExpansionState> expansionState) {54 this(id, selectionModel, expansionState, 0);50 public FacetPanel(String id, IModel<String> facetNameModel, IModel<FacetField> facetFieldModel, final IModel<QueryFacetsSelection> selectionModel, IModel<ExpansionState> expansionState) { 51 this(id, facetNameModel, facetFieldModel, selectionModel, expansionState, 0); 55 52 } 56 53 57 public FacetPanel(String id, IModel<FacetFieldSelection> selectionModel, IModel<ExpansionState> expansionState, int subListSize) { 58 super(id, selectionModel, expansionState); 59 this.expansionStateModel = expansionState; 54 public FacetPanel(String id, IModel<String> facetNameModel, IModel<FacetField> facetFieldModel, final IModel<QueryFacetsSelection> selectionModel, IModel<ExpansionState> expansionState, int subListSize) { 55 super(id, facetNameModel, expansionState); 60 56 61 57 // panel showing values for selection 62 facetValuesPanel = createFacetValuesPanel("facetValues", subListSize);58 facetValuesPanel = createFacetValuesPanel("facetValues", facetNameModel.getObject(), facetFieldModel, selectionModel, subListSize); 63 59 add(facetValuesPanel); 64 60 65 61 // panel showing current selection, allowing for deselection 66 selectedFacetPanel = createSelectedFacetPanel("facetSelection" );62 selectedFacetPanel = createSelectedFacetPanel("facetSelection", facetNameModel.getObject(), selectionModel); 67 63 add(selectedFacetPanel); 68 64 } … … 70 66 @Override 71 67 protected Label createTitleLabel(String id) { 72 final IModel<String> facetNameModel = new PropertyModel<>(getModel(), "facetField.name"); 73 final Label label = new Label(id, new SolrFieldNameModel(facetNameModel)); 74 label.add(new AttributeAppender("title", new SolrFieldDescriptionModel(facetNameModel))); 68 final Label label = new Label(id, new SolrFieldNameModel(getModel())); 69 label.add(new AttributeAppender("title", new SolrFieldDescriptionModel(getModel()))); 75 70 return label; 76 71 } … … 79 74 protected void onConfigure() { 80 75 super.onConfigure(); 81 82 final boolean valuesSelected = ! getModelObject().getFacetValues().isEmpty();76 77 final boolean valuesSelected = !selectedFacetPanel.getModelObject().isEmpty(); 83 78 facetValuesPanel.setVisible(!valuesSelected); 84 79 selectedFacetPanel.setVisible(valuesSelected); 85 86 // hide this entire panel is no values are selectable 87 setVisible(!isHideIfNoValues() || valuesSelected || getModelObject().getFacetField().getValueCount() > 0); 80 81 82 // hide this entire panel if nothing is selected or there is nothing to be selected 83 setVisible(!isHideIfNoValues() || valuesSelected || facetValuesPanel.getModelObject().getValueCount() > 0); 88 84 } 85 89 86 90 87 /** … … 97 94 } 98 95 99 private FacetValuesPanel createFacetValuesPanel(String id, int subListSize) { 100 return new FacetValuesPanel(id, 101 new PropertyModel<FacetField>(getModel(), "facetField"), 102 new PropertyModel<QueryFacetsSelection>(getModel(), "selection"), subListSize) { 96 private FacetValuesPanel createFacetValuesPanel(String id, final String facetName, IModel<FacetField> facetFieldModel, final IModel<QueryFacetsSelection> selectionModel, int subListSize) { 97 return new FacetValuesPanel(id, facetFieldModel, selectionModel, subListSize) { 103 98 @Override 104 public void onValuesSelected( String facet, FacetSelection value, AjaxRequestTarget target) {99 public void onValuesSelected(Collection<String> values, AjaxRequestTarget target) { 105 100 // A value has been selected on this facet's panel, update the model! 106 FacetPanel.this.getModelObject().getSelection().selectValues(facet, value); 107 if (target != null) { 101 selectionModel.getObject().addNewFacetValue(facetName, values); 102 103 if (target != null) { 108 104 // reload entire page for now 109 105 selectionChanged(target); … … 113 109 } 114 110 115 private SelectedFacetPanel createSelectedFacetPanel(String id ) {116 return new SelectedFacetPanel(id, getModel()) {111 private SelectedFacetPanel createSelectedFacetPanel(String id, final String facetName, final IModel<QueryFacetsSelection> selectionModel) { 112 return new SelectedFacetPanel(id, facetName, new SelectionModel(facetName, selectionModel)) { 117 113 @Override 118 public void onValuesUnselected(String facet, Collection<String> valuesRemoved, AjaxRequestTarget target) { 119 final QueryFacetsSelection selection = getModelObject().getSelection(); 114 public void onValuesUnselected(Collection<String> valuesRemoved, AjaxRequestTarget target) { 115 // Values have been removed, calculate remainder 116 selectionModel.getObject().removeFacetValue(facetName, valuesRemoved); 120 117 121 // Values have been removed, calculate remainder 122 final FacetSelection facetSelection = selection.getSelectionValues(facet); 123 final Collection<String> currentSelection = facetSelection.getValues(); 124 final Collection<String> newSelection = new HashSet<String>(currentSelection); 125 newSelection.removeAll(valuesRemoved); 126 127 // Update model (keep selection type) 128 selection.selectValues(facet, new FacetSelection(facetSelection.getSelectionType(), newSelection)); 129 130 // collapse after removal 131 // TODO: should be removed, but then list of values 132 // does not seem to update correctly 133 expansionStateModel.setObject(ExpansionState.COLLAPSED); 134 118 // collapse after removal 119 // TODO: should be removed, but then list of values 120 // does not seem to update correctly 121 expansionModel.setObject(ExpansionState.COLLAPSED); 122 135 123 if (target != null) { 136 124 // reload entire page for now -
vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/search/FacetValuesPanel.java
r6437 r6813 25 25 import eu.clarin.cmdi.vlo.wicket.components.FieldValueLabel; 26 26 import eu.clarin.cmdi.vlo.wicket.provider.PartitionedDataProvider; 27 import eu.clarin.cmdi.vlo.wicket.model.FacetFieldModel; 27 28 import eu.clarin.cmdi.vlo.wicket.model.SolrFieldNameModel; 28 29 import eu.clarin.cmdi.vlo.wicket.pages.AllFacetValuesPage; … … 73 74 private final int subListSize; 74 75 private final IModel<String> fieldNameModel; 75 76 76 77 @SpringBean 77 78 private FieldValueConverterProvider fieldValueConverterProvider; … … 203 204 // call callback 204 205 onValuesSelected( 205 item.getModelObject().getFacetField().getName(),206 206 // for now only single values can be selected 207 new FacetSelection(Collections.singleton(item.getModelObject().getName())),207 Collections.singleton(item.getModelObject().getName()), 208 208 target); 209 209 } … … 243 243 super.onConfigure(); 244 244 // only show if there actually are more values! 245 setVisible(getModel ().getObject().getValueCount() > MAX_NUMBER_OF_FACETS_TO_SHOW);245 setVisible(getModelObject().getValueCount() > MAX_NUMBER_OF_FACETS_TO_SHOW); 246 246 } 247 247 … … 271 271 272 272 @Override 273 protected void onValuesSelected( String facet, FacetSelectionvalues, AjaxRequestTarget target) {273 protected void onValuesSelected(Collection<String> values, AjaxRequestTarget target) { 274 274 if (target != null) { 275 275 // target can be null if selection link was opened in a new tab 276 276 window.close(target); 277 277 } 278 FacetValuesPanel.this.onValuesSelected( facet,values, target);278 FacetValuesPanel.this.onValuesSelected(values, target); 279 279 } 280 280 }; … … 289 289 filterModel.detach(); 290 290 } 291 291 292 292 293 /** … … 298 299 * (fallback)! 299 300 */ 300 protected abstract void onValuesSelected( String facet, FacetSelectionvalues, AjaxRequestTarget target);301 301 protected abstract void onValuesSelected(Collection<String> values, AjaxRequestTarget target); 302 302 303 @Override 303 304 protected void onBeforeRender() { -
vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/search/FacetsPanel.java
r6500 r6813 18 18 19 19 import eu.clarin.cmdi.vlo.JavaScriptResources; 20 import eu.clarin.cmdi.vlo.pojo.ExpansionState;21 import eu.clarin.cmdi.vlo.pojo.QueryFacetsSelection;22 import eu.clarin.cmdi.vlo.service.solr.FacetFieldsService;23 import eu.clarin.cmdi.vlo.wicket.model.FacetExpansionStateModel;24 import eu.clarin.cmdi.vlo.wicket.model.FacetFieldModel;25 import eu.clarin.cmdi.vlo.wicket.model.FacetFieldSelectionModel;26 20 import java.util.HashMap; 27 21 import java.util.List; 28 22 import java.util.Map; 29 import org.apache.solr.client.solrj.response.FacetField; 23 30 24 import org.apache.wicket.Component; 31 25 import org.apache.wicket.ajax.AjaxRequestTarget; … … 40 34 import org.apache.wicket.model.IModel; 41 35 import org.apache.wicket.model.util.MapModel; 42 import org.apache.wicket.spring.injection.annot.SpringBean; 36 37 import eu.clarin.cmdi.vlo.JavaScriptResources; 38 import eu.clarin.cmdi.vlo.pojo.ExpansionState; 39 import eu.clarin.cmdi.vlo.pojo.QueryFacetsSelection; 40 import eu.clarin.cmdi.vlo.wicket.model.FacetExpansionStateModel; 41 import eu.clarin.cmdi.vlo.wicket.model.FacetFieldModel; 42 import eu.clarin.cmdi.vlo.wicket.model.FacetFieldsModel; 43 43 44 44 /** … … 50 50 * @author twagoo 51 51 */ 52 public abstract class FacetsPanel extends GenericPanel<List< FacetField>> {52 public abstract class FacetsPanel extends GenericPanel<List<String>> { 53 53 54 @SpringBean55 private FacetFieldsService facetFieldsService;56 54 private MapModel<String, ExpansionState> expansionModel; 57 55 … … 64 62 * selection state 65 63 */ 66 public FacetsPanel(final String id, final IModel<List< FacetField>> facetsModel, final IModel<QueryFacetsSelection> selectionModel) {67 super(id, facet sModel);64 public FacetsPanel(final String id, final IModel<List<String>> facetNamesModel, final FacetFieldsModel fieldsModel, final IModel<QueryFacetsSelection> selectionModel) { 65 super(id, facetNamesModel); 68 66 69 67 final Map<String, ExpansionState> expansionStateMap = new HashMap<String, ExpansionState>(); 70 68 expansionModel = new MapModel<String, ExpansionState>(expansionStateMap); 71 72 final ListView< FacetField> facetsView = new ListView<FacetField>("facets", facetsModel) {69 70 final ListView<String> facetsView = new ListView<String>("facets", facetNamesModel) { 73 71 74 72 @Override 75 protected void populateItem(ListItem< FacetField> item) {76 73 protected void populateItem(ListItem<String> item) { 74 // Create a facet field model which does a lookup by name, 77 75 // making it dynamic in case the selection and therefore 78 76 // set of available values changes 79 final IModel<FacetField> facetFieldModel = new FacetFieldModel(facetFieldsService, item.getModelObject(), selectionModel);80 77 item.add( 81 new FacetPanel("facet", 82 new FacetFieldSelectionModel(facetFieldModel, selectionModel), 83 new FacetExpansionStateModel(facetFieldModel, expansionModel)) { 78 new FacetPanel("facet", 79 item.getModel(), 80 new FacetFieldModel(item.getModelObject(), fieldsModel), 81 selectionModel, 82 new FacetExpansionStateModel(item.getModel(), expansionModel)) { 84 83 85 84 @Override … … 139 138 private void setAllFacetsExpansionState(final ExpansionState state) { 140 139 final Map<String, ExpansionState> expansionMap = expansionModel.getObject(); 141 for ( FacetField facet: getModelObject()) {142 expansionMap.put(facet .getName(), state);140 for (String facetName : getModelObject()) { 141 expansionMap.put(facetName, state); 143 142 } 144 143 } -
vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/search/SelectedFacetPanel.java
r6002 r6813 17 17 package eu.clarin.cmdi.vlo.wicket.panels.search; 18 18 19 import eu.clarin.cmdi.vlo.pojo.FacetFieldSelection; 20 import eu.clarin.cmdi.vlo.wicket.components.FieldValueLabel; 19 import java.util.ArrayList; 21 20 import java.util.Collection; 22 21 import java.util.Collections; 23 22 import java.util.List; 23 import java.util.concurrent.CopyOnWriteArrayList; 24 24 25 import org.apache.wicket.ajax.AjaxRequestTarget; 25 26 import org.apache.wicket.extensions.ajax.markup.html.IndicatingAjaxFallbackLink; … … 27 28 import org.apache.wicket.markup.html.list.ListView; 28 29 import org.apache.wicket.markup.html.panel.GenericPanel; 30 import org.apache.wicket.model.AbstractReadOnlyModel; 29 31 import org.apache.wicket.model.IModel; 30 import org.apache.wicket.model.PropertyModel; 32 import org.apache.wicket.model.Model; 33 34 import eu.clarin.cmdi.vlo.pojo.FacetSelection; 35 import eu.clarin.cmdi.vlo.wicket.components.FieldValueLabel; 31 36 32 37 /** … … 36 41 * @author twagoo 37 42 */ 38 public abstract class SelectedFacetPanel extends GenericPanel<Facet FieldSelection> {43 public abstract class SelectedFacetPanel extends GenericPanel<FacetSelection> { 39 44 40 public SelectedFacetPanel(String id, final IModel<FacetFieldSelection> model) {45 public SelectedFacetPanel(String id, String facetName, final IModel<FacetSelection> model) { 41 46 super(id, model); 42 47 43 48 // Add removers for all selected values for collapsed state 44 add(createSelectionRemovers("facetValueRemover" ));49 add(createSelectionRemovers("facetValueRemover", facetName)); 45 50 // Add selected items to expanded state 46 add(createSelectionRemovers("selectedItem" ));51 add(createSelectionRemovers("selectedItem", facetName)); 47 52 } 48 49 private ListView<String> createSelectionRemovers(String id ) {53 54 private ListView<String> createSelectionRemovers(String id, String facetName) { 50 55 // Model of the list of selected values in this facet 51 final PropertyModel<List<String>> propertyModel = new PropertyModel<List<String>>(getModel(), "facetValues"); 52 final PropertyModel<String> fieldNameModel = new PropertyModel(getModel(), "facetField.name"); 56 57 List<String> selectedValues; 58 if (getModelObject().getValues() != null) 59 selectedValues = new CopyOnWriteArrayList<String>(getModelObject().getValues()); 60 else 61 selectedValues = Collections.emptyList(); 62 63 64 final IModel<List<String>> propertyModel = new AbstractReadOnlyModel<List<String>>() { 65 66 @Override 67 public List<String> getObject() { 68 return new ArrayList(SelectedFacetPanel.this.getModelObject().getValues()); 69 } 70 71 }; 72 final IModel<String> fieldNameModel = new Model<String>(facetName); 73 //final PropertyModel<List<String>> propertyModel= new PropertyModel<List<String>>(getModel(), "facetValues"); 74 //final PropertyModel<String> fieldNameModel = new PropertyModel(getModel(), "facetField.name"); 75 76 53 77 // Repeating container of value + unselection links 54 78 final ListView<String> listView = new ListView<String>(id, propertyModel) { … … 79 103 * (fallback)! 80 104 */ 81 protected abstract void onValuesUnselected( String facet,Collection<String> valuesRemoved, AjaxRequestTarget target);105 protected abstract void onValuesUnselected(Collection<String> valuesRemoved, AjaxRequestTarget target); 82 106 83 107 public class RemoveLink extends IndicatingAjaxFallbackLink { … … 94 118 // Remove a single value 95 119 // Call callback 96 onValuesUnselected( 97 SelectedFacetPanel.this.getModelObject().getFacetField().getName(), 98 Collections.singleton(valueModel.getObject()), target); 120 onValuesUnselected(Collections.singleton(valueModel.getObject()), target); 99 121 } 100 122 -
vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/search/SimpleSearchBrowsePanel.java
r6437 r6813 17 17 package eu.clarin.cmdi.vlo.wicket.panels.search; 18 18 19 import eu.clarin.cmdi.vlo.config.VloConfig; 20 import eu.clarin.cmdi.vlo.pojo.FacetSelection; 21 import eu.clarin.cmdi.vlo.pojo.QueryFacetsSelection; 22 import eu.clarin.cmdi.vlo.service.PageParametersConverter; 23 import eu.clarin.cmdi.vlo.service.solr.FacetFieldsService; 24 import eu.clarin.cmdi.vlo.service.solr.SolrDocumentService; 25 import eu.clarin.cmdi.vlo.wicket.model.FacetFieldsModel; 26 import eu.clarin.cmdi.vlo.wicket.model.SolrFieldDescriptionModel; 27 import eu.clarin.cmdi.vlo.wicket.model.SolrFieldNameModel; 28 import eu.clarin.cmdi.vlo.wicket.pages.FacetedSearchPage; 29 import eu.clarin.cmdi.vlo.wicket.pages.SimpleSearchPage; 19 import java.util.Collection; 20 30 21 import org.apache.solr.client.solrj.response.FacetField; 31 22 import org.apache.wicket.ajax.AjaxRequestTarget; … … 44 35 import org.apache.wicket.model.PropertyModel; 45 36 import org.apache.wicket.spring.injection.annot.SpringBean; 37 38 import eu.clarin.cmdi.vlo.config.VloConfig; 39 import eu.clarin.cmdi.vlo.pojo.FacetSelection; 40 import eu.clarin.cmdi.vlo.pojo.QueryFacetsSelection; 41 import eu.clarin.cmdi.vlo.service.PageParametersConverter; 42 import eu.clarin.cmdi.vlo.service.solr.FacetFieldsService; 43 import eu.clarin.cmdi.vlo.service.solr.SolrDocumentService; 44 import eu.clarin.cmdi.vlo.wicket.model.FacetFieldsModel; 45 import eu.clarin.cmdi.vlo.wicket.model.SolrFieldDescriptionModel; 46 import eu.clarin.cmdi.vlo.wicket.model.SolrFieldNameModel; 47 import eu.clarin.cmdi.vlo.wicket.pages.FacetedSearchPage; 48 import eu.clarin.cmdi.vlo.wicket.pages.SimpleSearchPage; 46 49 47 50 /** … … 125 128 126 129 @Override 127 protected void onValuesSelected( String facet, FacetSelectionvalues, AjaxRequestTarget target) {130 protected void onValuesSelected(Collection<String> values, AjaxRequestTarget target) { 128 131 // value selected, make a new selection (in this panel we do not want to change the existing selection)... 129 132 final QueryFacetsSelection newSelection = selectionModel.getObject().getCopy(); 130 newSelection.selectValues( facet, values);133 newSelection.selectValues(getModelObject().getName(), new FacetSelection(values)); 131 134 // ...then submit to search page 132 135 setResponsePage(FacetedSearchPage.class, paramsConverter.toParameters(newSelection)); -
vlo/trunk/vlo-web-app/src/test/java/eu/clarin/cmdi/vlo/service/solr/impl/SearchResultsDaoImplTest.java
r6284 r6813 17 17 package eu.clarin.cmdi.vlo.service.solr.impl; 18 18 19 import com.google.common.collect.ImmutableList;20 19 import static eu.clarin.cmdi.vlo.FacetConstants.FIELD_COLLECTION; 21 20 import static eu.clarin.cmdi.vlo.FacetConstants.FIELD_COUNTRY; … … 23 22 import static eu.clarin.cmdi.vlo.FacetConstants.FIELD_ID; 24 23 import static eu.clarin.cmdi.vlo.FacetConstants.FIELD_NAME; 25 import eu.clarin.cmdi.vlo.config.VloConfig;26 import eu.clarin.cmdi.vlo.importer.CMDIData; 24 import static org.hamcrest.Matchers.equalTo; 25 27 26 import java.io.File; 28 27 import java.util.List; 28 29 29 import org.apache.solr.client.solrj.SolrQuery; 30 30 import org.apache.solr.client.solrj.embedded.EmbeddedSolrServer; … … 37 37 import org.junit.Before; 38 38 import org.junit.Test; 39 import static org.hamcrest.Matchers.*; 39 40 import com.google.common.collect.ImmutableList; 41 42 import eu.clarin.cmdi.vlo.config.VloConfig; 43 import eu.clarin.cmdi.vlo.importer.CMDIData; 40 44 41 45 /** -
vlo/trunk/vlo-web-app/src/test/java/eu/clarin/cmdi/vlo/wicket/model/FacetFieldModelTest.java
r4932 r6813 58 58 @Test 59 59 public void testGetObject() { 60 final FacetFieldModel instance = new FacetFieldModel( service, "facet4", selectionModel, 20);60 final FacetFieldModel instance = new FacetFieldModel("facet4", new FacetFieldsModel(service, ImmutableList.of("facet4"), selectionModel, 20)); 61 61 62 62 context.checking(new Expectations() { … … 83 83 @Test 84 84 public void testGetObjectNotIncluded() { 85 final FacetFieldModel instance = new FacetFieldModel( service, "facet4", selectionModel, 20);85 final FacetFieldModel instance = new FacetFieldModel("facet4", new FacetFieldsModel(service, ImmutableList.of("facet4"), selectionModel, 20)); 86 86 87 87 context.checking(new Expectations() { -
vlo/trunk/vlo-web-app/src/test/java/eu/clarin/cmdi/vlo/wicket/pages/TestFacetedSearchPage.java
r5231 r6813 60 60 will(returnValue(2L)); 61 61 atLeast(1).of(facetFieldsService).getFacetFields(with(any(QueryFacetsSelection.class)), with(any(List.class)), with(any(Integer.class))); 62 will(returnValue(Arrays.asList(new FacetField("collection"), new FacetField("language"), new FacetField("resource class")))); 62 will(returnValue(Arrays.asList( 63 new FacetField("languageCode"), 64 new FacetField("collection"), 65 new FacetField("resourceClass"), 66 new FacetField("country"), 67 new FacetField("modality"), 68 new FacetField("genre"), 69 new FacetField("subject"), 70 new FacetField("format"), 71 new FacetField("organisation"), 72 new FacetField("availability"), 73 new FacetField("nationalProject"), 74 new FacetField("keywords"), 75 new FacetField("dataProvider") 76 ))); 63 77 64 78 // mock search results
Note: See TracChangeset
for help on using the changeset viewer.