Fixed date time parsing problem

#story[778]
This commit is contained in:
Erika Savell
2017-05-02 16:50:09 +12:00
parent 7d1f4209e4
commit f2e0eec212
9 changed files with 44 additions and 22 deletions
@@ -93,7 +93,8 @@ public class StartController extends Controller implements Observer {
raceData = new StreamedCourse();
raceData.addObserver(this);
// visualiserInput = new VisualiserInput(new Socket("livedata.americascup.com", 4941), raceData);
visualiserInput = new VisualiserInput(new Socket(InetAddress.getLocalHost(), 4943), raceData);
// visualiserInput = new VisualiserInput(new Socket("132.181.15.116", 8085), raceData);
visualiserInput = new VisualiserInput(new Socket(InetAddress.getLocalHost(), 4942), raceData);
new Thread(visualiserInput).start();
// StreamedCourse streamedCourse = new StreamedCourse(new BoatXMLReader("mockXML/boatXML/boatTest.xml"));
// streamedCourse.setStreamedCourseXMLReader(new StreamedCourseXMLReader("mockXML/raceXML/raceTest.xml"));
@@ -29,6 +29,8 @@ public class StreamedCourse extends Observable implements RaceDataSource {
this.boatXMLReader = boatXMLReader;
if (streamedCourseXMLReader != null && boatXMLReader != null) {
boatXMLReader.setParticipants(streamedCourseXMLReader.getParticipants());
System.out.println("Participant size: " + streamedCourseXMLReader.getParticipants().size());
boatXMLReader.read();
}
setChanged();
@@ -87,10 +87,10 @@ public class StreamedCourseXMLReader extends XMLReader {
raceID = Integer.parseInt(getTextValueOfNode(settings, "RaceID"));
raceType = getTextValueOfNode(settings, "RaceType");
//creationTimeDate = ZonedDateTime.parse(getTextValueOfNode(settings, "CreationTimeDate"), dateFormat);
// creationTimeDate = ZonedDateTime.now();
// raceStartTime = ZonedDateTime.now();
creationTimeDate = ZonedDateTime.parse(getTextValueOfNode(settings, "CreationTimeDate"), dateFormat);
// System.out.println(getTextValueOfNode(settings, "CreationTimeDate"));
if (raceTimeTag.getNamedItem("Time") != null) raceStartTime = ZonedDateTime.parse(raceTimeTag.getNamedItem("Time").getTextContent(), dateFormat);
else raceStartTime = ZonedDateTime.parse(raceTimeTag.getNamedItem("Start").getTextContent(), dateFormat);
@@ -60,15 +60,18 @@ public class StreamedRace extends Race {
protected void checkPosition(Boat boat, long timeElapsed) {
StreamedCourse raceData = visualiserInput.getCourse();
BoatStatusMessage boatStatusMessage = visualiserInput.getBoatStatus().get(boat.getSourceID());
BoatStatus boatStatus = BoatStatus.valueOf(boatStatusMessage.getBoatStatus());
int legNumber = boatStatusMessage.getLegNumber();
if (boatStatusMessage != null) {
BoatStatus boatStatus = BoatStatus.valueOf(boatStatusMessage.getBoatStatus());
if (boatStatus == BoatStatus.DNF) {
boat.setDnf(true);
} else if (boatStatus == BoatStatus.FINISHED || legNumber > raceData.getLegs().size()) {
boatsFinished++;
boat.setTimeFinished(timeElapsed);
boat.setFinished(true);
int legNumber = boatStatusMessage.getLegNumber();
if (boatStatus == BoatStatus.DNF) {
boat.setDnf(true);
} else if (boatStatus == BoatStatus.FINISHED || legNumber > raceData.getLegs().size()) {
boatsFinished++;
boat.setTimeFinished(timeElapsed);
boat.setFinished(true);
}
}
//Update the boat display table in the GUI to reflect the leg change
updatePositions();
@@ -1,6 +1,5 @@
package seng302.Model;
import javafx.animation.AnimationTimer;
import javafx.application.Platform;
import javafx.collections.FXCollections;
@@ -214,6 +214,7 @@ public class VisualiserInput implements Runnable
} else if (xml.getXmlMsgSubType() == xml.XMLTypeBoat){
System.out.println("Setting Boats");
course.setBoatXMLReader(new BoatXMLReader(xml.getXmlMessage()));
}
} catch (SAXException e) {
e.printStackTrace();
@@ -287,7 +288,8 @@ public class VisualiserInput implements Runnable
public static void main(String argv[]) throws Exception
{
Socket socket = new Socket(InetAddress.getLocalHost(), 4943);
Socket socket = new Socket("livedata.americascup.com", 4941);
// Socket socket = new Socket(InetAddress.getLocalHost(), 4942);
VisualiserInput receiver = new VisualiserInput(socket, new StreamedCourse());
receiver.run();
}