From 533e2f1b2363d84ea0a397860dc4cb28d596c60a Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Tue, 29 Apr 2014 22:17:30 +0200 Subject: [PATCH 1/3] export signed XTE in XML export --- .../src/com/sap/sailing/xmlexport/LeaderboardData.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/java/com.sap.sailing.xmlexport/src/com/sap/sailing/xmlexport/LeaderboardData.java b/java/com.sap.sailing.xmlexport/src/com/sap/sailing/xmlexport/LeaderboardData.java index ad5301d19d6..fa03bfcb6c6 100644 --- a/java/com.sap.sailing.xmlexport/src/com/sap/sailing/xmlexport/LeaderboardData.java +++ b/java/com.sap.sailing.xmlexport/src/com/sap/sailing/xmlexport/LeaderboardData.java @@ -389,6 +389,8 @@ public class LeaderboardData extends ExportAction { } Distance averageCrossTrackError = race.getAverageAbsoluteCrossTrackError(competitor, race.getStartOfRace(), race.getEndOfRace(), /*upwindOnly*/ false, /*waitForLatestAnalysis*/ false); addNamedElementWithValue(competitorRaceDataElement, "average_cross_track_error_in_meters", averageCrossTrackError != null ? averageCrossTrackError.getMeters() : -1.0); + Distance averageSignedCrossTrackError = race.getAverageSignedCrossTrackError(competitor, race.getStartOfRace(), race.getEndOfRace(), /*upwindOnly*/ false, /*waitForLatestAnalysis*/ false); + addNamedElementWithValue(competitorRaceDataElement, "average_signed_cross_track_error_in_meters", averageSignedCrossTrackError != null ? averageSignedCrossTrackError.getMeters() : -1.0); competitorElement.addContent(competitorRaceDataElement); raceElement.addContent(competitorElement); } @@ -553,6 +555,8 @@ public class LeaderboardData extends ExportAction { Distance averageCrossTrackError = competitorLeg.getAverageAbsoluteCrossTrackError(legFinishTime, /*waitForLatestAnalysis*/ false); addNamedElementWithValue(competitorLegDataElement, "average_cross_track_error_in_meters", averageCrossTrackError != null ? averageCrossTrackError.getMeters() : -1); + Distance averageSignedCrossTrackError = competitorLeg.getAverageSignedCrossTrackError(legFinishTime, /*waitForLatestAnalysis*/ false); + addNamedElementWithValue(competitorLegDataElement, "average_cross_track_error_in_meters", averageSignedCrossTrackError != null ? averageSignedCrossTrackError.getMeters() : -1); competitorElement.addContent(competitorLegDataElement); legElement.addContent(competitorElement); @@ -607,6 +611,10 @@ public class LeaderboardData extends ExportAction { messages.add("Competitor " + competitorLeg.getCompetitor().getName() + " has no average cross track error for this leg!"); simpleConfidence -= 0.02; } + if (competitorLeg.getAverageSignedCrossTrackError(now, /*waitForLatestAnalysis*/ false) == null) { + messages.add("Competitor " + competitorLeg.getCompetitor().getName() + " has no average signed cross track error for this leg!"); + simpleConfidence -= 0.02; + } if (competitorLeg.getStartTime() != null && competitorLeg.getStartTime().before(leg.getTrackedRace().getStartOfRace())) { if ((leg.getTrackedRace().getStartOfRace().asMillis()-competitorLeg.getStartTime().asMillis())>=MAX_EARLY_START_DIFFERENCE) { messages.add("Competitor " + competitorLeg.getCompetitor().getName() + " has a start time of " + competitorLeg.getStartTime() + " that is 10 seconds or more before start of race time (" + leg.getTrackedRace().getStartOfRace() + ")."); From 2f4c50ae4b7e940e687496d2b18db7ba6bbda4a4 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Tue, 29 Apr 2014 22:31:56 +0200 Subject: [PATCH 2/3] fixed field name for signed cross-track error --- .../src/com/sap/sailing/xmlexport/LeaderboardData.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/com.sap.sailing.xmlexport/src/com/sap/sailing/xmlexport/LeaderboardData.java b/java/com.sap.sailing.xmlexport/src/com/sap/sailing/xmlexport/LeaderboardData.java index fa03bfcb6c6..f7052e59c4f 100644 --- a/java/com.sap.sailing.xmlexport/src/com/sap/sailing/xmlexport/LeaderboardData.java +++ b/java/com.sap.sailing.xmlexport/src/com/sap/sailing/xmlexport/LeaderboardData.java @@ -556,7 +556,7 @@ public class LeaderboardData extends ExportAction { Distance averageCrossTrackError = competitorLeg.getAverageAbsoluteCrossTrackError(legFinishTime, /*waitForLatestAnalysis*/ false); addNamedElementWithValue(competitorLegDataElement, "average_cross_track_error_in_meters", averageCrossTrackError != null ? averageCrossTrackError.getMeters() : -1); Distance averageSignedCrossTrackError = competitorLeg.getAverageSignedCrossTrackError(legFinishTime, /*waitForLatestAnalysis*/ false); - addNamedElementWithValue(competitorLegDataElement, "average_cross_track_error_in_meters", averageSignedCrossTrackError != null ? averageSignedCrossTrackError.getMeters() : -1); + addNamedElementWithValue(competitorLegDataElement, "average_signed_cross_track_error_in_meters", averageSignedCrossTrackError != null ? averageSignedCrossTrackError.getMeters() : -1); competitorElement.addContent(competitorLegDataElement); legElement.addContent(competitorElement); From 558e3610558d169e2db569b0d50f533f0632d6e5 Mon Sep 17 00:00:00 2001 From: fmittag Date: Mon, 5 May 2014 18:13:02 +0200 Subject: [PATCH 3/3] fix for bug 1920: Missing start/end date of an Event causes exception' --- .../com/sap/sailing/gwt/ui/server/SailingServiceImpl.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java index 6386f193a4b..afd1ad9ac49 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java @@ -2853,13 +2853,17 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S @Override public void updateEvent(UUID eventId, String eventName, Date startDate, Date endDate, VenueDTO venue, boolean isPublic, List regattaNames) { - getService().apply(new UpdateEvent(eventId, eventName, new MillisecondsTimePoint(startDate), new MillisecondsTimePoint(endDate), venue.getName(), isPublic, regattaNames)); + TimePoint startTimePoint = startDate != null ? new MillisecondsTimePoint(startDate) : null; + TimePoint endTimePoint = endDate != null ? new MillisecondsTimePoint(endDate) : null; + getService().apply(new UpdateEvent(eventId, eventName, startTimePoint, endTimePoint, venue.getName(), isPublic, regattaNames)); } @Override public EventDTO createEvent(String eventName, Date startDate, Date endDate, String venue, boolean isPublic, List courseAreaNames) { UUID eventUuid = UUID.randomUUID(); - getService().apply(new CreateEvent(eventName, new MillisecondsTimePoint(startDate), new MillisecondsTimePoint(endDate), venue, isPublic, eventUuid)); + TimePoint startTimePoint = startDate != null ? new MillisecondsTimePoint(startDate) : null; + TimePoint endTimePoint = endDate != null ? new MillisecondsTimePoint(endDate) : null; + getService().apply(new CreateEvent(eventName, startTimePoint, endTimePoint, venue, isPublic, eventUuid)); for (String courseAreaName : courseAreaNames) { createCourseArea(eventUuid, courseAreaName); }