source: VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/table/ColumnState.java @ 960

Last change on this file since 960 was 960, checked in by oschonef, 14 years ago
  • initial commit for sort/filtering capabilities
File size: 2.6 KB
Line 
1package eu.clarin.cmdi.virtualcollectionregistry.gui.table;
2
3import java.util.Arrays;
4import java.util.List;
5
6import org.apache.wicket.Component;
7import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
8import org.apache.wicket.extensions.markup.html.repeater.data.table.filter.ChoiceFilter;
9import org.apache.wicket.extensions.markup.html.repeater.data.table.filter.FilterForm;
10import org.apache.wicket.extensions.markup.html.repeater.data.table.filter.FilteredAbstractColumn;
11import org.apache.wicket.markup.html.basic.Label;
12import org.apache.wicket.markup.html.form.EnumChoiceRenderer;
13import org.apache.wicket.markup.repeater.Item;
14import org.apache.wicket.model.IModel;
15import org.apache.wicket.model.PropertyModel;
16import org.apache.wicket.model.StringResourceModel;
17
18import eu.clarin.cmdi.virtualcollectionregistry.model.VirtualCollection;
19
20@SuppressWarnings("serial")
21final class ColumnState extends FilteredAbstractColumn<VirtualCollection> {
22    private final static List<VirtualCollection.State> STATE_VALUES =
23        Arrays.asList(VirtualCollection.State.PRIVATE,
24                      VirtualCollection.State.PUBLIC,
25                      VirtualCollection.State.PUBLIC_PENDING,
26                      VirtualCollection.State.DELETED);
27    private transient final VirtualCollectionTable table;
28
29    ColumnState(VirtualCollectionTable table) {
30        super(new StringResourceModel("column.state", table, null), "state");
31        this.table = table;
32    }
33
34    @Override
35    public Component getFilter(String componentId, FilterForm<?> form) {
36        final FilterState state =
37            (FilterState) form.getStateLocator().getFilterState();
38        final IModel<VirtualCollection.State> model =
39            new PropertyModel<VirtualCollection.State>(state, "state");
40        return new ChoiceFilter<VirtualCollection.State>(componentId, model,
41                form, STATE_VALUES, 
42                new EnumChoiceRenderer<VirtualCollection.State>(table), false);
43    }
44
45    @Override
46    public void populateItem(
47            Item<ICellPopulator<VirtualCollection>> item,
48            String componentId, IModel<VirtualCollection> model) {
49        final VirtualCollection.State value = model.getObject().getState();
50        final String key =
51            value.getDeclaringClass().getSimpleName() + "." + value.name();
52        item.add(new Label(componentId,
53                new StringResourceModel(key, table, null)));
54    }
55
56    @Override
57    public String getCssClass() {
58        return "state";
59    }
60
61} // class ColumnState
Note: See TracBrowser for help on using the repository browser.