Fixed thread issue on windows
- Added a Platform.runLater on the Visualiser loops so that the notifying observers do not try to call it, where it is a non java-fx loop #story[881]
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
package seng302;
|
package seng302;
|
||||||
|
import javafx.application.Platform;
|
||||||
import org.xml.sax.SAXException;
|
import org.xml.sax.SAXException;
|
||||||
import seng302.Mock.*;
|
import seng302.Mock.*;
|
||||||
import seng302.Networking.BinaryMessageDecoder;
|
import seng302.Networking.BinaryMessageDecoder;
|
||||||
@@ -294,42 +295,43 @@ public class VisualiserInput implements Runnable {
|
|||||||
|
|
||||||
//System.out.println("XML Message!");
|
//System.out.println("XML Message!");
|
||||||
|
|
||||||
if (xmlMessage.getXmlMsgSubType() == XMLMessage.XMLTypeRegatta){
|
Platform.runLater(()-> {
|
||||||
//System.out.println("Setting Regatta");
|
if (xmlMessage.getXmlMsgSubType() == XMLMessage.XMLTypeRegatta) {
|
||||||
try {
|
//System.out.println("Setting Regatta");
|
||||||
course.setRegattaXMLReader(new RegattaXMLReader(xmlMessage.getXmlMessage()));
|
try {
|
||||||
}
|
course.setRegattaXMLReader(new RegattaXMLReader(xmlMessage.getXmlMessage()));
|
||||||
//TODO REFACTOR should put all of these exceptions behind a RegattaXMLReaderException.
|
|
||||||
catch (IOException | SAXException | ParserConfigurationException e) {
|
|
||||||
System.err.println("Error creating RegattaXMLReader: " + e.getMessage());
|
|
||||||
//Continue to the next loop iteration/message.
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if (xmlMessage.getXmlMsgSubType() == XMLMessage.XMLTypeRace){
|
}
|
||||||
//System.out.println("Setting Course");
|
//TODO REFACTOR should put all of these exceptions behind a RegattaXMLReaderException.
|
||||||
try {
|
catch (IOException | SAXException | ParserConfigurationException e) {
|
||||||
course.setStreamedCourseXMLReader(new StreamedCourseXMLReader(xmlMessage.getXmlMessage()));
|
System.err.println("Error creating RegattaXMLReader: " + e.getMessage());
|
||||||
}
|
//Continue to the next loop iteration/message.
|
||||||
//TODO REFACTOR should put all of these exceptions behind a StreamedCourseXMLReaderException.
|
}
|
||||||
catch (IOException | SAXException | ParserConfigurationException | StreamedCourseXMLException e) {
|
|
||||||
System.err.println("Error creating StreamedCourseXMLReader: " + e.getMessage());
|
|
||||||
//Continue to the next loop iteration/message.
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if (xmlMessage.getXmlMsgSubType() == XMLMessage.XMLTypeBoat){
|
} else if (xmlMessage.getXmlMsgSubType() == XMLMessage.XMLTypeRace) {
|
||||||
//System.out.println("Setting Boats");
|
//System.out.println("Setting Course");
|
||||||
try
|
try {
|
||||||
{
|
course.setStreamedCourseXMLReader(new StreamedCourseXMLReader(xmlMessage.getXmlMessage()));
|
||||||
course.setBoatXMLReader(new BoatXMLReader(xmlMessage.getXmlMessage()));
|
}
|
||||||
}
|
//TODO REFACTOR should put all of these exceptions behind a StreamedCourseXMLReaderException.
|
||||||
//TODO REFACTOR should put all of these exceptions behind a BoatXMLReaderException.
|
catch (IOException | SAXException | ParserConfigurationException | StreamedCourseXMLException e) {
|
||||||
catch (IOException | SAXException | ParserConfigurationException e) {
|
System.err.println("Error creating StreamedCourseXMLReader: " + e.getMessage());
|
||||||
System.err.println("Error creating BoatXMLReader: " + e.getMessage());
|
//Continue to the next loop iteration/message.
|
||||||
//Continue to the next loop iteration/message.
|
}
|
||||||
}
|
|
||||||
|
|
||||||
}
|
} else if (xmlMessage.getXmlMsgSubType() == XMLMessage.XMLTypeBoat) {
|
||||||
|
//System.out.println("Setting Boats");
|
||||||
|
try {
|
||||||
|
course.setBoatXMLReader(new BoatXMLReader(xmlMessage.getXmlMessage()));
|
||||||
|
}
|
||||||
|
//TODO REFACTOR should put all of these exceptions behind a BoatXMLReaderException.
|
||||||
|
catch (IOException | SAXException | ParserConfigurationException e) {
|
||||||
|
System.err.println("Error creating BoatXMLReader: " + e.getMessage());
|
||||||
|
//Continue to the next loop iteration/message.
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
//RaceStartStatus.
|
//RaceStartStatus.
|
||||||
else if (message instanceof RaceStartStatus) {
|
else if (message instanceof RaceStartStatus) {
|
||||||
|
|||||||
Reference in New Issue
Block a user