|
|
|
|
@ -4,6 +4,8 @@ package seng302.Controllers;
|
|
|
|
|
import javafx.beans.value.ChangeListener;
|
|
|
|
|
import javafx.beans.value.ObservableValue;
|
|
|
|
|
import javafx.collections.ObservableList;
|
|
|
|
|
import javafx.event.ActionEvent;
|
|
|
|
|
import javafx.event.EventHandler;
|
|
|
|
|
import javafx.fxml.FXML;
|
|
|
|
|
import javafx.scene.control.*;
|
|
|
|
|
import javafx.scene.layout.GridPane;
|
|
|
|
|
@ -24,6 +26,9 @@ public class RaceController extends Controller {
|
|
|
|
|
@FXML
|
|
|
|
|
GridPane canvasBase;
|
|
|
|
|
|
|
|
|
|
//user saved data for annotation display
|
|
|
|
|
private ArrayList<Boolean> presetAnno;
|
|
|
|
|
|
|
|
|
|
ResizableRaceCanvas raceMap;
|
|
|
|
|
@FXML SplitPane race;
|
|
|
|
|
@FXML
|
|
|
|
|
@ -34,6 +39,16 @@ public class RaceController extends Controller {
|
|
|
|
|
Label timer;
|
|
|
|
|
@FXML
|
|
|
|
|
Label FPS;
|
|
|
|
|
@FXML
|
|
|
|
|
CheckBox showName;
|
|
|
|
|
@FXML
|
|
|
|
|
CheckBox showAbbrev;
|
|
|
|
|
@FXML
|
|
|
|
|
CheckBox showSpeed;
|
|
|
|
|
@FXML
|
|
|
|
|
Button saveAnno;
|
|
|
|
|
@FXML
|
|
|
|
|
Button showSetAnno;
|
|
|
|
|
|
|
|
|
|
@FXML
|
|
|
|
|
TableView<BoatInRace> boatInfoTable;
|
|
|
|
|
@ -139,7 +154,7 @@ public class RaceController extends Controller {
|
|
|
|
|
canvasBase.getChildren().add(raceMap);
|
|
|
|
|
race.setVisible(true);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//Initialize save annotation array, fps listener, and annotation listeners
|
|
|
|
|
initializeFPS();
|
|
|
|
|
initializeAnnotations();
|
|
|
|
|
|
|
|
|
|
@ -186,6 +201,7 @@ public class RaceController extends Controller {
|
|
|
|
|
* Set up boat annotations
|
|
|
|
|
*/
|
|
|
|
|
private void initializeAnnotations() {
|
|
|
|
|
presetAnno = new ArrayList<>();
|
|
|
|
|
//listener for annotation
|
|
|
|
|
showAnnotations.selectedProperty().addListener(new ChangeListener<Boolean>() {
|
|
|
|
|
public void changed(ObservableValue<? extends Boolean> ov,
|
|
|
|
|
@ -194,6 +210,51 @@ public class RaceController extends Controller {
|
|
|
|
|
raceMap.update();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
//listener for show name in annotation
|
|
|
|
|
showName.selectedProperty().addListener(new ChangeListener<Boolean>() {
|
|
|
|
|
public void changed(ObservableValue<? extends Boolean> ov,
|
|
|
|
|
Boolean old_val, Boolean new_val) {
|
|
|
|
|
raceMap.toggleAnnoName();
|
|
|
|
|
raceMap.update();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
//listener for show abbreviation for annotation
|
|
|
|
|
showAbbrev.selectedProperty().addListener(new ChangeListener<Boolean>() {
|
|
|
|
|
public void changed(ObservableValue<? extends Boolean> ov,
|
|
|
|
|
Boolean old_val, Boolean new_val) {
|
|
|
|
|
raceMap.toggleAnnoAbbrev();
|
|
|
|
|
raceMap.update();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
//listener to show speed for annotation
|
|
|
|
|
showSpeed.selectedProperty().addListener(new ChangeListener<Boolean>() {
|
|
|
|
|
public void changed(ObservableValue<? extends Boolean> ov,
|
|
|
|
|
Boolean old_val, Boolean new_val) {
|
|
|
|
|
raceMap.toggleAnnoSpeed();
|
|
|
|
|
raceMap.update();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
//listener to save currently selected annotation
|
|
|
|
|
saveAnno.setOnAction(new EventHandler<ActionEvent>() {
|
|
|
|
|
@Override
|
|
|
|
|
public void handle(ActionEvent event) {
|
|
|
|
|
presetAnno.clear();
|
|
|
|
|
presetAnno.add(showName.isSelected());
|
|
|
|
|
presetAnno.add(showAbbrev.isSelected());
|
|
|
|
|
presetAnno.add(showSpeed.isSelected());
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
//listener to show saved annotation
|
|
|
|
|
showSetAnno.setOnAction(new EventHandler<ActionEvent>() {
|
|
|
|
|
@Override
|
|
|
|
|
public void handle(ActionEvent event) {
|
|
|
|
|
if (presetAnno.size() > 0) {
|
|
|
|
|
showName.setSelected(presetAnno.get(0));
|
|
|
|
|
showAbbrev.setSelected(presetAnno.get(1));
|
|
|
|
|
showSpeed.setSelected(presetAnno.get(2));
|
|
|
|
|
raceMap.update();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|