|
|
|
@ -22,10 +22,8 @@ import java.net.Socket;
|
|
|
|
import java.net.URL;
|
|
|
|
import java.net.URL;
|
|
|
|
import java.text.DateFormat;
|
|
|
|
import java.text.DateFormat;
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
|
import java.util.List;
|
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
|
import java.util.Observable;
|
|
|
|
import java.util.*;
|
|
|
|
import java.util.Observer;
|
|
|
|
|
|
|
|
import java.util.ResourceBundle;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* Created by esa46 on 6/04/17.
|
|
|
|
* Created by esa46 on 6/04/17.
|
|
|
|
@ -35,6 +33,7 @@ public class StartController extends Controller implements Observer {
|
|
|
|
@FXML private GridPane start;
|
|
|
|
@FXML private GridPane start;
|
|
|
|
@FXML private AnchorPane startWrapper;
|
|
|
|
@FXML private AnchorPane startWrapper;
|
|
|
|
@FXML private Label raceTitleLabel;
|
|
|
|
@FXML private Label raceTitleLabel;
|
|
|
|
|
|
|
|
@FXML private Label raceStartLabel;
|
|
|
|
|
|
|
|
|
|
|
|
@FXML private TableView<Boat> boatNameTable;
|
|
|
|
@FXML private TableView<Boat> boatNameTable;
|
|
|
|
@FXML private TableColumn<Boat, String> boatNameColumn;
|
|
|
|
@FXML private TableColumn<Boat, String> boatNameColumn;
|
|
|
|
@ -43,7 +42,7 @@ public class StartController extends Controller implements Observer {
|
|
|
|
@FXML private Label timer;
|
|
|
|
@FXML private Label timer;
|
|
|
|
@FXML private int PRERACE_TIME = 10;
|
|
|
|
@FXML private int PRERACE_TIME = 10;
|
|
|
|
|
|
|
|
|
|
|
|
@FXML Button fifteenMinButton;
|
|
|
|
//@FXML Button fifteenMinButton;
|
|
|
|
|
|
|
|
|
|
|
|
private RaceClock raceClock;
|
|
|
|
private RaceClock raceClock;
|
|
|
|
|
|
|
|
|
|
|
|
@ -56,12 +55,13 @@ public class StartController extends Controller implements Observer {
|
|
|
|
* Begins the race with a scale factor of 1
|
|
|
|
* Begins the race with a scale factor of 1
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
public void startRaceNoScaling() {
|
|
|
|
public void startRaceNoScaling() {
|
|
|
|
startRace(1);
|
|
|
|
//startRace(1);
|
|
|
|
|
|
|
|
countdownTimer(1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void startRace(int raceScale){
|
|
|
|
private void startRace(int raceScale){
|
|
|
|
fifteenMinButton.setDisable(true);
|
|
|
|
//fifteenMinButton.setDisable(true);
|
|
|
|
countdownTimer(raceScale);
|
|
|
|
//countdownTimer(raceScale);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
@ -103,15 +103,15 @@ public class StartController extends Controller implements Observer {
|
|
|
|
long currentTime = System.currentTimeMillis();
|
|
|
|
long currentTime = System.currentTimeMillis();
|
|
|
|
long startTime = currentTime + (PRERACE_TIME/scaleFactor);
|
|
|
|
long startTime = currentTime + (PRERACE_TIME/scaleFactor);
|
|
|
|
DateFormat timerFormat = new SimpleDateFormat("'Race Clock:' -HH:mm:ss");
|
|
|
|
DateFormat timerFormat = new SimpleDateFormat("'Race Clock:' -HH:mm:ss");
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void handle(long arg0) {
|
|
|
|
public void handle(long arg0) {
|
|
|
|
timeLeft = startTime - currentTime;
|
|
|
|
timeLeft = startTime - currentTime;
|
|
|
|
if (timeLeft <= 0) {
|
|
|
|
if (visualiserInput.getRaceStatus().getRaceStatus()==2) {
|
|
|
|
updateTime("Race is starting...");
|
|
|
|
updateTime("Race is starting...");
|
|
|
|
stop();
|
|
|
|
stop();
|
|
|
|
parent.beginRace(visualiserInput);
|
|
|
|
parent.beginRace(visualiserInput);
|
|
|
|
startWrapper.setVisible(false);
|
|
|
|
startWrapper.setVisible(false);
|
|
|
|
|
|
|
|
start.setVisible(false);
|
|
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
updateTime(timerFormat.format(currentTime));
|
|
|
|
updateTime(timerFormat.format(currentTime));
|
|
|
|
@ -122,7 +122,7 @@ public class StartController extends Controller implements Observer {
|
|
|
|
}.start();
|
|
|
|
}.start();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
protected void setRaceClock() {
|
|
|
|
private void setRaceClock() {
|
|
|
|
raceClock = new RaceClock(raceData.getZonedDateTime());
|
|
|
|
raceClock = new RaceClock(raceData.getZonedDateTime());
|
|
|
|
timeZoneTime.textProperty().bind(raceClock.timeStringProperty());
|
|
|
|
timeZoneTime.textProperty().bind(raceClock.timeStringProperty());
|
|
|
|
|
|
|
|
|
|
|
|
@ -138,6 +138,20 @@ public class StartController extends Controller implements Observer {
|
|
|
|
}.start();
|
|
|
|
}.start();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void setStartingTime() {
|
|
|
|
|
|
|
|
String dateFormat = "'Starting time:' HH:mm dd/MM/YYYY";
|
|
|
|
|
|
|
|
Platform.runLater(()-> {
|
|
|
|
|
|
|
|
long utcTime = visualiserInput.getRaceStatus().getExpectedStartTime();
|
|
|
|
|
|
|
|
raceStartLabel.setText(DateTimeFormatter.ofPattern(dateFormat).format(raceClock.getLocalTime(utcTime)));
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void setCurrentTime() {
|
|
|
|
|
|
|
|
Platform.runLater(()->
|
|
|
|
|
|
|
|
raceClock.setTime(raceClock.getLocalTime(visualiserInput.getRaceStatus().getCurrentTime()))
|
|
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void update(Observable o, Object arg) {
|
|
|
|
public void update(Observable o, Object arg) {
|
|
|
|
if(o instanceof StreamedCourse) {
|
|
|
|
if(o instanceof StreamedCourse) {
|
|
|
|
@ -148,7 +162,12 @@ public class StartController extends Controller implements Observer {
|
|
|
|
Platform.runLater(() -> raceTitleLabel.setText(((StreamedCourse)o).getRegattaName()));
|
|
|
|
Platform.runLater(() -> raceTitleLabel.setText(((StreamedCourse)o).getRegattaName()));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (((StreamedCourse) o).hasReadCourse()) {
|
|
|
|
if (((StreamedCourse) o).hasReadCourse()) {
|
|
|
|
Platform.runLater(() -> setRaceClock());
|
|
|
|
Platform.runLater(() -> {
|
|
|
|
|
|
|
|
setRaceClock();
|
|
|
|
|
|
|
|
while(visualiserInput.getRaceStatus() == null);
|
|
|
|
|
|
|
|
setStartingTime();
|
|
|
|
|
|
|
|
setCurrentTime();
|
|
|
|
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -166,4 +185,5 @@ public class StartController extends Controller implements Observer {
|
|
|
|
e.printStackTrace();
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|