diff --git a/visualiser/src/main/java/seng302/Controllers/StartController.java b/visualiser/src/main/java/seng302/Controllers/StartController.java index 4ad59de2..8daf5afa 100644 --- a/visualiser/src/main/java/seng302/Controllers/StartController.java +++ b/visualiser/src/main/java/seng302/Controllers/StartController.java @@ -34,6 +34,7 @@ public class StartController extends Controller implements Observer { @FXML private GridPane start; @FXML private AnchorPane startWrapper; + @FXML private Label raceTitleLabel; @FXML private TableView boatNameTable; @FXML private TableColumn boatNameColumn; @@ -140,15 +141,14 @@ public class StartController extends Controller implements Observer { @Override public void update(Observable o, Object arg) { if(o instanceof StreamedCourse) { - if(((StreamedCourse) o).getBoats() != null) { + if(((StreamedCourse) o).hasReadBoats()) { initialiseTables(); } - if (((StreamedCourse) o).getZonedDateTime() != null) { - Platform.runLater(() -> { - { - setRaceClock(); - } - }); + if(((StreamedCourse)o).hasReadRegatta()) { + Platform.runLater(() -> raceTitleLabel.setText(((StreamedCourse)o).getRegattaName())); + } + if (((StreamedCourse) o).hasReadCourse()) { + Platform.runLater(() -> setRaceClock()); } } } diff --git a/visualiser/src/main/java/seng302/Mock/Regatta.java b/visualiser/src/main/java/seng302/Mock/Regatta.java index a3785f68..8d080978 100644 --- a/visualiser/src/main/java/seng302/Mock/Regatta.java +++ b/visualiser/src/main/java/seng302/Mock/Regatta.java @@ -4,6 +4,7 @@ import seng302.GPSCoordinate; /** * Created by jjg64 on 19/04/17. + * @deprecated use the RegattaXMLReader */ public class Regatta { int regattaID; diff --git a/visualiser/src/main/java/seng302/Mock/RegattaXMLReader.java b/visualiser/src/main/java/seng302/Mock/RegattaXMLReader.java index 1c0e3fa2..0c275dad 100644 --- a/visualiser/src/main/java/seng302/Mock/RegattaXMLReader.java +++ b/visualiser/src/main/java/seng302/Mock/RegattaXMLReader.java @@ -4,6 +4,7 @@ import org.w3c.dom.Element; import org.w3c.dom.NodeList; import org.xml.sax.InputSource; import org.xml.sax.SAXException; +import seng302.GPSCoordinate; import seng302.XMLReader; import javax.xml.parsers.ParserConfigurationException; @@ -15,6 +16,15 @@ import java.io.InputStream; */ public class RegattaXMLReader extends XMLReader { private Regatta regatta; + int regattaID; + String regattaName; + int raceID = 0; + String courseName; + double centralLatitude; + double centralLongitude; + double centralAltitude; + float utcOffset; + float magneticVariation; /** * Constructor for Regatta XML @@ -59,20 +69,93 @@ public class RegattaXMLReader extends XMLReader { } private void makeRegatta(Element attributes) { - int regattaID = Integer.parseInt(getTextValueOfNode(attributes, "RegattaID")); - String regattaName = getTextValueOfNode(attributes, "RegattaName"); - String courseName = getTextValueOfNode(attributes, "CourseName"); - double centralLatitude = Double.parseDouble(getTextValueOfNode(attributes, "CentralLatitude")); - double centralLongitude = Double.parseDouble(getTextValueOfNode(attributes, "CentralLongitude")); - System.out.println(String.format("central lat %s long %s", centralLatitude, centralLongitude)); - double centralAltitude = Double.parseDouble(getTextValueOfNode(attributes, "CentralAltitude")); - float utcOffset = Float.parseFloat(getTextValueOfNode(attributes, "UtcOffset")); - float magneticVariation = Float.parseFloat(getTextValueOfNode(attributes, "MagneticVariation")); - - regatta = new Regatta(regattaID, regattaName, courseName, centralLatitude, centralLongitude, centralAltitude, utcOffset, magneticVariation); + this.regattaID = Integer.parseInt(getTextValueOfNode(attributes, "RegattaID")); + this.regattaName = getTextValueOfNode(attributes, "RegattaName"); + this.courseName = getTextValueOfNode(attributes, "CourseName"); + this.centralLatitude = Double.parseDouble(getTextValueOfNode(attributes, "CentralLatitude")); + this.centralLongitude = Double.parseDouble(getTextValueOfNode(attributes, "CentralLongitude")); + this.centralAltitude = Double.parseDouble(getTextValueOfNode(attributes, "CentralAltitude")); + this.utcOffset = Float.parseFloat(getTextValueOfNode(attributes, "UtcOffset")); + this.magneticVariation = Float.parseFloat(getTextValueOfNode(attributes, "MagneticVariation")); } public Regatta getRegatta() { return regatta; } + + public int getRegattaID() { + return regattaID; + } + + public void setRegattaID(int ID) { + this.regattaID = ID; + } + + public String getRegattaName() { + return regattaName; + } + + public void setRegattaName(String regattaName) { + this.regattaName = regattaName; + } + + public int getRaceID() { + return raceID; + } + + public void setRaceID(int raceID) { + this.raceID = raceID; + } + + public String getCourseName() { + return courseName; + } + + public void setCourseName(String courseName) { + this.courseName = courseName; + } + + public double getCentralLatitude() { + return centralLatitude; + } + + public void setCentralLatitude(double centralLatitude) { + this.centralLatitude = centralLatitude; + } + + public double getCentralLongitude() { + return centralLongitude; + } + + public void setCentralLongitude(double centralLongitude) { + this.centralLongitude = centralLongitude; + } + + public double getCentralAltitude() { + return centralAltitude; + } + + public void setCentralAltitude(double centralAltitude) { + this.centralAltitude = centralAltitude; + } + + public float getUtcOffset() { + return utcOffset; + } + + public void setUtcOffset(float utcOffset) { + this.utcOffset = utcOffset; + } + + public float getMagneticVariation() { + return magneticVariation; + } + + public void setMagneticVariation(float magneticVariation) { + this.magneticVariation = magneticVariation; + } + + public GPSCoordinate getGPSCoordinate() { + return new GPSCoordinate(centralLatitude, centralLongitude); + } } diff --git a/visualiser/src/main/java/seng302/Mock/StreamedCourse.java b/visualiser/src/main/java/seng302/Mock/StreamedCourse.java index 7ee395c0..96d8e416 100644 --- a/visualiser/src/main/java/seng302/Mock/StreamedCourse.java +++ b/visualiser/src/main/java/seng302/Mock/StreamedCourse.java @@ -50,8 +50,18 @@ public class StreamedCourse extends Observable implements RaceDataSource { public void setRegattaXMLReader(RegattaXMLReader regattaXMLReader) { this.regattaXMLReader = regattaXMLReader; + setChanged(); + notifyObservers(); } + public boolean hasReadRegatta() { return regattaXMLReader != null; } + + public boolean hasReadBoats() { return boatXMLReader != null; } + + public boolean hasReadCourse() { return streamedCourseXMLReader != null; } + + public String getRegattaName() { return regattaXMLReader.getRegattaName(); } + public List getBoats() { return boatXMLReader.getBoats(); } diff --git a/visualiser/src/main/resources/scenes/start.fxml b/visualiser/src/main/resources/scenes/start.fxml index 637f34f8..aa417926 100644 --- a/visualiser/src/main/resources/scenes/start.fxml +++ b/visualiser/src/main/resources/scenes/start.fxml @@ -9,7 +9,6 @@ - @@ -30,11 +29,6 @@ - - - - -