From f3ee618900c2105981cc04a6839c4e2d978795b7 Mon Sep 17 00:00:00 2001 From: Zhi You Tan Date: Fri, 28 Apr 2017 21:44:23 +1200 Subject: [PATCH] Fixed broken race timer and timer now using stream timer data. #story[818] --- .../controllers/RaceViewController.java | 27 ++++++++++++++----- src/main/resources/views/RaceView.fxml | 9 +++++-- 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/src/main/java/seng302/controllers/RaceViewController.java b/src/main/java/seng302/controllers/RaceViewController.java index 214cf02f..ad7756f0 100644 --- a/src/main/java/seng302/controllers/RaceViewController.java +++ b/src/main/java/seng302/controllers/RaceViewController.java @@ -12,6 +12,7 @@ import javafx.scene.control.CheckBox; import javafx.scene.layout.AnchorPane; import javafx.scene.layout.Pane; import javafx.scene.layout.VBox; +import javafx.scene.paint.Color; import javafx.scene.text.Text; import javafx.util.Duration; import seng302.models.Boat; @@ -19,6 +20,7 @@ import seng302.models.Event; import seng302.models.Race; import seng302.models.TimelineInfo; import seng302.models.parsers.ConfigParser; +import seng302.models.parsers.StreamParser; import java.io.IOException; import java.util.*; @@ -65,7 +67,7 @@ public class RaceViewController extends Thread{ includedCanvasController.setup(this); includedCanvasController.initializeCanvas(); - //initializeTimer(); + initializeTimer(); initializeSettings(); //set wind direction!!!!!!! can't find another place to put my code --haoming @@ -102,12 +104,11 @@ public class RaceViewController extends Thread{ timerTimeline.getKeyFrames().add( new KeyFrame(Duration.seconds(1), event -> { - // Stop timer if race is finished - if (this.race.isRaceFinished()) { - this.timerTimeline.stop(); + if (StreamParser.isRaceFinished()) { + timerLabel.setFill(Color.RED); + timerLabel.setText("Race Finished!"); } else { - timerLabel.setText(convertTimeToMinutesSeconds(race.getRaceTime())); - this.race.incrementRaceTime(); + timerLabel.setText(currentTimer()); } }) ); @@ -262,6 +263,20 @@ public class RaceViewController extends Thread{ return String.format("%02d:%02d", time / 60, time % 60); } + private String currentTimer() { + String timerString = "0:00 minutes"; + if (StreamParser.getTimeSinceStart() > 0 && StreamParser.getTimeSinceStart() % 10 == 0) { + Long timerMinute = StreamParser.getTimeSinceStart() / 60; + Long timerSecond = StreamParser.getTimeSinceStart() % 60; + timerString = "-" + timerMinute + "." + timerSecond + " minutes"; + } else if (StreamParser.getTimeSinceStart() % 10 == 0) { + Long timerMinute = -1 * StreamParser.getTimeSinceStart() / 60; + Long timerSecond = -1 * StreamParser.getTimeSinceStart() % 60; + timerString = timerMinute + "." + timerSecond + " minutes"; + } + return timerString; + } + public void stopTimer() { timerTimeline.stop(); } diff --git a/src/main/resources/views/RaceView.fxml b/src/main/resources/views/RaceView.fxml index 2cae1326..556e2df6 100644 --- a/src/main/resources/views/RaceView.fxml +++ b/src/main/resources/views/RaceView.fxml @@ -1,5 +1,10 @@ + + + + + @@ -12,7 +17,7 @@ - + @@ -47,7 +52,7 @@ - +