From c29297de779e54bcf7d8faa069bc91cb5f93a64d Mon Sep 17 00:00:00 2001 From: Matti Tahvonen Date: Wed, 15 Aug 2007 12:10:07 +0000 Subject: [PATCH] tree selection indication svn changeset:2016/svn branch:trunk --- .../toolkit/terminal/gwt/client/ui/ITree.java | 31 ++++++++++++++++--- .../public/component-themes/collection.css | 2 ++ .../public/component-themes/tree/css/tree.css | 3 ++ 3 files changed, 31 insertions(+), 5 deletions(-) create mode 100644 src/com/itmill/toolkit/terminal/gwt/public/component-themes/tree/css/tree.css diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/ITree.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/ITree.java index 23ecf5205d..472a7764bc 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/ITree.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/ITree.java @@ -15,6 +15,11 @@ import com.itmill.toolkit.terminal.gwt.client.ApplicationConnection; import com.itmill.toolkit.terminal.gwt.client.Paintable; import com.itmill.toolkit.terminal.gwt.client.UIDL; +/** + * TODO todo dump GWT's Tree implementation and use Toolkit 4 style + * DOM structure + * + */ public class ITree extends Tree implements Paintable { public static final String CLASSNAME = "i-tree"; @@ -111,13 +116,19 @@ public class ITree extends Tree implements Paintable { } public void onTreeItemSelected(TreeItem item) { + TreeNode n = ((TreeNode) item); if (!selectable) return; - item.setSelected(true); - String key = ((TreeNode)item).key; + String key = n.key; if (key != null) { - if (!multiselect) selectedIds.clear(); - if (selectedIds.contains(key)) selectedIds.remove(key); - else selectedIds.add(key); + if(selectedIds.contains(key)) { + selectedIds.remove(key); + n.setISelected(false); + } else { + if (!multiselect) + selectedIds.clear(); + selectedIds.add(key); + n.setISelected(true); + } ITree.this.client.updateVariable(ITree.this.paintableId, "selected", selectedIds.toArray(), true); } } @@ -223,6 +234,16 @@ public class ITree extends Tree implements Paintable { return paintableId; } + /** + * Adds/removes IT Mill Toolkit spesific style name. + * (GWT treenode does not support multiselects) + * + * @param selected + */ + public void setISelected(boolean selected) { + setStyleName(getElement(), "i-tree-node-selected", selected); + } + public void showContextMenu(Event event) { client.console.log("Context menu"); if(actionKeys != null) { diff --git a/src/com/itmill/toolkit/terminal/gwt/public/component-themes/collection.css b/src/com/itmill/toolkit/terminal/gwt/public/component-themes/collection.css index df2efe8c1d..917555e03b 100644 --- a/src/com/itmill/toolkit/terminal/gwt/public/component-themes/collection.css +++ b/src/com/itmill/toolkit/terminal/gwt/public/component-themes/collection.css @@ -8,3 +8,5 @@ @import "slider/css/slider.css"; @import "window/css/window.css"; @import "caption/css/caption.css"; +@import "tree/css/tree.css"; + diff --git a/src/com/itmill/toolkit/terminal/gwt/public/component-themes/tree/css/tree.css b/src/com/itmill/toolkit/terminal/gwt/public/component-themes/tree/css/tree.css new file mode 100644 index 0000000000..3245e30275 --- /dev/null +++ b/src/com/itmill/toolkit/terminal/gwt/public/component-themes/tree/css/tree.css @@ -0,0 +1,3 @@ +.i-tree-node-selected > table > tbody > tr > td > span.gwt-TreeItem { + background: #ff0; +} -- 2.39.5