diff --git a/src/main/java/seng302/visualiser/controllers/RaceViewController.java b/src/main/java/seng302/visualiser/controllers/RaceViewController.java index e5be379b..2b7a1b6f 100644 --- a/src/main/java/seng302/visualiser/controllers/RaceViewController.java +++ b/src/main/java/seng302/visualiser/controllers/RaceViewController.java @@ -7,39 +7,33 @@ import java.util.ArrayList; import java.util.Map; import java.util.Timer; import java.util.TimerTask; -import java.util.concurrent.TimeUnit; -import javafx.animation.Timeline; -import javafx.animation.RotateTransition; import javafx.application.Platform; import javafx.beans.property.ReadOnlyBooleanProperty; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.scene.SubScene; +import javafx.scene.control.Button; +import javafx.scene.control.ComboBox; import javafx.scene.control.Label; +import javafx.scene.control.Slider; import javafx.scene.control.TextField; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.layout.AnchorPane; import javafx.scene.layout.Pane; import javafx.scene.layout.StackPane; +import javafx.scene.layout.VBox; import javafx.scene.paint.Paint; -import javafx.scene.shape.Line; -import javafx.scene.shape.Polyline; import javafx.scene.text.Text; -import javafx.stage.Stage; -import javafx.stage.StageStyle; -import javafx.util.Duration; import seng302.model.ClientYacht; import seng302.model.RaceState; +import seng302.model.mark.CompoundMark; import seng302.model.stream.xml.parser.RaceXMLData; import seng302.model.token.TokenType; import seng302.utilities.Sounds; import seng302.visualiser.GameView3D; -import seng302.visualiser.controllers.annotations.ImportantAnnotationController; -import seng302.visualiser.controllers.annotations.ImportantAnnotationDelegate; -import seng302.visualiser.controllers.annotations.ImportantAnnotationsState; -import seng302.visualiser.controllers.cells.WindCell; import seng302.visualiser.MiniMap; +import seng302.visualiser.controllers.cells.WindCell; import seng302.visualiser.controllers.dialogs.FinishDialogController; import seng302.visualiser.fxObjects.ChatHistory; diff --git a/src/main/java/seng302/visualiser/controllers/cells/WindCell.java b/src/main/java/seng302/visualiser/controllers/cells/WindCell.java index 4ee20f5a..83bb0749 100644 --- a/src/main/java/seng302/visualiser/controllers/cells/WindCell.java +++ b/src/main/java/seng302/visualiser/controllers/cells/WindCell.java @@ -1,7 +1,7 @@ package seng302.visualiser.controllers.cells; import java.util.Arrays; -import java.util.ConcurrentModificationException; +import javafx.application.Platform; import javafx.beans.property.DoubleProperty; import javafx.beans.property.ReadOnlyDoubleWrapper; import javafx.fxml.FXML; @@ -60,9 +60,9 @@ public class WindCell { for (DoubleProperty o : Arrays.asList(playerYacht.getHeadingProperty(), windDirection)) { o.addListener((obs, oldValue, newValue) -> { - if (isChaseCam) { - camera.getTransforms().clear(); - try { + Platform.runLater(() -> { + if (isChaseCam) { + camera.getTransforms().clear(); for (Transform t : chaseCam.getTransforms()) { if (t instanceof Rotate) { camera.getTransforms().add(t); @@ -71,16 +71,14 @@ public class WindCell { this.camera.getTransforms().addAll( new Translate(-55, -60, 0) ); - } catch (ConcurrentModificationException cme) { - } - } - windArrowModel.getAssets().getTransforms().clear(); - windArrowModel.getAssets().getTransforms().addAll( - new Rotate(windDirection.getValue(), - new Point3D(0, 0, 1)) - ); + windArrowModel.getAssets().getTransforms().clear(); + windArrowModel.getAssets().getTransforms().addAll( + new Rotate(windDirection.getValue(), + new Point3D(0, 0, 1)) + ); + }); }); } }