From fc15c3d151a4060a80c683c7c3f0e1b43c8ba711 Mon Sep 17 00:00:00 2001 From: Joseph Gardner Date: Wed, 19 Apr 2017 13:09:45 +1200 Subject: [PATCH] Added annotation to toggle all boat paths on and off #Pair[jjg64, zwu18] #Story[759] --- .../seng302/Controllers/RaceController.java | 14 +++++++++++++ src/main/java/seng302/Model/Race.java | 2 +- .../seng302/Model/ResizableRaceCanvas.java | 21 ++++++++++++++----- src/main/resources/scenes/race.fxml | 10 ++++----- 4 files changed, 36 insertions(+), 11 deletions(-) diff --git a/src/main/java/seng302/Controllers/RaceController.java b/src/main/java/seng302/Controllers/RaceController.java index b692a38c..e6a7e7d0 100644 --- a/src/main/java/seng302/Controllers/RaceController.java +++ b/src/main/java/seng302/Controllers/RaceController.java @@ -33,6 +33,9 @@ public class RaceController extends Controller { @FXML SplitPane race; @FXML CheckBox showFPS; + + @FXML + CheckBox showBoatPath; @FXML CheckBox showAnnotations; @FXML @@ -226,6 +229,15 @@ public class RaceController extends Controller { raceMap.update(); } }); + + //listener for show abbreviation for annotation + showBoatPath.selectedProperty().addListener(new ChangeListener() { + public void changed(ObservableValue ov, + Boolean old_val, Boolean new_val) { + raceMap.toggleBoatPath(); + raceMap.update(); + } + }); //listener to show speed for annotation showSpeed.selectedProperty().addListener(new ChangeListener() { public void changed(ObservableValue ov, @@ -242,6 +254,7 @@ public class RaceController extends Controller { presetAnno.add(showName.isSelected()); presetAnno.add(showAbbrev.isSelected()); presetAnno.add(showSpeed.isSelected()); + presetAnno.add(showBoatPath.isSelected()); } }); //listener to show saved annotation @@ -252,6 +265,7 @@ public class RaceController extends Controller { showName.setSelected(presetAnno.get(0)); showAbbrev.setSelected(presetAnno.get(1)); showSpeed.setSelected(presetAnno.get(2)); + showBoatPath.setSelected(presetAnno.get(3)); raceMap.update(); } } diff --git a/src/main/java/seng302/Model/Race.java b/src/main/java/seng302/Model/Race.java index 18136805..54e14245 100644 --- a/src/main/java/seng302/Model/Race.java +++ b/src/main/java/seng302/Model/Race.java @@ -32,7 +32,7 @@ public abstract class Race implements Runnable { protected int scaleFactor; private int SLEEP_TIME = 100; //time in milliseconds to pause in a paced loop - protected int PRERACE_TIME = 0; //120000; //time in milliseconds to pause during pre-race + protected int PRERACE_TIME = 120000; //time in milliseconds to pause during pre-race private boolean timerEnabled = true; //boolean to determine if timer is ran /** diff --git a/src/main/java/seng302/Model/ResizableRaceCanvas.java b/src/main/java/seng302/Model/ResizableRaceCanvas.java index 7d687c41..bd056749 100644 --- a/src/main/java/seng302/Model/ResizableRaceCanvas.java +++ b/src/main/java/seng302/Model/ResizableRaceCanvas.java @@ -29,6 +29,7 @@ public class ResizableRaceCanvas extends Canvas { private boolean annoName = true; private boolean annoAbbrev = true; private boolean annoSpeed = true; + private boolean annoPath = true; private ArrayList raceBoundaries; double[] xpoints = {}, ypoints = {}; @@ -298,6 +299,14 @@ public class ResizableRaceCanvas extends Canvas { } } + public void toggleBoatPath() { + if (annoPath) { + annoPath = false; + } else { + annoPath = true; + } + } + /** * Toggle abbreviation display in annotation */ @@ -353,11 +362,13 @@ public class ResizableRaceCanvas extends Canvas { * @see seng302.Model.TrackPoint */ private void drawTrack(BoatInRace boat) { - for (TrackPoint point : boat.getTrack()) { - GraphCoordinate scaledCoordinate = this.map.convertGPS(point.getCoordinate()); - Color boatColour = boat.getColour(); - gc.setFill(new Color(boatColour.getRed(), boatColour.getGreen(), boatColour.getBlue(), point.getAlpha())); - gc.fillOval(scaledCoordinate.getX(), scaledCoordinate.getY(), 5, 5); + if (annoPath) { + for (TrackPoint point : boat.getTrack()) { + GraphCoordinate scaledCoordinate = this.map.convertGPS(point.getCoordinate()); + Color boatColour = boat.getColour(); + gc.setFill(new Color(boatColour.getRed(), boatColour.getGreen(), boatColour.getBlue(), point.getAlpha())); + gc.fillOval(scaledCoordinate.getX(), scaledCoordinate.getY(), 5, 5); + } } } diff --git a/src/main/resources/scenes/race.fxml b/src/main/resources/scenes/race.fxml index 1a795e84..2498ff76 100644 --- a/src/main/resources/scenes/race.fxml +++ b/src/main/resources/scenes/race.fxml @@ -7,7 +7,6 @@ - @@ -24,14 +23,15 @@ - + + -