]> source.dussan.org Git - vaadin-framework.git/commitdiff
fixes #2851
authorMatti Tahvonen <matti.tahvonen@itmill.com>
Mon, 26 Nov 2007 09:10:45 +0000 (09:10 +0000)
committerMatti Tahvonen <matti.tahvonen@itmill.com>
Mon, 26 Nov 2007 09:10:45 +0000 (09:10 +0000)
svn changeset:2936/svn branch:trunk

src/com/itmill/toolkit/terminal/gwt/client/ui/ITree.java

index e6c77010b08de608f60014f0266b3b66f4168828..826d696fd4c1e58346595959228edd804381dab8 100644 (file)
@@ -17,10 +17,6 @@ import com.itmill.toolkit.terminal.gwt.client.UIDL;
 import com.itmill.toolkit.terminal.gwt.client.Util;
 
 /**
- * TODO dump GWT's Tree implementation and use Toolkit 4 style TODO update node
- * close/opens to server (even if no content fetch is needed)
- * 
- * DOM structure
  * 
  */
 public class ITree extends FlowPanel implements Paintable {
@@ -47,6 +43,8 @@ public class ITree extends FlowPanel implements Paintable {
 
     private boolean disabled = false;
 
+    private boolean readonly;
+
     public ITree() {
         super();
         setStyleName(CLASSNAME);
@@ -94,6 +92,7 @@ public class ITree extends FlowPanel implements Paintable {
         immediate = uidl.hasAttribute("immediate");
 
         disabled = uidl.getBooleanAttribute("disabled");
+        readonly = uidl.getBooleanAttribute("readonly");
 
         isNullSelectionAllowed = uidl.getBooleanAttribute("nullselect");
 
@@ -188,13 +187,14 @@ public class ITree extends FlowPanel implements Paintable {
                 return;
             }
             Element target = DOM.eventGetTarget(event);
-            if (DOM.compare(target, nodeCaptionSpan)) {
-                // caption click = selection change
-                toggleSelection();
-            } else if (DOM.compare(getElement(), target)) {
+            if (DOM.compare(getElement(), target)) {
                 // state change
                 toggleState();
+            } else if (!readonly && DOM.compare(target, nodeCaptionSpan)) {
+                // caption click = selection change
+                toggleSelection();
             }
+
         }
 
         private void toggleSelection() {
@@ -359,14 +359,17 @@ public class ITree extends FlowPanel implements Paintable {
         }
 
         public void showContextMenu(Event event) {
-            if (actionKeys != null) {
-                int left = DOM.eventGetClientX(event);
-                int top = DOM.eventGetClientY(event);
-                top += Window.getScrollTop();
-                left += Window.getScrollLeft();
-                client.getContextMenu().showAt(this, left, top);
+            if (!readonly && !disabled) {
+                if (actionKeys != null) {
+                    int left = DOM.eventGetClientX(event);
+                    int top = DOM.eventGetClientY(event);
+                    top += Window.getScrollTop();
+                    left += Window.getScrollLeft();
+                    client.getContextMenu().showAt(this, left, top);
+                }
+                DOM.eventCancelBubble(event, true);
             }
-            DOM.eventCancelBubble(event, true);
+
         }
 
         private native void attachContextMenuEvent(Element el)