|
|
|
|
@ -2,15 +2,12 @@ package seng302.Controllers;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import javafx.beans.property.ReadOnlyObjectWrapper;
|
|
|
|
|
import javafx.beans.value.ChangeListener;
|
|
|
|
|
import javafx.beans.value.ObservableValue;
|
|
|
|
|
import javafx.collections.ObservableList;
|
|
|
|
|
import javafx.event.EventHandler;
|
|
|
|
|
import javafx.fxml.FXML;
|
|
|
|
|
import javafx.scene.control.Label;
|
|
|
|
|
import javafx.scene.control.SplitPane;
|
|
|
|
|
import javafx.scene.control.TableColumn;
|
|
|
|
|
import javafx.scene.control.TableView;
|
|
|
|
|
import javafx.scene.control.TitledPane;
|
|
|
|
|
import javafx.scene.control.*;
|
|
|
|
|
import javafx.scene.control.cell.PropertyValueFactory;
|
|
|
|
|
import javafx.scene.input.MouseEvent;
|
|
|
|
|
import javafx.scene.layout.AnchorPane;
|
|
|
|
|
@ -39,6 +36,11 @@ public class RaceController extends Controller {
|
|
|
|
|
@FXML
|
|
|
|
|
SplitPane ongoingRacePane;
|
|
|
|
|
|
|
|
|
|
@FXML
|
|
|
|
|
CheckBox showFPS;
|
|
|
|
|
|
|
|
|
|
@FXML
|
|
|
|
|
CheckBox showAnno;
|
|
|
|
|
|
|
|
|
|
@FXML
|
|
|
|
|
Label timer;
|
|
|
|
|
@ -67,8 +69,7 @@ public class RaceController extends Controller {
|
|
|
|
|
public void updateMap(ObservableList<BoatInRace> boats) {
|
|
|
|
|
BoatInRace[] boatInRaces = new BoatInRace[boats.size()];
|
|
|
|
|
raceMap.setBoats(boats.toArray(boatInRaces));
|
|
|
|
|
raceMap.drawRaceMap();
|
|
|
|
|
raceMap.updateBoats();
|
|
|
|
|
raceMap.update();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
@ -114,7 +115,17 @@ public class RaceController extends Controller {
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void initialize(URL location, ResourceBundle resources) {
|
|
|
|
|
|
|
|
|
|
//listener for fps
|
|
|
|
|
showFPS.selectedProperty().addListener(new ChangeListener<Boolean>() {
|
|
|
|
|
public void changed(ObservableValue<? extends Boolean> ov,
|
|
|
|
|
Boolean old_val, Boolean new_val) {
|
|
|
|
|
if (showFPS.isSelected()){
|
|
|
|
|
FPS.setVisible(true);
|
|
|
|
|
} else {
|
|
|
|
|
FPS.setVisible(false);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
@ -126,6 +137,7 @@ public class RaceController extends Controller {
|
|
|
|
|
private void startRace(int scaleFactor) {
|
|
|
|
|
BoatInRace[] boats = generateAC35Competitors();
|
|
|
|
|
raceMap = new ResizableRaceCanvas();
|
|
|
|
|
raceMap.setMouseTransparent(true);
|
|
|
|
|
raceMap.widthProperty().bind(canvasBase.widthProperty());
|
|
|
|
|
raceMap.heightProperty().bind(canvasBase.heightProperty());
|
|
|
|
|
raceMap.setBoats(boats);
|
|
|
|
|
@ -142,6 +154,15 @@ public class RaceController extends Controller {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
new Thread((race)).start();
|
|
|
|
|
|
|
|
|
|
//listener for annotation
|
|
|
|
|
showAnno.selectedProperty().addListener(new ChangeListener<Boolean>() {
|
|
|
|
|
public void changed(ObservableValue<? extends Boolean> ov,
|
|
|
|
|
Boolean old_val, Boolean new_val) {
|
|
|
|
|
raceMap.toggleAnno();
|
|
|
|
|
raceMap.update();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|