From 33b94cdf5bbb97ec8adc85eeb2548821ea34512e Mon Sep 17 00:00:00 2001 From: David Wu Date: Wed, 29 Mar 2017 10:13:51 +1300 Subject: [PATCH 1/2] Changed implementation for Anno(annotations) -drawRaceMap is now called for annotation to update map #story[23] --- .../seng302/Controllers/RaceController.java | 17 +++++++++++++---- src/main/java/seng302/Model/Race.java | 12 ++++++------ .../java/seng302/Model/ResizableRaceCanvas.java | 4 +++- 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/src/main/java/seng302/Controllers/RaceController.java b/src/main/java/seng302/Controllers/RaceController.java index 2405a105..4056a7f4 100644 --- a/src/main/java/seng302/Controllers/RaceController.java +++ b/src/main/java/seng302/Controllers/RaceController.java @@ -44,7 +44,7 @@ public class RaceController extends Controller{ CheckBox showFPS; @FXML - public CheckBox showAnno; + CheckBox showAnno; @FXML Label timer; @@ -160,7 +160,8 @@ public class RaceController extends Controller{ ArrayList legs = raceXMLReader.getLegs(); ConstantVelocityRace race = new ConstantVelocityRace(boats, legs, this, scaleFactor); - showFPS.setVisible(true); + new Thread((race)).start(); + showFPS.selectedProperty().addListener(new ChangeListener() { public void changed(ObservableValue ov, Boolean old_val, Boolean new_val) { @@ -176,10 +177,9 @@ public class RaceController extends Controller{ public void changed(ObservableValue ov, Boolean old_val, Boolean new_val) { raceMap.toggleAnno(); + raceMap.drawRaceMap(); } }); - - new Thread((race)).start(); } @@ -219,10 +219,19 @@ public class RaceController extends Controller{ return boats; } + /** + * Set the value for the race clock label + * @param time time that the label will be updated to + */ public void setTimer(String time) { timer.setText(time); } + + /** + * Set the value for the fps label + * @param fps fps that the label will be updated to + */ public void setFrames(String fps) { FPS.setText((fps)); } diff --git a/src/main/java/seng302/Model/Race.java b/src/main/java/seng302/Model/Race.java index d324d277..a1a8ca83 100644 --- a/src/main/java/seng302/Model/Race.java +++ b/src/main/java/seng302/Model/Race.java @@ -117,7 +117,7 @@ public abstract class Race implements Runnable { long timeLoopEnded; while (currentTime <= startTime) { - if (controller != null) controller.updateMap(startingBoats); + //if (controller != null) controller.updateMap(startingBoats); timeLeft = startTime - currentTime; currentTimeInSeconds = timeLeft / 1000; minutes = currentTimeInSeconds / 60; @@ -163,6 +163,10 @@ public abstract class Race implements Runnable { Platform.runLater(() -> {controller.setTimer(time);}); } + /** + * Update the calculated fps to the fps label + * @param fps The new calculated fps value + */ private void updateFPS(int fps) { Platform.runLater(() -> {controller.setFrames("FPS: " + fps);}); } @@ -187,7 +191,6 @@ public abstract class Race implements Runnable { /*long timeLoopStarted; long timeLoopEnded; int fps = 0;*/ - if (controller != null) controller.updateMap(startingBoats); if (boatsFinished < startingBoats.size()) { //timeLoopStarted = System.currentTimeMillis(); totalTimeElapsed = System.currentTimeMillis() - timeRaceStarted; @@ -199,7 +202,7 @@ public abstract class Race implements Runnable { } } - //if (controller != null) controller.updateMap(startingBoats); + if (controller != null) controller.updateMap(startingBoats); if (timerEnabled) updateTime(calcTimer()); } @@ -210,8 +213,6 @@ public abstract class Race implements Runnable { timeCurrent = System.currentTimeMillis(); } ; - - /*fps++; try { timeLoopEnded = System.currentTimeMillis(); @@ -272,7 +273,6 @@ public abstract class Race implements Runnable { * Is automatically called by the initialiser function, so that simulateRace() does not return an empty race. * @see Race#simulateRace() */ - protected abstract void updatePosition(BoatInRace boat, int millisecondsElapsed); } diff --git a/src/main/java/seng302/Model/ResizableRaceCanvas.java b/src/main/java/seng302/Model/ResizableRaceCanvas.java index a8962d05..e0554da9 100644 --- a/src/main/java/seng302/Model/ResizableRaceCanvas.java +++ b/src/main/java/seng302/Model/ResizableRaceCanvas.java @@ -27,7 +27,6 @@ public class ResizableRaceCanvas extends Canvas { private GraphicsContext gc; private RaceMap map; private BoatInRace[] boats; - private RaceController controller; private boolean raceAnno = true; /** @@ -218,6 +217,9 @@ public class ResizableRaceCanvas extends Canvas { displayPoint(graphCoordinate, colour); } + /** + * Toggle the raceAnno value + */ public void toggleAnno(){ if (raceAnno){ raceAnno = false; From f7477adb3655fe2d87053bf073673326c8d45c16 Mon Sep 17 00:00:00 2001 From: David Wu Date: Wed, 29 Mar 2017 10:15:31 +1300 Subject: [PATCH 2/2] Added javadoc for new methods used for annotation and fps #story[23] --- src/main/java/seng302/Controllers/RaceController.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/seng302/Controllers/RaceController.java b/src/main/java/seng302/Controllers/RaceController.java index 4056a7f4..0af31f7c 100644 --- a/src/main/java/seng302/Controllers/RaceController.java +++ b/src/main/java/seng302/Controllers/RaceController.java @@ -162,6 +162,7 @@ public class RaceController extends Controller{ new Thread((race)).start(); + //listener for fps showFPS.selectedProperty().addListener(new ChangeListener() { public void changed(ObservableValue ov, Boolean old_val, Boolean new_val) { @@ -173,6 +174,7 @@ public class RaceController extends Controller{ } }); + //listener for annotation showAnno.selectedProperty().addListener(new ChangeListener() { public void changed(ObservableValue ov, Boolean old_val, Boolean new_val) {