summaryrefslogtreecommitdiffstats
path: root/src/jrummikub/control
diff options
context:
space:
mode:
Diffstat (limited to 'src/jrummikub/control')
-rw-r--r--src/jrummikub/control/TurnTimer.java44
1 files changed, 43 insertions, 1 deletions
diff --git a/src/jrummikub/control/TurnTimer.java b/src/jrummikub/control/TurnTimer.java
index 701e892..9e694f7 100644
--- a/src/jrummikub/control/TurnTimer.java
+++ b/src/jrummikub/control/TurnTimer.java
@@ -1,5 +1,47 @@
package jrummikub.control;
-public class TurnTimer {
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import javax.swing.Timer;
+
+import jrummikub.util.Event;
+import jrummikub.util.IEvent;
+import jrummikub.view.IView;
+
+public class TurnTimer implements ActionListener {
+ private IView view;
+ private int timeLeft = 60;
+ private Timer timer;
+ private Event timeRunOutEvent = new Event();
+
+ public TurnTimer(IView view) {
+ this.view = view;
+ timer = new Timer(1000, this);
+ timer.setRepeats(true);
+ timer.setCoalesce(false);
+ view.getPlayerPanel().setTimeLeft(timeLeft);
+ }
+
+ public void startTimer() {
+ timer.start();
+ }
+
+ public void stopTimer() {
+ timer.stop();
+ }
+
+ @Override
+ public void actionPerformed(ActionEvent arg0) {
+ timeLeft--;
+ view.getPlayerPanel().setTimeLeft(timeLeft);
+ if (timeLeft == 0) {
+ timer.stop();
+ timeRunOutEvent.emit();
+ }
+ }
+
+ public IEvent getTimeRunOutEvent() {
+ return timeRunOutEvent;
+ }
}