/** * Sink events on the widget. * * @param widget the {@link Widget} that will handle the events * @param typeNames the names of the events to sink */ public final void sinkEvents(Widget widget, Set<String> typeNames) { if (typeNames == null) { return; } int eventsToSink = 0; for (String typeName : typeNames) { int typeInt = Event.getTypeInt(typeName); if (typeInt < 0) { widget.sinkBitlessEvent(typeName); } else { typeInt = sinkEvent(widget, typeName); if (typeInt > 0) { eventsToSink |= typeInt; } } } if (eventsToSink > 0) { widget.sinkEvents(eventsToSink); } }
eventsToSink = -1; if (bitsToAdd > 0) { sinkEvents(bitsToAdd);
/** * Adds a native event handler to the widget and sinks the corresponding * native event. If you do not want to sink the native event, use the generic * addHandler method instead. * * @param <H> the type of handler to add * @param type the event key * @param handler the handler * @return {@link HandlerRegistration} used to remove the handler */ public final <H extends EventHandler> HandlerRegistration addDomHandler( final H handler, DomEvent.Type<H> type) { assert handler != null : "handler must not be null"; assert type != null : "type must not be null"; int typeInt = Event.getTypeInt(type.getName()); if (typeInt == -1) { sinkBitlessEvent(type.getName()); } else { sinkEvents(typeInt); } return ensureHandlers().addHandler(type, handler); }
@Override public void sinkEvents(int eventBitsToAdd) { if (!rendered) { this.events |= eventBitsToAdd; } else { super.sinkEvents(eventBitsToAdd); } }
@Override protected void onAttach() { checkInit(); if (!isOrWasAttached()) { widget.sinkEvents(eventsToSink); eventsToSink = -1; } widget.onAttach(); // Clobber the widget's call to setEventListener(), causing all events to // be routed to this composite, which will delegate back to the widget by // default (note: it's not necessary to clear this in onDetach(), because // the widget's onDetach will do so). DOM.setEventListener(getElement(), this); // Call doAttachChildren() and then onLoad() directly, because we're not // calling super.onAttach(). doAttachChildren(); onLoad(); AttachEvent.fire(this, true); }
public static HandlerRegistration addBlurHandler(Widget widget, final BlurHandler handler) { widget.sinkEvents(Event.ONBLUR); List<BlurHandler> handlers = BLUR_HANDLERS.get(widget); if (handlers == null) { handlers = new ArrayList<BlurHandler>(); BLUR_HANDLERS.put(widget, handlers); } handlers.add(handler); final List<BlurHandler> _handlers = handlers; return new HandlerRegistration() { @Override public void removeHandler() { _handlers.remove(handler); } }; }
public static HandlerRegistration addFocusHandler(Widget widget, final FocusHandler handler) { widget.sinkEvents(Event.ONFOCUS); List<FocusHandler> handlers = FOCUS_HANDLERS.get(widget); if (handlers == null) { handlers = new ArrayList<FocusHandler>(); FOCUS_HANDLERS.put(widget, handlers); } handlers.add(handler); final List<FocusHandler> _handlers = handlers; return new HandlerRegistration() { @Override public void removeHandler() { _handlers.remove(handler); } }; }
public static HandlerRegistration addKeyboardCutHandler(Widget widget, final ControlKeyHandler handler) { widget.sinkEvents(Event.ONKEYPRESS); List<ControlKeyHandler> handlers = KCUT_HANDLERS.get(widget); if (handlers == null) { handlers = new ArrayList<ControlKeyHandler>(); KCUT_HANDLERS.put(widget, handlers); } handlers.add(handler); final List<ControlKeyHandler> _handlers = handlers; return new HandlerRegistration() { @Override public void removeHandler() { _handlers.remove(handler); } }; }
public static HandlerRegistration addKeyboardCopyHandler(Widget widget, final ControlKeyHandler handler) { widget.sinkEvents(Event.ONKEYPRESS); List<ControlKeyHandler> handlers = KCOPY_HANDLERS.get(widget); if (handlers == null) { handlers = new ArrayList<ControlKeyHandler>(); KCOPY_HANDLERS.put(widget, handlers); } handlers.add(handler); final List<ControlKeyHandler> _handlers = handlers; return new HandlerRegistration() { @Override public void removeHandler() { _handlers.remove(handler); } }; }
public static HandlerRegistration addKeyboardPasteHandler(Widget widget, final ControlKeyHandler handler) { widget.sinkEvents(Event.ONKEYPRESS); List<ControlKeyHandler> handlers = KPASTE_HANDLERS.get(widget); if (handlers == null) { handlers = new ArrayList<ControlKeyHandler>(); KPASTE_HANDLERS.put(widget, handlers); } handlers.add(handler); final List<ControlKeyHandler> _handlers = handlers; return new HandlerRegistration() { @Override public void removeHandler() { _handlers.remove(handler); } }; }
public void resetSinkEvents() { if (this.source instanceof Widget) { Widget widget = (Widget) this.source; widget.sinkEvents(this.eventsToSink); widget.addHandler(null, null); } } }
public void resetSinkEvents() { if (this.source instanceof Widget) { Widget widget = (Widget) this.source; widget.sinkEvents(this.eventsToSink); widget.addHandler(null, null); } } }
@Override public void sinkEvents(int eventBitsToAdd) { super.sinkEvents(eventBitsToAdd); this.createHandlerManager().sinkEvents(eventBitsToAdd); }
@Override public void unsinkEvents(int eventBitsToRemove) { super.sinkEvents(eventBitsToRemove); this.createHandlerManager().unsinkEvents(eventBitsToRemove); }
@Override public void unsinkEvents(int eventBitsToRemove) { super.sinkEvents(eventBitsToRemove); this.createHandlerManager().unsinkEvents(eventBitsToRemove); }
@Override public void sinkEvents(int eventBitsToAdd) { super.sinkEvents(eventBitsToAdd); this.createHandlerManager().sinkEvents(eventBitsToAdd); }
@Override public void sinkEvents(int eventBitsToAdd) { super.sinkEvents(eventBitsToAdd); this.createHandlerManager().sinkEvents(eventBitsToAdd); }
@Override public void sinkEvents(int eventBitsToAdd) { super.sinkEvents(eventBitsToAdd); this.createHandlerManager().sinkEvents(eventBitsToAdd); }
@Override public void unsinkEvents(int eventBitsToRemove) { super.sinkEvents(eventBitsToRemove); this.createHandlerManager().unsinkEvents(eventBitsToRemove); }
@Override public void unsinkEvents(int eventBitsToRemove) { super.sinkEvents(eventBitsToRemove); this.createHandlerManager().unsinkEvents(eventBitsToRemove); }