diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java index 1ac63a096ae..629ee5556df 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java @@ -28,6 +28,7 @@ import com.sap.sailing.domain.common.WindSourceType; import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.leaderboard.ScoringScheme; import com.sap.sailing.domain.racelog.RaceLog; +import com.sap.sailing.domain.tracking.CourseDesignChangedListener; import com.sap.sailing.domain.tracking.DynamicGPSFixTrack; import com.sap.sailing.domain.tracking.DynamicRaceDefinitionSet; import com.sap.sailing.domain.tracking.DynamicTrackedRace; @@ -757,4 +758,10 @@ public class MockedTrackedRace implements DynamicTrackedRace { // TODO Auto-generated method stub } + + @Override + public void setCourseDesignChangedListener(CourseDesignChangedListener listener) { + // TODO Auto-generated method stub + + } } diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRaceWithStartTimeAndRanks.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRaceWithStartTimeAndRanks.java index 859bb440332..7df56769a79 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRaceWithStartTimeAndRanks.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRaceWithStartTimeAndRanks.java @@ -23,6 +23,7 @@ import com.sap.sailing.domain.common.WindSource; import com.sap.sailing.domain.common.WindSourceType; import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.racelog.RaceLog; +import com.sap.sailing.domain.tracking.CourseDesignChangedListener; import com.sap.sailing.domain.tracking.GPSFix; import com.sap.sailing.domain.tracking.GPSFixMoving; import com.sap.sailing.domain.tracking.GPSFixTrack; @@ -499,4 +500,10 @@ public class MockedTrackedRaceWithStartTimeAndRanks implements TrackedRace { // TODO Auto-generated method stub } + + @Override + public void setCourseDesignChangedListener(CourseDesignChangedListener listener) { + // TODO Auto-generated method stub + + } } diff --git a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/CourseDesignChangedByRaceCommitteeHandler.java b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/CourseDesignChangedByRaceCommitteeHandler.java new file mode 100644 index 00000000000..bc6895d1dba --- /dev/null +++ b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/CourseDesignChangedByRaceCommitteeHandler.java @@ -0,0 +1,13 @@ +package com.sap.sailing.domain.tractracadapter.impl; + +import com.sap.sailing.domain.base.CourseData; +import com.sap.sailing.domain.tracking.CourseDesignChangedListener; + +public class CourseDesignChangedByRaceCommitteeHandler implements CourseDesignChangedListener { + + @Override + public void courseDesignChanged(CourseData newCourseDesign) { + + } + +} diff --git a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/DomainFactoryImpl.java b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/DomainFactoryImpl.java index 4ad46785bac..11509e2312a 100644 --- a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/DomainFactoryImpl.java +++ b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/DomainFactoryImpl.java @@ -466,6 +466,10 @@ public class DomainFactoryImpl implements DomainFactory { DynamicTrackedRace trackedRace = createTrackedRace(trackedRegatta, raceDefinition, windStore, delayToLiveInMillis, millisecondsOverWhichToAverageWind, raceDefinitionSetToUpdate); logger.info("Added race "+raceDefinition+" to regatta "+trackedRegatta.getRegatta()); + + CourseDesignChangedByRaceCommitteeHandler courseDesignHandler = new CourseDesignChangedByRaceCommitteeHandler(); + trackedRace.setCourseDesignChangedListener(courseDesignHandler); + synchronized (raceCache) { raceCache.put(race, raceDefinition); raceCache.notifyAll(); diff --git a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/RaceCourseReceiver.java b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/RaceCourseReceiver.java index c4b5b56d59f..9a20ac47fc9 100755 --- a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/RaceCourseReceiver.java +++ b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/RaceCourseReceiver.java @@ -122,6 +122,9 @@ public class RaceCourseReceiver extends AbstractReceiverWithQueue { } @Override - public void onCourseDesignChangedByRaceCommittee(CourseData courseDesign) { - + public void onCourseDesignChangedByRaceCommittee(CourseData newCourseDesign) { + if (courseDesignChangedListener != null) { + courseDesignChangedListener.courseDesignChanged(newCourseDesign); + } } } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRaceImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRaceImpl.java index 83f7742b000..3e529f0c629 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRaceImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRaceImpl.java @@ -70,6 +70,7 @@ import com.sap.sailing.domain.confidence.Weigher; import com.sap.sailing.domain.confidence.impl.HyperbolicTimeDifferenceWeigher; import com.sap.sailing.domain.confidence.impl.PositionAndTimePointWeigher; import com.sap.sailing.domain.racelog.RaceLog; +import com.sap.sailing.domain.tracking.CourseDesignChangedListener; import com.sap.sailing.domain.tracking.GPSFix; import com.sap.sailing.domain.tracking.GPSFixMoving; import com.sap.sailing.domain.tracking.GPSFixTrack; @@ -79,7 +80,6 @@ import com.sap.sailing.domain.tracking.MarkPassing; import com.sap.sailing.domain.tracking.TrackedLeg; import com.sap.sailing.domain.tracking.TrackedLegOfCompetitor; import com.sap.sailing.domain.tracking.TrackedRace; -import com.sap.sailing.domain.tracking.TrackedRaceLogListener; import com.sap.sailing.domain.tracking.TrackedRaceStatus; import com.sap.sailing.domain.tracking.TrackedRegatta; import com.sap.sailing.domain.tracking.Wind; @@ -223,6 +223,8 @@ public abstract class TrackedRaceImpl implements TrackedRace, CourseListener { private transient RaceLog attachedRaceLog; private transient TrackedRaceLogListener raceLogListener; + + protected transient CourseDesignChangedListener courseDesignChangedListener; /** * The time delay to the current point in time in milliseconds. @@ -2292,4 +2294,9 @@ public abstract class TrackedRaceImpl implements TrackedRace, CourseListener { public RaceLog getRaceLog() { return attachedRaceLog; } + + @Override + public void setCourseDesignChangedListener(CourseDesignChangedListener listener) { + this.courseDesignChangedListener = listener; + } } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedRaceLogListener.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRaceLogListener.java similarity index 90% rename from java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedRaceLogListener.java rename to java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRaceLogListener.java index 5bca8a32ee2..9217a64fc4a 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedRaceLogListener.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRaceLogListener.java @@ -1,4 +1,4 @@ -package com.sap.sailing.domain.tracking; +package com.sap.sailing.domain.tracking.impl; import com.sap.sailing.domain.racelog.RaceLogCourseAreaChangedEvent; import com.sap.sailing.domain.racelog.RaceLogCourseDesignChangedEvent; @@ -7,6 +7,7 @@ import com.sap.sailing.domain.racelog.RaceLogFlagEvent; import com.sap.sailing.domain.racelog.RaceLogPassChangeEvent; import com.sap.sailing.domain.racelog.RaceLogRaceStatusEvent; import com.sap.sailing.domain.racelog.RaceLogStartTimeEvent; +import com.sap.sailing.domain.tracking.TrackedRace; public class TrackedRaceLogListener implements RaceLogEventVisitor { diff --git a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/MockedTrackedRace.java b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/MockedTrackedRace.java index 38ae817837b..cd20a30e514 100644 --- a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/MockedTrackedRace.java +++ b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/MockedTrackedRace.java @@ -28,6 +28,7 @@ import com.sap.sailing.domain.common.WindSourceType; import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.leaderboard.ScoringScheme; import com.sap.sailing.domain.racelog.RaceLog; +import com.sap.sailing.domain.tracking.CourseDesignChangedListener; import com.sap.sailing.domain.tracking.DynamicGPSFixTrack; import com.sap.sailing.domain.tracking.DynamicRaceDefinitionSet; import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; @@ -757,4 +758,10 @@ public class MockedTrackedRace implements DynamicTrackedRace { // TODO Auto-generated method stub } + + @Override + public void setCourseDesignChangedListener(CourseDesignChangedListener listener) { + // TODO Auto-generated method stub + + } }