diff options
Diffstat (limited to 'src/jrummikub/control')
-rw-r--r-- | src/jrummikub/control/TurnTimer.java | 44 |
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; + } } |