1 | package eu.clarin.cmdi.virtualcollectionregistry.gui.table; |
---|
2 | |
---|
3 | import java.util.ArrayList; |
---|
4 | import java.util.List; |
---|
5 | |
---|
6 | import org.apache.wicket.behavior.AttributeAppender; |
---|
7 | import org.apache.wicket.extensions.ajax.markup.html.repeater.data.table.AjaxFallbackDefaultDataTable; |
---|
8 | import org.apache.wicket.extensions.ajax.markup.html.repeater.data.table.AjaxNavigationToolbar; |
---|
9 | import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable; |
---|
10 | import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn; |
---|
11 | import org.apache.wicket.markup.html.panel.Panel; |
---|
12 | import org.apache.wicket.model.AbstractReadOnlyModel; |
---|
13 | import org.apache.wicket.model.IModel; |
---|
14 | import org.apache.wicket.model.Model; |
---|
15 | |
---|
16 | import eu.clarin.cmdi.virtualcollectionregistry.gui.border.AjaxToggleBorder; |
---|
17 | import eu.clarin.cmdi.virtualcollectionregistry.model.VirtualCollection; |
---|
18 | |
---|
19 | @SuppressWarnings("serial") |
---|
20 | public abstract class VirtualCollectionTable extends Panel { |
---|
21 | |
---|
22 | public VirtualCollectionTable(String id, CollectionsProvider provider, final boolean showState) { |
---|
23 | super(id); |
---|
24 | setOutputMarkupId(true); |
---|
25 | |
---|
26 | // setup table provider |
---|
27 | List<IColumn<VirtualCollection>> columns = |
---|
28 | new ArrayList<IColumn<VirtualCollection>>(); |
---|
29 | columns.add(new ColumnName(this)); |
---|
30 | if (showState) { |
---|
31 | columns.add(new ColumnState(this)); |
---|
32 | } |
---|
33 | columns.add(new ColumnType(this)); |
---|
34 | columns.add(new ColumnCreated(this)); |
---|
35 | columns.add(new ColumnActions(this)); |
---|
36 | |
---|
37 | // setup table |
---|
38 | final DataTable<VirtualCollection> table = |
---|
39 | new AjaxFallbackDefaultDataTable<VirtualCollection>("table", |
---|
40 | columns, provider, 30); |
---|
41 | table.add(new AttributeAppender("class", |
---|
42 | new AbstractReadOnlyModel<String>() { |
---|
43 | @Override |
---|
44 | public String getObject() { |
---|
45 | return showState ? "private" : "public"; |
---|
46 | } |
---|
47 | }, " ")); |
---|
48 | table.addBottomToolbar(new AjaxNavigationToolbar(table)); |
---|
49 | |
---|
50 | // setup filter |
---|
51 | final AjaxToggleBorder border = |
---|
52 | new AjaxToggleBorder("border", new Model<String>("Filter")); |
---|
53 | final FilterForm form = |
---|
54 | new FilterForm("filterForm", provider, table, showState); |
---|
55 | border.add(form); |
---|
56 | add(border); |
---|
57 | add(table); |
---|
58 | } |
---|
59 | |
---|
60 | protected abstract Panel createActionColumn(String componentId, |
---|
61 | IModel<VirtualCollection> model); |
---|
62 | |
---|
63 | protected abstract Panel createActionPanel(String componentId, |
---|
64 | IModel<VirtualCollection> model); |
---|
65 | |
---|
66 | } // class VirtualCollectionTable |
---|