diff options
Diffstat (limited to 'src/com')
19 files changed, 354 insertions, 4 deletions
diff --git a/src/com/itmill/toolkit/demo/sampler/FeatureSet.java b/src/com/itmill/toolkit/demo/sampler/FeatureSet.java index 00d77d9250..32313c4317 100644 --- a/src/com/itmill/toolkit/demo/sampler/FeatureSet.java +++ b/src/com/itmill/toolkit/demo/sampler/FeatureSet.java @@ -39,7 +39,15 @@ import com.itmill.toolkit.demo.sampler.features.selects.ListSelectMultiple; import com.itmill.toolkit.demo.sampler.features.selects.ListSelectSingle; import com.itmill.toolkit.demo.sampler.features.selects.NativeSelection; import com.itmill.toolkit.demo.sampler.features.selects.TwinColumnSelect; +import com.itmill.toolkit.demo.sampler.features.table.TableActions; +import com.itmill.toolkit.demo.sampler.features.table.TableColumnAlignment; +import com.itmill.toolkit.demo.sampler.features.table.TableColumnCollapsing; +import com.itmill.toolkit.demo.sampler.features.table.TableColumnHeaders; import com.itmill.toolkit.demo.sampler.features.table.TableColumnReordering; +import com.itmill.toolkit.demo.sampler.features.table.TableHeaderIcons; +import com.itmill.toolkit.demo.sampler.features.table.TableLazyLoading; +import com.itmill.toolkit.demo.sampler.features.table.TableRowHeaders; +import com.itmill.toolkit.demo.sampler.features.table.TableSorting; import com.itmill.toolkit.demo.sampler.features.tabsheets.TabSheetDisabled; import com.itmill.toolkit.demo.sampler.features.tabsheets.TabSheetIcons; import com.itmill.toolkit.demo.sampler.features.tabsheets.TabSheetScrolling; @@ -253,8 +261,16 @@ public class FeatureSet extends Feature { public Tables() { super("Table (Grid)", new Feature[] { // + new TableColumnHeaders(), // + new TableRowHeaders(), // + new TableHeaderIcons(), // new TableColumnReordering(), // - }); + new TableColumnCollapsing(), // + new TableSorting(), // + new TableColumnAlignment(), // + new TableActions(), // + new TableLazyLoading(), // + }); } } diff --git a/src/com/itmill/toolkit/demo/sampler/features/table/TableActions.java b/src/com/itmill/toolkit/demo/sampler/features/table/TableActions.java new file mode 100644 index 0000000000..7ccfd6f305 --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/table/TableActions.java @@ -0,0 +1,38 @@ +package com.itmill.toolkit.demo.sampler.features.table; + +import com.itmill.toolkit.demo.sampler.APIResource; +import com.itmill.toolkit.demo.sampler.Feature; +import com.itmill.toolkit.demo.sampler.NamedExternalResource; +import com.itmill.toolkit.ui.Component; + +public class TableActions extends Feature { + + @Override + public Component getExample() { + return new TableMainFeaturesExample(); + } + + @Override + public String getDescription() { + return "Actions can be added to each row, and are show in the a context menu when right-clicking (or ctrl-clicking)."; + } + + @Override + public APIResource[] getRelatedAPI() { + // TODO Auto-generated method stub + return null; + } + + @Override + public Class[] getRelatedFeatures() { + // TODO Auto-generated method stub + return null; + } + + @Override + public NamedExternalResource[] getRelatedResources() { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/src/com/itmill/toolkit/demo/sampler/features/table/TableActions.png b/src/com/itmill/toolkit/demo/sampler/features/table/TableActions.png Binary files differnew file mode 100644 index 0000000000..98010bb75d --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/table/TableActions.png diff --git a/src/com/itmill/toolkit/demo/sampler/features/table/TableColumnAlignment.java b/src/com/itmill/toolkit/demo/sampler/features/table/TableColumnAlignment.java new file mode 100644 index 0000000000..61f9b22b13 --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/table/TableColumnAlignment.java @@ -0,0 +1,38 @@ +package com.itmill.toolkit.demo.sampler.features.table; + +import com.itmill.toolkit.demo.sampler.APIResource; +import com.itmill.toolkit.demo.sampler.Feature; +import com.itmill.toolkit.demo.sampler.NamedExternalResource; +import com.itmill.toolkit.ui.Component; + +public class TableColumnAlignment extends Feature { + + @Override + public Component getExample() { + return new TableMainFeaturesExample(); + } + + @Override + public String getDescription() { + return "Columns can be aligned left (default), center or right."; + } + + @Override + public APIResource[] getRelatedAPI() { + // TODO Auto-generated method stub + return null; + } + + @Override + public Class[] getRelatedFeatures() { + // TODO Auto-generated method stub + return null; + } + + @Override + public NamedExternalResource[] getRelatedResources() { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/src/com/itmill/toolkit/demo/sampler/features/table/TableColumnAlignment.png b/src/com/itmill/toolkit/demo/sampler/features/table/TableColumnAlignment.png Binary files differnew file mode 100644 index 0000000000..23832b7a11 --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/table/TableColumnAlignment.png diff --git a/src/com/itmill/toolkit/demo/sampler/features/table/TableColumnCollapsing.java b/src/com/itmill/toolkit/demo/sampler/features/table/TableColumnCollapsing.java new file mode 100644 index 0000000000..35ed33140f --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/table/TableColumnCollapsing.java @@ -0,0 +1,38 @@ +package com.itmill.toolkit.demo.sampler.features.table; + +import com.itmill.toolkit.demo.sampler.APIResource; +import com.itmill.toolkit.demo.sampler.Feature; +import com.itmill.toolkit.demo.sampler.NamedExternalResource; +import com.itmill.toolkit.ui.Component; + +public class TableColumnCollapsing extends Feature { + + @Override + public Component getExample() { + return new TableMainFeaturesExample(); + } + + @Override + public String getDescription() { + return "Columns can be 'collapsed', which means that it's not shown, but the user can make the column re-appear by using the menu in the upper right of the table.<br/>Columns can also be made invisible, in which case they can not be brought back by the user."; + } + + @Override + public APIResource[] getRelatedAPI() { + // TODO Auto-generated method stub + return null; + } + + @Override + public Class[] getRelatedFeatures() { + // TODO Auto-generated method stub + return null; + } + + @Override + public NamedExternalResource[] getRelatedResources() { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/src/com/itmill/toolkit/demo/sampler/features/table/TableColumnCollapsing.png b/src/com/itmill/toolkit/demo/sampler/features/table/TableColumnCollapsing.png Binary files differnew file mode 100644 index 0000000000..8802b80782 --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/table/TableColumnCollapsing.png diff --git a/src/com/itmill/toolkit/demo/sampler/features/table/TableColumnHeaders.java b/src/com/itmill/toolkit/demo/sampler/features/table/TableColumnHeaders.java new file mode 100644 index 0000000000..0051dd4c50 --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/table/TableColumnHeaders.java @@ -0,0 +1,38 @@ +package com.itmill.toolkit.demo.sampler.features.table; + +import com.itmill.toolkit.demo.sampler.APIResource; +import com.itmill.toolkit.demo.sampler.Feature; +import com.itmill.toolkit.demo.sampler.NamedExternalResource; +import com.itmill.toolkit.ui.Component; + +public class TableColumnHeaders extends Feature { + + @Override + public Component getExample() { + return new TableMainFeaturesExample(); + } + + @Override + public String getDescription() { + return "A Table can optionally have column headers. The headers can contain a caption and an icon, and it's width can be changed by the user. A column can also (optionally) be moved by the user by dragging the column header, and (optionally) be sorted by clicking the header."; + } + + @Override + public APIResource[] getRelatedAPI() { + // TODO Auto-generated method stub + return null; + } + + @Override + public Class[] getRelatedFeatures() { + // TODO Auto-generated method stub + return null; + } + + @Override + public NamedExternalResource[] getRelatedResources() { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/src/com/itmill/toolkit/demo/sampler/features/table/TableColumnHeaders.png b/src/com/itmill/toolkit/demo/sampler/features/table/TableColumnHeaders.png Binary files differnew file mode 100644 index 0000000000..0166b84373 --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/table/TableColumnHeaders.png diff --git a/src/com/itmill/toolkit/demo/sampler/features/table/TableColumnReordering.png b/src/com/itmill/toolkit/demo/sampler/features/table/TableColumnReordering.png Binary files differnew file mode 100644 index 0000000000..0d5666ad72 --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/table/TableColumnReordering.png diff --git a/src/com/itmill/toolkit/demo/sampler/features/table/TableHeaderIcons.java b/src/com/itmill/toolkit/demo/sampler/features/table/TableHeaderIcons.java new file mode 100644 index 0000000000..8dbd912ae8 --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/table/TableHeaderIcons.java @@ -0,0 +1,38 @@ +package com.itmill.toolkit.demo.sampler.features.table; + +import com.itmill.toolkit.demo.sampler.APIResource; +import com.itmill.toolkit.demo.sampler.Feature; +import com.itmill.toolkit.demo.sampler.NamedExternalResource; +import com.itmill.toolkit.ui.Component; + +public class TableHeaderIcons extends Feature { + + @Override + public Component getExample() { + return new TableMainFeaturesExample(); + } + + @Override + public String getDescription() { + return "A Table can have icons in the column- and rowheaders. The rowheader icon can come from a item property, or be explicitly set."; + } + + @Override + public APIResource[] getRelatedAPI() { + // TODO Auto-generated method stub + return null; + } + + @Override + public Class[] getRelatedFeatures() { + // TODO Auto-generated method stub + return null; + } + + @Override + public NamedExternalResource[] getRelatedResources() { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/src/com/itmill/toolkit/demo/sampler/features/table/TableHeaderIcons.png b/src/com/itmill/toolkit/demo/sampler/features/table/TableHeaderIcons.png Binary files differnew file mode 100644 index 0000000000..0166b84373 --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/table/TableHeaderIcons.png diff --git a/src/com/itmill/toolkit/demo/sampler/features/table/TableLazyLoading.java b/src/com/itmill/toolkit/demo/sampler/features/table/TableLazyLoading.java new file mode 100644 index 0000000000..03f1dbec08 --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/table/TableLazyLoading.java @@ -0,0 +1,38 @@ +package com.itmill.toolkit.demo.sampler.features.table; + +import com.itmill.toolkit.demo.sampler.APIResource; +import com.itmill.toolkit.demo.sampler.Feature; +import com.itmill.toolkit.demo.sampler.NamedExternalResource; +import com.itmill.toolkit.ui.Component; + +public class TableLazyLoading extends Feature { + + @Override + public Component getExample() { + return new TableMainFeaturesExample(); + } + + @Override + public String getDescription() { + return "Table supports lazy-loading, which means that the content is loaded from the server only when needed. This allows the table to stay efficient even when scrolling hundreds of thousands of rows.<br/>Try scrolling a fair amount quickly!"; + } + + @Override + public APIResource[] getRelatedAPI() { + // TODO Auto-generated method stub + return null; + } + + @Override + public Class[] getRelatedFeatures() { + // TODO Auto-generated method stub + return null; + } + + @Override + public NamedExternalResource[] getRelatedResources() { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/src/com/itmill/toolkit/demo/sampler/features/table/TableLazyLoading.png b/src/com/itmill/toolkit/demo/sampler/features/table/TableLazyLoading.png Binary files differnew file mode 100644 index 0000000000..7080fc25d3 --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/table/TableLazyLoading.png diff --git a/src/com/itmill/toolkit/demo/sampler/features/table/TableMainFeaturesExample.java b/src/com/itmill/toolkit/demo/sampler/features/table/TableMainFeaturesExample.java index 49e5c10022..a7cbad0dc1 100644 --- a/src/com/itmill/toolkit/demo/sampler/features/table/TableMainFeaturesExample.java +++ b/src/com/itmill/toolkit/demo/sampler/features/table/TableMainFeaturesExample.java @@ -1,8 +1,10 @@ package com.itmill.toolkit.demo.sampler.features.table; import java.util.HashSet; +import java.util.Set; import com.itmill.toolkit.data.Item; +import com.itmill.toolkit.data.Property.ValueChangeEvent; import com.itmill.toolkit.demo.sampler.ExampleUtil; import com.itmill.toolkit.event.Action; import com.itmill.toolkit.terminal.ThemeResource; @@ -19,7 +21,7 @@ public class TableMainFeaturesExample extends VerticalLayout { static final Action ACTION_MARK = new Action("Mark"); static final Action ACTION_UNMARK = new Action("Unmark"); - static final Action ACTION_LOG = new Action("Log"); + static final Action ACTION_LOG = new Action("Save"); static final Action[] ACTIONS_UNMARKED = new Action[] { ACTION_MARK, ACTION_LOG }; static final Action[] ACTIONS_MARKED = new Action[] { ACTION_UNMARK, @@ -28,6 +30,10 @@ public class TableMainFeaturesExample extends VerticalLayout { public TableMainFeaturesExample() { addComponent(table); + // Label to indicate current selection + final Label selected = new Label("No selection"); + addComponent(selected); + // set a style name, so we can style rows and cells table.setStyleName("iso3166"); @@ -35,8 +41,10 @@ public class TableMainFeaturesExample extends VerticalLayout { table.setWidth("100%"); table.setPageLength(7); - // multiselect mode + // selectable + table.setSelectable(true); table.setMultiSelect(true); + table.setImmediate(true); // react at once when something is selected // connect data source table.setContainerDataSource(ExampleUtil.getISO3166Container()); @@ -56,6 +64,13 @@ public class TableMainFeaturesExample extends VerticalLayout { table.setColumnIcon(ExampleUtil.iso3166_PROPERTY_SHORT, new ThemeResource("icons/page_code.gif")); + // Column alignment + table.setColumnAlignment(ExampleUtil.iso3166_PROPERTY_SHORT, + Table.ALIGN_CENTER); + + // Column width + table.setColumnWidth(ExampleUtil.iso3166_PROPERTY_SHORT, 70); + // Collapse one column - the user can make it visible again try { table.setColumnCollapsed(ExampleUtil.iso3166_PROPERTY_FLAG, true); @@ -87,7 +102,8 @@ public class TableMainFeaturesExample extends VerticalLayout { table.requestRepaint(); } else if (ACTION_LOG.equals(action)) { Item item = table.getItem(target); - addComponent(new Label(target + addComponent(new Label("Saved: " + + target + ", " + item.getItemProperty( ExampleUtil.iso3166_PROPERTY_NAME) @@ -115,5 +131,19 @@ public class TableMainFeaturesExample extends VerticalLayout { }); + // listen for valueChange, a.k.a 'select' and update the label + table.addListener(new Table.ValueChangeListener() { + public void valueChange(ValueChangeEvent event) { + // in multiselect mode, a Set of itemIds is returned, + // in singleselect mode the itemId is returned directly + Set value = (Set) event.getProperty().getValue(); + if (null == value || value.size() == 0) { + selected.setValue("No selection"); + } else { + selected.setValue("Selected: " + table.getValue()); + } + } + }); + } } diff --git a/src/com/itmill/toolkit/demo/sampler/features/table/TableRowHeaders.java b/src/com/itmill/toolkit/demo/sampler/features/table/TableRowHeaders.java new file mode 100644 index 0000000000..e9284ab98f --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/table/TableRowHeaders.java @@ -0,0 +1,38 @@ +package com.itmill.toolkit.demo.sampler.features.table; + +import com.itmill.toolkit.demo.sampler.APIResource; +import com.itmill.toolkit.demo.sampler.Feature; +import com.itmill.toolkit.demo.sampler.NamedExternalResource; +import com.itmill.toolkit.ui.Component; + +public class TableRowHeaders extends Feature { + + @Override + public Component getExample() { + return new TableMainFeaturesExample(); + } + + @Override + public String getDescription() { + return "A Table can have row headers, which can contain an icon and a caption, or both. There are several modes: the icon can come from a property or be explicitly set, the caption can be explicitly set or come from the item id, from a property, based on row index, or from the item itself."; + } + + @Override + public APIResource[] getRelatedAPI() { + // TODO Auto-generated method stub + return null; + } + + @Override + public Class[] getRelatedFeatures() { + // TODO Auto-generated method stub + return null; + } + + @Override + public NamedExternalResource[] getRelatedResources() { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/src/com/itmill/toolkit/demo/sampler/features/table/TableRowHeaders.png b/src/com/itmill/toolkit/demo/sampler/features/table/TableRowHeaders.png Binary files differnew file mode 100644 index 0000000000..0166b84373 --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/table/TableRowHeaders.png diff --git a/src/com/itmill/toolkit/demo/sampler/features/table/TableSorting.java b/src/com/itmill/toolkit/demo/sampler/features/table/TableSorting.java new file mode 100644 index 0000000000..e7d66a9d16 --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/table/TableSorting.java @@ -0,0 +1,38 @@ +package com.itmill.toolkit.demo.sampler.features.table; + +import com.itmill.toolkit.demo.sampler.APIResource; +import com.itmill.toolkit.demo.sampler.Feature; +import com.itmill.toolkit.demo.sampler.NamedExternalResource; +import com.itmill.toolkit.ui.Component; + +public class TableSorting extends Feature { + + @Override + public Component getExample() { + return new TableMainFeaturesExample(); + } + + @Override + public String getDescription() { + return "The Table columns can (optionally) be sorted by clicking the column header - a sort direction indicator will appear. Clicking again will change the sorting direction."; + } + + @Override + public APIResource[] getRelatedAPI() { + // TODO Auto-generated method stub + return null; + } + + @Override + public Class[] getRelatedFeatures() { + // TODO Auto-generated method stub + return null; + } + + @Override + public NamedExternalResource[] getRelatedResources() { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/src/com/itmill/toolkit/demo/sampler/features/table/TableSorting.png b/src/com/itmill/toolkit/demo/sampler/features/table/TableSorting.png Binary files differnew file mode 100644 index 0000000000..64696c744b --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/table/TableSorting.png |