Changeset 770


Ignore:
Timestamp:
10/11/10 15:09:10 (14 years ago)
Author:
patdui
Message:
  • made some things configurable
  • added "more..." page
  • Made all links bookmarkable
Location:
vlo/trunk/vlo_webapp/src
Files:
5 added
17 edited

Legend:

Unmodified
Added
Removed
  • vlo/trunk/vlo_webapp/src/main/java/eu/clarin/cmdi/vlo/Configuration.java

    r759 r770  
    44import java.net.URLEncoder;
    55
     6/**
     7 * see applicationContext.xml resource for proper values.
     8 *
     9 **/
    610public final class Configuration {
    7 
     11   
    812    private final static Configuration INSTANCE = new Configuration();
    913
    1014    private String solrUrl;
    1115
    12     private String imdiBrowserUrl = "http://corpus1.mpi.nl/ds/imdi_browser?openpath=";
     16    private String imdiBrowserUrl;// = "http://corpus1.mpi.nl/ds/imdi_browser?openpath=";
     17
     18    private String[] facetFields;// = new String[] { "origin", "organisation", "continent", "genre", "country", "subject", "language" };
    1319
    1420    private Configuration() {
     
    4147    }
    4248
     49    public String[] getFacetFields() {
     50        return facetFields;
     51    }
     52
     53    public void setFacetFields(String[] facetFields) {
     54        this.facetFields = facetFields;
     55    }
    4356}
  • vlo/trunk/vlo_webapp/src/main/java/eu/clarin/cmdi/vlo/dao/SearchResultsDao.java

    r759 r770  
    1414    private QueryResponse response;
    1515
    16     public SearchResultsDao() { //TODO Patrick doing query twice not good.
     16    public SearchResultsDao() {
    1717        super();
    1818    }
  • vlo/trunk/vlo_webapp/src/main/java/eu/clarin/cmdi/vlo/pages/DocumentLinkPanel.java

    r719 r770  
    1616        super(id, model);
    1717        SolrDocument doc = model.getObject();
    18         String param = ShowResultPage.PARAM_DOC_ID + "=" + WicketURLEncoder.QUERY_INSTANCE.encode(doc.getFieldValue("id").toString());
    19         PageParameters pageParameters = new PageParameters(param);
    20         pageParameters.put(FacetedSearchPage.PARAM_QUERY, query.getSolrQuery());
     18        PageParameters pageParameters = query.getPageParameters();
     19        pageParameters.put(ShowResultPage.PARAM_DOC_ID, WicketURLEncoder.QUERY_INSTANCE.encode(doc.getFieldValue("id").toString()));
    2120        BookmarkablePageLink<ShowResultPage> docLink = new BookmarkablePageLink<ShowResultPage>("docLink", ShowResultPage.class,
    2221                pageParameters);
  • vlo/trunk/vlo_webapp/src/main/java/eu/clarin/cmdi/vlo/pages/FacetBoxPanel.html

    r750 r770  
    99                                <tr valign="top">
    1010                                        <td width="50%" class="column">
    11                                           <span wicket:id="facetList"> <span wicket:id="facetLinks"></span><br></span>
    12                                           <span wicket:id="showMore"/>
     11                                          <span wicket:id="facetList"> <span wicket:id="facetLinks"></span></span>
     12                                          <a href="#" wicket:id="showMore">more...</a>
    1313                                        </td>
    1414                                </tr>
  • vlo/trunk/vlo_webapp/src/main/java/eu/clarin/cmdi/vlo/pages/FacetBoxPanel.java

    r750 r770  
    66import org.apache.solr.client.solrj.response.FacetField.Count;
    77import org.apache.solr.common.SolrDocument;
     8import org.apache.wicket.PageParameters;
    89import org.apache.wicket.extensions.ajax.markup.html.repeater.data.table.AjaxFallbackDefaultDataTable;
    910import org.apache.wicket.markup.html.WebMarkupContainer;
    1011import org.apache.wicket.markup.html.basic.Label;
     12import org.apache.wicket.markup.html.link.BookmarkablePageLink;
    1113import org.apache.wicket.markup.html.list.ListItem;
    1214import org.apache.wicket.markup.html.list.ListView;
     
    1719public class FacetBoxPanel extends Panel {
    1820
     21    private static final int MAX_NR_OF_FACET_VALUES = 5;
    1922    private static final long serialVersionUID = 1L;
    2023    private Label label;
     
    4245        List<Count> allValues = facetField.getValues();
    4346        List<Count> values = allValues;
    44         final boolean showMore = allValues != null && allValues.size() > 5;
     47        final boolean showMore = allValues != null && allValues.size() > MAX_NR_OF_FACET_VALUES;
    4548        if (showMore) {
    46             values = allValues.subList(0, 5);
     49            values = allValues.subList(0, MAX_NR_OF_FACET_VALUES);
    4750        }
    4851        ListView<Count> facetList = new ListView<Count>("facetList", values) {
     
    5861        };
    5962        add(facetList);
    60         add(new Label("showMore", "more... (coming soon)") {
     63        PageParameters pageParameters = query.getPageParameters();
     64        pageParameters.add(ShowAllFacetValuesPage.SELECTED_FACET_PARAM, facetField.getName());
     65        add(new BookmarkablePageLink("showMore", ShowAllFacetValuesPage.class, pageParameters) { //TODO PD when nr of facet values is 6 show all instead of 5+more
     66
    6167            public boolean isVisible() {
    6268                return !facetModel.isSelected() && showMore;
    6369            }
     70
    6471        });
    6572        return this;
  • vlo/trunk/vlo_webapp/src/main/java/eu/clarin/cmdi/vlo/pages/FacetHeaderPanel.java

    r750 r770  
    33import org.apache.wicket.PageParameters;
    44import org.apache.wicket.markup.html.basic.Label;
    5 import org.apache.wicket.markup.html.link.Link;
     5import org.apache.wicket.markup.html.link.BookmarkablePageLink;
    66import org.apache.wicket.markup.html.panel.Panel;
    77import org.apache.wicket.model.IModel;
     
    1111    private static final long serialVersionUID = 1L;
    1212
    13     @SuppressWarnings("serial")
    1413    public FacetHeaderPanel(String id, IModel<FacetModel> model, final SearchPageQuery query) {
    1514        super(id, model);
    16         add(new Link<FacetModel>("allLink", model) {
    17 
    18             @Override
    19             public void onClick() {
    20                 query.removeFilterQuery(getModelObject().getFacetField());
    21                 PageParameters pageParameters = new PageParameters();
    22                 pageParameters.put(FacetedSearchPage.PARAM_QUERY, query.getSolrQuery().toString());
    23                 setResponsePage(FacetedSearchPage.class, pageParameters);
    24             }
    25 
    26         });
     15        SearchPageQuery copy = query.getShallowCopy();
     16        copy.removeFilterQuery(model.getObject().getFacetField());
     17        PageParameters pageParameters = copy.getPageParameters();
     18        add(new BookmarkablePageLink("allLink", FacetedSearchPage.class, pageParameters));
    2719        add(new Label("headerLabelSelect", model.getObject().getSelectedValue()));
    2820    }
  • vlo/trunk/vlo_webapp/src/main/java/eu/clarin/cmdi/vlo/pages/FacetLinkPanel.html

    r719 r770  
    11<wicket:panel>
    2 <a href="#" wicket:id="facetLink"><span wicket:id="facetLinkLabel">[facetLink]</span></a> (<span wicket:id="facetCount"/>)
     2<a href="#" wicket:id="facetLink"><span wicket:id="facetLinkLabel">[facetLink]</span></a> (<span wicket:id="facetCount"/>)<br>
    33</wicket:panel>
  • vlo/trunk/vlo_webapp/src/main/java/eu/clarin/cmdi/vlo/pages/FacetLinkPanel.java

    r719 r770  
    44import org.apache.wicket.PageParameters;
    55import org.apache.wicket.markup.html.basic.Label;
     6import org.apache.wicket.markup.html.link.BookmarkablePageLink;
    67import org.apache.wicket.markup.html.link.Link;
    78import org.apache.wicket.markup.html.panel.Panel;
     
    1213    private static final long serialVersionUID = 1L;
    1314
    14     @SuppressWarnings("serial")
    1515    public FacetLinkPanel(String id, IModel<Count> model, final SearchPageQuery query) {
    1616        super(id, model);
    17         Link<Count> facetLink = new Link<Count>("facetLink", model) {
    1817
    19             @Override
    20             public void onClick() {
    21                 Count count = getModelObject();
    22                 query.setFilterQuery(count);
    23                 PageParameters pageParameters = new PageParameters();
    24                 pageParameters.put(FacetedSearchPage.PARAM_QUERY, query.getSolrQuery().toString());
    25                 setResponsePage(FacetedSearchPage.class, pageParameters);
    26             }
    27 
    28         };
     18        Count count = model.getObject();
     19        SearchPageQuery q = query.getShallowCopy();
     20        q.setFilterQuery(count);
     21        PageParameters params = q.getPageParameters();
     22        Link<Count> facetLink = new BookmarkablePageLink("facetLink", FacetedSearchPage.class, params);
    2923        facetLink.add(new Label("facetLinkLabel", model.getObject().getName()));
    3024        add(facetLink);
  • vlo/trunk/vlo_webapp/src/main/java/eu/clarin/cmdi/vlo/pages/FacetedSearchPage.html

    r750 r770  
    11<!doctype html public "-//W3C//DTD HTML 3.2 Final//EN">
    22<html>
    3 <head>
    4 <link rel=stylesheet type="text/css" href="css/main.css">
    5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    6 <title>CLARIN Virtual Language Observatory - Resources</title>
    7 </head>
    8 <body onload="">
    9 
    10 <div class="title">
    11 <h1>CLARIN Virtual Language Observatory - Resources</h1>
    12 <h2>Demonstrator with IMDI, OLAC, ELRA and CLARIN data (contact:vlw@clarin.eu)</h2>
    13 </div>
     3<head></head>
     4<body>
     5<wicket:extend>
    146<div class="middlegame">
    157<p />
     
    2315                    <input type="text"  wicket:id="searchQuery" />&nbsp;
    2416                    <button wicket:id="searchSubmit">submit</button>
    25 <!--                                <input type="submit" value="search"> -->
    26 <!--                                <input type="hidden" name="q" value=""> -->
    27 <!--                            <input type="hidden" name="facet" value=""> -->
    28 <!--                            <input type="hidden" name="in" value="all">-->
    2917                            </td>
    3018                        </tr>
     
    5038</table>
    5139</div>
     40</wicket:extend>
    5241</body>
    5342</html>
  • vlo/trunk/vlo_webapp/src/main/java/eu/clarin/cmdi/vlo/pages/FacetedSearchPage.java

    r750 r770  
    1212import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn;
    1313import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
    14 import org.apache.wicket.markup.html.WebPage;
    1514import org.apache.wicket.markup.html.basic.Label;
    1615import org.apache.wicket.markup.html.form.Button;
     
    2221import org.apache.wicket.model.IModel;
    2322import org.apache.wicket.model.Model;
    24 import org.apache.wicket.protocol.http.WicketURLDecoder;
    2523
    26 public class FacetedSearchPage extends WebPage {
     24public class FacetedSearchPage extends BasePage {
    2725
    2826    private static final long serialVersionUID = 1L;
    29 
    30     public static final String PARAM_QUERY = "query";
    3127
    3228    private AjaxFallbackDefaultDataTable<SolrDocument> searchResultList;
     
    3935    public FacetedSearchPage(final PageParameters parameters) {
    4036        super(parameters);
    41         String queryParam = WicketURLDecoder.QUERY_INSTANCE.decode(parameters.getString(PARAM_QUERY, null));
    42         if (queryParam != null) {
    43             query = new SearchPageQuery(queryParam);
    44         } else {
    45             query = SearchPageQuery.getDefaultQuery();
    46         }
     37        query = new SearchPageQuery(parameters);
    4738        addSearchBox();
    4839        addFacetColumns();
     
    6657        protected void onSubmit() {
    6758            SearchPageQuery query = getModelObject();
    68             PageParameters pageParameters = new PageParameters();
    69             pageParameters.put(FacetedSearchPage.PARAM_QUERY, query.getSolrQuery().toString());
     59            PageParameters pageParameters = query.getPageParameters();
    7060            setResponsePage(FacetedSearchPage.class, pageParameters);
    7161        }
     
    7969    @SuppressWarnings("serial")
    8070    private void addFacetColumns() {
    81         GridView<FacetField> facetColumns = new GridView<FacetField>("facetColumns", new SolrFacetDataProvider(query.getSolrQuery())) {
     71        GridView<FacetField> facetColumns = new GridView<FacetField>("facetColumns", new SolrFacetDataProvider(query.getSolrQuery().getCopy())) {
    8272            @Override
    8373            protected void populateItem(Item<FacetField> item) {
     
    9787    private void addSearchResults() {
    9888        List<IColumn<SolrDocument>> columns = new ArrayList<IColumn<SolrDocument>>();
    99         columns.add(new AbstractColumn<SolrDocument>(new Model<String>("Name")) {
     89        columns.add(new AbstractColumn<SolrDocument>(new Model<String>("Results")) {
    10090
    10191            @Override
     
    10494            }
    10595        });
    106         searchResultList = new AjaxFallbackDefaultDataTable("searchResults", columns, new SolrDocumentDataProvider(query.getSolrQuery()),
     96        searchResultList = new AjaxFallbackDefaultDataTable("searchResults", columns, new SolrDocumentDataProvider(query.getSolrQuery().getCopy()),
    10797                10);
    10898        add(searchResultList);
  • vlo/trunk/vlo_webapp/src/main/java/eu/clarin/cmdi/vlo/pages/SearchPageQuery.java

    r750 r770  
    88import org.apache.solr.client.solrj.response.FacetField;
    99import org.apache.solr.client.solrj.response.FacetField.Count;
     10import org.apache.solr.common.params.CommonParams;
     11import org.apache.wicket.PageParameters;
     12
     13import eu.clarin.cmdi.vlo.Configuration;
    1014
    1115public class SearchPageQuery implements Serializable {
     16
     17    private static final String SOLR_SEARCH_ALL = "*:*";
    1218
    1319    private static final long serialVersionUID = 1L;
    1420
    1521    private SolrQuery query;
    16     private Map<String, String> filterqueryMap = new HashMap<String, String>();
     22    private Map<String, String> filterQueryMap = new HashMap<String, String>();
     23    private String searchQuery;
    1724
    18     public SearchPageQuery(String queryParam) {
    19         //http://localhost:8983/solr/select/?wt=json&indent=on&q=*:*&fl=name&facet=true&facet.field=cat&facet.field=inStock
    20         //TODO PD test for encoding etc etcc, maybe don't encapulate the solr params inside on request param?
    21         query = new SolrQuery();
    22         String[] params = queryParam.split("&");
    23         for (String param : params) {
    24             String[] keyValue = param.split("=");
    25             query.add(keyValue[0], keyValue[1]);
    26         }
     25    public SearchPageQuery(PageParameters parameters) {
     26        query = getDefaultQuery();
     27        query.setQuery(parameters.getString(CommonParams.Q, SOLR_SEARCH_ALL));
     28        String[] filterQueries = parameters.getStringArray(CommonParams.FQ);
     29        query.setFilterQueries(filterQueries);
     30        init();
     31    }
     32
     33    public SearchPageQuery(SolrQuery query) {
     34        this.query = query;
     35        init();
     36    }
     37
     38    private void init() {
     39        searchQuery = query.getQuery();
    2740        String[] filterQueries = query.getFilterQueries();
    2841        if (filterQueries != null) {
    2942            for (String fq : filterQueries) {
    30                 String[] fqSplit = fq.split(":");
    31                 String facet = fqSplit[0];
    32                 filterqueryMap.put(facet, fqSplit[1]);
     43                String[] keyValue = fq.split(":");
     44                filterQueryMap.put(keyValue[0], keyValue[1]);
    3345            }
    3446        }
    3547    }
    3648
    37     public SearchPageQuery(SolrQuery query) {
    38         this.query = query;
     49    public SearchPageQuery getShallowCopy() {
     50        return new SearchPageQuery(query);
    3951    }
    4052
    41     public static SearchPageQuery getDefaultQuery() {
    42         SolrQuery query = new SolrQuery();
    43         query.setQuery("*:*");
    44         query.setRows(10);
    45         query.setStart(0);
    46         query.setFields("name", "id");
    47         query.setFacet(true);
    48         query.setFacetMinCount(1);
    49         query.addFacetField("origin", "continent", "organisation", "country", "language", "genre");//, "subject", "description");
    50         return new SearchPageQuery(query);
     53    private SolrQuery getDefaultQuery() {
     54        SolrQuery result = new SolrQuery();
     55        result.setRows(10);
     56        result.setStart(0);
     57        result.setFields("name", "id");
     58        result.setFacet(true);
     59        result.setFacetMinCount(1);
     60        result.addFacetField(Configuration.getInstance().getFacetFields());
     61        return result;
    5162    }
    5263
     
    5566    }
    5667
    57     public void setFilterQuery(Count count) {
    58         filterqueryMap.put(count.getFacetField().getName(), count.getName());
    59         setFilterQuery();
     68    public void removeFilterQuery(FacetField facetField) {
     69        filterQueryMap.remove(facetField.getName());
    6070    }
    6171
    62     private void setFilterQuery() {
    63         query.setFilterQueries((String[]) null);
    64         for (String facet : filterqueryMap.keySet()) {
    65             query.addFilterQuery(facet + ":" + filterqueryMap.get(facet));
    66         }
    67     }
    68 
    69     public void removeFilterQuery(FacetField facetField) {
    70         filterqueryMap.remove(facetField.getName());
    71         setFilterQuery();
     72    public void setFilterQuery(Count count) {
     73        filterQueryMap.put(count.getFacetField().getName(), count.getName());
    7274    }
    7375
    7476    public boolean isSelected(FacetField facetField) {
    75         return filterqueryMap.containsKey(facetField.getName());
     77        return filterQueryMap.containsKey(facetField.getName());
    7678    }
    7779
    7880    public String getSelectedValue(FacetField field) {
    79         return filterqueryMap.get(field.getName());
     81        return filterQueryMap.get(field.getName());
    8082    }
    8183
    8284    public void setSearchQuery(String searchQuery) {
    8385        if (searchQuery == null || searchQuery.isEmpty()) {
    84             searchQuery = "*:*"; //search all
     86            searchQuery = SOLR_SEARCH_ALL;
    8587        }
    8688        query.setQuery(searchQuery);
     89        this.searchQuery = searchQuery;
    8790    }
    8891
    8992    public String getSearchQuery() {
    90         String result = query.getQuery();
    91         if (result.equals("*:*")) {
    92             result = "";
     93        if (searchQuery.equals(SOLR_SEARCH_ALL)) {
     94            searchQuery = "";
     95        }
     96        return searchQuery;
     97    }
     98
     99    public PageParameters getPageParameters() {
     100        PageParameters result = new PageParameters();
     101        if (!getSearchQuery().isEmpty()) {
     102            result.add(CommonParams.Q, getSearchQuery());
     103        }
     104        for (String facet : filterQueryMap.keySet()) {
     105            String facetValue = filterQueryMap.get(facet);
     106            result.add(CommonParams.FQ, facet + ":" + facetValue);
    93107        }
    94108        return result;
  • vlo/trunk/vlo_webapp/src/main/java/eu/clarin/cmdi/vlo/pages/ShowResultPage.html

    r719 r770  
    11<!doctype html public "-//W3C//DTD HTML 3.2 Final//EN">
    22<html>
    3 <head>
    4 <link rel=stylesheet type="text/css" href="css/main.css">
    5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    6 <title>CLARIN Virtual Language Observatory - Resources</title>
    7 </head>
     3<head></head>
    84<body>
    9 
    10 <div class="title">
    11 <h1>CLARIN Virtual Language Observatory - Resources</h1>
    12 <h2>Demonstrator with IMDI, OLAC, ELRA and CLARIN data (contact:vlw@clarin.eu)</h2>
    13 </div>
    14 
    15 <div class="endgame">
    16 <div><a wicket:id="backLink" href="#">back to results</a>&nbsp;|&nbsp;<a wicket:id="openBrowserLink" href="#">open in IMDI Browser</a><p/></div>
    17 <table wicket:id="attributesTable">
    18 </table>
    19 </div>
     5<wicket:extend>
     6        <div class="endgame">
     7        <div><a wicket:id="backLink" href="#">back to results</a>&nbsp;|&nbsp;<a wicket:id="openBrowserLink" href="#">open in IMDI
     8        Browser</a>
     9        <p />
     10        </div>
     11        <table wicket:id="attributesTable">
     12        </table>
     13        </div>
     14</wicket:extend>
    2015</body>
    2116</html>
  • vlo/trunk/vlo_webapp/src/main/java/eu/clarin/cmdi/vlo/pages/ShowResultPage.java

    r759 r770  
    1010import org.apache.wicket.markup.ComponentTag;
    1111import org.apache.wicket.markup.MarkupStream;
    12 import org.apache.wicket.markup.html.WebPage;
    1312import org.apache.wicket.markup.html.basic.MultiLineLabel;
    1413import org.apache.wicket.markup.html.link.BookmarkablePageLink;
     
    2120import eu.clarin.cmdi.vlo.StringUtils;
    2221
    23 public class ShowResultPage extends WebPage {
     22public class ShowResultPage extends BasePage {
    2423
    2524    public static final String PARAM_DOC_ID = "docId";
     
    2827        super(parameters);
    2928        String docId = getPageParameters().getString(PARAM_DOC_ID, null);
    30         PageParameters params = new PageParameters();
    31         params.put(FacetedSearchPage.PARAM_QUERY, parameters.get(FacetedSearchPage.PARAM_QUERY));
    32         BookmarkablePageLink backLink = new BookmarkablePageLink("backLink", FacetedSearchPage.class, params);
     29        SearchPageQuery query = new SearchPageQuery(parameters);
     30        BookmarkablePageLink backLink = new BookmarkablePageLink("backLink", FacetedSearchPage.class, query.getPageParameters());
    3331        add(backLink);
    3432        String handle = docId.substring("test-".length());
  • vlo/trunk/vlo_webapp/src/main/java/eu/clarin/cmdi/vlo/pages/SolrDocumentDataProvider.java

    r719 r770  
    55import org.apache.solr.client.solrj.SolrQuery;
    66import org.apache.solr.common.SolrDocument;
     7import org.apache.solr.common.SolrDocumentList;
    78import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
    89import org.apache.wicket.model.IModel;
     
    1617    private static final long serialVersionUID = 1L;
    1718    private final SolrQuery query;
     19    private SolrDocumentList docList;
    1820
    1921    public SolrDocumentDataProvider(SolrQuery query) {
    2022        this.query = query;
     23        query.setFacet(false);
    2124    }
    2225
     
    2528    }
    2629
     30    private SolrDocumentList getDocList() {
     31        if (docList == null) {
     32            docList = getSearchResultsDao().getResults(query);
     33        }
     34        return docList;
     35    }
     36
    2737    @Override
    2838    public Iterator<? extends SolrDocument> iterator(int first, int count) {
    29         SearchResultsDao searchResultsDao = getSearchResultsDao();
    30         query.setStart(first).setRows(count);
    31         return searchResultsDao.getResults(query).iterator();
     39        if (first != query.getStart().intValue() || count != query.getRows().intValue()) {
     40            query.setStart(first).setRows(count);
     41            docList = null;
     42        }
     43        return getDocList().iterator();
    3244    }
    3345
     
    3951    @Override
    4052    public int size() {
    41         return (int) getSearchResultsDao().getResults(query).getNumFound();
     53        return (int) getDocList().getNumFound();
    4254    }
    4355
  • vlo/trunk/vlo_webapp/src/main/java/eu/clarin/cmdi/vlo/pages/SolrFacetDataProvider.java

    r719 r770  
    1717    private static final long serialVersionUID = 1L;
    1818    private final SolrQuery query;
     19    private List<FacetField> facets;
    1920
    2021    public SolrFacetDataProvider(SolrQuery query) {
    2122        this.query = query;
     23        query.setFacet(true).setStart(0).setRows(0); //only get facets
    2224    }
    2325
     
    2830    @Override
    2931    public Iterator<? extends FacetField> iterator(int first, int count) {
    30         SearchResultsDao searchResultsDao = getSearchResultsDao();
    31         query.setStart(first).setRows(count);
    32         List<FacetField> facets = searchResultsDao.getFacets(query);
    3332        return facets.iterator();
     33    }
     34
     35    private List<FacetField> getFacets() {
     36        if (facets == null) {
     37            SearchResultsDao searchResultsDao = getSearchResultsDao();
     38            facets = searchResultsDao.getFacets(query);
     39        }
     40        return facets;
    3441    }
    3542
     
    4148    @Override
    4249    public int size() {
    43         return (int) getSearchResultsDao().getFacets(query).size();
     50        return (int) getFacets().size();
    4451    }
    4552
  • vlo/trunk/vlo_webapp/src/main/resources/applicationContext.xml

    r759 r770  
    77    <!--        <property name="solrUrl" value="http://lux16.mpi.nl:8080/vlo_solr" />-->
    88    <property name="IMDIBrowserUrl" value="http://corpus1.mpi.nl/ds/imdi_browser?openpath=" />
     9    <property name="facetFields">
     10      <list> <!-- List of facets to be shown as columns, the order specified is kept in the application -->
     11        <value>origin</value>
     12        <value>organisation</value>
     13        <value>continent</value>
     14        <value>genre</value>
     15        <value>country</value>
     16        <value>subject</value>
     17        <value>language</value>
     18      </list>
     19    </property>
    920  </bean>
    1021
  • vlo/trunk/vlo_webapp/src/test/java/eu/clarin/cmdi/vlo/SearchPageQueryTest.java

    r719 r770  
    55
    66import org.apache.solr.client.solrj.response.FacetField;
     7import org.apache.solr.common.params.CommonParams;
     8import org.apache.wicket.PageParameters;
     9import org.junit.Before;
    710import org.junit.Test;
    811
     
    1114public class SearchPageQueryTest {
    1215
     16    @Before
     17    public void setup() {
     18        Configuration.getInstance().setFacetFields(new String[] { "origin", "continent", "organisation", "genre", "country", "language" });
     19    }
     20   
    1321    @Test
    1422    public void testQueryParse() throws Exception {
    15         String queryParam = "q=*:*&fl=name&facet=true&facet.field=cat&facet.field=inStock";
    16         SearchPageQuery q = new SearchPageQuery(queryParam);
    17         assertEquals("*:*", q.getSolrQuery().getQuery());
    18         assertEquals("name", q.getSolrQuery().getFields());
    19         assertEquals(2, q.getSolrQuery().getFacetFields().length);
    20         assertEquals("cat", q.getSolrQuery().getFacetFields()[0]);
    21         assertEquals("inStock", q.getSolrQuery().getFacetFields()[1]);
    22         assertNull(q.getSolrQuery().getFilterQueries());
    23        
    24         queryParam = "q=*:*&rows=10&start=0&fl=name,id&facet=true&facet.field=country&facet.field=genre&fq=country:New\\ Zealand";
    25         q = new SearchPageQuery(queryParam);
     23        PageParameters params = new PageParameters();
     24        SearchPageQuery q = new SearchPageQuery(params);
     25        assertEquals("", q.getSearchQuery());
    2626        assertEquals("*:*", q.getSolrQuery().getQuery());
    2727        assertEquals("name,id", q.getSolrQuery().getFields());
    28         assertEquals(2, q.getSolrQuery().getFacetFields().length);
    29         assertEquals("country", q.getSolrQuery().getFacetFields()[0]);
    30         assertEquals("genre", q.getSolrQuery().getFacetFields()[1]);
     28        assertEquals(6, q.getSolrQuery().getFacetFields().length);
     29        assertEquals("origin", q.getSolrQuery().getFacetFields()[0]);
     30        assertEquals("continent", q.getSolrQuery().getFacetFields()[1]);
     31        assertNull(q.getSolrQuery().getFilterQueries());
     32
     33        params = new PageParameters();
     34        params.add(CommonParams.Q, "test");
     35        params.add(CommonParams.FQ, "country:New\\ Zealand");
     36        q = new SearchPageQuery(params);
     37        assertEquals("test", q.getSearchQuery());
     38        assertEquals("test", q.getSolrQuery().getQuery());
     39        assertEquals("name,id", q.getSolrQuery().getFields());
     40        assertEquals(6, q.getSolrQuery().getFacetFields().length);
     41        assertEquals("origin", q.getSolrQuery().getFacetFields()[0]);
     42        assertEquals("continent", q.getSolrQuery().getFacetFields()[1]);
    3143        assertEquals(1, q.getSolrQuery().getFilterQueries().length);
    3244        assertEquals("country:New\\ Zealand", q.getSolrQuery().getFilterQueries()[0]);
Note: See TracChangeset for help on using the changeset viewer.