Changeset 4663


Ignore:
Timestamp:
03/10/14 12:50:26 (10 years ago)
Author:
Twan Goosen
Message:

All facet values panel now shown in a modal window

Location:
vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket
Files:
1 added
1 deleted
5 edited

Legend:

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

    r4662 r4663  
    2424    <body>
    2525        <wicket:panel>
    26 
    27             <div><a wicket:id="cancel" href="" id="facetvaluescancel">Cancel</a></div>
    28             <h2 wicket:id="title">Resource type</h2>
    2926            <p>All values in this facet</p>
    3027            <p>Sort by <select><option>name</option><option>count</option></select></p>
  • vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/AllFacetValuesPanel.java

    r4662 r4663  
    1717package eu.clarin.cmdi.vlo.wicket.panels;
    1818
    19 import eu.clarin.cmdi.vlo.wicket.components.SolrFieldNameLabel;
    2019import eu.clarin.cmdi.vlo.wicket.provider.FacetFieldValuesProvider;
    2120import java.util.Collection;
     
    2423import org.apache.wicket.ajax.AjaxRequestTarget;
    2524import org.apache.wicket.ajax.markup.html.AjaxFallbackLink;
    26 import org.apache.wicket.markup.html.WebMarkupContainer;
    2725import org.apache.wicket.markup.html.basic.Label;
    2826import org.apache.wicket.markup.html.link.Link;
     
    3230import org.apache.wicket.model.CompoundPropertyModel;
    3331import org.apache.wicket.model.IModel;
    34 import org.apache.wicket.model.PropertyModel;
    3532
    3633/**
     
    4239    public AllFacetValuesPanel(String id, IModel<FacetField> model) {
    4340        super(id, model);
    44 
    45         add(new AjaxFallbackLink("cancel") {
    46 
    47             @Override
    48             public void onClick(AjaxRequestTarget target) {
    49                 onCanceled(target);
    50             }
    51         });
    52 
    53         // add title
    54         add(new SolrFieldNameLabel("title", new PropertyModel<String>(model, "name")));
    5541
    5642        // provider that extracts values and counts from FacetField
     
    8672    }
    8773
    88     protected abstract void onCanceled(AjaxRequestTarget target);
    89 
    9074    /**
    9175     * Callback triggered when values have been selected on this facet
  • vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/FacetValuesPanel.html

    r4662 r4663  
    2525        <wicket:panel>
    2626            <h1><a href="#"><wicket:container wicket:id="title">[TITLE]</wicket:container></a></h1>
     27            <div wicket:id="allValues" class="allFacetValues">[ALL VALUES]</div>
    2728            <div class="sbilinks facetvalues">
    2829                <ul>
     
    3637                </form>
    3738            -->
    38             <div wicket:id="allValuesContainer">
    39                 <div wicket:id="allValues" class="allFacetValues">[ALL VALUES]</div>
    40             </div>
    4139        </wicket:panel>
    4240    </body>
  • vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/FacetValuesPanel.java

    r4662 r4663  
    1717package eu.clarin.cmdi.vlo.wicket.panels;
    1818
    19 import eu.clarin.cmdi.vlo.wicket.components.SolrFieldNameLabel;
     19import eu.clarin.cmdi.vlo.wicket.model.SolrFieldNameModel;
    2020import eu.clarin.cmdi.vlo.wicket.provider.FacetFieldValuesProvider;
    2121import java.util.Collection;
     
    2525import org.apache.wicket.ajax.AjaxRequestTarget;
    2626import org.apache.wicket.ajax.markup.html.AjaxFallbackLink;
    27 import org.apache.wicket.markup.html.WebMarkupContainer;
     27import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
    2828import org.apache.wicket.markup.html.basic.Label;
    2929import org.apache.wicket.markup.html.link.Link;
     
    3333import org.apache.wicket.model.CompoundPropertyModel;
    3434import org.apache.wicket.model.IModel;
    35 import org.apache.wicket.model.PropertyModel;
    3635
    3736/**
     
    4443    private final int maxNumberOfFacetsToShow = 10; //TODO: get from config
    4544
    46     private final WebMarkupContainer allValuesContainer;
     45    private final ModalWindow valuesWindow;
    4746
    4847    public FacetValuesPanel(String id, final IModel<FacetField> model) {
     
    5049
    5150        // add title
    52         add(new SolrFieldNameLabel("title", new PropertyModel<String>(model, "name")));
     51        add(new Label("title", new SolrFieldNameModel(model, "name")));
    5352
    5453        // provider that extracts values and counts from FacetField
     
    6261        });
    6362
    64         allValuesContainer = createAllValuesPanel("allValuesContainer");
    65         add(allValuesContainer);
     63        valuesWindow = createAllValuesWindow("allValues");
     64        add(valuesWindow);
    6665        add(createAllValuesLink("allFacetValuesLink"));
    6766    }
     
    9190    }
    9291
    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;
     92    private ModalWindow createAllValuesWindow(String id) {
     93        final ModalWindow window = new ModalWindow(id) {
     94
     95            @Override
     96            public IModel<String> getTitle() {
     97                return new SolrFieldNameModel(getModel(), "name");
     98            }
     99
     100        };
     101
     102        final AllFacetValuesPanel allValuesPanel = new AllFacetValuesPanel(window.getContentId(), getModel()) {
     103
     104            @Override
     105            protected void onValuesSelected(String facet, Collection<String> values, AjaxRequestTarget target) {
     106                window.close(target);
     107                FacetValuesPanel.this.onValuesSelected(facet, values, target);
     108            }
     109        };
     110        window.addOrReplace(allValuesPanel);
     111        return window;
    99112    }
    100113
     
    104117            @Override
    105118            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"));
     119                //TODO: No-javascript alternative (i.e. when target==null)
     120                valuesWindow.show(target);
    131121            }
    132122        };
    133123        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;
    140124    }
    141125
  • vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/FieldsTablePanel.java

    r4661 r4663  
    1818
    1919import eu.clarin.cmdi.vlo.pojo.DocumentField;
    20 import eu.clarin.cmdi.vlo.wicket.components.SolrFieldNameLabel;
     20import eu.clarin.cmdi.vlo.wicket.model.SolrFieldNameModel;
    2121import org.apache.wicket.markup.html.basic.Label;
    2222import org.apache.wicket.markup.html.list.ListItem;
     
    4242            protected void populateItem(Item<DocumentField> item) {
    4343                final IModel<DocumentField> fieldModel = item.getModel();
    44                 item.add(new SolrFieldNameLabel("fieldName", new PropertyModel(fieldModel, "fieldName")));
     44                item.add(new Label("fieldName", new SolrFieldNameModel(new PropertyModel(fieldModel, "fieldName"))));
    4545                item.add(new ListView("values", new PropertyModel(fieldModel, "values")) {
    4646
Note: See TracChangeset for help on using the changeset viewer.