Changeset 5012


Ignore:
Timestamp:
04/17/14 15:08:27 (10 years ago)
Author:
Twan Goosen
Message:

added links to filter on value from record

Location:
vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/record
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/record/FieldsTablePanel.html

    r4872 r5012  
    3333                                <li wicket:id="values">
    3434                                    <wicket:container wicket:id="value">[value]</wicket:container>
     35                                    <a wicket:id="facetSelect" class="recordfacetselect" title="Search for similar"><span>[search for similar]</span></a>
    3536                                </li>
    3637                            </ul>
  • vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/record/FieldsTablePanel.java

    r4993 r5012  
    1717package eu.clarin.cmdi.vlo.wicket.panels.record;
    1818
     19import eu.clarin.cmdi.vlo.config.VloConfig;
    1920import eu.clarin.cmdi.vlo.pojo.DocumentField;
     21import eu.clarin.cmdi.vlo.pojo.FacetSelection;
     22import eu.clarin.cmdi.vlo.pojo.QueryFacetsSelection;
     23import eu.clarin.cmdi.vlo.service.PageParametersConverter;
    2024import eu.clarin.cmdi.vlo.wicket.model.SolrFieldNameModel;
     25import eu.clarin.cmdi.vlo.wicket.pages.FacetedSearchPage;
     26import java.util.Collections;
    2127import java.util.List;
    2228import org.apache.wicket.AttributeModifier;
    2329import org.apache.wicket.markup.html.basic.Label;
     30import org.apache.wicket.markup.html.link.Link;
    2431import org.apache.wicket.markup.html.list.ListItem;
    2532import org.apache.wicket.markup.html.list.ListView;
     
    3138import org.apache.wicket.model.IModel;
    3239import org.apache.wicket.model.PropertyModel;
     40import org.apache.wicket.spring.injection.annot.SpringBean;
    3341
    3442/**
     
    3846public class FieldsTablePanel extends Panel {
    3947
     48    @SpringBean
     49    private VloConfig vloConfig;
     50    @SpringBean(name = "queryParametersConverter")
     51    private PageParametersConverter<QueryFacetsSelection> paramsConverter;
     52
    4053    public FieldsTablePanel(String id, IDataProvider<DocumentField> fieldProvider) {
    4154        super(id);
     
    4356
    4457            @Override
    45             protected void populateItem(Item<DocumentField> item) {
     58            protected void populateItem(final Item<DocumentField> item) {
    4659                final IModel<DocumentField> fieldModel = item.getModel();
    47                 item.add(new Label("fieldName", new SolrFieldNameModel(new PropertyModel(fieldModel, "fieldName"))));
     60                final PropertyModel<String> fieldNameModel = new PropertyModel<String>(fieldModel, "fieldName");
     61                final SolrFieldNameModel friendlyFieldNameModel = new SolrFieldNameModel(fieldNameModel);
     62                item.add(new Label("fieldName", friendlyFieldNameModel));
    4863                final PropertyModel<List> valuesModel = new PropertyModel<List>(fieldModel, "values");
    4964                item.add(new ListView("values", valuesModel) {
    5065
    5166                    @Override
    52                     protected void populateItem(ListItem item) {
    53                         item.add(new Label("value", item.getModel()));
     67                    protected void populateItem(final ListItem fieldValueItem) {
     68                        fieldValueItem.add(new Label("value", fieldValueItem.getModel()));
     69                        fieldValueItem.add(createFacetSelectLink("facetSelect", fieldNameModel, fieldValueItem.getModel()));
    5470                    }
    5571                });
    56                
     72
    5773                // if field has multiple values, set 'multiple' class on markup element
    5874                item.add(new AttributeModifier("class", new AbstractReadOnlyModel<String>() {
     
    7187    }
    7288
     89    private Link createFacetSelectLink(String id, final IModel<String> facetNameModel, final IModel valueModel) {
     90        return new Link(id) {
     91
     92            @Override
     93            public void onClick() {
     94                final FacetSelection facetSelection = new FacetSelection(Collections.singleton(valueModel.getObject().toString()));
     95                final QueryFacetsSelection selection = new QueryFacetsSelection(Collections.singletonMap(facetNameModel.getObject(), facetSelection));
     96                setResponsePage(FacetedSearchPage.class, paramsConverter.toParameters(selection));
     97            }
     98
     99            @Override
     100            protected void onConfigure() {
     101                super.onConfigure();
     102                // only show for facet fields
     103                setVisible(vloConfig.getFacetFields().contains(facetNameModel.getObject()));
     104            }
     105
     106        };
     107    }
     108
    73109}
Note: See TracChangeset for help on using the changeset viewer.