package kornell.gui.client.event;
import com.google.gwt.event.shared.GwtEvent;
public class NavigationAuthorizationEvent extends GwtEvent<NavigationAuthorizationEventHandler> {
public static final Type<NavigationAuthorizationEventHandler> TYPE = new Type<NavigationAuthorizationEventHandler>();
public enum Forecast {
NEXT_OK,
NEXT_NOT_OK,
PREV_OK,
PREV_NOT_OK;
public NavigationAuthorizationEvent get(){
return new NavigationAuthorizationEvent(this);
}
}
public NavigationAuthorizationEvent(Forecast forecast){
this.forecast = forecast;
}
Forecast forecast;
private static final NavigationAuthorizationEvent NEXT_OK = new NavigationAuthorizationEvent(Forecast.NEXT_OK);
private static final NavigationAuthorizationEvent NEXT_NOT_OK = new NavigationAuthorizationEvent(Forecast.NEXT_NOT_OK);
private static final NavigationAuthorizationEvent PREV_OK = new NavigationAuthorizationEvent(Forecast.PREV_OK);
private static final NavigationAuthorizationEvent PREV_NOT_OK = new NavigationAuthorizationEvent(Forecast.PREV_NOT_OK);
@Override
public Type<NavigationAuthorizationEventHandler> getAssociatedType() {
return TYPE;
}
public static NavigationAuthorizationEvent next(boolean isOK) {
return isOK ? NEXT_OK : NEXT_NOT_OK;
}
public static NavigationAuthorizationEvent prev(boolean isOK) {
return isOK ? PREV_OK : PREV_NOT_OK;
}
@Override
protected void dispatch(NavigationAuthorizationEventHandler handler) {
switch(forecast){
case NEXT_OK: handler.onNextActivityOK(this);
break;
case NEXT_NOT_OK: handler.onNextActivityNotOK(this);
break;
case PREV_OK: handler.onPrevActivityOK(this);
break;
case PREV_NOT_OK: handler.onPrevActivityNotOK(this);
break;
}
}
}