mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-12 07:10:55 +00:00
Moved the race log course design finder from app code to the android
share bundle. on the GWT side the course design is converted to a RaceCourseDTO and added to the RaceInfoDTO
This commit is contained in:
1 parent
88ae6c2e5e
commit
a21efacd34
4 files changed
+60
-23
No files matched your search
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.sap.sailing.racecommittee.app.domain.state.impl.analyzers;
|
||||
package com.sap.sailing.racecommittee.domain.state.impl.analyzers;
|
||||
|
||||
import com.sap.sailing.domain.base.CourseBase;
|
||||
import com.sap.sailing.domain.racelog.RaceLog;
|
||||
+36
@@ -49,6 +49,7 @@ import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.ControlPoint;
|
||||
import com.sap.sailing.domain.base.Course;
|
||||
import com.sap.sailing.domain.base.CourseArea;
|
||||
import com.sap.sailing.domain.base.CourseBase;
|
||||
import com.sap.sailing.domain.base.Event;
|
||||
import com.sap.sailing.domain.base.Fleet;
|
||||
import com.sap.sailing.domain.base.Gate;
|
||||
@@ -217,6 +218,7 @@ import com.sap.sailing.gwt.ui.shared.WaypointDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.WindDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.WindInfoForRaceDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.WindTrackInfoDTO;
|
||||
import com.sap.sailing.racecommittee.domain.state.impl.analyzers.LastPublishedCourseDesignFinder;
|
||||
import com.sap.sailing.racecommittee.domain.state.impl.analyzers.RaceStatusAnalyzer;
|
||||
import com.sap.sailing.racecommittee.domain.state.impl.analyzers.StartTimeFinder;
|
||||
import com.sap.sailing.server.RacingEventService;
|
||||
@@ -1110,6 +1112,9 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
|
||||
RaceStatusAnalyzer raceStatusAnalyzer = new RaceStatusAnalyzer(passAwareRaceLog);
|
||||
raceInfoDTO.lastStatus = raceStatusAnalyzer.getStatus();
|
||||
|
||||
LastPublishedCourseDesignFinder courseDesignFinder = new LastPublishedCourseDesignFinder(raceLog);
|
||||
raceInfoDTO.lastCourseDesign = convertCourseDesignToRaceCourseDTO(courseDesignFinder.getLastCourseDesign());
|
||||
|
||||
for(RaceLogEvent event : passAwareRaceLog.getFixes()){
|
||||
if(event instanceof RaceLogFlagEvent){
|
||||
raceInfoDTO.lastFlag = ((RaceLogFlagEvent) event).getUpperFlag();
|
||||
@@ -1120,6 +1125,25 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
|
||||
return raceInfoDTO;
|
||||
}
|
||||
|
||||
private RaceCourseDTO convertCourseDesignToRaceCourseDTO(CourseBase lastCourseDesign) {
|
||||
RaceCourseDTO result = new RaceCourseDTO(Collections.<WaypointDTO> emptyList());
|
||||
|
||||
if (lastCourseDesign != null) {
|
||||
List<WaypointDTO> waypointDTOs = new ArrayList<WaypointDTO>();
|
||||
for (Waypoint waypoint : lastCourseDesign.getWaypoints()) {
|
||||
ControlPointDTO controlPointDTO = convertToControlPointDTO(waypoint.getControlPoint());
|
||||
List<MarkDTO> marks = new ArrayList<MarkDTO>();
|
||||
for (MarkDTO markDTO : controlPointDTO.getMarks()) {
|
||||
marks.add(markDTO);
|
||||
}
|
||||
WaypointDTO waypointDTO = new WaypointDTO(waypoint.getName(), controlPointDTO, marks, waypoint.getPassingSide());
|
||||
waypointDTOs.add(waypointDTO);
|
||||
}
|
||||
result = new RaceCourseDTO(waypointDTOs);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private FleetDTO convertToFleetDTO(Series series, Fleet fleet) {
|
||||
return new FleetDTO(fleet.getName(), series.getName(), fleet.getOrdering(), fleet.getColor());
|
||||
}
|
||||
@@ -1846,6 +1870,18 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private ControlPointDTO convertToControlPointDTO(ControlPoint controlPoint) {
|
||||
ControlPointDTO result;
|
||||
if (controlPoint instanceof Gate) {
|
||||
final Mark left = ((Gate) controlPoint).getLeft();
|
||||
final Mark right = ((Gate) controlPoint).getRight();
|
||||
result = new GateDTO(controlPoint.getId().toString(), controlPoint.getName(), convertToMarkDTO(left, null), convertToMarkDTO(right, null));
|
||||
} else {
|
||||
result = new MarkDTO(controlPoint.getId().toString(), controlPoint.getName());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* For each {@link ControlPointDTO} in <code>controlPoints</code> tries to find the best-matching waypoint
|
||||
|
||||
+22
-21
@@ -1,21 +1,22 @@
|
||||
package com.sap.sailing.gwt.ui.shared;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import com.sap.sailing.domain.common.racelog.Flags;
|
||||
import com.sap.sailing.domain.common.racelog.RaceLogRaceStatus;
|
||||
|
||||
import com.google.gwt.user.client.rpc.IsSerializable;
|
||||
|
||||
public class RaceInfoDTO implements IsSerializable {
|
||||
public String raceName;
|
||||
public String fleet;
|
||||
public Date startTime;
|
||||
public RaceLogRaceStatus lastStatus;
|
||||
public Flags lastFlag;
|
||||
public boolean displayed;
|
||||
|
||||
// for GWT serialization
|
||||
public RaceInfoDTO() { }
|
||||
|
||||
}
|
||||
package com.sap.sailing.gwt.ui.shared;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import com.sap.sailing.domain.common.racelog.Flags;
|
||||
import com.sap.sailing.domain.common.racelog.RaceLogRaceStatus;
|
||||
|
||||
import com.google.gwt.user.client.rpc.IsSerializable;
|
||||
|
||||
public class RaceInfoDTO implements IsSerializable {
|
||||
public String raceName;
|
||||
public String fleet;
|
||||
public Date startTime;
|
||||
public RaceLogRaceStatus lastStatus;
|
||||
public Flags lastFlag;
|
||||
public boolean displayed;
|
||||
public RaceCourseDTO lastCourseDesign;
|
||||
|
||||
// for GWT serialization
|
||||
public RaceInfoDTO() { }
|
||||
|
||||
}
|
||||
+1
-1
@@ -20,7 +20,7 @@ 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.StartProcedure;
|
||||
import com.sap.sailing.racecommittee.app.domain.state.impl.analyzers.FinishedTimeFinder;
|
||||
import com.sap.sailing.racecommittee.app.domain.state.impl.analyzers.LastPublishedCourseDesignFinder;
|
||||
import com.sap.sailing.racecommittee.domain.state.impl.analyzers.LastPublishedCourseDesignFinder;
|
||||
import com.sap.sailing.racecommittee.domain.state.impl.analyzers.RaceStatusAnalyzer;
|
||||
import com.sap.sailing.racecommittee.domain.state.impl.analyzers.StartTimeFinder;
|
||||
|
||||
|
||||
Reference in new issue
Block a user