From 35bad2d96724bff42ef73e674dcb7751533e7a03 Mon Sep 17 00:00:00 2001 From: Marc Englund Date: Tue, 23 Sep 2008 12:17:40 +0000 Subject: [PATCH] "clickEvent" immediateness logic change, fixes #2104 (Table did not exhibit same problem; added comments to avoid problem in the future) svn changeset:5487/svn branch:trunk --- .../toolkit/terminal/gwt/client/ui/IScrollTable.java | 8 ++++++++ src/com/itmill/toolkit/terminal/gwt/client/ui/ITree.java | 7 ++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/IScrollTable.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/IScrollTable.java index 125abeab18..ec804d9c2b 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/IScrollTable.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/IScrollTable.java @@ -2126,6 +2126,11 @@ public class IScrollTable extends Composite implements Table, ScrollListener, colKey, false); } MouseEventDetails details = new MouseEventDetails(event); + // Note: the 'immediate' logic would need to be more + // involved (see #2104), but iscrolltable always sends + // select event, even though nullselectionallowed wont let + // the change trough. Will need to be updated if that is + // changed. client .updateVariable( paintableId, @@ -2148,6 +2153,9 @@ public class IScrollTable extends Composite implements Table, ScrollListener, handleClickEvent(event); if (selectMode > Table.SELECT_MODE_NONE) { toggleSelection(); + // Note: changing the immediateness of this might + // require changes to "clickEvent" immediateness + // also. client.updateVariable(paintableId, "selected", selectedRowKeys.toArray(), immediate); } 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 84d1450bc1..dda4bdb8ec 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/ITree.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/ITree.java @@ -222,10 +222,15 @@ public class ITree extends FlowPanel implements Paintable { } private void fireClick(Event evt) { + // non-immediate iff an immediate select event is going to happen + boolean imm = !immediate + || !selectable + || (!isNullSelectionAllowed && isSelected() && selectedIds + .size() == 1); MouseEventDetails details = new MouseEventDetails(evt); client.updateVariable(paintableId, "clickedKey", key, false); client.updateVariable(paintableId, "clickEvent", - details.toString(), !(selectable && immediate)); + details.toString(), imm); } private void toggleSelection() { -- 2.39.5