From: Erik V. <ev...@us...> - 2009-09-23 21:39:14
|
Update of /cvsroot/rails/18xx/rails/game/move In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv15188/rails/game/move Modified Files: DoubleMapChange.java RemoveFromList.java MapChange.java Move.java AddToList.java Log Message: Implemented 1856 Bridge and Tunnel tokens Index: Move.java =================================================================== RCS file: /cvsroot/rails/18xx/rails/game/move/Move.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Move.java 4 Jun 2008 19:00:33 -0000 1.2 --- Move.java 23 Sep 2009 21:38:57 -0000 1.3 *************** *** 1,4 **** /* $Header$ ! * * Created on 17-Jul-2006 * Change Log: --- 1,4 ---- /* $Header$ ! * * Created on 17-Jul-2006 * Change Log: *************** *** 6,11 **** --- 6,16 ---- package rails.game.move; + import java.util.ArrayList; + import java.util.List; + import org.apache.log4j.Logger; + import rails.game.model.ModelObject; + /** * @author Erik Vos *************** *** 13,16 **** --- 18,26 ---- public abstract class Move { + /** Any ModelObjects that need be updated. + * Will only be used by subclasses where it matters. + */ + protected List<ModelObject> models = null; + protected static Logger log = Logger.getLogger(Move.class.getPackage().getName()); *************** *** 20,22 **** --- 30,45 ---- public abstract boolean undo(); + public void registerModelToUpdate (ModelObject model) { + if (models == null) models = new ArrayList<ModelObject>(2); + models.add(model); + } + + // Could also be built into execute() and update() + public void updateModels () { + if (models != null) { + for (ModelObject model : models) { + model.update(); + } + } + } } Index: MapChange.java =================================================================== RCS file: /cvsroot/rails/18xx/rails/game/move/MapChange.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** MapChange.java 15 Jan 2009 20:53:28 -0000 1.2 --- MapChange.java 23 Sep 2009 21:38:57 -0000 1.3 *************** *** 52,55 **** --- 52,59 ---- return true; } + + public String toString() { + return "MapChange: key="+key+" from "+oldValue+" to "+newValue; + } } Index: DoubleMapChange.java =================================================================== RCS file: /cvsroot/rails/18xx/rails/game/move/DoubleMapChange.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** DoubleMapChange.java 4 Jun 2008 19:00:33 -0000 1.6 --- DoubleMapChange.java 23 Sep 2009 21:38:57 -0000 1.7 *************** *** 51,53 **** --- 51,56 ---- } + public String toString() { + return "DoubleMapChange: key1="+firstKey+"key2="+secondKey+" value="+value; + } } Index: RemoveFromList.java =================================================================== RCS file: /cvsroot/rails/18xx/rails/game/move/RemoveFromList.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** RemoveFromList.java 4 Jun 2008 19:00:33 -0000 1.2 --- RemoveFromList.java 23 Sep 2009 21:38:57 -0000 1.3 *************** *** 8,11 **** --- 8,13 ---- import java.util.List; + import rails.game.model.ModelObject; + /** * @author Erik Vos *************** *** 18,31 **** protected int index; ! public RemoveFromList(List<E> list, E object, String listName) { this.object = object; this.list = list; this.listName = listName; index = list.indexOf(object); MoveSet.add(this); } ! public boolean execute() { list.remove(object); return true; --- 20,39 ---- protected int index; ! public RemoveFromList(List<E> list, E object, String listName, ! ModelObject modelToUpdate) { this.object = object; this.list = list; this.listName = listName; index = list.indexOf(object); + if (modelToUpdate != null) registerModelToUpdate (modelToUpdate); MoveSet.add(this); } ! public RemoveFromList(List<E> list, E object, String listName) { ! this (list, object, listName, null); ! } ! ! public boolean execute() { list.remove(object); return true; *************** *** 38,42 **** public String toString() { ! return "RemoveFrom " + listName + ": " + object.toString(); } --- 46,50 ---- public String toString() { ! return "RemoveFromList " + listName + ": " + object.toString(); } Index: AddToList.java =================================================================== RCS file: /cvsroot/rails/18xx/rails/game/move/AddToList.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** AddToList.java 4 Jun 2008 19:00:33 -0000 1.3 --- AddToList.java 23 Sep 2009 21:38:57 -0000 1.4 *************** *** 1,4 **** /* $Header$ ! * * Created on 18-Jul-2006 * Change Log: --- 1,4 ---- /* $Header$ ! * * Created on 18-Jul-2006 * Change Log: *************** *** 8,11 **** --- 8,13 ---- import java.util.List; + import rails.game.model.ModelObject; + /** * @author Erik Vos *************** *** 17,40 **** protected String listName; ! public AddToList(List<E> list, E object, String listName) { this.object = object; this.list = list; this.listName = listName; MoveSet.add(this); } ! public boolean execute() { list.add(object); return true; } ! public boolean undo() { list.remove(object); return true; } ! public String toString() { ! return "AddTo " + listName + ": " + object.toString(); } --- 19,53 ---- protected String listName; ! public AddToList(List<E> list, E object, String listName, ! ModelObject modelToUpdate) { this.object = object; this.list = list; this.listName = listName; + if (modelToUpdate != null) registerModelToUpdate (modelToUpdate); MoveSet.add(this); } + + public AddToList(List<E> list, E object, String listName) { + this (list, object, listName, null); + } ! @Override ! public boolean execute() { list.add(object); + updateModels(); return true; } ! @Override ! public boolean undo() { list.remove(object); + updateModels(); return true; } ! @Override ! public String toString() { ! return "AddToList " + listName + ": " + object.toString(); } |