diff --git a/src/main/java/seng302/App.java b/src/main/java/seng302/App.java index 28d7e923..c7a764c0 100644 --- a/src/main/java/seng302/App.java +++ b/src/main/java/seng302/App.java @@ -63,7 +63,7 @@ public class App extends Application { //Change the StreamReceiver in this else block to change the default data source. else{ // sr = new StreamReceiver("localhost", 4949, "RaceStream"); - sr = new StreamReceiver("csse-s302staff.canterbury.ac.nz", 4941, "RaceStream"); + sr = new StreamReceiver("localhost", 4949, "RaceStream"); } sr.start(); diff --git a/src/main/java/seng302/controllers/CanvasController.java b/src/main/java/seng302/controllers/CanvasController.java index 40642f41..43c4b40a 100644 --- a/src/main/java/seng302/controllers/CanvasController.java +++ b/src/main/java/seng302/controllers/CanvasController.java @@ -255,7 +255,7 @@ public class CanvasController { private void initializeMarks() { Map allMarks = StreamParser.getXmlObject().getRaceXML().getCompoundMarks(); - + System.out.println(allMarks); for (Mark mark : allMarks.values()) { if (mark.getMarkType() == MarkType.SINGLE_MARK) { SingleMark sMark = (SingleMark) mark; @@ -270,6 +270,7 @@ public class CanvasController { } } group.getChildren().addAll(markGroups); + System.out.println(group.getChildren()); } class ResizableCanvas extends Canvas { diff --git a/src/main/java/seng302/models/mark/GateMark.java b/src/main/java/seng302/models/mark/GateMark.java index ffcf2b51..79943114 100644 --- a/src/main/java/seng302/models/mark/GateMark.java +++ b/src/main/java/seng302/models/mark/GateMark.java @@ -39,12 +39,10 @@ public class GateMark extends Mark { } public double getLatitude(){ - //return (this.getSingleMark1().getLatitude() + this.getSingleMark2().getLatitude()) / 2; return (this.getSingleMark1().getLatitude()); } public double getLongitude(){ - //return (this.getSingleMark1().getLongitude() + this.getSingleMark2().getLongitude()) / 2; return (this.getSingleMark1().getLongitude()); } diff --git a/src/main/java/seng302/models/mark/MarkGroup.java b/src/main/java/seng302/models/mark/MarkGroup.java index ecb0cdc7..c87ae174 100644 --- a/src/main/java/seng302/models/mark/MarkGroup.java +++ b/src/main/java/seng302/models/mark/MarkGroup.java @@ -90,6 +90,7 @@ public class MarkGroup extends Group { { if (mainMark.getMarkType() == MarkType.SINGLE_MARK) { Circle markCircle = (Circle) super.getChildren().get(0); + markCircle.setCenterX(x); markCircle.setCenterY(y); } else { diff --git a/src/main/java/seng302/models/mark/SingleMark.java b/src/main/java/seng302/models/mark/SingleMark.java index d4b4f3f2..9239552a 100644 --- a/src/main/java/seng302/models/mark/SingleMark.java +++ b/src/main/java/seng302/models/mark/SingleMark.java @@ -11,7 +11,6 @@ public class SingleMark extends Mark { private String name; private int id; - /** * Represents a marker * diff --git a/src/main/java/seng302/models/stream/XMLParser.java b/src/main/java/seng302/models/stream/XMLParser.java index 53bb0889..19f9b9db 100644 --- a/src/main/java/seng302/models/stream/XMLParser.java +++ b/src/main/java/seng302/models/stream/XMLParser.java @@ -239,6 +239,9 @@ public class XMLParser { private ArrayList compoundMarkSequence; private ArrayList courseLimit; + // ensures there's no duplicate marks. + private List seenSourceIDs = new ArrayList(); + /** * Constructor for a RaceXMLObject. * Takes the information from a Document object and creates a more usable format. @@ -312,6 +315,7 @@ public class XMLParser { private Map createCompoundMarks(Element docEle) { Map cMarks = new HashMap<>(); + NodeList cMarkList = docEle.getElementsByTagName("Course").item(0).getChildNodes(); for (int i = 0; i < cMarkList.getLength(); i++) { Node cMarkNode = cMarkList.item(i); @@ -319,14 +323,15 @@ public class XMLParser { if (cMarkNode.getNodeName().equals("CompoundMark")) { Integer markID = getNodeAttributeInt(cMarkNode, "CompoundMarkID"); Mark mark = createMark(cMarkNode); - - cMarks.put(markID, mark); + if (mark != null) { + cMarks.put(markID, mark); + } } } - return cMarks; } + private Mark createMark(Node compoundMark) { List marksList = new ArrayList<>(); @@ -348,6 +353,14 @@ public class XMLParser { } } + for (SingleMark mark : marksList) { + if (seenSourceIDs.contains(mark.getId())) { + return null; + } else { + seenSourceIDs.add(mark.getId()); + } + } + if (marksList.size() == 1) { return marksList.get(0); } else if (marksList.size() == 2) {