Ignore:
Timestamp:
03/10/14 10:44:20 (10 years ago)
Author:
Twan Goosen
Message:

created panel for showing all facet values

File:
1 edited

Legend:

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

    r4661 r4662  
    2525import org.apache.wicket.ajax.AjaxRequestTarget;
    2626import org.apache.wicket.ajax.markup.html.AjaxFallbackLink;
     27import org.apache.wicket.markup.html.WebMarkupContainer;
    2728import org.apache.wicket.markup.html.basic.Label;
    2829import org.apache.wicket.markup.html.link.Link;
    29 import org.apache.wicket.markup.html.panel.Panel;
     30import org.apache.wicket.markup.html.panel.GenericPanel;
    3031import org.apache.wicket.markup.repeater.Item;
    3132import org.apache.wicket.markup.repeater.data.DataView;
     
    3940 * @author twagoo
    4041 */
    41 public abstract class FacetValuesPanel extends Panel {
     42public abstract class FacetValuesPanel extends GenericPanel<FacetField> {
    4243
    4344    private final int maxNumberOfFacetsToShow = 10; //TODO: get from config
    4445
    45     public FacetValuesPanel(String id, IModel<FacetField> model) {
     46    private final WebMarkupContainer allValuesContainer;
     47
     48    public FacetValuesPanel(String id, final IModel<FacetField> model) {
    4649        super(id, model);
    4750
     
    5861            }
    5962        });
     63
     64        allValuesContainer = createAllValuesPanel("allValuesContainer");
     65        add(allValuesContainer);
     66        add(createAllValuesLink("allFacetValuesLink"));
    6067    }
    6168
     
    8491    }
    8592
     93    private WebMarkupContainer createAllValuesPanel(final String id) {
     94        final WebMarkupContainer container = new WebMarkupContainer(id);
     95        container.setOutputMarkupId(true);
     96        WebMarkupContainer allValuesPlaceholder = createPlaceHolder("allValues");
     97        container.add(allValuesPlaceholder);
     98        return container;
     99    }
     100
     101    private AjaxFallbackLink createAllValuesLink(String id) {
     102        final AjaxFallbackLink link = new AjaxFallbackLink(id) {
     103
     104            @Override
     105            public void onClick(AjaxRequestTarget target) {
     106                final IModel<FacetField> model = FacetValuesPanel.this.getModel();
     107                final AllFacetValuesPanel allValuesPanel = new AllFacetValuesPanel("allValues", model) {
     108
     109                    @Override
     110                    protected void onCanceled(AjaxRequestTarget target) {
     111                        hideAllValuesPanel();
     112                        if (target != null) {
     113                            target.add(allValuesContainer);
     114                        }
     115                    }
     116
     117                    @Override
     118                    protected void onValuesSelected(String facet, Collection<String> values, AjaxRequestTarget target) {
     119                        hideAllValuesPanel();
     120                        onValuesSelected(facet, values, target);
     121                    }
     122                };
     123                allValuesContainer.addOrReplace(allValuesPanel);
     124                if (target != null) {
     125                    target.add(allValuesContainer);
     126                }
     127            }
     128
     129            private void hideAllValuesPanel() {
     130                allValuesContainer.addOrReplace(createPlaceHolder("allValues"));
     131            }
     132        };
     133        return link;
     134    }
     135
     136    private WebMarkupContainer createPlaceHolder(final String id) {
     137        final WebMarkupContainer placeholder = new WebMarkupContainer(id);
     138        placeholder.setVisible(false);
     139        return placeholder;
     140    }
     141
    86142    /**
    87143     * Callback triggered when values have been selected on this facet
Note: See TracChangeset for help on using the changeset viewer.