From 668758f6f83f94180e811aba0b574a7093c24584 Mon Sep 17 00:00:00 2001 From: David Wu Date: Wed, 19 Apr 2017 16:32:24 +1200 Subject: [PATCH] Fixed boat path not being toggled when annotation is toggled. #story[759] --- .../seng302/Controllers/RaceController.java | 112 +++++++----------- src/main/java/seng302/Model/BoatInRace.java | 8 ++ src/main/java/seng302/Model/Race.java | 6 +- .../seng302/Model/ResizableRaceCanvas.java | 2 +- 4 files changed, 53 insertions(+), 75 deletions(-) diff --git a/src/main/java/seng302/Controllers/RaceController.java b/src/main/java/seng302/Controllers/RaceController.java index 88556461..5120dac9 100644 --- a/src/main/java/seng302/Controllers/RaceController.java +++ b/src/main/java/seng302/Controllers/RaceController.java @@ -1,12 +1,7 @@ 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.ActionEvent; -import javafx.event.EventHandler; import javafx.fxml.FXML; import javafx.scene.control.*; import javafx.scene.layout.GridPane; @@ -100,14 +95,11 @@ public class RaceController extends Controller { @Override public void initialize(URL location, ResourceBundle resources) { //listener for fps - showFPS.selectedProperty().addListener(new ChangeListener() { - public void changed(ObservableValue ov, - Boolean old_val, Boolean new_val) { - if (showFPS.isSelected()) { - FPS.setVisible(true); - } else { - FPS.setVisible(false); - } + showFPS.selectedProperty().addListener((ov, old_val, new_val) -> { + if (showFPS.isSelected()) { + FPS.setVisible(true); + } else { + FPS.setVisible(false); } }); } @@ -150,6 +142,7 @@ public class RaceController extends Controller { i++; } + //Initialize new resizable canvas raceMap = new ResizableRaceCanvas(lat1, long1, lat2, long2); raceMap.setMouseTransparent(true); raceMap.widthProperty().bind(canvasBase.widthProperty()); @@ -166,7 +159,6 @@ public class RaceController extends Controller { //timezone RaceClock raceClock = new RaceClock(raceXMLReader.getMark()); timeZone.setText(raceClock.getTimeZone()); - initializeFPS(); initializeAnnotations(); @@ -197,14 +189,11 @@ public class RaceController extends Controller { */ private void initializeFPS() { showFPS.setVisible(true); - showFPS.selectedProperty().addListener(new ChangeListener() { - public void changed(ObservableValue ov, - Boolean old_val, Boolean new_val) { - if (showFPS.isSelected()) { - FPS.setVisible(true); - } else { - FPS.setVisible(false); - } + showFPS.selectedProperty().addListener((ov, old_val, new_val) -> { + if (showFPS.isSelected()) { + FPS.setVisible(true); + } else { + FPS.setVisible(false); } }); } @@ -215,68 +204,47 @@ public class RaceController extends Controller { private void initializeAnnotations() { presetAnno = new ArrayList<>(); //listener for annotation - showAnnotations.selectedProperty().addListener(new ChangeListener() { - public void changed(ObservableValue ov, - Boolean old_val, Boolean new_val) { - raceMap.toggleAnnotations(); - raceMap.update(); - } + showAnnotations.selectedProperty().addListener((ov, old_val, new_val) -> { + raceMap.toggleAnnotations(); + raceMap.update(); }); //listener for show name in annotation - showName.selectedProperty().addListener(new ChangeListener() { - public void changed(ObservableValue ov, - Boolean old_val, Boolean new_val) { - raceMap.toggleAnnoName(); - raceMap.update(); - } + showName.selectedProperty().addListener((ov, old_val, new_val) -> { + raceMap.toggleAnnoName(); + raceMap.update(); }); //listener for show abbreviation for annotation - showAbbrev.selectedProperty().addListener(new ChangeListener() { - public void changed(ObservableValue ov, - Boolean old_val, Boolean new_val) { - raceMap.toggleAnnoAbbrev(); - raceMap.update(); - } + showAbbrev.selectedProperty().addListener((ov, old_val, new_val) -> { + raceMap.toggleAnnoAbbrev(); + 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 for show boat path for annotation + showBoatPath.selectedProperty().addListener((ov, old_val, new_val) -> { + raceMap.toggleBoatPath(); + raceMap.update(); }); //listener to show speed for annotation - showSpeed.selectedProperty().addListener(new ChangeListener() { - public void changed(ObservableValue ov, - Boolean old_val, Boolean new_val) { - raceMap.toggleAnnoSpeed(); - raceMap.update(); - } + showSpeed.selectedProperty().addListener((ov, old_val, new_val) -> { + raceMap.toggleAnnoSpeed(); + raceMap.update(); }); //listener to save currently selected annotation - saveAnno.setOnAction(new EventHandler() { - @Override - public void handle(ActionEvent event) { - presetAnno.clear(); - presetAnno.add(showName.isSelected()); - presetAnno.add(showAbbrev.isSelected()); - presetAnno.add(showSpeed.isSelected()); - presetAnno.add(showBoatPath.isSelected()); - } + saveAnno.setOnAction(event -> { + presetAnno.clear(); + presetAnno.add(showName.isSelected()); + presetAnno.add(showAbbrev.isSelected()); + presetAnno.add(showSpeed.isSelected()); + presetAnno.add(showBoatPath.isSelected()); }); //listener to show saved annotation - showSetAnno.setOnAction(new EventHandler() { - @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)); - showBoatPath.setSelected(presetAnno.get(3)); - raceMap.update(); - } + showSetAnno.setOnAction(event -> { + if (presetAnno.size() > 0) { + 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/BoatInRace.java b/src/main/java/seng302/Model/BoatInRace.java index e1039630..ac877240 100644 --- a/src/main/java/seng302/Model/BoatInRace.java +++ b/src/main/java/seng302/Model/BoatInRace.java @@ -302,10 +302,18 @@ public class BoatInRace extends Boat { this.trackVisible = trackVisible; } + /** + * Get base track point time interval + * @return base track point time interval + */ public static float getBaseTrackPointTimeInterval() { return BASE_TRACK_POINT_TIME_INTERVAL; } + /** + * Set track point time interval + * @param value track point time interval value + */ public static void setTrackPointTimeInterval(float value) { trackPointTimeInterval = value; } diff --git a/src/main/java/seng302/Model/Race.java b/src/main/java/seng302/Model/Race.java index 54e14245..cc420ed5 100644 --- a/src/main/java/seng302/Model/Race.java +++ b/src/main/java/seng302/Model/Race.java @@ -25,10 +25,8 @@ public abstract class Race implements Runnable { protected int boatsFinished = 0; protected long totalTimeElapsed; private int dnfChance = 1; //%percentage chance a boat fails at each checkpoint - private int lastFPS = 20; - protected int scaleFactor; private int SLEEP_TIME = 100; //time in milliseconds to pause in a paced loop @@ -184,6 +182,10 @@ public abstract class Race implements Runnable { }); } + /** + * Randomly generate number to see if boat fails + * @return True if number lower than dnfChance else false + */ private boolean doNotFinish() { Random rand = new Random(); return rand.nextInt(100) < dnfChance; diff --git a/src/main/java/seng302/Model/ResizableRaceCanvas.java b/src/main/java/seng302/Model/ResizableRaceCanvas.java index 5966464b..9a3a3c7d 100644 --- a/src/main/java/seng302/Model/ResizableRaceCanvas.java +++ b/src/main/java/seng302/Model/ResizableRaceCanvas.java @@ -359,7 +359,7 @@ public class ResizableRaceCanvas extends Canvas { * @see seng302.Model.TrackPoint */ private void drawTrack(BoatInRace boat) { - if (annoPath) { + if (annoPath && raceAnno) { for (TrackPoint point : boat.getTrack()) { GraphCoordinate scaledCoordinate = this.map.convertGPS(point.getCoordinate()); Color boatColour = boat.getColour();