1 /*** 2 * Redistribution and use in source and binary forms, with or without 3 * modification, are permitted provided that the following conditions are 4 * met : 5 * 6 * . Redistributions of source code must retain the above copyright 7 * notice, this list of conditions and the following disclaimer. 8 * 9 * . Redistributions in binary form must reproduce the above copyright 10 * notice, this list of conditions and the following disclaimer in the 11 * documentation and/or other materials provided with the distribution. 12 * 13 * . The name of the author may not be used to endorse or promote products 14 * derived from this software without specific prior written permission. 15 * 16 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 17 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, 20 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 22 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 24 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 25 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 26 * POSSIBILITY OF SUCH DAMAGE. 27 * 28 * $Id: IController.java,v 1.1 2005/09/07 20:37:50 mat007 Exp $ 29 */ 30 31 package battlehex.ui.main; 32 33 import jtge.util.grid.Coordinate; 34 35 /*** 36 * Defines a controller component. 37 * 38 * @author Mathieu Champlon 39 * @version $Revision: 1.1 $ $Date: 2005/09/07 20:37:50 $ 40 */ 41 public interface IController 42 { 43 /*** 44 * Notify of a click event on the map. 45 * 46 * @param coordinate the coordinate 47 */ 48 void click( Coordinate coordinate ); 49 50 /*** 51 * Notify of a drag and drop event on the map. 52 * 53 * @param from the origin 54 * @param to the destination 55 */ 56 void drag( Coordinate from, Coordinate to ); 57 58 /*** 59 * Change state to an entity placement pending. 60 */ 61 void place(); 62 63 /*** 64 * Create a new game. 65 */ 66 void newGame(); 67 68 /*** 69 * Trigger a turn end. 70 */ 71 void endTurn(); 72 73 /*** 74 * Register a selection view. 75 * 76 * @param selection the view to register 77 */ 78 void register( ISelection selection ); 79 }