package com.sksamuel.jqm4gwt.plugins.datatables.events;
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.dom.client.Element;
import com.google.gwt.event.logical.shared.HasAttachHandlers;
import com.google.gwt.event.shared.EventHandler;
import com.google.gwt.event.shared.GwtEvent;
public class JQMDataTableRowSelChangedEvent extends GwtEvent<JQMDataTableRowSelChangedEvent.Handler> {
public interface Handler extends EventHandler {
void onRowSelChanged(JQMDataTableRowSelChangedEvent event);
}
public static class RowSelChangedData {
public final Element row;
public final boolean selected;
public final JavaScriptObject rowData;
public RowSelChangedData(Element row, boolean selected, JavaScriptObject rowData) {
this.row = row;
this.selected = selected;
this.rowData = rowData;
}
}
private final RowSelChangedData data;
public JQMDataTableRowSelChangedEvent(RowSelChangedData data) {
this.data = data;
}
static Type<JQMDataTableRowSelChangedEvent.Handler> TYPE;
/**
* Fires an {@link JQMDataTableRowSelChangedEvent} 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, RowSelChangedData data) {
if (TYPE != null) {
JQMDataTableRowSelChangedEvent event = new JQMDataTableRowSelChangedEvent(data);
source.fireEvent(event);
}
}
public static Type<JQMDataTableRowSelChangedEvent.Handler> getType() {
if (TYPE == null) {
TYPE = new Type<JQMDataTableRowSelChangedEvent.Handler>();
}
return TYPE;
}
public RowSelChangedData getData() {
return data;
}
@Override
public final Type<JQMDataTableRowSelChangedEvent.Handler> getAssociatedType() {
return TYPE;
}
@Override
protected void dispatch(JQMDataTableRowSelChangedEvent.Handler handler) {
handler.onRowSelChanged(this);
}
}