]> source.dussan.org Git - vaadin-framework.git/commitdiff
fixes #2491, #2392: tooltips and icon clicks for checkboxes
authorMatti Tahvonen <matti.tahvonen@itmill.com>
Tue, 27 Jan 2009 11:33:15 +0000 (11:33 +0000)
committerMatti Tahvonen <matti.tahvonen@itmill.com>
Tue, 27 Jan 2009 11:33:15 +0000 (11:33 +0000)
svn changeset:6647/svn branch:trunk

src/com/itmill/toolkit/terminal/gwt/client/ui/ICheckBox.java

index 96db1ed2c210ba82f8f4a71e3636c61c79377ce0..a88b3f65961ed3c55e68de11660b990533f9b23f 100644 (file)
@@ -45,6 +45,12 @@ public class ICheckBox extends com.google.gwt.user.client.ui.CheckBox implements
 
         });
         sinkEvents(ITooltip.TOOLTIP_EVENTS);
+        Element el = DOM.getFirstChild(getElement());
+        while (el != null) {
+            DOM.sinkEvents(el,
+                    (DOM.getEventsSunk(el) | ITooltip.TOOLTIP_EVENTS));
+            el = DOM.getNextSibling(el);
+        }
     }
 
     public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
@@ -76,6 +82,8 @@ public class ICheckBox extends com.google.gwt.user.client.ui.CheckBox implements
             if (icon == null) {
                 icon = new Icon(client);
                 DOM.insertChild(getElement(), icon.getElement(), 1);
+                icon.sinkEvents(ITooltip.TOOLTIP_EVENTS);
+                icon.sinkEvents(Event.ONCLICK);
             }
             icon.setUri(uidl.getStringAttribute("icon"));
         } else if (icon != null) {
@@ -92,6 +100,11 @@ public class ICheckBox extends com.google.gwt.user.client.ui.CheckBox implements
 
     @Override
     public void onBrowserEvent(Event event) {
+        if ((event.getTypeInt() == Event.ONCLICK)
+                && (event.getTarget() == icon.getElement())) {
+            // react on icon clicks too
+            setChecked(!isChecked());
+        }
         super.onBrowserEvent(event);
         if (event.getTypeInt() == Event.ONLOAD) {
             Util.notifyParentOfSizeChange(this, true);