aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/itmill/toolkit/demo/sampler/FeatureSet.java4
-rw-r--r--src/com/itmill/toolkit/demo/sampler/features/trees/TreeActions.java46
-rw-r--r--src/com/itmill/toolkit/demo/sampler/features/trees/TreeActions.pngbin0 -> 2105 bytes
-rw-r--r--src/com/itmill/toolkit/demo/sampler/features/trees/TreeMouseEvents.java43
-rw-r--r--src/com/itmill/toolkit/demo/sampler/features/trees/TreeMouseEvents.pngbin0 -> 1724 bytes
-rw-r--r--src/com/itmill/toolkit/demo/sampler/features/trees/TreeMouseEventsExample.java81
-rw-r--r--src/com/itmill/toolkit/demo/sampler/features/trees/TreeMultiSelect.java3
-rw-r--r--src/com/itmill/toolkit/demo/sampler/features/trees/TreeSingleSelect.java2
-rw-r--r--src/com/itmill/toolkit/demo/sampler/features/trees/TreeSingleSelectExample.java2
9 files changed, 178 insertions, 3 deletions
diff --git a/src/com/itmill/toolkit/demo/sampler/FeatureSet.java b/src/com/itmill/toolkit/demo/sampler/FeatureSet.java
index 32313c4317..7746eccb77 100644
--- a/src/com/itmill/toolkit/demo/sampler/FeatureSet.java
+++ b/src/com/itmill/toolkit/demo/sampler/FeatureSet.java
@@ -57,6 +57,8 @@ import com.itmill.toolkit.demo.sampler.features.text.LabelRich;
import com.itmill.toolkit.demo.sampler.features.text.RichTextEditor;
import com.itmill.toolkit.demo.sampler.features.text.TextArea;
import com.itmill.toolkit.demo.sampler.features.text.TextFieldSingle;
+import com.itmill.toolkit.demo.sampler.features.trees.TreeActions;
+import com.itmill.toolkit.demo.sampler.features.trees.TreeMouseEvents;
import com.itmill.toolkit.demo.sampler.features.trees.TreeMultiSelect;
import com.itmill.toolkit.demo.sampler.features.trees.TreeSingleSelect;
import com.itmill.toolkit.demo.sampler.features.windows.WindowChild;
@@ -294,6 +296,8 @@ public class FeatureSet extends Feature {
//
new TreeSingleSelect(), //
new TreeMultiSelect(), //
+ new TreeActions(), //
+ new TreeMouseEvents(), //
});
}
}
diff --git a/src/com/itmill/toolkit/demo/sampler/features/trees/TreeActions.java b/src/com/itmill/toolkit/demo/sampler/features/trees/TreeActions.java
new file mode 100644
index 0000000000..c49058daf3
--- /dev/null
+++ b/src/com/itmill/toolkit/demo/sampler/features/trees/TreeActions.java
@@ -0,0 +1,46 @@
+package com.itmill.toolkit.demo.sampler.features.trees;
+
+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;
+import com.itmill.toolkit.ui.Tree;
+
+public class TreeActions extends Feature {
+ @Override
+ public String getName() {
+ return "Tree - Actions";
+ }
+
+ @Override
+ public String getDescription() {
+ return "The Tree component allows a natural way to represent"
+ + " data that has hierarchical relationships, such as"
+ + " filesystems or message threads."
+ + "<br>In this example, actions have been attached to"
+ + " the tree component. Try clicking the secondary mouse"
+ + " button on an item in the tree.";
+ }
+
+ @Override
+ public APIResource[] getRelatedAPI() {
+ return new APIResource[] { new APIResource(Tree.class) };
+ }
+
+ @Override
+ public Class[] getRelatedFeatures() {
+ return new Class[] { TreeSingleSelect.class, TreeMultiSelect.class,
+ TreeMouseEvents.class };
+ }
+
+ @Override
+ public NamedExternalResource[] getRelatedResources() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Component getExample() {
+ return new TreeSingleSelectExample();
+ }
+}
diff --git a/src/com/itmill/toolkit/demo/sampler/features/trees/TreeActions.png b/src/com/itmill/toolkit/demo/sampler/features/trees/TreeActions.png
new file mode 100644
index 0000000000..9ba7a9828b
--- /dev/null
+++ b/src/com/itmill/toolkit/demo/sampler/features/trees/TreeActions.png
Binary files differ
diff --git a/src/com/itmill/toolkit/demo/sampler/features/trees/TreeMouseEvents.java b/src/com/itmill/toolkit/demo/sampler/features/trees/TreeMouseEvents.java
new file mode 100644
index 0000000000..a10d197628
--- /dev/null
+++ b/src/com/itmill/toolkit/demo/sampler/features/trees/TreeMouseEvents.java
@@ -0,0 +1,43 @@
+package com.itmill.toolkit.demo.sampler.features.trees;
+
+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.Tree;
+
+public class TreeMouseEvents extends Feature {
+ @Override
+ public String getName() {
+ return "Tree - Mouse events";
+ }
+
+ @Override
+ public String getDescription() {
+ return "The Tree component allows a natural way to represent"
+ + " data that has hierarchical relationships, such as"
+ + " filesystems or message threads."
+ + "<br>In this example, selecting items from the tree"
+ + " is disabled. Instead, another method of selection"
+ + " is used. Through ItemClickEvent we can update the"
+ + " label showing the selection."
+ + "<br>Try to click your left, right and middle mouse"
+ + "buttons on the tree items.";
+ }
+
+ @Override
+ public APIResource[] getRelatedAPI() {
+ return new APIResource[] { new APIResource(Tree.class) };
+ }
+
+ @Override
+ public Class[] getRelatedFeatures() {
+ return new Class[] { TreeSingleSelect.class, TreeMultiSelect.class,
+ TreeActions.class };
+ }
+
+ @Override
+ public NamedExternalResource[] getRelatedResources() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+}
diff --git a/src/com/itmill/toolkit/demo/sampler/features/trees/TreeMouseEvents.png b/src/com/itmill/toolkit/demo/sampler/features/trees/TreeMouseEvents.png
new file mode 100644
index 0000000000..b97b6ac6a4
--- /dev/null
+++ b/src/com/itmill/toolkit/demo/sampler/features/trees/TreeMouseEvents.png
Binary files differ
diff --git a/src/com/itmill/toolkit/demo/sampler/features/trees/TreeMouseEventsExample.java b/src/com/itmill/toolkit/demo/sampler/features/trees/TreeMouseEventsExample.java
new file mode 100644
index 0000000000..ad012b83db
--- /dev/null
+++ b/src/com/itmill/toolkit/demo/sampler/features/trees/TreeMouseEventsExample.java
@@ -0,0 +1,81 @@
+package com.itmill.toolkit.demo.sampler.features.trees;
+
+import com.itmill.toolkit.data.Item;
+import com.itmill.toolkit.demo.sampler.ExampleUtil;
+import com.itmill.toolkit.event.ItemClickEvent;
+import com.itmill.toolkit.event.ItemClickEvent.ItemClickListener;
+import com.itmill.toolkit.ui.AbstractSelect;
+import com.itmill.toolkit.ui.Label;
+import com.itmill.toolkit.ui.Tree;
+import com.itmill.toolkit.ui.VerticalLayout;
+
+public class TreeMouseEventsExample extends VerticalLayout implements
+ ItemClickListener {
+
+ private Tree t;
+ private int itemId;
+ private Label l;
+
+ public TreeMouseEventsExample() {
+ setSpacing(true);
+
+ // Create new Tree object using a hierarchical container from
+ // ExampleUtil class
+ t = new Tree("Hardware Inventory", ExampleUtil.getHardwareContainer());
+
+ // Add ItemClickListener to the tree
+ t.addListener(this);
+
+ t.setImmediate(true);
+
+ // Set tree to show the 'name' property as caption for items
+ t.setItemCaptionPropertyId(ExampleUtil.hw_PROPERTY_NAME);
+ t.setItemCaptionMode(AbstractSelect.ITEM_CAPTION_MODE_PROPERTY);
+
+ // Starting itemId # for new items
+ itemId = t.getContainerDataSource().size();
+
+ // Expand whole tree
+ for (int i = 0; i < itemId; i++) {
+ t.expandItemsRecursively(i);
+ }
+
+ // Disallow selecting items from the tree
+ t.setSelectable(false);
+
+ l = new Label();
+ addComponent(t);
+ addComponent(l);
+ }
+
+ public void itemClick(ItemClickEvent event) {
+ switch (event.getButton()) {
+ case ItemClickEvent.BUTTON_LEFT:
+ // Left button click updates the 'selected' Label
+ l.setValue("Selected item: " + event.getItem());
+ break;
+ case ItemClickEvent.BUTTON_MIDDLE:
+ // Middle button click removes the item
+ Object parent = t.getParent(event.getItemId());
+ l.setValue("Removed item: " + event.getItem());
+ t.removeItem(event.getItemId());
+ if (parent != null && t.getChildren(parent).size() == 0) {
+ t.setChildrenAllowed(parent, false);
+ }
+ break;
+ case ItemClickEvent.BUTTON_RIGHT:
+ // Right button click creates a new child item
+ l.setValue("Added item: New Item # " + itemId);
+ t.setChildrenAllowed(event.getItemId(), true);
+ Item i = t.addItem(itemId);
+ t.setChildrenAllowed(itemId, false);
+ String newItemName = "New Item # " + itemId;
+ i.getItemProperty(ExampleUtil.hw_PROPERTY_NAME).setValue(
+ newItemName);
+ t.setParent(itemId, event.getItemId());
+ t.expandItem(event.getItemId());
+ itemId++;
+ break;
+ }
+ }
+}
diff --git a/src/com/itmill/toolkit/demo/sampler/features/trees/TreeMultiSelect.java b/src/com/itmill/toolkit/demo/sampler/features/trees/TreeMultiSelect.java
index 0a46bb6500..0ee7518fa0 100644
--- a/src/com/itmill/toolkit/demo/sampler/features/trees/TreeMultiSelect.java
+++ b/src/com/itmill/toolkit/demo/sampler/features/trees/TreeMultiSelect.java
@@ -28,7 +28,8 @@ public class TreeMultiSelect extends Feature {
@Override
public Class[] getRelatedFeatures() {
- return new Class[] { TreeSingleSelect.class };
+ return new Class[] { TreeSingleSelect.class, TreeActions.class,
+ TreeMouseEvents.class };
}
@Override
diff --git a/src/com/itmill/toolkit/demo/sampler/features/trees/TreeSingleSelect.java b/src/com/itmill/toolkit/demo/sampler/features/trees/TreeSingleSelect.java
index 702969c799..ff5f916f36 100644
--- a/src/com/itmill/toolkit/demo/sampler/features/trees/TreeSingleSelect.java
+++ b/src/com/itmill/toolkit/demo/sampler/features/trees/TreeSingleSelect.java
@@ -28,7 +28,7 @@ public class TreeSingleSelect extends Feature {
@Override
public Class[] getRelatedFeatures() {
- return new Class[] { TreeMultiSelect.class };
+ return new Class[] { TreeMultiSelect.class, TreeActions.class };
}
@Override
diff --git a/src/com/itmill/toolkit/demo/sampler/features/trees/TreeSingleSelectExample.java b/src/com/itmill/toolkit/demo/sampler/features/trees/TreeSingleSelectExample.java
index e68510050a..021bf12aec 100644
--- a/src/com/itmill/toolkit/demo/sampler/features/trees/TreeSingleSelectExample.java
+++ b/src/com/itmill/toolkit/demo/sampler/features/trees/TreeSingleSelectExample.java
@@ -117,7 +117,7 @@ public class TreeSingleSelectExample extends VerticalLayout implements
t.removeItem(target);
// If the deleted object's parent has no more children, set it's
// childrenallowed property to false
- if (t.getChildren(parent).size() == 0) {
+ if (parent != null && t.getChildren(parent).size() == 0) {
t.setChildrenAllowed(parent, false);
}
}