mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-23 22:19:13 +00:00
# started to implement new RaceState + RacingProcedure logic (to be renamed and merged later)
# ManagedRaceListFragment uses new RaceState
This commit is contained in:
+6
@@ -0,0 +1,6 @@
|
||||
package com.sap.sailing.domain.racelog;
|
||||
|
||||
|
||||
public interface RaceLogChangedListener {
|
||||
public void eventAdded(RaceLogEvent event);
|
||||
}
|
||||
+2
-2
@@ -1,5 +1,6 @@
|
||||
package com.sap.sailing.racecommittee.app.domain.racelog.impl;
|
||||
package com.sap.sailing.domain.racelog.impl;
|
||||
|
||||
import com.sap.sailing.domain.racelog.RaceLogChangedListener;
|
||||
import com.sap.sailing.domain.racelog.RaceLogCourseAreaChangedEvent;
|
||||
import com.sap.sailing.domain.racelog.RaceLogCourseDesignChangedEvent;
|
||||
import com.sap.sailing.domain.racelog.RaceLogEventVisitor;
|
||||
@@ -14,7 +15,6 @@ import com.sap.sailing.domain.racelog.RaceLogRaceStatusEvent;
|
||||
import com.sap.sailing.domain.racelog.RaceLogStartProcedureChangedEvent;
|
||||
import com.sap.sailing.domain.racelog.RaceLogStartTimeEvent;
|
||||
import com.sap.sailing.domain.racelog.RaceLogWindFixEvent;
|
||||
import com.sap.sailing.racecommittee.app.domain.racelog.RaceLogChangedListener;
|
||||
|
||||
public class RaceLogChangedVisitor implements RaceLogEventVisitor {
|
||||
|
||||
+51
@@ -0,0 +1,51 @@
|
||||
package com.sap.sailing.domain.racelog.state;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import com.sap.sailing.domain.base.CourseBase;
|
||||
import com.sap.sailing.domain.common.MaxPointsReason;
|
||||
import com.sap.sailing.domain.common.TimePoint;
|
||||
import com.sap.sailing.domain.common.impl.Util.Triple;
|
||||
import com.sap.sailing.domain.common.racelog.RaceLogRaceStatus;
|
||||
import com.sap.sailing.domain.common.racelog.RacingProcedureType;
|
||||
import com.sap.sailing.domain.racelog.RaceLog;
|
||||
import com.sap.sailing.domain.racelog.RaceLogEventAuthor;
|
||||
import com.sap.sailing.domain.tracking.Wind;
|
||||
|
||||
public interface RaceState2 {
|
||||
|
||||
RaceLog getRaceLog();
|
||||
RaceLogEventAuthor getAuthor();
|
||||
|
||||
void setRacingProcedure(RacingProcedureType racingProcedureType);
|
||||
RacingProcedure2 getRacingProcedure();
|
||||
|
||||
RaceLogRaceStatus getStatus();
|
||||
|
||||
RacingProcedurePrerequisite setStartTime(TimePoint timePoint);
|
||||
TimePoint getStartTime();
|
||||
void setFinishingTime(TimePoint timePoint);
|
||||
TimePoint getFinishingTime();
|
||||
void setFinishedTime(TimePoint timePoint);
|
||||
TimePoint getFinishedTime();
|
||||
void setProtestTime(TimePoint timePoint);
|
||||
TimePoint getProtestTime();
|
||||
void setAborted(TimePoint timePoint, boolean isPostponed);
|
||||
void setGeneralRecall(TimePoint timePoint);
|
||||
|
||||
void setFinishPositioningListChanged(List<Triple<Serializable, String, MaxPointsReason>> positionedCompetitors);
|
||||
List<Triple<Serializable, String, MaxPointsReason>> getFinishPositioningList();
|
||||
|
||||
void setFinishPositioningConfirmed();
|
||||
boolean isFinishPositioningConfirmed();
|
||||
|
||||
void setCourseDesign(CourseBase courseDesign);
|
||||
CourseBase getCourseDesign();
|
||||
|
||||
void setWindFix(Wind wind);
|
||||
|
||||
void addChangedListener(RaceState2ChangedListener listener);
|
||||
void removeChangedListener(RaceState2ChangedListener listener);
|
||||
|
||||
}
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
package com.sap.sailing.domain.racelog.state;
|
||||
|
||||
|
||||
public interface RaceState2ChangedListener {
|
||||
|
||||
void onRacingProcedureChanged(RaceState2 state);
|
||||
void onStatusChanged(RaceState2 state);
|
||||
void onStartTimeChanged(RaceState2 state);
|
||||
void onFinishingTimeChanged(RaceState2 state);
|
||||
void onFinishedTimeChanged(RaceState2 state);
|
||||
void onProtestTimeChanged(RaceState2 state);
|
||||
void onAborted(RaceState2 state);
|
||||
void onGeneralRecall(RaceState2 state);
|
||||
void onFinishingPositioningsChanged(RaceState2 state);
|
||||
void onFinishingPositionsConfirmed(RaceState2 state);
|
||||
void onCourseDesignChanged(RaceState2 state);
|
||||
void onWindFixAdded(RaceState2 state);
|
||||
|
||||
}
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
package com.sap.sailing.domain.racelog.state;
|
||||
|
||||
import com.sap.sailing.domain.common.TimePoint;
|
||||
import com.sap.sailing.domain.common.racelog.RacingProcedureType;
|
||||
import com.sap.sailing.domain.racelog.RaceLog;
|
||||
|
||||
public interface RacingProcedure2 {
|
||||
|
||||
RaceLog getRaceLog();
|
||||
RacingProcedureType getType();
|
||||
|
||||
RacingProcedurePrerequisite checkPrerequisitesForStart(TimePoint startTime);
|
||||
|
||||
}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
package com.sap.sailing.domain.racelog.state;
|
||||
|
||||
public interface RacingProcedurePrerequisite {
|
||||
|
||||
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
package com.sap.sailing.domain.racelog.state.impl;
|
||||
|
||||
import com.sap.sailing.domain.racelog.RaceLog;
|
||||
import com.sap.sailing.domain.racelog.state.RacingProcedure2;
|
||||
|
||||
public abstract class BaseRacingProcedure implements RacingProcedure2 {
|
||||
|
||||
private final RaceLog raceLog;
|
||||
|
||||
public BaseRacingProcedure(RaceLog raceLog) {
|
||||
this.raceLog = raceLog;
|
||||
}
|
||||
|
||||
public RaceLog getRaceLog() {
|
||||
return raceLog;
|
||||
}
|
||||
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
package com.sap.sailing.domain.racelog.state.impl;
|
||||
|
||||
import com.sap.sailing.domain.common.TimePoint;
|
||||
import com.sap.sailing.domain.common.racelog.RacingProcedureType;
|
||||
import com.sap.sailing.domain.racelog.RaceLog;
|
||||
import com.sap.sailing.domain.racelog.state.RacingProcedurePrerequisite;
|
||||
|
||||
public class RRS26RacingProcedure extends BaseRacingProcedure {
|
||||
|
||||
public RRS26RacingProcedure(RaceLog raceLog) {
|
||||
super(raceLog);
|
||||
}
|
||||
|
||||
@Override
|
||||
public RacingProcedureType getType() {
|
||||
return RacingProcedureType.RRS26;
|
||||
}
|
||||
|
||||
@Override
|
||||
public RacingProcedurePrerequisite checkPrerequisitesForStart(TimePoint startTime) {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
+89
@@ -0,0 +1,89 @@
|
||||
package com.sap.sailing.domain.racelog.state.impl;
|
||||
|
||||
import java.util.HashSet;
|
||||
|
||||
import com.sap.sailing.domain.racelog.state.RaceState2;
|
||||
import com.sap.sailing.domain.racelog.state.RaceState2ChangedListener;
|
||||
|
||||
public class RaceState2ChangedListeners extends HashSet<RaceState2ChangedListener> implements RaceState2ChangedListener {
|
||||
|
||||
private static final long serialVersionUID = 2028183211903975659L;
|
||||
|
||||
@Override
|
||||
public void onRacingProcedureChanged(RaceState2 state) {
|
||||
for (RaceState2ChangedListener listener : this) {
|
||||
listener.onRacingProcedureChanged(state);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStatusChanged(RaceState2 state) {
|
||||
for (RaceState2ChangedListener listener : this) {
|
||||
listener.onStatusChanged(state);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStartTimeChanged(RaceState2 state) {
|
||||
for (RaceState2ChangedListener listener : this) {
|
||||
listener.onStartTimeChanged(state);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFinishingTimeChanged(RaceState2 state) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFinishedTimeChanged(RaceState2 state) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onProtestTimeChanged(RaceState2 state) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAborted(RaceState2 state) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGeneralRecall(RaceState2 state) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFinishingPositioningsChanged(RaceState2 state) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFinishingPositionsConfirmed(RaceState2 state) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCourseDesignChanged(RaceState2 state) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onWindFixAdded(RaceState2 state) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
+222
@@ -0,0 +1,222 @@
|
||||
package com.sap.sailing.domain.racelog.state.impl;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import com.sap.sailing.domain.base.CourseBase;
|
||||
import com.sap.sailing.domain.common.MaxPointsReason;
|
||||
import com.sap.sailing.domain.common.TimePoint;
|
||||
import com.sap.sailing.domain.common.impl.MillisecondsTimePoint;
|
||||
import com.sap.sailing.domain.common.impl.Util.Triple;
|
||||
import com.sap.sailing.domain.common.racelog.RaceLogRaceStatus;
|
||||
import com.sap.sailing.domain.common.racelog.RacingProcedureType;
|
||||
import com.sap.sailing.domain.racelog.RaceLog;
|
||||
import com.sap.sailing.domain.racelog.RaceLogChangedListener;
|
||||
import com.sap.sailing.domain.racelog.RaceLogEvent;
|
||||
import com.sap.sailing.domain.racelog.RaceLogEventAuthor;
|
||||
import com.sap.sailing.domain.racelog.RaceLogEventFactory;
|
||||
import com.sap.sailing.domain.racelog.analyzing.impl.ConfirmedFinishPositioningListFinder;
|
||||
import com.sap.sailing.domain.racelog.analyzing.impl.FinishPositioningListFinder;
|
||||
import com.sap.sailing.domain.racelog.analyzing.impl.FinishedTimeFinder;
|
||||
import com.sap.sailing.domain.racelog.analyzing.impl.FinishingTimeFinder;
|
||||
import com.sap.sailing.domain.racelog.analyzing.impl.LastPublishedCourseDesignFinder;
|
||||
import com.sap.sailing.domain.racelog.analyzing.impl.ProtestStartTimeFinder;
|
||||
import com.sap.sailing.domain.racelog.analyzing.impl.RaceStatusAnalyzer;
|
||||
import com.sap.sailing.domain.racelog.analyzing.impl.RacingProcedureTypeAnalyzer;
|
||||
import com.sap.sailing.domain.racelog.analyzing.impl.StartTimeFinder;
|
||||
import com.sap.sailing.domain.racelog.impl.RaceLogChangedVisitor;
|
||||
import com.sap.sailing.domain.racelog.state.RaceState2;
|
||||
import com.sap.sailing.domain.racelog.state.RaceState2ChangedListener;
|
||||
import com.sap.sailing.domain.racelog.state.RacingProcedure2;
|
||||
import com.sap.sailing.domain.racelog.state.RacingProcedurePrerequisite;
|
||||
import com.sap.sailing.domain.tracking.Wind;
|
||||
|
||||
public class RaceState2Impl implements RaceState2, RaceLogChangedListener {
|
||||
|
||||
private final RaceLog raceLog;
|
||||
private final RaceLogEventAuthor author;
|
||||
private final RaceLogEventFactory factory;
|
||||
private final RaceState2ChangedListeners changedListeners;
|
||||
|
||||
private RacingProcedure2 racingProcedure;
|
||||
|
||||
private RacingProcedureTypeAnalyzer racingProcedureAnalyer;
|
||||
private RaceStatusAnalyzer statusAnalyzer;
|
||||
|
||||
private StartTimeFinder startTimeAnalyzer;
|
||||
private FinishingTimeFinder finishingTimeAnalyzer;
|
||||
private FinishedTimeFinder finishedTimeAnalyzer;
|
||||
private ProtestStartTimeFinder protestTimeAnalyzer;
|
||||
|
||||
private FinishPositioningListFinder finishPositioningListAnalyzer;
|
||||
private ConfirmedFinishPositioningListFinder confirmedFinishPositioningListAnalyzer;
|
||||
|
||||
private LastPublishedCourseDesignFinder courseDesignerAnalyzer;
|
||||
|
||||
private RacingProcedureType cachedRacingProcedureType;
|
||||
private RaceLogRaceStatus cachedRaceStatus;
|
||||
|
||||
public RaceState2Impl(RaceLog raceLog, RaceLogEventAuthor author, RaceLogEventFactory eventFactory,
|
||||
RacingProcedureType defaultRacingProcedureType) {
|
||||
this.raceLog = raceLog;
|
||||
this.author = author;
|
||||
this.factory = eventFactory;
|
||||
this.changedListeners = new RaceState2ChangedListeners();
|
||||
|
||||
this.cachedRacingProcedureType = defaultRacingProcedureType;
|
||||
this.cachedRaceStatus = RaceLogRaceStatus.UNKNOWN;
|
||||
|
||||
this.raceLog.addListener(new RaceLogChangedVisitor(this));
|
||||
}
|
||||
|
||||
@Override
|
||||
public RaceLog getRaceLog() {
|
||||
return raceLog;
|
||||
}
|
||||
|
||||
@Override
|
||||
public RaceLogEventAuthor getAuthor() {
|
||||
return author;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setRacingProcedure(RacingProcedureType newType) {
|
||||
if (racingProcedure == null || !newType.equals(racingProcedureAnalyer.analyze())) {
|
||||
raceLog.add(factory.createStartProcedureChangedEvent(MillisecondsTimePoint.now(), author, raceLog.getCurrentPassId(), newType));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public RacingProcedure2 getRacingProcedure() {
|
||||
return racingProcedure;
|
||||
}
|
||||
|
||||
@Override
|
||||
public RaceLogRaceStatus getStatus() {
|
||||
return cachedRaceStatus;
|
||||
}
|
||||
|
||||
@Override
|
||||
public RacingProcedurePrerequisite setStartTime(TimePoint startTime) {
|
||||
RacingProcedurePrerequisite pre = racingProcedure.checkPrerequisitesForStart(startTime);
|
||||
if (pre != null) {
|
||||
return pre;
|
||||
} else {
|
||||
raceLog.add(factory.createStartTimeEvent(MillisecondsTimePoint.now(), author, raceLog.getCurrentPassId(), startTime));
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public TimePoint getStartTime() {
|
||||
return startTimeAnalyzer.analyze();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setFinishingTime(TimePoint timePoint) {
|
||||
// set finishing time
|
||||
}
|
||||
|
||||
@Override
|
||||
public TimePoint getFinishingTime() {
|
||||
return finishingTimeAnalyzer.analyze();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setFinishedTime(TimePoint timePoint) {
|
||||
// set finished time
|
||||
}
|
||||
|
||||
@Override
|
||||
public TimePoint getFinishedTime() {
|
||||
return finishedTimeAnalyzer.analyze();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setProtestTime(TimePoint timePoint) {
|
||||
// set protest time
|
||||
}
|
||||
|
||||
@Override
|
||||
public TimePoint getProtestTime() {
|
||||
return protestTimeAnalyzer.analyze();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setAborted(TimePoint timePoint, boolean isPostponed) {
|
||||
// set aborted
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setGeneralRecall(TimePoint timePoint) {
|
||||
// set general recall
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setFinishPositioningListChanged(
|
||||
List<Triple<Serializable, String, MaxPointsReason>> positionedCompetitors) {
|
||||
// set finishing positions
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Triple<Serializable, String, MaxPointsReason>> getFinishPositioningList() {
|
||||
return finishPositioningListAnalyzer.analyze();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setFinishPositioningConfirmed() {
|
||||
// set confirmed event
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isFinishPositioningConfirmed() {
|
||||
return confirmedFinishPositioningListAnalyzer.analyze() != null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCourseDesign(CourseBase courseDesign) {
|
||||
// set course design
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public CourseBase getCourseDesign() {
|
||||
return courseDesignerAnalyzer.analyze();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setWindFix(Wind wind) {
|
||||
// set wind fix
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addChangedListener(RaceState2ChangedListener listener) {
|
||||
changedListeners.add(listener);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeChangedListener(RaceState2ChangedListener listener) {
|
||||
changedListeners.remove(listener);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void eventAdded(RaceLogEvent event) {
|
||||
RacingProcedureType type = racingProcedureAnalyer.analyze();
|
||||
if (!cachedRacingProcedureType.equals(type)) {
|
||||
cachedRacingProcedureType = type;
|
||||
createRacingProcedure();
|
||||
changedListeners.onRacingProcedureChanged(this);
|
||||
}
|
||||
|
||||
RaceLogRaceStatus status = statusAnalyzer.analyze();
|
||||
if (!cachedRaceStatus.equals(status)) {
|
||||
cachedRaceStatus = status;
|
||||
changedListeners.onStatusChanged(this);
|
||||
}
|
||||
}
|
||||
|
||||
private void createRacingProcedure() {
|
||||
this.racingProcedure = new RRS26RacingProcedure(raceLog);
|
||||
}
|
||||
|
||||
}
|
||||
+3
@@ -8,9 +8,12 @@ import com.sap.sailing.domain.common.Named;
|
||||
import com.sap.sailing.domain.common.WithID;
|
||||
import com.sap.sailing.domain.common.racelog.RaceLogRaceStatus;
|
||||
import com.sap.sailing.domain.racelog.RaceLog;
|
||||
import com.sap.sailing.domain.racelog.state.RaceState2;
|
||||
import com.sap.sailing.racecommittee.app.domain.state.RaceState;
|
||||
|
||||
public interface ManagedRace extends ManagedRaceIdentifier, Named, WithID {
|
||||
public RaceState2 getState2();
|
||||
|
||||
/**
|
||||
* @return the identifier of the race.
|
||||
*/
|
||||
|
||||
+12
@@ -14,6 +14,10 @@ import com.sap.sailing.domain.base.racegroup.RaceGroup;
|
||||
import com.sap.sailing.domain.common.racelog.RaceLogRaceStatus;
|
||||
import com.sap.sailing.domain.common.racelog.RacingProcedureType;
|
||||
import com.sap.sailing.domain.racelog.RaceLog;
|
||||
import com.sap.sailing.domain.racelog.RaceLogEventFactory;
|
||||
import com.sap.sailing.domain.racelog.state.RaceState2;
|
||||
import com.sap.sailing.domain.racelog.state.impl.RaceState2Impl;
|
||||
import com.sap.sailing.racecommittee.app.AppPreferences;
|
||||
import com.sap.sailing.racecommittee.app.domain.ManagedRace;
|
||||
import com.sap.sailing.racecommittee.app.domain.ManagedRaceIdentifier;
|
||||
import com.sap.sailing.racecommittee.app.domain.state.RaceState;
|
||||
@@ -24,6 +28,7 @@ public class ManagedRaceImpl implements ManagedRace {
|
||||
|
||||
// private static final String TAG = ManagedRace.class.getName();
|
||||
|
||||
private RaceState2 state2;
|
||||
private ManagedRaceIdentifier identifier;
|
||||
private RaceState state;
|
||||
private Collection<Competitor> competitors;
|
||||
@@ -32,6 +37,8 @@ public class ManagedRaceImpl implements ManagedRace {
|
||||
public ManagedRaceImpl(Context context, ManagedRaceIdentifier identifier,
|
||||
RacingProcedureType defaultStartProcedureType, RaceLog raceLog) {
|
||||
this(identifier, new RaceStateImpl(context, defaultStartProcedureType, raceLog));
|
||||
this.state2 = new RaceState2Impl(raceLog, AppPreferences.getAuthor(context),
|
||||
RaceLogEventFactory.INSTANCE, defaultStartProcedureType);
|
||||
}
|
||||
|
||||
public ManagedRaceImpl(ManagedRaceIdentifier identifier, RaceState state) {
|
||||
@@ -41,6 +48,11 @@ public class ManagedRaceImpl implements ManagedRace {
|
||||
this.courseOnServer = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public RaceState2 getState2() {
|
||||
return state2;
|
||||
}
|
||||
|
||||
public Serializable getId() {
|
||||
return identifier.getId();
|
||||
}
|
||||
|
||||
-7
@@ -1,7 +0,0 @@
|
||||
package com.sap.sailing.racecommittee.app.domain.racelog;
|
||||
|
||||
import com.sap.sailing.domain.racelog.RaceLogEvent;
|
||||
|
||||
public interface RaceLogChangedListener {
|
||||
public void eventAdded(RaceLogEvent event);
|
||||
}
|
||||
+3
-2
@@ -18,6 +18,7 @@ import com.sap.sailing.domain.common.impl.Util.Triple;
|
||||
import com.sap.sailing.domain.common.racelog.RaceLogRaceStatus;
|
||||
import com.sap.sailing.domain.common.racelog.RacingProcedureType;
|
||||
import com.sap.sailing.domain.racelog.RaceLog;
|
||||
import com.sap.sailing.domain.racelog.RaceLogChangedListener;
|
||||
import com.sap.sailing.domain.racelog.RaceLogEvent;
|
||||
import com.sap.sailing.domain.racelog.RaceLogEventFactory;
|
||||
import com.sap.sailing.domain.racelog.analyzing.impl.FinishPositioningListFinder;
|
||||
@@ -28,10 +29,9 @@ import com.sap.sailing.domain.racelog.analyzing.impl.ProtestStartTimeFinder;
|
||||
import com.sap.sailing.domain.racelog.analyzing.impl.RaceStatusAnalyzer;
|
||||
import com.sap.sailing.domain.racelog.analyzing.impl.RacingProcedureTypeAnalyzer;
|
||||
import com.sap.sailing.domain.racelog.analyzing.impl.StartTimeFinder;
|
||||
import com.sap.sailing.domain.racelog.impl.RaceLogChangedVisitor;
|
||||
import com.sap.sailing.domain.tracking.Wind;
|
||||
import com.sap.sailing.racecommittee.app.AppPreferences;
|
||||
import com.sap.sailing.racecommittee.app.domain.racelog.RaceLogChangedListener;
|
||||
import com.sap.sailing.racecommittee.app.domain.racelog.impl.RaceLogChangedVisitor;
|
||||
import com.sap.sailing.racecommittee.app.domain.startprocedure.StartProcedure;
|
||||
import com.sap.sailing.racecommittee.app.domain.startprocedure.impl.StartProcedureFactory;
|
||||
import com.sap.sailing.racecommittee.app.domain.state.RaceState;
|
||||
@@ -215,6 +215,7 @@ public class RaceStateImpl implements RaceState, RaceLogChangedListener {
|
||||
return getStatus();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void eventAdded(RaceLogEvent event) {
|
||||
updateStatus();
|
||||
}
|
||||
|
||||
+1
-1
@@ -23,12 +23,12 @@ import com.sap.sailing.domain.common.TimePoint;
|
||||
import com.sap.sailing.domain.common.impl.MillisecondsTimePoint;
|
||||
import com.sap.sailing.domain.racelog.RaceLogEvent;
|
||||
import com.sap.sailing.domain.racelog.RaceLogEventVisitor;
|
||||
import com.sap.sailing.domain.racelog.impl.RaceLogChangedVisitor;
|
||||
import com.sap.sailing.racecommittee.app.AppConstants;
|
||||
import com.sap.sailing.racecommittee.app.R;
|
||||
import com.sap.sailing.racecommittee.app.data.DataManager;
|
||||
import com.sap.sailing.racecommittee.app.data.ReadonlyDataManager;
|
||||
import com.sap.sailing.racecommittee.app.domain.ManagedRace;
|
||||
import com.sap.sailing.racecommittee.app.domain.racelog.impl.RaceLogChangedVisitor;
|
||||
import com.sap.sailing.racecommittee.app.domain.state.RaceState;
|
||||
import com.sap.sailing.racecommittee.app.domain.state.RaceStateChangedListener;
|
||||
import com.sap.sailing.racecommittee.app.domain.state.RaceStateEventListener;
|
||||
|
||||
+1
-1
@@ -4,9 +4,9 @@ import org.json.simple.JSONObject;
|
||||
|
||||
import android.app.Service;
|
||||
|
||||
import com.sap.sailing.domain.racelog.RaceLogChangedListener;
|
||||
import com.sap.sailing.domain.racelog.RaceLogEvent;
|
||||
import com.sap.sailing.racecommittee.app.domain.ManagedRace;
|
||||
import com.sap.sailing.racecommittee.app.domain.racelog.RaceLogChangedListener;
|
||||
import com.sap.sailing.racecommittee.app.domain.racelog.impl.RaceLogEventsCallback;
|
||||
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
|
||||
|
||||
|
||||
+81
-4
@@ -16,6 +16,8 @@ import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ListView;
|
||||
|
||||
import com.sap.sailing.domain.racelog.state.RaceState2;
|
||||
import com.sap.sailing.domain.racelog.state.RaceState2ChangedListener;
|
||||
import com.sap.sailing.racecommittee.app.R;
|
||||
import com.sap.sailing.racecommittee.app.RaceApplication;
|
||||
import com.sap.sailing.racecommittee.app.domain.ManagedRace;
|
||||
@@ -33,7 +35,7 @@ import com.sap.sailing.racecommittee.app.ui.comparators.BoatClassSeriesDataFleet
|
||||
import com.sap.sailing.racecommittee.app.ui.comparators.NaturalNamedComparator;
|
||||
import com.sap.sailing.racecommittee.app.ui.fragments.dialogs.ProtestTimeDialogFragment;
|
||||
|
||||
public class ManagedRaceListFragment extends LoggableListFragment implements JuryFlagClickedListener, RaceStateChangedListener {
|
||||
public class ManagedRaceListFragment extends LoggableListFragment implements JuryFlagClickedListener, RaceStateChangedListener, RaceState2ChangedListener {
|
||||
|
||||
public enum FilterMode {
|
||||
ALL(R.string.race_list_filter_show_all), ACTIVE(R.string.race_list_filter_show_active);
|
||||
@@ -91,7 +93,8 @@ public class ManagedRaceListFragment extends LoggableListFragment implements Jur
|
||||
unregisterOnAllRaces();
|
||||
registerOnAllRaces();
|
||||
for (ManagedRace race : managedRacesById.values()) {
|
||||
onRaceStateStatusChanged(race.getState());
|
||||
//onRaceStateStatusChanged(race.getState());
|
||||
onStatusChanged(race.getState2());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -129,13 +132,15 @@ public class ManagedRaceListFragment extends LoggableListFragment implements Jur
|
||||
|
||||
private void registerOnAllRaces() {
|
||||
for (ManagedRace managedRace : managedRacesById.values()) {
|
||||
managedRace.getState().registerStateChangeListener(this);
|
||||
//managedRace.getState().registerStateChangeListener(this);
|
||||
managedRace.getState2().addChangedListener(this);
|
||||
}
|
||||
}
|
||||
|
||||
private void unregisterOnAllRaces() {
|
||||
for (ManagedRace managedRace : managedRacesById.values()) {
|
||||
managedRace.getState().unregisterStateChangeListener(this);
|
||||
//managedRace.getState().unregisterStateChangeListener(this);
|
||||
managedRace.getState2().removeChangedListener(this);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -238,4 +243,76 @@ public class ManagedRaceListFragment extends LoggableListFragment implements Jur
|
||||
// TODO: show protest time changes in status bar oder show update indicator!
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRacingProcedureChanged(RaceState2 state) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStatusChanged(RaceState2 state) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStartTimeChanged(RaceState2 state) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFinishingTimeChanged(RaceState2 state) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFinishedTimeChanged(RaceState2 state) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onProtestTimeChanged(RaceState2 state) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAborted(RaceState2 state) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGeneralRecall(RaceState2 state) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFinishingPositioningsChanged(RaceState2 state) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFinishingPositionsConfirmed(RaceState2 state) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCourseDesignChanged(RaceState2 state) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onWindFixAdded(RaceState2 state) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user