Search in sources :

Example 1 with Type

use of com.google.gwt.event.dom.client.DomEvent.Type in project gwt-test-utils by gwt-test-utils.

the class WidgetUtils method getHandlers.

@SuppressWarnings("unchecked")
public static <T extends EventHandler> List<T> getHandlers(Widget widget, Type<T> eventType) {
    HandlerManager handlerManager = GwtReflectionUtils.getPrivateFieldValue(widget, "handlerManager");
    Object handlerRegistry = GwtReflectionUtils.getPrivateFieldValue(handlerManager, "eventBus");
    Map<GwtEvent.Type<?>, Map<Object, List<?>>> map = GwtReflectionUtils.getPrivateFieldValue(handlerRegistry, "map");
    Map<Object, List<?>> eventHandlerMap = map.get(eventType);
    List<T> result = new ArrayList<>();
    if (eventHandlerMap != null) {
        for (List<?> eventHandlerList : eventHandlerMap.values()) {
            result.addAll((List<T>) eventHandlerList);
        }
    }
    return result;
}
Also used : Type(com.google.gwt.event.dom.client.DomEvent.Type) HandlerManager(com.google.gwt.event.shared.HandlerManager) ArrayList(java.util.ArrayList) ArrayList(java.util.ArrayList) List(java.util.List) Map(java.util.Map)

Aggregations

Type (com.google.gwt.event.dom.client.DomEvent.Type)1 HandlerManager (com.google.gwt.event.shared.HandlerManager)1 ArrayList (java.util.ArrayList)1 List (java.util.List)1 Map (java.util.Map)1