aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMatti Tahvonen <matti.tahvonen@itmill.com>2007-11-26 09:10:45 +0000
committerMatti Tahvonen <matti.tahvonen@itmill.com>2007-11-26 09:10:45 +0000
commitda29aef1b5a19fa9a21e80d1e685888507da17a5 (patch)
treeb61e16e768ba8a298cbf644f1c3bfdbb382f27f1 /src
parent5f6637331e9615017469413f64ddb36f38743016 (diff)
downloadvaadin-framework-da29aef1b5a19fa9a21e80d1e685888507da17a5.tar.gz
vaadin-framework-da29aef1b5a19fa9a21e80d1e685888507da17a5.zip
fixes #2851
svn changeset:2936/svn branch:trunk
Diffstat (limited to 'src')
-rw-r--r--src/com/itmill/toolkit/terminal/gwt/client/ui/ITree.java33
1 files changed, 18 insertions, 15 deletions
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)