Changeset 4599


Ignore:
Timestamp:
02/28/14 13:23:04 (10 years ago)
Author:
Twan Goosen
Message:

Ajax updating on facet value selection

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

Legend:

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

    r4595 r4599  
    2323import org.apache.solr.client.solrj.response.FacetField;
    2424import org.apache.wicket.ajax.AjaxRequestTarget;
    25 import org.apache.wicket.behavior.Behavior;
    2625import org.apache.wicket.markup.html.panel.Panel;
    2726import org.apache.wicket.model.IModel;
     
    3635 * @author twagoo
    3736 */
    38 public class FacetPanel extends Panel {
     37public abstract class FacetPanel extends Panel {
    3938
    4039    private final IModel<FacetSelection> model;
     
    7473                if (target != null) {
    7574                    // reload entire page for now
    76                     target.add(getPage());
     75                    selectionChanged(target);
    7776                }
    7877            }
     
    9392                if (target != null) {
    9493                    // reload entire page for now
    95                     target.add(getPage());
     94                    selectionChanged(target);
    9695                }
    9796            }
     
    9998    }
    10099
     100    protected abstract void selectionChanged(AjaxRequestTarget target);
     101
    101102}
  • vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/components/FacetsPanel.java

    r4588 r4599  
    2121import java.util.List;
    2222import org.apache.solr.client.solrj.response.FacetField;
     23import org.apache.wicket.ajax.AjaxRequestTarget;
    2324import org.apache.wicket.markup.html.list.ListItem;
    2425import org.apache.wicket.markup.html.list.ListView;
     
    3435 * @author twagoo
    3536 */
    36 public class FacetsPanel extends Panel {
     37public abstract class FacetsPanel extends Panel {
    3738
    3839    /**
     
    5253            protected void populateItem(ListItem<FacetField> item) {
    5354                item.add(
    54                         new FacetPanel("facet", new FacetSelectionModel(item.getModel(), selectionModel))
     55                        new FacetPanel("facet", new FacetSelectionModel(item.getModel(), selectionModel)) {
     56
     57                            @Override
     58                            protected void selectionChanged(AjaxRequestTarget target) {
     59                                FacetsPanel.this.selectionChanged(target);
     60                            }
     61                        }
    5562                );
    5663            }
    5764        });
    5865    }
     66   
     67    protected abstract void selectionChanged(AjaxRequestTarget target);
    5968}
  • vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/pages/FacetedSearchPage.html

    r4598 r4599  
    6464            <div class="facet collapsedfacet topbar" id="collections">
    6565                <div class="rtop"><div class="r1"></div><div class="r2"></div><div class="r3"></div><div class="r4"></div></div>
    66                 <wicket:container wicket:id="collectionsFacet">[COLLECTIONS]</wicket:container>
     66                <div wicket:id="collectionsFacet">[COLLECTIONS]</div>
    6767<!--                <p>
    6868                    Searching in all collections (604056 records).
  • vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/pages/FacetedSearchPage.java

    r4595 r4599  
    1515import java.util.Map;
    1616import org.apache.solr.client.solrj.response.FacetField;
    17 import org.apache.wicket.behavior.AttributeAppender;
     17import org.apache.wicket.ajax.AjaxRequestTarget;
    1818import org.apache.wicket.request.mapper.parameter.PageParameters;
    1919import org.apache.wicket.markup.html.WebPage;
     
    3737    private VloConfig vloConfig;
    3838
     39    private final Panel searchResultsPanel;
     40    private final Panel facetsPanel;
     41    private final Panel collectionsPanel;
     42
    3943    public FacetedSearchPage(final PageParameters parameters) {
    4044        super(parameters);
     
    4347        final Model<QueryFacetsSelection> queryModel = new Model<QueryFacetsSelection>(selection);
    4448
    45         add(createCollectionsPanel("collectionsFacet", queryModel));
    46         add(createFacetsPanel("facets", queryModel));
    47        
    48         add(new SearchForm("search", queryModel));
    49         add(new SearchResultsPanel("searchResults", queryModel));
     49        final SearchForm searchForm = new SearchForm("search", queryModel);
     50        add(searchForm);
     51
     52        collectionsPanel = createCollectionsPanel("collectionsFacet", queryModel);
     53        add(collectionsPanel);
     54
     55        facetsPanel = createFacetsPanel("facets", queryModel);
     56        add(facetsPanel);
     57
     58        searchResultsPanel = new SearchResultsPanel("searchResults", queryModel);
     59        add(searchResultsPanel);
    5060    }
    5161
     
    5363        final FacetFieldModel collectionFacetFieldModel = new FacetFieldModel(facetFieldsService, vloConfig.getCollectionFacet(), queryModel);
    5464        final FacetSelectionModel collectionSelectionModel = new FacetSelectionModel(collectionFacetFieldModel, queryModel);
    55         final FacetPanel panel = new FacetPanel(id, collectionSelectionModel);
     65        final FacetPanel panel = new FacetPanel(id, collectionSelectionModel) {
     66
     67            @Override
     68            protected void selectionChanged(AjaxRequestTarget target) {
     69                updateSelection(target);
     70            }
     71        };
     72        panel.setOutputMarkupId(true);
    5673        return panel;
    5774    }
     
    5976    private Panel createFacetsPanel(final String id, final Model<QueryFacetsSelection> queryModel) {
    6077        final IModel<List<FacetField>> facetFieldsModel = new FacetFieldsModel(facetFieldsService, vloConfig.getFacetFields(), queryModel);
    61         final FacetsPanel facetsPanel = new FacetsPanel(id, facetFieldsModel, queryModel);
    62         return facetsPanel;
     78        final FacetsPanel panel = new FacetsPanel(id, facetFieldsModel, queryModel) {
     79
     80            @Override
     81            protected void selectionChanged(AjaxRequestTarget target) {
     82                updateSelection(target);
     83            }
     84        };
     85        panel.setOutputMarkupId(true);
     86        return panel;
     87    }
     88
     89    private void updateSelection(AjaxRequestTarget target) {
     90        // selection changed, update facets and search results
     91        target.add(searchResultsPanel);
     92        target.add(facetsPanel);
     93        target.add(collectionsPanel);
    6394    }
    6495
Note: See TracChangeset for help on using the changeset viewer.