]> source.dussan.org Git - vaadin-framework.git/commitdiff
tree selection indication
authorMatti Tahvonen <matti.tahvonen@itmill.com>
Wed, 15 Aug 2007 12:10:07 +0000 (12:10 +0000)
committerMatti Tahvonen <matti.tahvonen@itmill.com>
Wed, 15 Aug 2007 12:10:07 +0000 (12:10 +0000)
svn changeset:2016/svn branch:trunk

src/com/itmill/toolkit/terminal/gwt/client/ui/ITree.java
src/com/itmill/toolkit/terminal/gwt/public/component-themes/collection.css
src/com/itmill/toolkit/terminal/gwt/public/component-themes/tree/css/tree.css [new file with mode: 0644]

index 23ecf5205d478a0585dc753d7df5cf8d9c6c4c3f..472a7764bcee322de32f871eb33e14a46f9bf832 100644 (file)
@@ -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) {
index df2efe8c1dd8e446113f66953b91011996a6f0ff..917555e03b0bf0212fc421a03e388a9352f3b183 100644 (file)
@@ -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 (file)
index 0000000..3245e30
--- /dev/null
@@ -0,0 +1,3 @@
+.i-tree-node-selected > table > tbody > tr > td > span.gwt-TreeItem {
+       background: #ff0;
+}