Timer now shows and updates correctly on the start menu. #story[761]

main
Joseph Gardner 9 years ago
parent 26380f2677
commit 84c518f89f

@ -46,6 +46,7 @@ public class StartController extends Controller {
private RaceClock raceClock; private RaceClock raceClock;
private RaceDataSource raceData; private RaceDataSource raceData;
private long timeLeft = 1;
/** /**
* Begins the race with a scale factor of 15 * Begins the race with a scale factor of 15
@ -89,6 +90,7 @@ public class StartController extends Controller {
e.printStackTrace(); e.printStackTrace();
} }
initialiseTables(); initialiseTables();
setRaceClock();
} }
public AnchorPane startWrapper(){ public AnchorPane startWrapper(){
@ -102,9 +104,6 @@ public class StartController extends Controller {
boatNameTable.setItems(observableBoats); boatNameTable.setItems(observableBoats);
boatNameColumn.setCellValueFactory(cellData -> cellData.getValue().getName()); boatNameColumn.setCellValueFactory(cellData -> cellData.getValue().getName());
boatCodeColumn.setCellValueFactory(new PropertyValueFactory<>("abbrev")); boatCodeColumn.setCellValueFactory(new PropertyValueFactory<>("abbrev"));
//timezone
raceClock = new RaceClock(raceData.getZonedDateTime());
timeZoneTime.textProperty().bind(raceClock.timeStringProperty());
} }
@ -130,7 +129,6 @@ public class StartController extends Controller {
long currentTimeInSeconds; long currentTimeInSeconds;
long remainingSeconds; long remainingSeconds;
long hours; long hours;
long timeLeft;
@Override @Override
public void handle(long arg0) { public void handle(long arg0) {
@ -148,7 +146,6 @@ public class StartController extends Controller {
hours = minutes / 60; hours = minutes / 60;
minutes = minutes % 60; minutes = minutes % 60;
updateTime(String.format("Race Clock: -%02d:%02d:%02d", hours, minutes, remainingSeconds)); updateTime(String.format("Race Clock: -%02d:%02d:%02d", hours, minutes, remainingSeconds));
raceClock.updateTime();
} }
currentTime = System.currentTimeMillis(); currentTime = System.currentTimeMillis();
@ -156,4 +153,20 @@ public class StartController extends Controller {
}.start(); }.start();
} }
protected void setRaceClock() {
raceClock = new RaceClock(raceData.getZonedDateTime());
timeZoneTime.textProperty().bind(raceClock.timeStringProperty());
new AnimationTimer() {
@Override
public void handle(long arg0) {
if (timeLeft > 0) {
raceClock.updateTime();
} else {
stop();
}
}
}.start();
}
} }

@ -12,6 +12,7 @@ import java.time.ZoneId;
import java.time.ZonedDateTime; import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit; import java.time.temporal.ChronoUnit;
import java.time.temporal.TemporalAmount;
/** /**
* Created by Gondr on 19/04/2017. * Created by Gondr on 19/04/2017.
@ -26,6 +27,7 @@ public class RaceClock {
this.zoneId = zonedDateTime.getZone(); this.zoneId = zonedDateTime.getZone();
this.timeString = new SimpleStringProperty(); this.timeString = new SimpleStringProperty();
this.time = zonedDateTime; this.time = zonedDateTime;
setTime(time);
} }
public static ZonedDateTime getCurrentZonedDateTime(GPSCoordinate gpsCoordinate) { public static ZonedDateTime getCurrentZonedDateTime(GPSCoordinate gpsCoordinate) {
@ -49,18 +51,15 @@ public class RaceClock {
* Updates time by duration elapsed since last update. * Updates time by duration elapsed since last update.
*/ */
public void updateTime() { public void updateTime() {
this.time.plus(Duration.of(System.currentTimeMillis() - this.lastTime, ChronoUnit.MILLIS)); this.time = this.time.plus(Duration.of(System.currentTimeMillis() - this.lastTime, ChronoUnit.MILLIS));
this.lastTime = System.currentTimeMillis(); this.lastTime = System.currentTimeMillis();
setTime(time);
} }
public String getTimeZone() { public String getTimeZone() {
return zoneId.toString(); return zoneId.toString();
} }
public String getTimeString() {
return timeString.get();
}
public StringProperty timeStringProperty() { public StringProperty timeStringProperty() {
return timeString; return timeString;
} }

Loading…
Cancel
Save