From: Matti Tahvonen Date: Mon, 26 Nov 2007 09:10:45 +0000 (+0000) Subject: fixes #2851 X-Git-Tag: 6.7.0.beta1~5481 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=da29aef1b5a19fa9a21e80d1e685888507da17a5;p=vaadin-framework.git fixes #2851 svn changeset:2936/svn branch:trunk --- 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 e6c77010b0..826d696fd4 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/ITree.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/ITree.java @@ -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)