@Override public void dispatch(ComponentListener listener) { super.dispatch(listener); switch (_type) { case CONTROLLER_PRESSED: if (listener instanceof ControllerListener) { ((ControllerListener) listener).controllerPressed(this); } break; case CONTROLLER_RELEASED: if (listener instanceof ControllerListener) { ((ControllerListener) listener).controllerReleased(this); } break; case CONTROLLER_MOVED: if (listener instanceof ControllerListener) { ((ControllerListener) listener).controllerMoved(this); } break; case CONTROLLER_POV_X_MOVED: if (listener instanceof ControllerListener) { ((ControllerListener) listener).controllerPovXMoved(this); } break; case CONTROLLER_POV_Y_MOVED: if (listener instanceof ControllerListener) { ((ControllerListener) listener).controllerPovYMoved(this); } break; } }
public void event(Event event) { for (Class<? extends Event> cls : map.keySet()) { if (cls.getName().equals(event.getClass().getName())) { for (ControllerListener listener : map.get(cls)) { listener.event(event); } } } }
/** * Fire an event indicating that a control has been released * * @param index The index of the control released * @param controllerIndex The index of the controller on which the control was released */ private void fireControlRelease(int index, int controllerIndex) { consumed = false; for (int i = 0; i < controllerListeners.size(); i++) { ControllerListener listener = (ControllerListener) controllerListeners.get(i); if (listener.isAcceptingInput()) { switch (index) { case LEFT: listener.controllerLeftReleased(controllerIndex); break; case RIGHT: listener.controllerRightReleased(controllerIndex); break; case UP: listener.controllerUpReleased(controllerIndex); break; case DOWN: listener.controllerDownReleased(controllerIndex); break; default: // assume button release listener.controllerButtonReleased(controllerIndex, (index - BUTTON1) + 1); break; } if (consumed) { break; } } } }