Fixed boat path not being toggled when annotation is toggled.

#story[759]
main
David Wu 9 years ago
parent 028cb33509
commit 668758f6f8

@ -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,15 +95,12 @@ 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) {
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,15 +189,12 @@ public class RaceController extends Controller {
*/
private void initializeFPS() {
showFPS.setVisible(true);
showFPS.selectedProperty().addListener(new ChangeListener<Boolean>() {
public void changed(ObservableValue<? extends Boolean> ov,
Boolean old_val, Boolean new_val) {
showFPS.selectedProperty().addListener((ov, old_val, new_val) -> {
if (showFPS.isSelected()) {
FPS.setVisible(true);
} else {
FPS.setVisible(false);
}
}
});
}
@ -215,61 +204,41 @@ public class RaceController extends Controller {
private void initializeAnnotations() {
presetAnno = new ArrayList<>();
//listener for annotation
showAnnotations.selectedProperty().addListener(new ChangeListener<Boolean>() {
public void changed(ObservableValue<? extends Boolean> ov,
Boolean old_val, Boolean new_val) {
showAnnotations.selectedProperty().addListener((ov, old_val, new_val) -> {
raceMap.toggleAnnotations();
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) {
showName.selectedProperty().addListener((ov, old_val, 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) {
showAbbrev.selectedProperty().addListener((ov, old_val, new_val) -> {
raceMap.toggleAnnoAbbrev();
raceMap.update();
}
});
//listener for show abbreviation for annotation
showBoatPath.selectedProperty().addListener(new ChangeListener<Boolean>() {
public void changed(ObservableValue<? extends Boolean> ov,
Boolean old_val, Boolean new_val) {
//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<Boolean>() {
public void changed(ObservableValue<? extends Boolean> ov,
Boolean old_val, Boolean new_val) {
showSpeed.selectedProperty().addListener((ov, old_val, new_val) -> {
raceMap.toggleAnnoSpeed();
raceMap.update();
}
});
//listener to save currently selected annotation
saveAnno.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
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<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
showSetAnno.setOnAction(event -> {
if (presetAnno.size() > 0) {
showName.setSelected(presetAnno.get(0));
showAbbrev.setSelected(presetAnno.get(1));
@ -277,7 +246,6 @@ public class RaceController extends Controller {
showBoatPath.setSelected(presetAnno.get(3));
raceMap.update();
}
}
});
}
}

@ -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;
}

@ -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;

@ -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();

Loading…
Cancel
Save