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.extensions.ajax.markup.html.repeater.data.table.AjaxFallbackDefaultDataTable; |
---|
7 | import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable; |
---|
8 | import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn; |
---|
9 | import org.apache.wicket.extensions.markup.html.repeater.data.table.filter.FilterForm; |
---|
10 | import org.apache.wicket.extensions.markup.html.repeater.data.table.filter.FilterToolbar; |
---|
11 | import org.apache.wicket.markup.html.panel.FeedbackPanel; |
---|
12 | import org.apache.wicket.markup.html.panel.Panel; |
---|
13 | import org.apache.wicket.model.IModel; |
---|
14 | |
---|
15 | import eu.clarin.cmdi.virtualcollectionregistry.model.VirtualCollection; |
---|
16 | |
---|
17 | @SuppressWarnings("serial") |
---|
18 | public abstract class VirtualCollectionTable extends Panel { |
---|
19 | |
---|
20 | public VirtualCollectionTable(String id, boolean privateMode) { |
---|
21 | super(id); |
---|
22 | setOutputMarkupId(true); |
---|
23 | |
---|
24 | // create columns |
---|
25 | List<IColumn<VirtualCollection>> columns = |
---|
26 | new ArrayList<IColumn<VirtualCollection>>(); |
---|
27 | columns.add(new ColumnName(this)); |
---|
28 | columns.add(new ColumnType(this)); |
---|
29 | if (privateMode) { |
---|
30 | columns.add(new ColumnState(this)); |
---|
31 | } |
---|
32 | columns.add(new ColumnDescription(this)); |
---|
33 | columns.add(new ColumnCreated(this)); |
---|
34 | columns.add(new ColumnActions(this)); |
---|
35 | Provider provider = new Provider(privateMode); |
---|
36 | final FilterForm<FilterState> form = |
---|
37 | new FilterForm<FilterState>("filterform", provider); |
---|
38 | form.setOutputMarkupId(true); |
---|
39 | add(form); |
---|
40 | |
---|
41 | // table |
---|
42 | final DataTable<VirtualCollection> table = |
---|
43 | new AjaxFallbackDefaultDataTable<VirtualCollection>("table", |
---|
44 | columns, provider, 32); |
---|
45 | table.addTopToolbar(new FilterToolbar(table, form, provider)); |
---|
46 | table.setOutputMarkupId(true); |
---|
47 | form.add(table); |
---|
48 | form.add(new FeedbackPanel("feedback")); |
---|
49 | add(form); |
---|
50 | } |
---|
51 | |
---|
52 | protected abstract Panel createActionPanel(String componentId, |
---|
53 | IModel<VirtualCollection> model); |
---|
54 | |
---|
55 | } // class VirtualCollectionTable |
---|