summaryrefslogtreecommitdiffstats
path: root/src/jrummikub/control/turn/AbstractTurnControl.java
diff options
context:
space:
mode:
authorJannis Harder <harder@informatik.uni-luebeck.de>2011-06-08 15:59:59 +0200
committerJannis Harder <harder@informatik.uni-luebeck.de>2011-06-08 15:59:59 +0200
commit67d084d48bceed9e8db46877fc4bb17fed8126cd (patch)
tree3609b54391b3427bcdcdbd405cba8e4b5b9d3040 /src/jrummikub/control/turn/AbstractTurnControl.java
parent8b763a817b21aff45d704940ad2e17799dc7bb43 (diff)
downloadJRummikub-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.java34
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