From: Marc Englund Date: Tue, 23 Sep 2008 12:17:40 +0000 (+0000) Subject: "clickEvent" immediateness logic change, fixes #2104 (Table did not exhibit same... X-Git-Tag: 6.7.0.beta1~4113 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=35bad2d96724bff42ef73e674dcb7751533e7a03;p=vaadin-framework.git "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 --- 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() {