diff options
author | Teppo Kurki <teppo.kurki@itmill.com> | 2009-01-14 14:17:06 +0000 |
---|---|---|
committer | Teppo Kurki <teppo.kurki@itmill.com> | 2009-01-14 14:17:06 +0000 |
commit | a424cdc6edad378b2dcbb62b25a2cff7bf98b02c (patch) | |
tree | 764c7b219967d0c2c3d7f638237cf87f5e9a2f63 /src | |
parent | f61460443a9112715a2d2e42d14c6747bb4292eb (diff) | |
download | vaadin-framework-a424cdc6edad378b2dcbb62b25a2cff7bf98b02c.tar.gz vaadin-framework-a424cdc6edad378b2dcbb62b25a2cff7bf98b02c.zip |
Added rest of the Tree examples.
svn changeset:6538/svn branch:trunk
Diffstat (limited to 'src')
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 Binary files differnew file mode 100644 index 0000000000..9ba7a9828b --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/trees/TreeActions.png 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 Binary files differnew file mode 100644 index 0000000000..b97b6ac6a4 --- /dev/null +++ b/src/com/itmill/toolkit/demo/sampler/features/trees/TreeMouseEvents.png 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);
}
}
|