/******************************************************************************* * Copyright (c) 2016 Alex Shapiro - github.com/shpralex * This program and the accompanying materials * are made available under the terms of the The MIT License (MIT) * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. *******************************************************************************/ package com.sproutlife.panel.gamepanel.handler; import java.util.Vector; import com.sproutlife.panel.PanelController; public abstract class HandlerSet { public enum InteractionMode { Drag, Select } private PanelController panelController; private Vector<BackgroundClickHandler> backgroundClickHandlers; private Vector<ClickHandler> clickHandlers; private Vector<BackgroundDragHandler> backgroundDragHandlers; private Vector<DragHandler> dragHandlers; private Vector<MouseWheelHandler> mouseWheelHandlers; //private BackgroundPopupMenu backgroundPopupMenu; public HandlerSet(PanelController panelController) { this.panelController = panelController; initializeHandlers(); } public void reset() { initializeHandlers(); addHandlers(); } private void initializeHandlers() { backgroundClickHandlers = new Vector<BackgroundClickHandler>(); clickHandlers = new Vector<ClickHandler>(); backgroundDragHandlers = new Vector<BackgroundDragHandler>(); dragHandlers = new Vector<DragHandler>(); mouseWheelHandlers = new Vector<MouseWheelHandler>(); } public abstract void addHandlers(); public Iterable<BackgroundClickHandler> getBackgroundClickHandlers() { return backgroundClickHandlers; } public Iterable<ClickHandler> getClickHandlers() { return clickHandlers; } public Iterable<BackgroundDragHandler> getBackgroundDragHandlers() { return backgroundDragHandlers; } public Iterable<DragHandler> getDragHandlers() { return dragHandlers; } public Iterable<MouseWheelHandler> getMouseWheelHandlers() { return mouseWheelHandlers; } public void addBackgroundClickHandler(BackgroundClickHandler clickHandler) { backgroundClickHandlers.add(clickHandler); } public void addClickHandler(ClickHandler clickHandler) { clickHandlers.add(clickHandler); } public void removeBackgroundClickHandler(BackgroundClickHandler clickHandler) { backgroundClickHandlers.remove(clickHandler); } public void removeClickHandler(ClickHandler clickHandler) { clickHandlers.remove(clickHandler); } public void addBackgroundDragHandler(BackgroundDragHandler dragHandler) { backgroundDragHandlers.add(dragHandler); } public void addDragHandler(DragHandler dragHandler) { dragHandlers.add(dragHandler); } public void removeBackgroundDragHandler(BackgroundDragHandler dragHandler) { backgroundDragHandlers.remove(dragHandler); } public void removeDragHandler(DragHandler dragHandler) { dragHandlers.remove(dragHandler); } public void addMouseWheelHandler(MouseWheelHandler mouseWheelHandler) { mouseWheelHandlers.add(mouseWheelHandler); } public void removeMouseWheelHandler(MouseWheelHandler mouseWheelHandler) { mouseWheelHandlers.remove(mouseWheelHandler); } }