Changes to handle detachment of a RaceLog in RaceLogFixTrackerManager

This commit is contained in:
Steffen Schaefer committed 2016-06-27 16:34:02 +02:00
1 parent 0a1b56765c
commit fb88035daa
5 files changed
+23

No files matched your search

@@ -42,6 +42,12 @@ public class RaceLogFixTrackerManager implements TrackingDataLoader {
updateDenotionState();
}
public void raceLogDetached(RaceLog raceLog) {
raceLog.removeListener(raceLogEventVisitor);
updateDenotionState();
}
/**
* Stops tracking the races.
@@ -76,6 +76,8 @@ public interface RaceChangeListener extends CourseListener {
void regattaLogAttached(RegattaLog regattaLog);
void raceLogAttached(RaceLog raceLog);
void raceLogDetached(RaceLog raceLog);
void stopTracking(boolean preemptive);
}
@@ -143,6 +143,11 @@ public abstract class AbstractRaceChangeListener implements RaceChangeListener {
defaultAction();
}
@Override
public void raceLogDetached(RaceLog raceLog) {
defaultAction();
}
@Override
public void stopTracking(boolean preemptive) {
defaultAction();
@@ -3390,6 +3390,7 @@ public abstract class TrackedRaceImpl extends TrackedRaceWithWindEssentials impl
@Override
public RaceLog detachRaceLog(Serializable identifier) {
final RaceLog raceLog = this.attachedRaceLogs.remove(identifier);
notifyListenersWhenDetachingRaceLog(raceLog);
updateStartOfRaceCacheFields();
updateStartAndEndOfTracking(/* waitForGPSFixesToLoad */ false);
return raceLog;
@@ -4011,6 +4012,10 @@ public abstract class TrackedRaceImpl extends TrackedRaceWithWindEssentials impl
private void notifyListenersWhenAttachingRaceLog(RaceLog raceLog) {
notifyListeners(listener -> listener.raceLogAttached(raceLog));
}
private void notifyListenersWhenDetachingRaceLog(RaceLog raceLog) {
notifyListeners(listener -> listener.raceLogDetached(raceLog));
}
protected void notifyListenersOnStopTracking(boolean preemptive) {
notifyListeners(listener -> listener.stopTracking(preemptive));
@@ -1732,6 +1732,11 @@ public class RacingEventServiceImpl implements RacingEventService, ClearStateTes
// no action required
}
@Override
public void raceLogDetached(RaceLog raceLog) {
// no action required
}
@Override
public void stopTracking(boolean preemptive) {
// no action required