LatestMessages can hold MarkRounding messages. It also holds XMLMessage for each message type.
MockOutput now uses LatestMessages for xml messages. Moved xml message encoding into RaceVisionByteEncoder. Removed XMLMessageEncoder. Moved XML message sub types into an enumeration (XMLMessageType). XMLMessage can now be queried for its attributes (like timestamp, length, etc...). VisualiserInput now uses LatestMessages. VisualiserInput now (as it did previously) uses switch statements for checking packet type, instead of if statements. VisualiserRace now uses LatestMessages instead of VisualiserInput.
This commit is contained in:
@@ -9,6 +9,7 @@ import network.Messages.BoatLocation;
|
||||
import network.Messages.BoatStatus;
|
||||
import network.Messages.Enums.BoatStatusEnum;
|
||||
import network.Messages.Enums.RaceStatusEnum;
|
||||
import network.Messages.LatestMessages;
|
||||
import network.Messages.RaceStatus;
|
||||
import shared.dataInput.BoatDataSource;
|
||||
import shared.dataInput.RaceDataSource;
|
||||
@@ -30,9 +31,6 @@ import java.util.Map;
|
||||
public class VisualiserRace extends Race {
|
||||
|
||||
|
||||
//TODO replace with LatestMessages
|
||||
private final VisualiserInput visualiserInput;
|
||||
|
||||
/**
|
||||
* An observable list of boats in the race.
|
||||
*/
|
||||
@@ -49,9 +47,17 @@ public class VisualiserRace extends Race {
|
||||
|
||||
|
||||
|
||||
public VisualiserRace(BoatDataSource boatDataSource, RaceDataSource raceDataSource, RegattaDataSource regattaDataSource, List<Color> colors, VisualiserInput visualiserInput, RaceController controller) {
|
||||
/**
|
||||
* Constructs a race object with a given RaceDataSource, BoatDataSource, and RegattaDataSource and receives events from LatestMessages.
|
||||
* @param boatDataSource Data source for boat related data (yachts and marker boats).
|
||||
* @param raceDataSource Data source for race related data (participating boats, legs, etc...).
|
||||
* @param regattaDataSource Data source for race related data (course name, location, timezone, etc...).
|
||||
* @param colors A collection of colors used to assign a color to each boat.
|
||||
* @param latestMessages The LatestMessages to send events to.
|
||||
*/
|
||||
public VisualiserRace(BoatDataSource boatDataSource, RaceDataSource raceDataSource, RegattaDataSource regattaDataSource, List<Color> colors, LatestMessages latestMessages, RaceController controller) {
|
||||
|
||||
super(boatDataSource, raceDataSource, regattaDataSource);
|
||||
super(boatDataSource, raceDataSource, regattaDataSource, latestMessages);
|
||||
|
||||
|
||||
this.boats = FXCollections.observableArrayList(this.generateVisualiserBoats(boatDataSource.getBoats(), raceDataSource.getParticipants(), colors));
|
||||
@@ -59,10 +65,8 @@ public class VisualiserRace extends Race {
|
||||
this.boatMarkers = FXCollections.observableArrayList(boatDataSource.getMarkerBoats().values());
|
||||
|
||||
|
||||
|
||||
this.controller = controller;
|
||||
|
||||
this.visualiserInput = visualiserInput;
|
||||
}
|
||||
|
||||
|
||||
@@ -327,16 +331,16 @@ public class VisualiserRace extends Race {
|
||||
|
||||
|
||||
//Update racing boats.
|
||||
updateBoats(boats, visualiserInput.getBoatLocationMap(), visualiserInput.getBoatStatusMap());
|
||||
updateBoats(boats, latestMessages.getBoatLocationMap(), latestMessages.getBoatStatusMap());
|
||||
//And their positions (e.g., 5th).
|
||||
updateBoatPositions(boats);
|
||||
|
||||
//Update marker boats.
|
||||
updateMarkers(boatMarkers, visualiserInput.getBoatLocationMap(), visualiserInput.getBoatStatusMap());
|
||||
updateMarkers(boatMarkers, latestMessages.getBoatLocationMap(), latestMessages.getBoatStatusMap());
|
||||
|
||||
|
||||
//Update race status.
|
||||
updateRaceStatus(visualiserInput.getRaceStatus());
|
||||
updateRaceStatus(latestMessages.getRaceStatus());
|
||||
|
||||
|
||||
//TODO tidy this circular dependency up
|
||||
|
||||
Reference in New Issue
Block a user