From e09376ab6a17a35f6da52e522f36f027a7ff956f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kai=20B=C3=B6rnert?= Date: Thu, 19 Apr 2018 14:30:21 +0200 Subject: [PATCH 01/10] bug4518 use settings to determine the amount of time before racestart that is considered for the prelive state. Introduced a new setting to also manipulate how long to stay in live state after the race. --- .../app/AutoplayPerspectiveOwnSettings.java | 9 ++++++++- .../app/AutoplaySettingsDialogComponent.java | 9 ++++++++- .../autoplay/client/nodes/RootNodeClassic.java | 13 +++++++++++++ .../autoplay/client/nodes/RootNodeSixtyInch.java | 10 ++++++++++ .../autoplay/client/nodes/base/RootNodeBase.java | 6 +++++- .../autoplay/client/utils/AutoplayHelper.java | 16 ++++++++-------- .../sailing/gwt/ui/client/StringMessages.java | 3 ++- .../gwt/ui/client/StringMessages.properties | 1 + .../gwt/ui/client/StringMessages_de.properties | 1 + 9 files changed, 56 insertions(+), 12 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/app/AutoplayPerspectiveOwnSettings.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/app/AutoplayPerspectiveOwnSettings.java index caf5a6aadbf..d4e6b13a774 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/app/AutoplayPerspectiveOwnSettings.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/app/AutoplayPerspectiveOwnSettings.java @@ -10,15 +10,17 @@ public class AutoplayPerspectiveOwnSettings extends AbstractGenericSerializableS BooleanSetting fullscreen; BooleanSetting switchToLive; IntegerSetting timeToSwitchBeforeRaceStart; + IntegerSetting waitTimeAfterRaceEndInMillis; public AutoplayPerspectiveOwnSettings() { } - public AutoplayPerspectiveOwnSettings(boolean fullscreen, boolean switchToLive, int timeToSwitchBeforeRaceStart) { + public AutoplayPerspectiveOwnSettings(boolean fullscreen, boolean switchToLive, int timeToSwitchBeforeRaceStart, int waitTimeAfterRaceEndInMillis) { super(); this.fullscreen.setValue(fullscreen); this.switchToLive.setValue(switchToLive); this.timeToSwitchBeforeRaceStart.setValue(timeToSwitchBeforeRaceStart); + this.waitTimeAfterRaceEndInMillis.setValue(waitTimeAfterRaceEndInMillis); } @Override @@ -26,6 +28,7 @@ public class AutoplayPerspectiveOwnSettings extends AbstractGenericSerializableS fullscreen = new BooleanSetting("fullscreen", this, true); switchToLive = new BooleanSetting("switchToLive", this, true); timeToSwitchBeforeRaceStart = new IntegerSetting("timeToSwitchBeforeRaceStart", this, 180); + waitTimeAfterRaceEndInMillis = new IntegerSetting("waitTimeAfterRaceEndInMillis", this, 60); } @@ -40,4 +43,8 @@ public class AutoplayPerspectiveOwnSettings extends AbstractGenericSerializableS public int getTimeToSwitchBeforeRaceStart() { return timeToSwitchBeforeRaceStart.getValue(); } + + public int getWaitTimeAfterRaceEndInMillis() { + return waitTimeAfterRaceEndInMillis.getValue(); + } } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/app/AutoplaySettingsDialogComponent.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/app/AutoplaySettingsDialogComponent.java index c30ce86d11d..a203f1a2cc1 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/app/AutoplaySettingsDialogComponent.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/app/AutoplaySettingsDialogComponent.java @@ -16,6 +16,7 @@ public class AutoplaySettingsDialogComponent implements SettingsDialogComponent< private CheckBox fullScreen; private CheckBox switchToLiveRaceAutomatically; private IntegerBox timeBeforeRaceStartInput; + private IntegerBox waitTimeAfterRaceEndInput; AutoplaySettingsDialogComponent(AutoplayPerspectiveOwnSettings settings) { this.initialSettings = settings; @@ -40,6 +41,12 @@ public class AutoplaySettingsDialogComponent implements SettingsDialogComponent< timeBeforeRaceStartInput = dialog.createIntegerBox(initialSettings.getTimeToSwitchBeforeRaceStart(), 5); vp.add(timeBeforeRaceStartInput); + + Label timeAfterRaceEndDescription = new Label(stringMessages.timeAfterRaceEnd()); + vp.add(timeAfterRaceEndDescription); + + waitTimeAfterRaceEndInput = dialog.createIntegerBox(initialSettings.getWaitTimeAfterRaceEndInMillis(), 5); + vp.add(waitTimeAfterRaceEndInput); return vp; } @@ -47,7 +54,7 @@ public class AutoplaySettingsDialogComponent implements SettingsDialogComponent< @Override public AutoplayPerspectiveOwnSettings getResult() { return new AutoplayPerspectiveOwnSettings(fullScreen.getValue(), switchToLiveRaceAutomatically.getValue(), - timeBeforeRaceStartInput.getValue()); + timeBeforeRaceStartInput.getValue(), waitTimeAfterRaceEndInput.getValue()); } @Override diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/nodes/RootNodeClassic.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/nodes/RootNodeClassic.java index 59c0f948f8f..a7725132581 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/nodes/RootNodeClassic.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/nodes/RootNodeClassic.java @@ -2,6 +2,7 @@ package com.sap.sailing.gwt.autoplay.client.nodes; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.gwt.autoplay.client.app.AutoPlayClientFactory; +import com.sap.sailing.gwt.autoplay.client.app.AutoplayPerspectiveOwnSettings; import com.sap.sailing.gwt.autoplay.client.events.FailureEvent; import com.sap.sailing.gwt.autoplay.client.nodes.base.AutoPlayNode; import com.sap.sailing.gwt.autoplay.client.nodes.base.RootNodeBase; @@ -53,4 +54,16 @@ public class RootNodeClassic extends RootNodeBase { transitionTo(idle); } + @Override + protected long getSwitchBeforeRaceStartInMillies() { + AutoplayPerspectiveOwnSettings ownSettings = getClientFactory().getAutoPlayCtx().getAutoplaySettings().getPerspectiveOwnSettings(); + return ownSettings.getTimeToSwitchBeforeRaceStart() * 1000; + } + + @Override + protected long getWaitTimeAfterRaceEndInMillis() { + AutoplayPerspectiveOwnSettings ownSettings = getClientFactory().getAutoPlayCtx().getAutoplaySettings().getPerspectiveOwnSettings(); + return ownSettings.getWaitTimeAfterRaceEndInMillis() * 1000; + } + } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/nodes/RootNodeSixtyInch.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/nodes/RootNodeSixtyInch.java index 22601b434d3..48197c71306 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/nodes/RootNodeSixtyInch.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/nodes/RootNodeSixtyInch.java @@ -82,4 +82,14 @@ public class RootNodeSixtyInch extends RootNodeBase { } transitionTo(idleLoop); } + + @Override + protected long getSwitchBeforeRaceStartInMillies() { + return 3*60*1000; + } + + @Override + protected long getWaitTimeAfterRaceEndInMillis() { + return 60*1000; + } } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/nodes/base/RootNodeBase.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/nodes/base/RootNodeBase.java index 4d957d8de41..77d314c87e6 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/nodes/base/RootNodeBase.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/nodes/base/RootNodeBase.java @@ -95,7 +95,7 @@ public abstract class RootNodeBase extends BaseCompositeNode { this.leaderBoardName = cf.getAutoPlayCtx().getContextDefinition().getLeaderboardName(); AutoplayHelper.getLiveRace(cf.getSailingService(), cf.getErrorReporter(), cf.getAutoPlayCtx().getEvent(), - leaderBoardName, cf.getDispatch(), new AsyncCallback>() { + leaderBoardName, cf.getDispatch(), getWaitTimeAfterRaceEndInMillis(), getSwitchBeforeRaceStartInMillies(), new AsyncCallback>() { @Override public void onSuccess(Pair result) { errorCount = 0; @@ -142,6 +142,10 @@ public abstract class RootNodeBase extends BaseCompositeNode { }); } + protected abstract long getSwitchBeforeRaceStartInMillies(); + + protected abstract long getWaitTimeAfterRaceEndInMillis(); + private final void setCurrentState(boolean isPreLiveRace, RegattaAndRaceIdentifier liveRace, RootNodeState goingTo, RootNodeState comingFrom) { if (goingTo != comingFrom) { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/utils/AutoplayHelper.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/utils/AutoplayHelper.java index 6bede23a7b0..836ff129ce6 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/utils/AutoplayHelper.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/utils/AutoplayHelper.java @@ -44,9 +44,6 @@ import com.sap.sse.gwt.client.player.Timer; import com.sap.sse.gwt.client.player.Timer.PlayModes; public class AutoplayHelper { - private static final long PRE_RACE_DELAY = 180000; - private static final long WAIT_TIME_AFTER_END_OF_RACE_MIILIS = 60 * 1000; // 1 min - private static final RaceMapResources raceMapResources = GWT.create(RaceMapResources.class); private static Timer fastCurrentTimeProvider = new Timer(PlayModes.Live, /* delayBetweenAutoAdvancesInMilliseconds */1000l); @@ -66,7 +63,7 @@ public class AutoplayHelper { } public static void getLiveRace(SailingServiceAsync sailingService, ErrorReporter errorReporter, EventDTO event, - String leaderBoardName, SailingDispatchSystem dispatch, + String leaderBoardName, SailingDispatchSystem dispatch, long waitTimeAfterRaceEndInMillis, long switchBeforeRaceStartInMillies, AsyncCallback> callback) { if (fastCurrentTimeProvider.getRefreshInterval() != 1000) { fastCurrentTimeProvider.setRefreshInterval(1000); @@ -98,7 +95,7 @@ public class AutoplayHelper { fastCurrentTimeProvider.adjustClientServerOffset(clientTimeWhenRequestWasSent, serverTimeDuringRequest, clientTimeWhenResponseWasReceived); Pair timeToStartAndRaceIdentifier = checkForLiveRace( - selectedLeaderboard, serverTimeDuringRequest, raceTimesInfoProvider); + selectedLeaderboard, serverTimeDuringRequest, raceTimesInfoProvider, waitTimeAfterRaceEndInMillis, switchBeforeRaceStartInMillies); callback.onSuccess(timeToStartAndRaceIdentifier); // kill old provider! raceTimesInfoProvider.terminate(); @@ -123,9 +120,11 @@ public class AutoplayHelper { /** * Side effect free method to get a LifeRace from a timesProvider and a leaderboard + * @param waitTimeAfterRaceEndInMillis + * @param switchBeforeRaceStartInMillies */ public static Pair checkForLiveRace(AbstractLeaderboardDTO currentLeaderboard, - Date serverTimeDuringRequest, RaceTimesInfoProvider raceTimesInfoProvider) { + Date serverTimeDuringRequest, RaceTimesInfoProvider raceTimesInfoProvider, long waitTimeAfterRaceEndInMillis, long switchBeforeRaceStartInMillies) { Map raceTimesInfos = raceTimesInfoProvider.getRaceTimesInfos(); for (RaceColumnDTO race : currentLeaderboard.getRaceList()) { for (FleetDTO fleet : race.getFleets()) { @@ -134,15 +133,16 @@ public class AutoplayHelper { RaceTimesInfoDTO raceTimes = raceTimesInfos.get(raceIdentifier); boolean notNullInRequiredValues = raceTimes != null && raceTimes.startOfTracking != null && raceTimes.getStartOfRace() != null; + boolean raceHasNotEndedOrOnlyRecentlyEnded = raceTimes.endOfRace == null || serverTimeDuringRequest.getTime() - raceTimes.delayToLiveInMs < raceTimes.endOfRace.getTime() - + WAIT_TIME_AFTER_END_OF_RACE_MIILIS; + + waitTimeAfterRaceEndInMillis; if (notNullInRequiredValues && raceHasNotEndedOrOnlyRecentlyEnded) { long startTimeInMs = raceTimes.getStartOfRace().getTime(); long startIn = startTimeInMs - serverTimeDuringRequest.getTime() - raceTimes.delayToLiveInMs; - if (startIn <= PRE_RACE_DELAY && startIn > NEGATIVE_SANITY_CHECK) { + if (startIn <= switchBeforeRaceStartInMillies && startIn > NEGATIVE_SANITY_CHECK) { startOfLifeRace = raceTimes.getStartOfRace(); return new Pair(startIn, raceIdentifier); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java index 14610f4f38b..facd9a3eeab 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java @@ -1299,6 +1299,7 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages, String startBrowserFullscreen(); String switchToLiveRaceAutomatically(); String timeBeforeRaceStart(); + String timeAfterRaceEnd(); String showXYDiagram(); String xyDiagram(); String boatSpeed(); @@ -2152,5 +2153,5 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages, String newExpeditionRace(); String newExpeditionCompetitor(); String selectOneCompetitorToMapTheImportedData(); - String startTypingForSuggestions(); + String startTypingForSuggestions(); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties index 12468af9e06..4cc3b258a0c 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties @@ -1269,6 +1269,7 @@ autoplaySettings=Autoplay settings startBrowserFullscreen=Start browser in fullscreen mode switchToLiveRaceAutomatically=Switch to live race automatically timeBeforeRaceStart=time before race start (in s) +timeAfterRaceEnd=time after race end (in s) errorTryingToGetEvents=Error trying to get events: {0} showXYDiagram=Show x-y-diagram xyDiagram=x-y-Diagram diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties index e3192526304..9a76a69a204 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties @@ -1258,6 +1258,7 @@ autoplaySettings=Einstellungen für automatisches Abspielen startBrowserFullscreen=Browser im Vollbildmodus starten switchToLiveRaceAutomatically=Automatisches Umschalten zum Live-Rennen timeBeforeRaceStart=Zeit vor dem Rennstart (in s) +timeBeforeRaceStart=Zeit nach dem Rennende (in s) errorTryingToGetEvents=Fehler beim Laden von Veranstaltungen: {0} createDefaultSettingsForAllRegattas=Standardeinstellungen für alle Regatten anlegen... noOverallEventSelected=Keine übergeordnete Veranstaltung ausgewählt... From e1d8e42aa933fa150f89a4f6d5158e5141fde7c8 Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Mon, 23 Apr 2018 09:23:23 +0200 Subject: [PATCH 02/10] Bug 4518: Consistent naming of variables/methods --- .../gwt/autoplay/client/nodes/RootNodeClassic.java | 2 +- .../gwt/autoplay/client/nodes/RootNodeSixtyInch.java | 2 +- .../gwt/autoplay/client/nodes/base/RootNodeBase.java | 4 ++-- .../gwt/autoplay/client/utils/AutoplayHelper.java | 10 ++++------ 4 files changed, 8 insertions(+), 10 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/nodes/RootNodeClassic.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/nodes/RootNodeClassic.java index a7725132581..60ea2e4c80a 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/nodes/RootNodeClassic.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/nodes/RootNodeClassic.java @@ -55,7 +55,7 @@ public class RootNodeClassic extends RootNodeBase { } @Override - protected long getSwitchBeforeRaceStartInMillies() { + protected long getSwitchBeforeRaceStartInMillis() { AutoplayPerspectiveOwnSettings ownSettings = getClientFactory().getAutoPlayCtx().getAutoplaySettings().getPerspectiveOwnSettings(); return ownSettings.getTimeToSwitchBeforeRaceStart() * 1000; } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/nodes/RootNodeSixtyInch.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/nodes/RootNodeSixtyInch.java index 48197c71306..5871c93c0de 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/nodes/RootNodeSixtyInch.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/nodes/RootNodeSixtyInch.java @@ -84,7 +84,7 @@ public class RootNodeSixtyInch extends RootNodeBase { } @Override - protected long getSwitchBeforeRaceStartInMillies() { + protected long getSwitchBeforeRaceStartInMillis() { return 3*60*1000; } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/nodes/base/RootNodeBase.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/nodes/base/RootNodeBase.java index 77d314c87e6..82e3c2e31df 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/nodes/base/RootNodeBase.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/nodes/base/RootNodeBase.java @@ -95,7 +95,7 @@ public abstract class RootNodeBase extends BaseCompositeNode { this.leaderBoardName = cf.getAutoPlayCtx().getContextDefinition().getLeaderboardName(); AutoplayHelper.getLiveRace(cf.getSailingService(), cf.getErrorReporter(), cf.getAutoPlayCtx().getEvent(), - leaderBoardName, cf.getDispatch(), getWaitTimeAfterRaceEndInMillis(), getSwitchBeforeRaceStartInMillies(), new AsyncCallback>() { + leaderBoardName, cf.getDispatch(), getWaitTimeAfterRaceEndInMillis(), getSwitchBeforeRaceStartInMillis(), new AsyncCallback>() { @Override public void onSuccess(Pair result) { errorCount = 0; @@ -142,7 +142,7 @@ public abstract class RootNodeBase extends BaseCompositeNode { }); } - protected abstract long getSwitchBeforeRaceStartInMillies(); + protected abstract long getSwitchBeforeRaceStartInMillis(); protected abstract long getWaitTimeAfterRaceEndInMillis(); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/utils/AutoplayHelper.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/utils/AutoplayHelper.java index 836ff129ce6..cbd24fd4499 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/utils/AutoplayHelper.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/utils/AutoplayHelper.java @@ -63,7 +63,7 @@ public class AutoplayHelper { } public static void getLiveRace(SailingServiceAsync sailingService, ErrorReporter errorReporter, EventDTO event, - String leaderBoardName, SailingDispatchSystem dispatch, long waitTimeAfterRaceEndInMillis, long switchBeforeRaceStartInMillies, + String leaderBoardName, SailingDispatchSystem dispatch, long waitTimeAfterRaceEndInMillis, long switchBeforeRaceStartInMillis, AsyncCallback> callback) { if (fastCurrentTimeProvider.getRefreshInterval() != 1000) { fastCurrentTimeProvider.setRefreshInterval(1000); @@ -95,7 +95,7 @@ public class AutoplayHelper { fastCurrentTimeProvider.adjustClientServerOffset(clientTimeWhenRequestWasSent, serverTimeDuringRequest, clientTimeWhenResponseWasReceived); Pair timeToStartAndRaceIdentifier = checkForLiveRace( - selectedLeaderboard, serverTimeDuringRequest, raceTimesInfoProvider, waitTimeAfterRaceEndInMillis, switchBeforeRaceStartInMillies); + selectedLeaderboard, serverTimeDuringRequest, raceTimesInfoProvider, waitTimeAfterRaceEndInMillis, switchBeforeRaceStartInMillis); callback.onSuccess(timeToStartAndRaceIdentifier); // kill old provider! raceTimesInfoProvider.terminate(); @@ -120,11 +120,9 @@ public class AutoplayHelper { /** * Side effect free method to get a LifeRace from a timesProvider and a leaderboard - * @param waitTimeAfterRaceEndInMillis - * @param switchBeforeRaceStartInMillies */ public static Pair checkForLiveRace(AbstractLeaderboardDTO currentLeaderboard, - Date serverTimeDuringRequest, RaceTimesInfoProvider raceTimesInfoProvider, long waitTimeAfterRaceEndInMillis, long switchBeforeRaceStartInMillies) { + Date serverTimeDuringRequest, RaceTimesInfoProvider raceTimesInfoProvider, long waitTimeAfterRaceEndInMillis, long switchBeforeRaceStartInMillis) { Map raceTimesInfos = raceTimesInfoProvider.getRaceTimesInfos(); for (RaceColumnDTO race : currentLeaderboard.getRaceList()) { for (FleetDTO fleet : race.getFleets()) { @@ -142,7 +140,7 @@ public class AutoplayHelper { if (notNullInRequiredValues && raceHasNotEndedOrOnlyRecentlyEnded) { long startTimeInMs = raceTimes.getStartOfRace().getTime(); long startIn = startTimeInMs - serverTimeDuringRequest.getTime() - raceTimes.delayToLiveInMs; - if (startIn <= switchBeforeRaceStartInMillies && startIn > NEGATIVE_SANITY_CHECK) { + if (startIn <= switchBeforeRaceStartInMillis && startIn > NEGATIVE_SANITY_CHECK) { startOfLifeRace = raceTimes.getStartOfRace(); return new Pair(startIn, raceIdentifier); } From 6688709d2374530f3a26c10d99df6fde86863841 Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Mon, 23 Apr 2018 09:23:36 +0200 Subject: [PATCH 03/10] Bug 4518: Fixed message key --- .../com/sap/sailing/gwt/ui/client/StringMessages_de.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties index 9a76a69a204..5f1bcaa54c9 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties @@ -1258,7 +1258,7 @@ autoplaySettings=Einstellungen für automatisches Abspielen startBrowserFullscreen=Browser im Vollbildmodus starten switchToLiveRaceAutomatically=Automatisches Umschalten zum Live-Rennen timeBeforeRaceStart=Zeit vor dem Rennstart (in s) -timeBeforeRaceStart=Zeit nach dem Rennende (in s) +timeAfterRaceEnd=Zeit nach dem Rennende (in s) errorTryingToGetEvents=Fehler beim Laden von Veranstaltungen: {0} createDefaultSettingsForAllRegattas=Standardeinstellungen für alle Regatten anlegen... noOverallEventSelected=Keine übergeordnete Veranstaltung ausgewählt... From 72838ea901c0fb692a563d97a8b19a2d6dc44ff5 Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Mon, 23 Apr 2018 09:23:55 +0200 Subject: [PATCH 04/10] Bug 4518: Code format change only --- .../gwt/autoplay/client/nodes/base/RootNodeBase.java | 3 ++- .../gwt/autoplay/client/utils/AutoplayHelper.java | 10 ++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/nodes/base/RootNodeBase.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/nodes/base/RootNodeBase.java index 82e3c2e31df..1c653e80f99 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/nodes/base/RootNodeBase.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/nodes/base/RootNodeBase.java @@ -95,7 +95,8 @@ public abstract class RootNodeBase extends BaseCompositeNode { this.leaderBoardName = cf.getAutoPlayCtx().getContextDefinition().getLeaderboardName(); AutoplayHelper.getLiveRace(cf.getSailingService(), cf.getErrorReporter(), cf.getAutoPlayCtx().getEvent(), - leaderBoardName, cf.getDispatch(), getWaitTimeAfterRaceEndInMillis(), getSwitchBeforeRaceStartInMillis(), new AsyncCallback>() { + leaderBoardName, cf.getDispatch(), getWaitTimeAfterRaceEndInMillis(), + getSwitchBeforeRaceStartInMillis(), new AsyncCallback>() { @Override public void onSuccess(Pair result) { errorCount = 0; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/utils/AutoplayHelper.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/utils/AutoplayHelper.java index cbd24fd4499..ae233f7f703 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/utils/AutoplayHelper.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/utils/AutoplayHelper.java @@ -63,8 +63,8 @@ public class AutoplayHelper { } public static void getLiveRace(SailingServiceAsync sailingService, ErrorReporter errorReporter, EventDTO event, - String leaderBoardName, SailingDispatchSystem dispatch, long waitTimeAfterRaceEndInMillis, long switchBeforeRaceStartInMillis, - AsyncCallback> callback) { + String leaderBoardName, SailingDispatchSystem dispatch, long waitTimeAfterRaceEndInMillis, + long switchBeforeRaceStartInMillis, AsyncCallback> callback) { if (fastCurrentTimeProvider.getRefreshInterval() != 1000) { fastCurrentTimeProvider.setRefreshInterval(1000); } @@ -95,7 +95,8 @@ public class AutoplayHelper { fastCurrentTimeProvider.adjustClientServerOffset(clientTimeWhenRequestWasSent, serverTimeDuringRequest, clientTimeWhenResponseWasReceived); Pair timeToStartAndRaceIdentifier = checkForLiveRace( - selectedLeaderboard, serverTimeDuringRequest, raceTimesInfoProvider, waitTimeAfterRaceEndInMillis, switchBeforeRaceStartInMillis); + selectedLeaderboard, serverTimeDuringRequest, raceTimesInfoProvider, + waitTimeAfterRaceEndInMillis, switchBeforeRaceStartInMillis); callback.onSuccess(timeToStartAndRaceIdentifier); // kill old provider! raceTimesInfoProvider.terminate(); @@ -122,7 +123,8 @@ public class AutoplayHelper { * Side effect free method to get a LifeRace from a timesProvider and a leaderboard */ public static Pair checkForLiveRace(AbstractLeaderboardDTO currentLeaderboard, - Date serverTimeDuringRequest, RaceTimesInfoProvider raceTimesInfoProvider, long waitTimeAfterRaceEndInMillis, long switchBeforeRaceStartInMillis) { + Date serverTimeDuringRequest, RaceTimesInfoProvider raceTimesInfoProvider, + long waitTimeAfterRaceEndInMillis, long switchBeforeRaceStartInMillis) { Map raceTimesInfos = raceTimesInfoProvider.getRaceTimesInfos(); for (RaceColumnDTO race : currentLeaderboard.getRaceList()) { for (FleetDTO fleet : race.getFleets()) { From 799f94c97efc4139e4635235579b47b39a3cbe91 Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Mon, 23 Apr 2018 09:29:12 +0200 Subject: [PATCH 05/10] Bug 4518: Corrected time unit used in settings --- .../client/app/AutoplayPerspectiveOwnSettings.java | 13 +++++++------ .../client/app/AutoplaySettingsDialogComponent.java | 4 ++-- .../gwt/autoplay/client/nodes/RootNodeClassic.java | 4 ++-- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/app/AutoplayPerspectiveOwnSettings.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/app/AutoplayPerspectiveOwnSettings.java index d4e6b13a774..48a80fc6299 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/app/AutoplayPerspectiveOwnSettings.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/app/AutoplayPerspectiveOwnSettings.java @@ -15,12 +15,13 @@ public class AutoplayPerspectiveOwnSettings extends AbstractGenericSerializableS public AutoplayPerspectiveOwnSettings() { } - public AutoplayPerspectiveOwnSettings(boolean fullscreen, boolean switchToLive, int timeToSwitchBeforeRaceStart, int waitTimeAfterRaceEndInMillis) { + public AutoplayPerspectiveOwnSettings(boolean fullscreen, boolean switchToLive, + int timeToSwitchBeforeRaceStartInSeconds, int waitTimeAfterRaceEndInSeconds) { super(); this.fullscreen.setValue(fullscreen); this.switchToLive.setValue(switchToLive); - this.timeToSwitchBeforeRaceStart.setValue(timeToSwitchBeforeRaceStart); - this.waitTimeAfterRaceEndInMillis.setValue(waitTimeAfterRaceEndInMillis); + this.timeToSwitchBeforeRaceStart.setValue(timeToSwitchBeforeRaceStartInSeconds); + this.waitTimeAfterRaceEndInMillis.setValue(waitTimeAfterRaceEndInSeconds); } @Override @@ -28,7 +29,7 @@ public class AutoplayPerspectiveOwnSettings extends AbstractGenericSerializableS fullscreen = new BooleanSetting("fullscreen", this, true); switchToLive = new BooleanSetting("switchToLive", this, true); timeToSwitchBeforeRaceStart = new IntegerSetting("timeToSwitchBeforeRaceStart", this, 180); - waitTimeAfterRaceEndInMillis = new IntegerSetting("waitTimeAfterRaceEndInMillis", this, 60); + waitTimeAfterRaceEndInMillis = new IntegerSetting("waitTimeAfterRaceEnd", this, 60); } @@ -40,11 +41,11 @@ public class AutoplayPerspectiveOwnSettings extends AbstractGenericSerializableS return switchToLive.getValue(); } - public int getTimeToSwitchBeforeRaceStart() { + public int getTimeToSwitchBeforeRaceStartInSeconds() { return timeToSwitchBeforeRaceStart.getValue(); } - public int getWaitTimeAfterRaceEndInMillis() { + public int getWaitTimeAfterRaceEndInSeconds() { return waitTimeAfterRaceEndInMillis.getValue(); } } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/app/AutoplaySettingsDialogComponent.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/app/AutoplaySettingsDialogComponent.java index a203f1a2cc1..cc839ac3064 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/app/AutoplaySettingsDialogComponent.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/app/AutoplaySettingsDialogComponent.java @@ -39,13 +39,13 @@ public class AutoplaySettingsDialogComponent implements SettingsDialogComponent< Label timeBeforeRaceStartDescription = new Label(stringMessages.timeBeforeRaceStart()); vp.add(timeBeforeRaceStartDescription); - timeBeforeRaceStartInput = dialog.createIntegerBox(initialSettings.getTimeToSwitchBeforeRaceStart(), 5); + timeBeforeRaceStartInput = dialog.createIntegerBox(initialSettings.getTimeToSwitchBeforeRaceStartInSeconds(), 5); vp.add(timeBeforeRaceStartInput); Label timeAfterRaceEndDescription = new Label(stringMessages.timeAfterRaceEnd()); vp.add(timeAfterRaceEndDescription); - waitTimeAfterRaceEndInput = dialog.createIntegerBox(initialSettings.getWaitTimeAfterRaceEndInMillis(), 5); + waitTimeAfterRaceEndInput = dialog.createIntegerBox(initialSettings.getWaitTimeAfterRaceEndInSeconds(), 5); vp.add(waitTimeAfterRaceEndInput); return vp; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/nodes/RootNodeClassic.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/nodes/RootNodeClassic.java index 60ea2e4c80a..e5b0aaadd21 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/nodes/RootNodeClassic.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/nodes/RootNodeClassic.java @@ -57,13 +57,13 @@ public class RootNodeClassic extends RootNodeBase { @Override protected long getSwitchBeforeRaceStartInMillis() { AutoplayPerspectiveOwnSettings ownSettings = getClientFactory().getAutoPlayCtx().getAutoplaySettings().getPerspectiveOwnSettings(); - return ownSettings.getTimeToSwitchBeforeRaceStart() * 1000; + return ownSettings.getTimeToSwitchBeforeRaceStartInSeconds() * 1000; } @Override protected long getWaitTimeAfterRaceEndInMillis() { AutoplayPerspectiveOwnSettings ownSettings = getClientFactory().getAutoPlayCtx().getAutoplaySettings().getPerspectiveOwnSettings(); - return ownSettings.getWaitTimeAfterRaceEndInMillis() * 1000; + return ownSettings.getWaitTimeAfterRaceEndInSeconds() * 1000; } } From cf34361f40f1fb28bae2776cfb7dcfecfeba5fb1 Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Mon, 23 Apr 2018 09:35:49 +0200 Subject: [PATCH 06/10] Bug 4518: Corrected time unit used in settings --- .../app/AutoplayPerspectiveOwnSettings.java | 16 ++++++++-------- .../app/AutoplaySettingsDialogComponent.java | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/app/AutoplayPerspectiveOwnSettings.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/app/AutoplayPerspectiveOwnSettings.java index 48a80fc6299..62800b3df87 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/app/AutoplayPerspectiveOwnSettings.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/app/AutoplayPerspectiveOwnSettings.java @@ -9,8 +9,8 @@ public class AutoplayPerspectiveOwnSettings extends AbstractGenericSerializableS BooleanSetting fullscreen; BooleanSetting switchToLive; - IntegerSetting timeToSwitchBeforeRaceStart; - IntegerSetting waitTimeAfterRaceEndInMillis; + IntegerSetting timeToSwitchBeforeRaceStartInSeconds; + IntegerSetting waitTimeAfterRaceEndInSeconds; public AutoplayPerspectiveOwnSettings() { } @@ -20,16 +20,16 @@ public class AutoplayPerspectiveOwnSettings extends AbstractGenericSerializableS super(); this.fullscreen.setValue(fullscreen); this.switchToLive.setValue(switchToLive); - this.timeToSwitchBeforeRaceStart.setValue(timeToSwitchBeforeRaceStartInSeconds); - this.waitTimeAfterRaceEndInMillis.setValue(waitTimeAfterRaceEndInSeconds); + this.timeToSwitchBeforeRaceStartInSeconds.setValue(timeToSwitchBeforeRaceStartInSeconds); + this.waitTimeAfterRaceEndInSeconds.setValue(waitTimeAfterRaceEndInSeconds); } @Override protected void addChildSettings() { fullscreen = new BooleanSetting("fullscreen", this, true); switchToLive = new BooleanSetting("switchToLive", this, true); - timeToSwitchBeforeRaceStart = new IntegerSetting("timeToSwitchBeforeRaceStart", this, 180); - waitTimeAfterRaceEndInMillis = new IntegerSetting("waitTimeAfterRaceEnd", this, 60); + timeToSwitchBeforeRaceStartInSeconds = new IntegerSetting("timeToSwitchBeforeRaceStart", this, 180); + waitTimeAfterRaceEndInSeconds = new IntegerSetting("waitTimeAfterRaceEnd", this, 60); } @@ -42,10 +42,10 @@ public class AutoplayPerspectiveOwnSettings extends AbstractGenericSerializableS } public int getTimeToSwitchBeforeRaceStartInSeconds() { - return timeToSwitchBeforeRaceStart.getValue(); + return timeToSwitchBeforeRaceStartInSeconds.getValue(); } public int getWaitTimeAfterRaceEndInSeconds() { - return waitTimeAfterRaceEndInMillis.getValue(); + return waitTimeAfterRaceEndInSeconds.getValue(); } } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/app/AutoplaySettingsDialogComponent.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/app/AutoplaySettingsDialogComponent.java index cc839ac3064..f04adad1abb 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/app/AutoplaySettingsDialogComponent.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/app/AutoplaySettingsDialogComponent.java @@ -62,7 +62,7 @@ public class AutoplaySettingsDialogComponent implements SettingsDialogComponent< return new Validator() { @Override public String getErrorMessage(AutoplayPerspectiveOwnSettings valueToValidate) { - if (valueToValidate.timeToSwitchBeforeRaceStart.getValue() < 0) { + if (valueToValidate.timeToSwitchBeforeRaceStartInSeconds.getValue() < 0) { // TODO i18n return "negative delay"; } else { From 26bd6e4f7a3ba8307557c29032b6d7caf11368bd Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Mon, 23 Apr 2018 09:39:47 +0200 Subject: [PATCH 07/10] Bug 4518: Extended validation and added missing I18n message --- .../app/AutoplaySettingsDialogComponent.java | 14 ++++++++------ .../sap/sailing/gwt/ui/client/StringMessages.java | 1 + .../gwt/ui/client/StringMessages.properties | 3 ++- .../gwt/ui/client/StringMessages_de.properties | 3 ++- 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/app/AutoplaySettingsDialogComponent.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/app/AutoplaySettingsDialogComponent.java index f04adad1abb..a2ff2ca2a0b 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/app/AutoplaySettingsDialogComponent.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/app/AutoplaySettingsDialogComponent.java @@ -12,7 +12,9 @@ import com.sap.sse.gwt.client.dialog.DataEntryDialog.Validator; import com.sap.sse.gwt.client.shared.components.SettingsDialogComponent; public class AutoplaySettingsDialogComponent implements SettingsDialogComponent { - private AutoplayPerspectiveOwnSettings initialSettings; + private final AutoplayPerspectiveOwnSettings initialSettings; + private final StringMessages stringMessages; + private CheckBox fullScreen; private CheckBox switchToLiveRaceAutomatically; private IntegerBox timeBeforeRaceStartInput; @@ -20,14 +22,14 @@ public class AutoplaySettingsDialogComponent implements SettingsDialogComponent< AutoplaySettingsDialogComponent(AutoplayPerspectiveOwnSettings settings) { this.initialSettings = settings; + + stringMessages = StringMessages.INSTANCE; } @Override public Widget getAdditionalWidget(DataEntryDialog dialog) { VerticalPanel vp = new VerticalPanel(); - StringMessages stringMessages = StringMessages.INSTANCE; - fullScreen = dialog.createCheckbox(stringMessages.startBrowserFullscreen()); fullScreen.setValue(initialSettings.isFullscreen()); vp.add(fullScreen); @@ -62,9 +64,9 @@ public class AutoplaySettingsDialogComponent implements SettingsDialogComponent< return new Validator() { @Override public String getErrorMessage(AutoplayPerspectiveOwnSettings valueToValidate) { - if (valueToValidate.timeToSwitchBeforeRaceStartInSeconds.getValue() < 0) { - // TODO i18n - return "negative delay"; + if (valueToValidate.timeToSwitchBeforeRaceStartInSeconds.getValue() < 0 + || valueToValidate.waitTimeAfterRaceEndInSeconds.getValue() < 0) { + return stringMessages.delaysMustNotBeNegative(); } else { return null; } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java index d526bf24d3c..e796df1b81c 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java @@ -2160,4 +2160,5 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages, String selectAtLeastOneCompetitorManeuver(); String noDataManeuverTable(); String errorTryingToDetermineBoatLinkedToCompetitor(String raceColumnName, String leaderboardName, String message); + String delaysMustNotBeNegative(); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties index 990b068a9bb..ace89adc7f9 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties @@ -2148,4 +2148,5 @@ speedIn=Speed in speedOut=Speed out selectAtLeastOneCompetitorManeuver=To show the maneuver table, select at least one competitor noDataManeuverTable=There are no maneuvers detected yet -errorTryingToDetermineBoatLinkedToCompetitor=Error trying to determine boat linked to competitor {0} in leaderboard {1}: {2} \ No newline at end of file +errorTryingToDetermineBoatLinkedToCompetitor=Error trying to determine boat linked to competitor {0} in leaderboard {1}: {2} +delaysMustNotBeNegative=Delays must not be negative \ No newline at end of file diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties index 54aa106beca..aaf3f12ea0f 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties @@ -2144,4 +2144,5 @@ speedIn=Anfangsgeschwindigkeit speedOut=Endgeschwindigkeit selectAtLeastOneCompetitorManeuver=Um die Manövertabelle anzuzeigen, muss mindestens ein Teilnehmer ausgewählt werden noDataManeuverTable=Es wurde noch keine Manöver erkannt -errorTryingToDetermineBoatLinkedToCompetitor=Fehler bei der Ermittlung des Bootes für Teilnehmer {0} in Ergebnisliste {1}: {2} \ No newline at end of file +errorTryingToDetermineBoatLinkedToCompetitor=Fehler bei der Ermittlung des Bootes für Teilnehmer {0} in Ergebnisliste {1}: {2} +delaysMustNotBeNegative=Abhängige Zeiten dürfen nicht negativ sein \ No newline at end of file From 3577d2aa86a74e111f72cae103a66dcaeebeadb1 Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Mon, 23 Apr 2018 09:43:02 +0200 Subject: [PATCH 08/10] Bug 4518: Ensuring encapsulation --- .../client/app/AutoplayPerspectiveOwnSettings.java | 8 ++++---- .../client/app/AutoplaySettingsDialogComponent.java | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/app/AutoplayPerspectiveOwnSettings.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/app/AutoplayPerspectiveOwnSettings.java index 62800b3df87..cb3d06d240e 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/app/AutoplayPerspectiveOwnSettings.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/app/AutoplayPerspectiveOwnSettings.java @@ -7,10 +7,10 @@ import com.sap.sse.common.settings.generic.IntegerSetting; public class AutoplayPerspectiveOwnSettings extends AbstractGenericSerializableSettings { private static final long serialVersionUID = -9013901094746556797L; - BooleanSetting fullscreen; - BooleanSetting switchToLive; - IntegerSetting timeToSwitchBeforeRaceStartInSeconds; - IntegerSetting waitTimeAfterRaceEndInSeconds; + private BooleanSetting fullscreen; + private BooleanSetting switchToLive; + private IntegerSetting timeToSwitchBeforeRaceStartInSeconds; + private IntegerSetting waitTimeAfterRaceEndInSeconds; public AutoplayPerspectiveOwnSettings() { } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/app/AutoplaySettingsDialogComponent.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/app/AutoplaySettingsDialogComponent.java index a2ff2ca2a0b..48f165da67d 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/app/AutoplaySettingsDialogComponent.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/app/AutoplaySettingsDialogComponent.java @@ -64,8 +64,8 @@ public class AutoplaySettingsDialogComponent implements SettingsDialogComponent< return new Validator() { @Override public String getErrorMessage(AutoplayPerspectiveOwnSettings valueToValidate) { - if (valueToValidate.timeToSwitchBeforeRaceStartInSeconds.getValue() < 0 - || valueToValidate.waitTimeAfterRaceEndInSeconds.getValue() < 0) { + if (valueToValidate.getTimeToSwitchBeforeRaceStartInSeconds() < 0 + || valueToValidate.getWaitTimeAfterRaceEndInSeconds() < 0) { return stringMessages.delaysMustNotBeNegative(); } else { return null; From f07abf1855c246bef48afe8a355703936b13a5e1 Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Mon, 23 Apr 2018 10:52:38 +0200 Subject: [PATCH 09/10] Bug 4518: Improved messages and ensuring upper case for settings --- .../com/sap/sailing/gwt/ui/client/StringMessages.properties | 4 ++-- .../sap/sailing/gwt/ui/client/StringMessages_de.properties | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties index ace89adc7f9..5a25cd7b058 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties @@ -1267,8 +1267,8 @@ startAutoplay=Start autoplay autoplaySettings=Autoplay settings startBrowserFullscreen=Start browser in fullscreen mode switchToLiveRaceAutomatically=Switch to live race automatically -timeBeforeRaceStart=time before race start (in s) -timeAfterRaceEnd=time after race end (in s) +timeBeforeRaceStart=Time to switch to race before race start (in s) +timeAfterRaceEnd=Time to show race after race end (in s) errorTryingToGetEvents=Error trying to get events: {0} showXYDiagram=Show x-y-diagram xyDiagram=x-y-Diagram diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties index aaf3f12ea0f..adb83ae9ca5 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties @@ -1256,8 +1256,8 @@ startAutoplay=Automatisches Abspielen starten autoplaySettings=Einstellungen für automatisches Abspielen startBrowserFullscreen=Browser im Vollbildmodus starten switchToLiveRaceAutomatically=Automatisches Umschalten zum Live-Rennen -timeBeforeRaceStart=Zeit vor dem Rennstart (in s) -timeAfterRaceEnd=Zeit nach dem Rennende (in s) +timeBeforeRaceStart=Zeitraum vor dem Rennstart, in welchem bereits das Rennen angezeigt wird (in s) +timeAfterRaceEnd=Zeit nach dem Rennende, in welchem noch das Rennen angezeigt wird (in s) errorTryingToGetEvents=Fehler beim Laden von Veranstaltungen: {0} createDefaultSettingsForAllRegattas=Standardeinstellungen für alle Regatten anlegen... noOverallEventSelected=Keine übergeordnete Veranstaltung ausgewählt... From 3a9a763d01901ee6242b2583b0f89434469264f2 Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Mon, 23 Apr 2018 16:45:36 +0200 Subject: [PATCH 10/10] Adjustments to make Selenium tests to directly run from Eclipse without classpath adjustments. In addition removed existing classpath adjustments in the committed *.launch file --- .../META-INF/MANIFEST.MF | 4 +- ...ap.sailing.selenium.test (No Proxy).launch | 41 ++++++++----------- 2 files changed, 20 insertions(+), 25 deletions(-) diff --git a/java/com.sap.sailing.selenium.test/META-INF/MANIFEST.MF b/java/com.sap.sailing.selenium.test/META-INF/MANIFEST.MF index 696c4cd1db1..ede5abfad5a 100644 --- a/java/com.sap.sailing.selenium.test/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.selenium.test/META-INF/MANIFEST.MF @@ -11,7 +11,9 @@ Require-Bundle: org.hamcrest;bundle-version="1.1.0", com.sap.sse.mongodb;bundle-version="1.0.0", org.mongodb.mongo-java-driver;bundle-version="2.13.0", com.sap.sailing.domain.common, - com.sap.sse.common + com.sap.sse.common, + jcl.over.slf4j;bundle-version="1.6.4";resolution:=optional, + slf4j.api;bundle-version="1.6.4";resolution:=optional Bundle-ClassPath: lib/cglib-nodep-2.2.3.jar, . Automatic-Module-Name: com.sap.sailing.selenium.test diff --git a/java/com.sap.sailing.selenium.test/com.sap.sailing.selenium.test (No Proxy).launch b/java/com.sap.sailing.selenium.test/com.sap.sailing.selenium.test (No Proxy).launch index 66a15e1ff1d..c0933ab0952 100644 --- a/java/com.sap.sailing.selenium.test/com.sap.sailing.selenium.test (No Proxy).launch +++ b/java/com.sap.sailing.selenium.test/com.sap.sailing.selenium.test (No Proxy).launch @@ -1,27 +1,20 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + +