From 614d0935be71708331c9b1d65f430d6bf5b00777 Mon Sep 17 00:00:00 2001 From: Ida Massow Date: Wed, 4 May 2011 16:49:40 +0200 Subject: =?UTF-8?q?Timer=20l=C3=A4uft=20ab?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@106 72836036-5685-4462-b002-a69064685172 --- src/jrummikub/JRummikub.java | 4 +++- src/jrummikub/control/TurnTimer.java | 44 +++++++++++++++++++++++++++++++++++- 2 files changed, 46 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/jrummikub/JRummikub.java b/src/jrummikub/JRummikub.java index 5bddc68..5ea5a26 100644 --- a/src/jrummikub/JRummikub.java +++ b/src/jrummikub/JRummikub.java @@ -8,6 +8,7 @@ import java.util.Map; import javax.swing.UIManager; +import jrummikub.control.TurnTimer; import jrummikub.model.Position; import jrummikub.model.Stone; import jrummikub.model.StoneColor; @@ -33,7 +34,8 @@ public class JRummikub { final IView view = new jrummikub.view.impl.View(); view.setCurrentPlayerName("Player 1"); - view.getPlayerPanel().setTimeLeft(42); + TurnTimer testTimer = new TurnTimer(view); + testTimer.startTimer(); view.getTablePanel().setLeftPlayerName("Player 2"); view.getTablePanel().setTopPlayerName("Player 3"); view.getTablePanel().setRightPlayerName("Player 4"); 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; + } } -- cgit v1.2.3