diff --git a/src/main/java/seng302/controllers/Controller.java b/src/main/java/seng302/controllers/Controller.java index 2baa46c4..26f75d52 100644 --- a/src/main/java/seng302/controllers/Controller.java +++ b/src/main/java/seng302/controllers/Controller.java @@ -15,7 +15,6 @@ import javafx.scene.control.cell.PropertyValueFactory; import javafx.scene.layout.AnchorPane; import javafx.scene.layout.Pane; import javafx.scene.paint.Color; -import seng302.models.Boat; import seng302.models.parsers.StreamParser; import seng302.models.parsers.XMLParser; @@ -124,18 +123,18 @@ public class Controller implements Initializable { } private void updateTeamList() { - ObservableList data = FXCollections.observableArrayList(); + ObservableList data = FXCollections.observableArrayList(); teamList.setItems(data); boatNameCol.setCellValueFactory( - new PropertyValueFactory("boatName") + new PropertyValueFactory("BoatName") ); shortNameCol.setCellValueFactory( - new PropertyValueFactory("shortName") + new PropertyValueFactory("ShortName") ); countryCol.setCellValueFactory( - new PropertyValueFactory("country") + new PropertyValueFactory("Country") ); - for (Boat boat : StreamParser.getBoats()) { + for (XMLParser.BoatXMLObject.Boat boat : StreamParser.getBoats()) { data.add(boat); } } diff --git a/src/main/java/seng302/models/parsers/StreamParser.java b/src/main/java/seng302/models/parsers/StreamParser.java index ff520e8a..b0eed3aa 100644 --- a/src/main/java/seng302/models/parsers/StreamParser.java +++ b/src/main/java/seng302/models/parsers/StreamParser.java @@ -5,7 +5,6 @@ import javafx.geometry.Point3D; import org.w3c.dom.Document; import org.xml.sax.InputSource; import org.xml.sax.SAXException; -import seng302.models.Boat; import seng302.models.parsers.packets.BoatPositionPacket; import seng302.models.parsers.packets.StreamPacket; @@ -38,7 +37,7 @@ public class StreamParser extends Thread{ private static boolean raceFinished = false; private static boolean streamStatus = false; private static long timeSinceStart = -1; - private static List boats = new ArrayList<>(); + private static List boats = new ArrayList<>(); private static double windDirection = 0; /** @@ -202,7 +201,8 @@ public class StreamParser extends Thread{ int raceType = payload[23]; ArrayList boatStatuses = new ArrayList<>(); for (int i = 0; i < noBoats; i++){ - String boatStatus = "SourceID: " + bytesToLong(Arrays.copyOfRange(payload,24 + (i * 20),28+ (i * 20))); + Long boatStatusSourceID = bytesToLong(Arrays.copyOfRange(payload,24 + (i * 20),28+ (i * 20))); + String boatStatus = "SourceID: " + boatStatusSourceID; boatStatus += "\nBoat Status: " + (int)payload[28 + (i * 20)]; boatStatus += "\nLegNumber: " + (int)payload[29 + (i * 20)]; boatStatus += "\nPenaltiesAwarded: " + (int)payload[29 + (i * 20)]; @@ -258,6 +258,9 @@ public class StreamParser extends Thread{ } xmlObject.constructXML(doc, messageType); + if (messageType == 7) { //7 is the boat XML + boats = xmlObject.getBoatXML().getCompetingBoats(); + } } /** @@ -477,7 +480,7 @@ public class StreamParser extends Thread{ * * @return list of boats */ - public static List getBoats() { + public static List getBoats() { return boats; } diff --git a/src/main/java/seng302/models/parsers/XMLParser.java b/src/main/java/seng302/models/parsers/XMLParser.java index a50cbcbc..43016500 100644 --- a/src/main/java/seng302/models/parsers/XMLParser.java +++ b/src/main/java/seng302/models/parsers/XMLParser.java @@ -6,6 +6,7 @@ import org.w3c.dom.Node; import org.w3c.dom.NodeList; import java.util.ArrayList; +import java.util.List; /** * Class to create an XML object from the XML Packet Messages. @@ -393,6 +394,8 @@ public class XMLParser { //Boats ArrayList boats; + //Competing boats + List competingBoats = new ArrayList<>(); /** * Constructor for a BoatXMLObject. @@ -427,6 +430,9 @@ public class XMLParser { if (currentBoat.getNodeName().equals("Boat")) { Boat boat = new Boat(currentBoat); this.boats.add(boat); + if (boat.getBoatType().equals("Yacht")) { + competingBoats.add(boat); + } } //System.out.println(this.getBoats()); } @@ -442,6 +448,9 @@ public class XMLParser { public Double getCourseZoneSize() { return courseZoneSize; } public ArrayList getZoneLimits() { return zoneLimits; } public ArrayList getBoats() { return boats; } + public List getCompetingBoats() { + return competingBoats; + } public class Boat {