});
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) {
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) {
@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);