Fixed time source for visualiser, replacing local time

- StreamedCourse now provides start time for clock from XML

#story[782]
main
Connor Taylor-Brown 9 years ago
parent 02511db2b9
commit 7f273f8ba0

@ -66,7 +66,7 @@ public class StreamedCourse implements RaceDataSource {
}
public ZonedDateTime getZonedDateTime() {
return RaceClock.getCurrentZonedDateTime(regattaXMLReader.getRegatta().getGPSCoordinate());
return streamedCourseXMLReader.getRaceStartTime();
}
public GPSCoordinate getMapTopLeft() {

@ -1,5 +1,6 @@
package seng302.Mock;
import org.joda.time.DateTime;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
@ -15,6 +16,8 @@ import java.io.IOException;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
/**
@ -28,8 +31,8 @@ public class StreamedCourseXMLReader extends XMLReader {
private Map<Integer, StreamedBoat> participants = new HashMap<>();
private List<Leg> legs = new ArrayList<>();
private List<Marker> markers = new ArrayList<>();
Date creationTimeDate;
Date raceStartTime;
ZonedDateTime creationTimeDate;
ZonedDateTime raceStartTime;
int raceID;
String raceType;
boolean postpone;
@ -67,14 +70,14 @@ public class StreamedCourseXMLReader extends XMLReader {
}
private void readRace() throws ParseException {
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssZ");
Element settings = (Element) doc.getElementsByTagName("Race").item(0);
raceID = Integer.parseInt(getTextValueOfNode(settings, "RaceID"));
raceType = getTextValueOfNode(settings, "RaceType");
creationTimeDate = dateFormat.parse(getTextValueOfNode(settings, "CreationTimeDate"));
creationTimeDate = ZonedDateTime.parse(getTextValueOfNode(settings, "CreationTimeDate"), dateFormat);
NamedNodeMap raceTimeTag = doc.getElementsByTagName("RaceStartTime").item(0).getAttributes();
raceStartTime = dateFormat.parse(raceTimeTag.getNamedItem("Time").getTextContent());
raceStartTime = ZonedDateTime.parse(raceTimeTag.getNamedItem("Time").getTextContent(), dateFormat);
postpone = Boolean.parseBoolean(raceTimeTag.getNamedItem("Postpone").getTextContent());
}
@ -220,11 +223,11 @@ public class StreamedCourseXMLReader extends XMLReader {
return COORDINATEPADDING;
}
public Date getCreationTimeDate() {
public ZonedDateTime getCreationTimeDate() {
return creationTimeDate;
}
public Date getRaceStartTime() {
public ZonedDateTime getRaceStartTime() {
return raceStartTime;
}

@ -43,7 +43,7 @@ public class RaceClock {
*/
public void setTime(ZonedDateTime time) {
this.time = time;
this.timeString.set(DateTimeFormatter.ofPattern("dd-MM HH:mm:ss z").format(time));
this.timeString.set(DateTimeFormatter.ofPattern("HH:mm:ss dd/MM/YYYY Z").format(time));
this.lastTime = System.currentTimeMillis();
}

Loading…
Cancel
Save