package bayesGame.ui.verbs;
import edu.uci.ics.jung.visualization.control.PluggableGraphMouse;
import bayesGame.levelcontrollers.Controller;
public abstract class Verb {
private final Controller controller;
public final returnCall returnType;
public enum returnCall{
GenericMessage,
GenericMessageObject,
MouseMessage,
KeyMessage
}
public Verb(Controller controller, returnCall returnType) {
this.controller = controller;
this.returnType = returnType;
}
public void message(Object o){
messageController(o);
}
public abstract PluggableGraphMouse getPGM();
public void message(){
if (returnType == returnCall.GenericMessage){
controller.genericMessage();
}
}
private void messageController(Object o){
switch(returnType){
case GenericMessage:
controller.genericMessage();
break;
case GenericMessageObject:
controller.genericMessage(o);
break;
case KeyMessage:
controller.keyMessage(o);
break;
case MouseMessage:
controller.mouseMessage(o);
break;
}
}
}