package com.sksamuel.jqm4gwt.plugins.datatables.events; import com.google.gwt.event.logical.shared.HasAttachHandlers; import com.google.gwt.event.shared.EventHandler; import com.google.gwt.event.shared.GwtEvent; public class JQMDataTableEnhancedEvent extends GwtEvent<JQMDataTableEnhancedEvent.Handler> { public interface Handler extends EventHandler { void onBeforeEnhance(JQMDataTableEnhancedEvent event); void onEnhanced(JQMDataTableEnhancedEvent event); } private final boolean before; public JQMDataTableEnhancedEvent(boolean before) { this.before = before; } static Type<JQMDataTableEnhancedEvent.Handler> TYPE; /** * Fires an {@link JQMDataTableEnhancedEvent} on all registered handlers in the handler source. * * @param <S> The handler source type * @param source - the source of the handlers */ public static <S extends HasAttachHandlers> void fire(S source, boolean before) { if (TYPE != null) { JQMDataTableEnhancedEvent event = new JQMDataTableEnhancedEvent(before); source.fireEvent(event); } } public static Type<JQMDataTableEnhancedEvent.Handler> getType() { if (TYPE == null) { TYPE = new Type<JQMDataTableEnhancedEvent.Handler>(); } return TYPE; } @Override public final Type<JQMDataTableEnhancedEvent.Handler> getAssociatedType() { return TYPE; } @Override protected void dispatch(JQMDataTableEnhancedEvent.Handler handler) { if (this.before) handler.onBeforeEnhance(this); else handler.onEnhanced(this); } }