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

Last change on this file since 964 was 964, checked in by oschonef, 13 years ago
  • fix line-endings
  • add svn:eol-style properties
  • Property svn:eol-style set to native
File size: 2.4 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.ResourceModel;
17
18import eu.clarin.cmdi.virtualcollectionregistry.model.VirtualCollection;
19
20@SuppressWarnings("serial")
21final class ColumnState extends FilteredAbstractColumn<VirtualCollection> {
22    private static final 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 final EnumChoiceRenderer<VirtualCollection.State> renderer;
28
29    ColumnState(VirtualCollectionTable table) {
30        super(new ResourceModel("column.state", "State"), "state");
31        this.renderer = new EnumChoiceRenderer<VirtualCollection.State>(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, renderer, true);
42    }
43
44    @Override
45    public void populateItem(
46            Item<ICellPopulator<VirtualCollection>> item,
47            String componentId, IModel<VirtualCollection> model) {
48        final VirtualCollection.State state = model.getObject().getState();
49        final String label = renderer.getDisplayValue(state).toString();
50        item.add(new Label(componentId, label));
51    }
52
53    @Override
54    public String getCssClass() {
55        return "state";
56    }
57
58} // class ColumnState
Note: See TracBrowser for help on using the repository browser.