source: VirtualCollectionRegistry/tags/VirtualCollectionRegistry-0.4.0-alpha2/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/table/VirtualCollectionTable.java @ 5557

Last change on this file since 5557 was 5557, checked in by Twan Goosen, 10 years ago

tag for VCR alpha 2

  • Property svn:eol-style set to native
File size: 2.6 KB
Line 
1package eu.clarin.cmdi.virtualcollectionregistry.gui.table;
2
3import java.util.ArrayList;
4import java.util.List;
5
6import org.apache.wicket.behavior.AttributeAppender;
7import org.apache.wicket.extensions.ajax.markup.html.repeater.data.table.AjaxFallbackDefaultDataTable;
8import org.apache.wicket.extensions.ajax.markup.html.repeater.data.table.AjaxNavigationToolbar;
9import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable;
10import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
11import org.apache.wicket.markup.html.panel.Panel;
12import org.apache.wicket.model.AbstractReadOnlyModel;
13import org.apache.wicket.model.IModel;
14import org.apache.wicket.model.Model;
15
16import eu.clarin.cmdi.virtualcollectionregistry.gui.border.AjaxToggleBorder;
17import eu.clarin.cmdi.virtualcollectionregistry.model.VirtualCollection;
18
19@SuppressWarnings("serial")
20public 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
Note: See TracBrowser for help on using the repository browser.