Fixed broken race timer and timer now using stream timer data.

#story[818]
This commit is contained in:
Zhi You Tan
2017-04-28 21:44:23 +12:00
parent b939086e10
commit f3ee618900
2 changed files with 28 additions and 8 deletions
@@ -12,6 +12,7 @@ import javafx.scene.control.CheckBox;
import javafx.scene.layout.AnchorPane; import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.Pane; import javafx.scene.layout.Pane;
import javafx.scene.layout.VBox; import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.scene.text.Text; import javafx.scene.text.Text;
import javafx.util.Duration; import javafx.util.Duration;
import seng302.models.Boat; import seng302.models.Boat;
@@ -19,6 +20,7 @@ import seng302.models.Event;
import seng302.models.Race; import seng302.models.Race;
import seng302.models.TimelineInfo; import seng302.models.TimelineInfo;
import seng302.models.parsers.ConfigParser; import seng302.models.parsers.ConfigParser;
import seng302.models.parsers.StreamParser;
import java.io.IOException; import java.io.IOException;
import java.util.*; import java.util.*;
@@ -65,7 +67,7 @@ public class RaceViewController extends Thread{
includedCanvasController.setup(this); includedCanvasController.setup(this);
includedCanvasController.initializeCanvas(); includedCanvasController.initializeCanvas();
//initializeTimer(); initializeTimer();
initializeSettings(); initializeSettings();
//set wind direction!!!!!!! can't find another place to put my code --haoming //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( timerTimeline.getKeyFrames().add(
new KeyFrame(Duration.seconds(1), new KeyFrame(Duration.seconds(1),
event -> { event -> {
// Stop timer if race is finished if (StreamParser.isRaceFinished()) {
if (this.race.isRaceFinished()) { timerLabel.setFill(Color.RED);
this.timerTimeline.stop(); timerLabel.setText("Race Finished!");
} else { } else {
timerLabel.setText(convertTimeToMinutesSeconds(race.getRaceTime())); timerLabel.setText(currentTimer());
this.race.incrementRaceTime();
} }
}) })
); );
@@ -262,6 +263,20 @@ public class RaceViewController extends Thread{
return String.format("%02d:%02d", time / 60, time % 60); 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() { public void stopTimer() {
timerTimeline.stop(); timerTimeline.stop();
} }
+7 -2
View File
@@ -1,5 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.shape.*?>
<?import javafx.scene.text.*?>
<?import javafx.scene.control.CheckBox?> <?import javafx.scene.control.CheckBox?>
<?import javafx.scene.control.Label?> <?import javafx.scene.control.Label?>
<?import javafx.scene.layout.AnchorPane?> <?import javafx.scene.layout.AnchorPane?>
@@ -12,7 +17,7 @@
<?import javafx.scene.text.Font?> <?import javafx.scene.text.Font?>
<?import javafx.scene.text.Text?> <?import javafx.scene.text.Text?>
<GridPane prefHeight="1080.0" prefWidth="1920.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0" xmlns="http://javafx.com/javafx/8.0.112" xmlns:fx="http://javafx.com/fxml/1" fx:controller="seng302.controllers.RaceViewController"> <GridPane prefHeight="1080.0" prefWidth="1920.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="seng302.controllers.RaceViewController">
<columnConstraints> <columnConstraints>
<ColumnConstraints maxWidth="246.0" minWidth="246.0" prefWidth="246.0" /> <ColumnConstraints maxWidth="246.0" minWidth="246.0" prefWidth="246.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="1034.0" /> <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="1034.0" />
@@ -47,7 +52,7 @@
<children> <children>
<Text fx:id="timerLabel" layoutX="6.0" layoutY="37.0" strokeType="OUTSIDE" strokeWidth="0.0" text="00:00" textAlignment="CENTER" wrappingWidth="181.0"> <Text fx:id="timerLabel" layoutX="6.0" layoutY="37.0" strokeType="OUTSIDE" strokeWidth="0.0" text="00:00" textAlignment="CENTER" wrappingWidth="181.0">
<font> <font>
<Font size="34.0" /> <Font size="25.0" />
</font> </font>
</Text> </Text>
</children> </children>