]> source.dussan.org Git - vaadin-framework.git/commitdiff
"clickEvent" immediateness logic change, fixes #2104 (Table did not exhibit same...
authorMarc Englund <marc.englund@itmill.com>
Tue, 23 Sep 2008 12:17:40 +0000 (12:17 +0000)
committerMarc Englund <marc.englund@itmill.com>
Tue, 23 Sep 2008 12:17:40 +0000 (12:17 +0000)
svn changeset:5487/svn branch:trunk

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

index 125abeab185a05f63dadc78d5c566c526eb12bab..ec804d9c2ba2b8f6276277ae76ff3230cea72fbf 100644 (file)
@@ -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);
                         }
index 84d1450bc10e5cacf7569f39df68b7fa1848d29f..dda4bdb8ec9279d4fdf9dfac13dee58554ee4851 100644 (file)
@@ -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() {