Changeset 4553


Ignore:
Timestamp:
02/25/14 10:51:06 (10 years ago)
Author:
twagoo
Message:

added search result page indicator

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

Legend:

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

    r4551 r4553  
    2727            <div id="searchresultsheader">
    2828                <span wicket:id="resultCount" id="searchresultcount">604056 results</span>
    29                 <span id="searchresultpagecount">Showing 1 to 25</span>
     29                <span wicket:id="resultPageIndicator" id="searchresultpagecount">Showing 1 to 25</span>
    3030
    3131                <div class="searchresultpagination">
  • vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/components/SearchResultsPanel.java

    r4551 r4553  
    2626import org.apache.wicket.ajax.markup.html.navigation.paging.AjaxPagingNavigator;
    2727import org.apache.wicket.markup.html.basic.Label;
     28import org.apache.wicket.markup.html.navigation.paging.IPageableItems;
    2829import org.apache.wicket.markup.html.panel.Panel;
    2930import org.apache.wicket.markup.repeater.Item;
     
    4849        super(id, model);
    4950        solrDocumentProvider = new SolrDocumentProvider(documentService, model);
    50         add(new Label("resultCount", new AbstractReadOnlyModel<Long>() {
    5151
    52             @Override
    53             public Long getObject() {
    54                 return solrDocumentProvider.size();
    55             }
    56         }));
    57        
    58         final DataView<SolrDocument> resultsView = new DataView<SolrDocument>("resultItem", solrDocumentProvider, 10) {
    59            
     52        // dynamic results view
     53        final DataView<SolrDocument> resultsView = createResultsView("resultItem");
     54        add(resultsView);
     55
     56        // pagination navigators
     57        add(new AjaxPagingNavigator("pagingTop", resultsView));
     58        add(new AjaxPagingNavigator("pagingBottom", resultsView));
     59
     60        // total result counter
     61        add(createResultCount("resultCount"));
     62
     63        // page result indicater
     64        add(createResultPageIndicator("resultPageIndicator", resultsView));
     65
     66        //For Ajax updating of search results
     67        setOutputMarkupId(true);
     68    }
     69
     70    private DataView<SolrDocument> createResultsView(String id) {
     71        final DataView<SolrDocument> resultsView = new DataView<SolrDocument>(id, solrDocumentProvider, 10) {
     72
    6073            @Override
    6174            protected void populateItem(Item<SolrDocument> item) {
     
    6679            }
    6780        };
    68         add(resultsView);
     81        return resultsView;
     82    }
    6983
    70         add(new AjaxPagingNavigator("pagingTop", resultsView));
    71         add(new AjaxPagingNavigator("pagingBottom", resultsView));
    72        
    73         //For Ajax updating of search results
    74         setOutputMarkupId(true);
     84    private Label createResultCount(String id) {
     85        final IModel<String> resultCountModel = new AbstractReadOnlyModel<String>() {
     86           
     87            @Override
     88            public String getObject() {
     89                return String.format("%d results", solrDocumentProvider.size());
     90            }
     91        };
     92        return new Label(id, resultCountModel);
     93    }
     94
     95    private Label createResultPageIndicator(String id, final IPageableItems resultsView) {
     96        IModel<String> indicatorModel = new AbstractReadOnlyModel<String>() {
     97
     98            @Override
     99            public String getObject() {
     100                final long firstShown = 1 + resultsView.getCurrentPage() * resultsView.getItemsPerPage();
     101                final long lastShown = Math.min(resultsView.getItemCount(), firstShown + resultsView.getItemsPerPage() - 1);
     102                return String.format("Showing %d to %d", firstShown, lastShown);
     103            }
     104        };
     105        return new Label(id, indicatorModel);
    75106    }
    76107
Note: See TracChangeset for help on using the changeset viewer.