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

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

refactored provider into an abstract provider with an abstract method for selecting the collections space. extended by concrete providers for the pulished collections and private collections. also renamed it to CollectionsProvider?

  • 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.