From d3937660272f9b5f631e3ca8bc5e1107947661c1 Mon Sep 17 00:00:00 2001 From: cbt24 Date: Thu, 16 Mar 2017 17:44:34 +1300 Subject: [PATCH] Partially completed story 13 --- .../seng302/Controllers/RaceController.java | 37 +++++++++++++++++-- src/main/java/seng302/Model/Boat.java | 4 ++ src/main/java/seng302/Model/Race.java | 11 +++++- src/main/resources/scenes/racepane.fxml | 3 +- 4 files changed, 48 insertions(+), 7 deletions(-) diff --git a/src/main/java/seng302/Controllers/RaceController.java b/src/main/java/seng302/Controllers/RaceController.java index e0f1a867..83e6b2fb 100644 --- a/src/main/java/seng302/Controllers/RaceController.java +++ b/src/main/java/seng302/Controllers/RaceController.java @@ -1,13 +1,21 @@ package seng302.Controllers; +import javafx.collections.FXCollections; import javafx.fxml.FXML; import javafx.scene.canvas.Canvas; import javafx.scene.canvas.GraphicsContext; +import javafx.scene.control.TableColumn; import javafx.scene.control.TableView; +import javafx.scene.control.cell.PropertyValueFactory; import javafx.scene.layout.AnchorPane; import javafx.scene.paint.Color; import javafx.scene.paint.Paint; +import seng302.GPSCoordinate; import seng302.GraphCoordinate; +import seng302.Model.Boat; +import seng302.Model.BoatInRace; +import seng302.Model.ConstantVelocityRace; +import seng302.Model.Leg; import seng302.RaceMap; import java.net.URL; @@ -20,10 +28,19 @@ public class RaceController extends Controller{ @FXML Canvas raceMap; @FXML - TableView boatInfoTable; + TableView boatInfoTable; @FXML AnchorPane canvasBase; - + /* + @FXML + TableColumn boatPlacingColumn; + */ + @FXML + TableColumn boatTeamColumn; + /* + @FXML + TableColumn boatMarkColumn; + */ private GraphicsContext gc; private RaceMap map; @@ -50,8 +67,22 @@ public class RaceController extends Controller{ public void initialize(URL location, ResourceBundle resources) {/* raceMap.widthProperty().bind(canvasBase.widthProperty()); raceMap.heightProperty().bind(canvasBase.heightProperty());*/ - this.gc = raceMap.getGraphicsContext2D(); + + BoatInRace boat = new BoatInRace("NZ", 10000); + BoatInRace[] boats = new BoatInRace[] {boat}; + Leg leg1 = new Leg("first leg", 1, new GPSCoordinate(0, 0), new GPSCoordinate(1, 1), 0); + Leg[] legs = new Leg[] {leg1}; + + ConstantVelocityRace race = new ConstantVelocityRace(boats, legs); + + (new Thread(race)).start(); + //table view + boatTeamColumn.setCellValueFactory(new PropertyValueFactory("Name")); + boatInfoTable.setItems(FXCollections.observableArrayList(race.getFinishingBoats())); + this.map = new RaceMap(32.321989, -64.8553, 32.246, -64.831, (int)raceMap.getWidth(), (int)raceMap.getHeight()); + + this.gc = raceMap.getGraphicsContext2D(); //boat GraphCoordinate boat1coord = this.map.convertGPS(32.296577, -64.854304); displayBoat(boat1coord, Color.AQUAMARINE); diff --git a/src/main/java/seng302/Model/Boat.java b/src/main/java/seng302/Model/Boat.java index 25d67520..3fedb34e 100644 --- a/src/main/java/seng302/Model/Boat.java +++ b/src/main/java/seng302/Model/Boat.java @@ -27,6 +27,10 @@ public class Boat { return name; } + public void setName(String name) { + this.name = name; + } + /** * * @return returns the speed of the boat. diff --git a/src/main/java/seng302/Model/Race.java b/src/main/java/seng302/Model/Race.java index d61b7221..f1dc3093 100644 --- a/src/main/java/seng302/Model/Race.java +++ b/src/main/java/seng302/Model/Race.java @@ -7,7 +7,7 @@ import java.util.*; * Parent class for races * Created by fwy13 on 3/03/17. */ -public abstract class Race { +public abstract class Race implements Runnable { protected BoatInRace[] startingBoats; protected ArrayList finishingBoats = new ArrayList<>(); protected Leg[] legs; @@ -26,9 +26,11 @@ public abstract class Race { } public void run() { + long time = System.currentTimeMillis(); preRace(); simulateRace(); - + System.out.println(System.currentTimeMillis() - time); + System.out.println(finishingBoats.get(0)); } private void preRace() { @@ -90,6 +92,11 @@ public abstract class Race { } + + public ArrayList getFinishingBoats() { + return finishingBoats; + } + /** * This function is a function that generates the Race and populates the events list. * Is automatically called by the initialiser function, so that simulateRace() does not return an empty race. diff --git a/src/main/resources/scenes/racepane.fxml b/src/main/resources/scenes/racepane.fxml index 8eaf63a6..9803ca44 100644 --- a/src/main/resources/scenes/racepane.fxml +++ b/src/main/resources/scenes/racepane.fxml @@ -18,8 +18,7 @@ - - +