aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Englund <marc.englund@itmill.com>2009-01-14 13:24:27 +0000
committerMarc Englund <marc.englund@itmill.com>2009-01-14 13:24:27 +0000
commit30f14994ddd7c91de46f2ead73817157ac2c3605 (patch)
tree9d3c6e15aa0e13cc911c55c7b412107e9bdda2c9
parent852c189a1eb82a00b5f4802c343b36dcb3e99c5c (diff)
downloadvaadin-framework-30f14994ddd7c91de46f2ead73817157ac2c3605.tar.gz
vaadin-framework-30f14994ddd7c91de46f2ead73817157ac2c3605.zip
Several table samples and icons added.
svn changeset:6533/svn branch:trunk
-rw-r--r--src/com/itmill/toolkit/demo/sampler/FeatureSet.java18
-rw-r--r--src/com/itmill/toolkit/demo/sampler/features/table/TableActions.java38
-rw-r--r--src/com/itmill/toolkit/demo/sampler/features/table/TableActions.pngbin0 -> 13832 bytes
-rw-r--r--src/com/itmill/toolkit/demo/sampler/features/table/TableColumnAlignment.java38
-rw-r--r--src/com/itmill/toolkit/demo/sampler/features/table/TableColumnAlignment.pngbin0 -> 8845 bytes
-rw-r--r--src/com/itmill/toolkit/demo/sampler/features/table/TableColumnCollapsing.java38
-rw-r--r--src/com/itmill/toolkit/demo/sampler/features/table/TableColumnCollapsing.pngbin0 -> 12700 bytes
-rw-r--r--src/com/itmill/toolkit/demo/sampler/features/table/TableColumnHeaders.java38
-rw-r--r--src/com/itmill/toolkit/demo/sampler/features/table/TableColumnHeaders.pngbin0 -> 8911 bytes
-rw-r--r--src/com/itmill/toolkit/demo/sampler/features/table/TableColumnReordering.pngbin0 -> 10267 bytes
-rw-r--r--src/com/itmill/toolkit/demo/sampler/features/table/TableHeaderIcons.java38
-rw-r--r--src/com/itmill/toolkit/demo/sampler/features/table/TableHeaderIcons.pngbin0 -> 8911 bytes
-rw-r--r--src/com/itmill/toolkit/demo/sampler/features/table/TableLazyLoading.java38
-rw-r--r--src/com/itmill/toolkit/demo/sampler/features/table/TableLazyLoading.pngbin0 -> 3854 bytes
-rw-r--r--src/com/itmill/toolkit/demo/sampler/features/table/TableMainFeaturesExample.java36
-rw-r--r--src/com/itmill/toolkit/demo/sampler/features/table/TableRowHeaders.java38
-rw-r--r--src/com/itmill/toolkit/demo/sampler/features/table/TableRowHeaders.pngbin0 -> 8911 bytes
-rw-r--r--src/com/itmill/toolkit/demo/sampler/features/table/TableSorting.java38
-rw-r--r--src/com/itmill/toolkit/demo/sampler/features/table/TableSorting.pngbin0 -> 7064 bytes
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
new file mode 100644
index 0000000000..98010bb75d
--- /dev/null
+++ b/src/com/itmill/toolkit/demo/sampler/features/table/TableActions.png
Binary files differ
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
new file mode 100644
index 0000000000..23832b7a11
--- /dev/null
+++ b/src/com/itmill/toolkit/demo/sampler/features/table/TableColumnAlignment.png
Binary files differ
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
new file mode 100644
index 0000000000..8802b80782
--- /dev/null
+++ b/src/com/itmill/toolkit/demo/sampler/features/table/TableColumnCollapsing.png
Binary files differ
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
new file mode 100644
index 0000000000..0166b84373
--- /dev/null
+++ b/src/com/itmill/toolkit/demo/sampler/features/table/TableColumnHeaders.png
Binary files differ
diff --git a/src/com/itmill/toolkit/demo/sampler/features/table/TableColumnReordering.png b/src/com/itmill/toolkit/demo/sampler/features/table/TableColumnReordering.png
new file mode 100644
index 0000000000..0d5666ad72
--- /dev/null
+++ b/src/com/itmill/toolkit/demo/sampler/features/table/TableColumnReordering.png
Binary files differ
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
new file mode 100644
index 0000000000..0166b84373
--- /dev/null
+++ b/src/com/itmill/toolkit/demo/sampler/features/table/TableHeaderIcons.png
Binary files differ
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
new file mode 100644
index 0000000000..7080fc25d3
--- /dev/null
+++ b/src/com/itmill/toolkit/demo/sampler/features/table/TableLazyLoading.png
Binary files differ
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
new file mode 100644
index 0000000000..0166b84373
--- /dev/null
+++ b/src/com/itmill/toolkit/demo/sampler/features/table/TableRowHeaders.png
Binary files differ
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
new file mode 100644
index 0000000000..64696c744b
--- /dev/null
+++ b/src/com/itmill/toolkit/demo/sampler/features/table/TableSorting.png
Binary files differ