diff options
author | Jannis Harder <harder@informatik.uni-luebeck.de> | 2011-06-08 15:59:59 +0200 |
---|---|---|
committer | Jannis Harder <harder@informatik.uni-luebeck.de> | 2011-06-08 15:59:59 +0200 |
commit | 67d084d48bceed9e8db46877fc4bb17fed8126cd (patch) | |
tree | 3609b54391b3427bcdcdbd405cba8e4b5b9d3040 /src/jrummikub/control/turn/AbstractTurnControl.java | |
parent | 8b763a817b21aff45d704940ad2e17799dc7bb43 (diff) | |
download | JRummikub-67d084d48bceed9e8db46877fc4bb17fed8126cd.tar JRummikub-67d084d48bceed9e8db46877fc4bb17fed8126cd.zip |
Moved timer code to AbstractTurnControl
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@383 72836036-5685-4462-b002-a69064685172
Diffstat (limited to 'src/jrummikub/control/turn/AbstractTurnControl.java')
-rw-r--r-- | src/jrummikub/control/turn/AbstractTurnControl.java | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/src/jrummikub/control/turn/AbstractTurnControl.java b/src/jrummikub/control/turn/AbstractTurnControl.java index 554db61..ae1e155 100644 --- a/src/jrummikub/control/turn/AbstractTurnControl.java +++ b/src/jrummikub/control/turn/AbstractTurnControl.java @@ -1,8 +1,15 @@ package jrummikub.control.turn; +import java.util.ArrayList; +import java.util.List; + +import jrummikub.control.ITurnTimer; +import jrummikub.control.TurnTimer; import jrummikub.model.GameSettings; +import jrummikub.util.Connection; import jrummikub.util.Event; import jrummikub.util.IEvent; +import jrummikub.util.IListener; import jrummikub.view.IView; /** @@ -15,7 +22,10 @@ public abstract class AbstractTurnControl implements ITurnControl { protected TurnInfo turnInfo; protected GameSettings settings; protected IView view; - + protected ITurnTimer timer; + protected List<Connection> connections = new ArrayList<Connection>(); + + @Override public IEvent getEndOfTurnEvent() { return endOfTurnEvent; @@ -25,12 +35,34 @@ public abstract class AbstractTurnControl implements ITurnControl { public IEvent getRedealEvent() { return redealEvent; } + + protected abstract void timeOut(); @Override public void setup(TurnInfo info, GameSettings settings, IView view) { turnInfo = info; this.settings = settings; this.view = view; + if (timer == null) { + timer = new TurnTimer(view); + } + connections.add(timer.getTimeRunOutEvent().add(new IListener() { + @Override + public void handle() { + timeOut(); + } + })); + } + + protected void cleanUp() { + timer.stopTimer(); + for (Connection c : connections) { + c.remove(); + } + } + + public void abortTurn() { + cleanUp(); } }
\ No newline at end of file |