Fix for Bug 982 - Stop Tracking not correctly updating to UI

It was wrongly assumed that a race with "stopped tracking" has no related TrackedRace anymore.
This commit is contained in:
fmittag committed 2012-09-26 18:34:46 +02:00
1 parent d0cf6d7868
commit 4aa7d1faf6
3 files changed
+9 -7

No files matched your search

@@ -904,7 +904,8 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
trackedRaceDTO.timePointOfNewestEvent = trackedRace.getTimePointOfNewestEvent() == null ? null : trackedRace.getTimePointOfNewestEvent().asDate(); trackedRaceDTO.timePointOfNewestEvent = trackedRace.getTimePointOfNewestEvent() == null ? null : trackedRace.getTimePointOfNewestEvent().asDate();
trackedRaceDTO.delayToLiveInMs = trackedRace.getDelayToLiveInMillis(); trackedRaceDTO.delayToLiveInMs = trackedRace.getDelayToLiveInMillis();
} }
RaceWithCompetitorsDTO raceDTO = new RaceWithCompetitorsDTO(raceIdentifier, convertToCompetitorDTOs(r.getCompetitors()), trackedRaceDTO); RaceWithCompetitorsDTO raceDTO = new RaceWithCompetitorsDTO(raceIdentifier, convertToCompetitorDTOs(r.getCompetitors()),
trackedRaceDTO, getService().isRaceBeingTracked(r));
if (trackedRace != null) { if (trackedRace != null) {
raceDTO.startOfRace = trackedRace.getStartOfRace() == null ? null : trackedRace.getStartOfRace().asDate(); raceDTO.startOfRace = trackedRace.getStartOfRace() == null ? null : trackedRace.getStartOfRace().asDate();
raceDTO.endOfRace = trackedRace.getEndOfRace() == null ? null : trackedRace.getEndOfRace().asDate(); raceDTO.endOfRace = trackedRace.getEndOfRace() == null ? null : trackedRace.getEndOfRace().asDate();
@@ -1917,7 +1918,7 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
trackedRaceDTO.startOfTracking = trackedRace.getStartOfTracking() == null ? null : trackedRace.getStartOfTracking().asDate(); trackedRaceDTO.startOfTracking = trackedRace.getStartOfTracking() == null ? null : trackedRace.getStartOfTracking().asDate();
trackedRaceDTO.hasWindData = trackedRace.hasWindData(); trackedRaceDTO.hasWindData = trackedRace.hasWindData();
trackedRaceDTO.hasGPSData = trackedRace.hasGPSData(); trackedRaceDTO.hasGPSData = trackedRace.hasGPSData();
raceDTO = new RaceDTO(raceIdentifier, trackedRaceDTO); raceDTO = new RaceDTO(raceIdentifier, trackedRaceDTO, getService().isRaceBeingTracked(trackedRace.getRace()));
raceDTO.places = racePlaces; raceDTO.places = racePlaces;
raceDTO.startOfRace = trackedRace.getStartOfRace() == null ? null : trackedRace.getStartOfRace().asDate(); raceDTO.startOfRace = trackedRace.getStartOfRace() == null ? null : trackedRace.getStartOfRace().asDate();
raceDTO.endOfRace = trackedRace.getEndOfRace() == null ? null : trackedRace.getEndOfRace().asDate(); raceDTO.endOfRace = trackedRace.getEndOfRace() == null ? null : trackedRace.getEndOfRace().asDate();
@@ -27,14 +27,14 @@ public class RaceDTO extends NamedDTO implements IsSerializable {
public RaceDTO() {} public RaceDTO() {}
public RaceDTO(RegattaAndRaceIdentifier raceIdentifier) { public RaceDTO(RegattaAndRaceIdentifier raceIdentifier) {
this(raceIdentifier, null); this(raceIdentifier, null, false);
} }
public RaceDTO(RegattaAndRaceIdentifier raceIdentifier, TrackedRaceDTO trackedRace) { public RaceDTO(RegattaAndRaceIdentifier raceIdentifier, TrackedRaceDTO trackedRace, boolean isCurrentlyTracked) {
super(raceIdentifier.getRaceName()); super(raceIdentifier.getRaceName());
this.regattaName = raceIdentifier.getRegattaName(); this.regattaName = raceIdentifier.getRegattaName();
this.trackedRace = trackedRace; this.trackedRace = trackedRace;
this.isTracked = trackedRace != null; this.isTracked = isCurrentlyTracked;
} }
public RegattaAndRaceIdentifier getRaceIdentifier() { public RegattaAndRaceIdentifier getRaceIdentifier() {
@@ -10,8 +10,9 @@ public class RaceWithCompetitorsDTO extends RaceDTO {
*/ */
RaceWithCompetitorsDTO() {} RaceWithCompetitorsDTO() {}
public RaceWithCompetitorsDTO(RegattaAndRaceIdentifier raceIdentifier, Iterable<CompetitorDTO> competitors, TrackedRaceDTO trackedRace) { public RaceWithCompetitorsDTO(RegattaAndRaceIdentifier raceIdentifier, Iterable<CompetitorDTO> competitors,
super(raceIdentifier, trackedRace); TrackedRaceDTO trackedRace, boolean isCurrentlyTracked) {
super(raceIdentifier, trackedRace, isCurrentlyTracked);
this.competitors = competitors; this.competitors = competitors;
} }