June 15, 2015

Creating a custom generic GWT event


I keep having trouble setting up a GWT event handler which is parameterized. All of the magic needs to happen in the GwtEvent class itself.



public class CustomClickEvent<T> extends GwtEvent<HasClickHandler<T>> {
	private static Type<HasClickHandler<?>> TYPE = new Type<HasClickHandler<?>>();
	
	
	private LazyCellClickEvent() {}
	
	@Override
	protected void dispatch(CustomClickEventHandler<T> clickEvent) {
		clickEvent.onClick(this);
	}

	@SuppressWarnings({ "unchecked", "rawtypes" })
	@Override
	public Type<HasClickHandler<T>> getAssociatedType() {
		return (Type)TYPE;
	}
	
	public static final Type<HasClickHandler<?> getType() {
		return TYPE;
	}
	
	public static  void fire(HasCustomEventHandler<T> handler) {
		CustomClickEvent<T> event = new CustomClickEvent<T>();
		handler.fireEvent(event);
	}	
}

No comments: