diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/settings/client/leaderboard/LeaderboardSettings.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/settings/client/leaderboard/LeaderboardSettings.java
index ef5859a2094..440459d7fe1 100755
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/settings/client/leaderboard/LeaderboardSettings.java
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/settings/client/leaderboard/LeaderboardSettings.java
@@ -11,11 +11,11 @@ import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
import com.sap.sse.common.Util;
import com.sap.sse.common.settings.generic.AbstractGenericSerializableSettings;
import com.sap.sse.common.settings.generic.BooleanSetting;
-import com.sap.sse.common.settings.generic.EnumListSetting;
+import com.sap.sse.common.settings.generic.EnumSetSetting;
import com.sap.sse.common.settings.generic.EnumSetting;
import com.sap.sse.common.settings.generic.IntegerSetting;
import com.sap.sse.common.settings.generic.LongSetting;
-import com.sap.sse.common.settings.generic.StringListSetting;
+import com.sap.sse.common.settings.generic.StringSetSetting;
import com.sap.sse.common.settings.generic.StringSetting;
import com.sap.sse.common.settings.util.SettingsDefaultValuesUtils;
@@ -34,23 +34,23 @@ public class LeaderboardSettings extends AbstractGenericSerializableSettings {
* Only one of {@link #namesOfRaceColumnsToShow} and {@link #namesOfRacesToShow} must be non-null.
* Only valid when the {@link #activeRaceColumnSelectionStrategy} is set to EXPLIZIT
*/
- private StringListSetting namesOfRaceColumnsToShow;
+ private StringSetSetting namesOfRaceColumnsToShow;
/**
* Only one of {@link #namesOfRaceColumnsToShow} and {@link #namesOfRacesToShow} must be non-null.
* Only valid when the {@link #activeRaceColumnSelectionStrategy} is set to EXPLIZIT
*/
- private StringListSetting namesOfRacesToShow;
+ private StringSetSetting namesOfRacesToShow;
/**
* Only valid when the {@link #activeRaceColumnSelectionStrategy} is set to LAST_N
*/
private IntegerSetting numberOfLastRacesToShow;
- private EnumListSetting maneuverDetailsToShow;
- private EnumListSetting legDetailsToShow;
- private EnumListSetting raceDetailsToShow;
- private EnumListSetting overallDetailsToShow;
+ private EnumSetSetting maneuverDetailsToShow;
+ private EnumSetSetting legDetailsToShow;
+ private EnumSetSetting raceDetailsToShow;
+ private EnumSetSetting overallDetailsToShow;
private boolean autoExpandPreSelectedRace = false;
private LongSetting delayBetweenAutoAdvancesInMilliseconds;
private BooleanSetting updateUponPlayStateChange;
@@ -85,25 +85,25 @@ public class LeaderboardSettings extends AbstractGenericSerializableSettings {
@Override
protected void addChildSettings() {
- namesOfRaceColumnsToShow = new StringListSetting("namesOfRaceColumnsToShow", this);
- namesOfRacesToShow = new StringListSetting("namesOfRacesToShow", this, null);
+ namesOfRaceColumnsToShow = new StringSetSetting("namesOfRaceColumnsToShow", this);
+ namesOfRacesToShow = new StringSetSetting("namesOfRacesToShow", this, null);
numberOfLastRacesToShow = new IntegerSetting("numberOfLastRacesToShow", this, null);
List maneuverDetails = new ArrayList();
maneuverDetails.add(DetailType.TACK);
maneuverDetails.add(DetailType.JIBE);
maneuverDetails.add(DetailType.PENALTY_CIRCLE);
- maneuverDetailsToShow = new EnumListSetting<>("maneuverDetailsToShow", this, maneuverDetails, new DetailTypeStringToEnumConverter());
+ maneuverDetailsToShow = new EnumSetSetting<>("maneuverDetailsToShow", this, maneuverDetails, new DetailTypeStringToEnumConverter());
List legDetails = new ArrayList();
legDetails.add(DetailType.DISTANCE_TRAVELED);
legDetails.add(DetailType.AVERAGE_SPEED_OVER_GROUND_IN_KNOTS);
legDetails.add(DetailType.RANK_GAIN);
- legDetailsToShow = new EnumListSetting<>("legDetailsToShow", this, legDetails, new DetailTypeStringToEnumConverter());
+ legDetailsToShow = new EnumSetSetting<>("legDetailsToShow", this, legDetails, new DetailTypeStringToEnumConverter());
List raceDetails = new ArrayList();
raceDetails.add(DetailType.DISPLAY_LEGS);
- raceDetailsToShow = new EnumListSetting<>("raceDetailsToShow", this, raceDetails, new DetailTypeStringToEnumConverter());
+ raceDetailsToShow = new EnumSetSetting<>("raceDetailsToShow", this, raceDetails, new DetailTypeStringToEnumConverter());
List overallDetails = new ArrayList<>();
overallDetails.add(DetailType.REGATTA_RANK);
- overallDetailsToShow = new EnumListSetting<>("overallDetailsToShow", this, overallDetails, new DetailTypeStringToEnumConverter());
+ overallDetailsToShow = new EnumSetSetting<>("overallDetailsToShow", this, overallDetails, new DetailTypeStringToEnumConverter());
delayBetweenAutoAdvancesInMilliseconds = new LongSetting("delayBetweenAutoAdvancesInMilliseconds", this, LeaderboardEntryPoint.DEFAULT_REFRESH_INTERVAL_MILLIS);
activeRaceColumnSelectionStrategy = new EnumSetting<>("activeRaceColumnSelectionStrategy", this, RaceColumnSelectionStrategies.EXPLICIT, new RaceColumnSelectionStrategiesStringToEnumConverter());
nameOfRaceToSort = new StringSetting("nameOfRaceToSort", this, null);
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMapZoomSettings.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMapZoomSettings.java
index e5d7466e13c..b2b77d0b56b 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMapZoomSettings.java
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMapZoomSettings.java
@@ -7,7 +7,7 @@ import com.sap.sailing.gwt.settings.client.settingtypes.converter.ZoomTypesStrin
import com.sap.sse.common.Util;
import com.sap.sse.common.settings.generic.AbstractGenericSerializableSettings;
import com.sap.sse.common.settings.generic.BooleanSetting;
-import com.sap.sse.common.settings.generic.EnumListSetting;
+import com.sap.sse.common.settings.generic.EnumSetSetting;
/**
* @author Lennart Hensler (D054527)
@@ -35,12 +35,12 @@ public class RaceMapZoomSettings extends AbstractGenericSerializableSettings {
}
};
- private EnumListSetting typesToConsiderOnZoom;
+ private EnumSetSetting typesToConsiderOnZoom;
private BooleanSetting zoomToSelectedCompetitors;
@Override
protected void addChildSettings() {
- typesToConsiderOnZoom = new EnumListSetting<>("typesToConsiderOnZoom", this, Collections.singleton(ZoomTypes.BUOYS), new ZoomTypesStringToEnumConverter());
+ typesToConsiderOnZoom = new EnumSetSetting<>("typesToConsiderOnZoom", this, Collections.singleton(ZoomTypes.BUOYS), new ZoomTypesStringToEnumConverter());
zoomToSelectedCompetitors = new BooleanSetting("zoomToSelectedCompetitors", this, false);
}
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/StartAnalysisMode.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/StartAnalysisMode.java
index abbf6c8fa0f..d6495d8aeeb 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/StartAnalysisMode.java
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/StartAnalysisMode.java
@@ -183,7 +183,6 @@ public class StartAnalysisMode extends RaceBoardModeWithPerRaceCompetitors {
raceDetailsToShow.add(DetailType.RACE_SPEED_OVER_GROUND_FIVE_SECONDS_BEFORE_START);
raceDetailsToShow.add(DetailType.RACE_DISTANCE_TO_START_FIVE_SECONDS_BEFORE_RACE_START);
raceDetailsToShow.add(DetailType.DISTANCE_TO_START_AT_RACE_START);
- raceDetailsToShow.add(DetailType.DISTANCE_TO_START_LINE);
raceDetailsToShow.add(DetailType.DISTANCE_TO_STARBOARD_END_OF_STARTLINE_WHEN_PASSING_START_IN_METERS);
raceDetailsToShow.add(DetailType.SPEED_OVER_GROUND_AT_RACE_START);
raceDetailsToShow.add(DetailType.SPEED_OVER_GROUND_WHEN_PASSING_START);
diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/raceboard/SettingsTest.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/raceboard/SettingsTest.java
index 42ab1b63968..de24e6579cd 100644
--- a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/raceboard/SettingsTest.java
+++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/test/raceboard/SettingsTest.java
@@ -90,34 +90,36 @@ public class SettingsTest extends AbstractSeleniumTest {
RaceBoardPage raceboard = RaceBoardPage.goToRaceboardUrl(getWebDriver(), getContextRoot(), BMW_CUP_REGATTA,
BMW_CUP_REGATTA, String.format(BMW_RACE, 1), "PLAYER");
+
+ //FIXME uncomment the leaderboard code when selenium on remote build server displays the raceboard properly
- // DetailCheckboxInfo[] detailsToSelect = new DetailCheckboxInfo[] {
- // // Overall details
- //
- // // Race details
- // DetailCheckboxInfo.RACE_GAP_TO_LEADER,
- // DetailCheckboxInfo.RACE_CURRENT_SPEED_OVER_GROUND,
- // DetailCheckboxInfo.DISPLAY_LEGS,
- //
- // // Race Start Analysis
- //
- // // Leg Details
- // DetailCheckboxInfo.AVERAGE_SPEED_OVER_GROUND, DetailCheckboxInfo.DISTANCE, DetailCheckboxInfo.RANK_GAIN,
- //
- // // Maneuvers
- // DetailCheckboxInfo.TACK, DetailCheckboxInfo.JIBE,
- // DetailCheckboxInfo.PENALTY_CIRCLE
- //
- // };
- //
- // LeaderboardSettingsDialogPO leaderboardSettingsDialog = raceboard.openLeaderboardSettingsDialog();
- // LeaderboardSettingsPanelPO leaderboardSettingsPanelPO =
- // leaderboardSettingsDialog.getLeaderboardSettingsPanelPO();
- // DetailCheckboxInfo[] selectedDetails = leaderboardSettingsPanelPO.getSelectedDetails();
- // Assert.assertArrayEquals(detailsToSelect, selectedDetails);
- // leaderboardSettingsPanelPO.setRefreshInterval(2);
- // leaderboardSettingsDialog.pressMakeDefault();
- // leaderboardSettingsDialog.pressCancel();
+// DetailCheckboxInfo[] detailsToSelect = new DetailCheckboxInfo[] {
+// // Overall details
+//
+// // Race details
+// DetailCheckboxInfo.RACE_GAP_TO_LEADER,
+// DetailCheckboxInfo.RACE_CURRENT_SPEED_OVER_GROUND,
+// DetailCheckboxInfo.DISPLAY_LEGS,
+//
+// // Race Start Analysis
+//
+// // Leg Details
+// DetailCheckboxInfo.AVERAGE_SPEED_OVER_GROUND, DetailCheckboxInfo.DISTANCE, DetailCheckboxInfo.RANK_GAIN,
+//
+// // Maneuvers
+// DetailCheckboxInfo.TACK, DetailCheckboxInfo.JIBE,
+// DetailCheckboxInfo.PENALTY_CIRCLE
+//
+// };
+//
+// LeaderboardSettingsDialogPO leaderboardSettingsDialog = raceboard.openLeaderboardSettingsDialog();
+// LeaderboardSettingsPanelPO leaderboardSettingsPanelPO =
+// leaderboardSettingsDialog.getLeaderboardSettingsPanelPO();
+// DetailCheckboxInfo[] selectedDetails = leaderboardSettingsPanelPO.getSelectedDetails();
+// Assert.assertArrayEquals(detailsToSelect, selectedDetails);
+// leaderboardSettingsPanelPO.setRefreshInterval(2);
+// leaderboardSettingsDialog.pressMakeDefault();
+// leaderboardSettingsDialog.pressCancel();
MapSettingsPO mapSettings = raceboard.openMapSettings();
// Verify initial mode settings
@@ -130,57 +132,58 @@ public class SettingsTest extends AbstractSeleniumTest {
raceboard = RaceBoardPage.goToRaceboardUrl(getWebDriver(), getContextRoot(), BMW_CUP_REGATTA, BMW_CUP_REGATTA,
String.format(BMW_RACE, 1), "WINNING_LANES");
- // detailsToSelect = new DetailCheckboxInfo[] {
- // // Overall details
- //
- // // Race details
- // DetailCheckboxInfo.RACE_GAP_TO_LEADER, //merged from user settings
- // DetailCheckboxInfo.RACE_DISTANCE,
- // DetailCheckboxInfo.RACE_TIME,
- // DetailCheckboxInfo.RACE_CURRENT_SPEED_OVER_GROUND, //merged from user settings
- // DetailCheckboxInfo.RACE_AVERAGE_ABSOLUTE_CROSS_TRACK_ERROR,
- // DetailCheckboxInfo.RACE_AVERAGE_SIGNED_CROSS_TRACK_ERROR,
- //
- // // Race Start Analysis
- //
- // // Leg Details
- // DetailCheckboxInfo.AVERAGE_SPEED_OVER_GROUND, DetailCheckboxInfo.DISTANCE, DetailCheckboxInfo.RANK_GAIN,
- //
- // // Maneuvers
- // DetailCheckboxInfo.TACK, DetailCheckboxInfo.JIBE,
- // DetailCheckboxInfo.PENALTY_CIRCLE
- //
- // };
- //
- //
- // leaderboardSettingsDialog = raceboard.openLeaderboardSettingsDialog();
- // leaderboardSettingsPanelPO = leaderboardSettingsDialog.getLeaderboardSettingsPanelPO();
- // selectedDetails = leaderboardSettingsPanelPO.getSelectedDetails();
- // Assert.assertArrayEquals(detailsToSelect, selectedDetails);
- //
- // detailsToSelect = new DetailCheckboxInfo[] {
- // // Overall details
- //
- // // Race details
- // DetailCheckboxInfo.RACE_GAP_TO_LEADER,
- // DetailCheckboxInfo.RACE_DISTANCE,
- // DetailCheckboxInfo.RACE_TIME,
- // DetailCheckboxInfo.RACE_CURRENT_SPEED_OVER_GROUND,
- // DetailCheckboxInfo.RACE_RATIO_BETWEEN_TIME_SINCE_LAST_POSITION_FIX_AND_AVERAGE_SAMPLING_INTERVAL, //new value
- //
- // // Race Start Analysis
- //
- // // Leg Details
- // DetailCheckboxInfo.AVERAGE_SPEED_OVER_GROUND, DetailCheckboxInfo.DISTANCE, DetailCheckboxInfo.RANK_GAIN,
- //
- // // Maneuvers
- // DetailCheckboxInfo.TACK, DetailCheckboxInfo.JIBE,
- // DetailCheckboxInfo.PENALTY_CIRCLE
- //
- // };
- // leaderboardSettingsPanelPO.selectDetailsAndDeselectOther(detailsToSelect);
- // leaderboardSettingsPanelPO.setRefreshInterval(1);
- // leaderboardSettingsDialog.pressOk();
+// detailsToSelect = new DetailCheckboxInfo[] {
+// // Overall details
+//
+// // Race details
+// DetailCheckboxInfo.RACE_GAP_TO_LEADER, //merged from user settings
+// DetailCheckboxInfo.RACE_DISTANCE,
+// DetailCheckboxInfo.RACE_TIME,
+// DetailCheckboxInfo.RACE_CURRENT_SPEED_OVER_GROUND, //merged from user settings
+// DetailCheckboxInfo.RACE_AVERAGE_ABSOLUTE_CROSS_TRACK_ERROR,
+// DetailCheckboxInfo.RACE_AVERAGE_SIGNED_CROSS_TRACK_ERROR,
+//
+// // Race Start Analysis
+//
+// // Leg Details
+// DetailCheckboxInfo.AVERAGE_SPEED_OVER_GROUND, DetailCheckboxInfo.DISTANCE, DetailCheckboxInfo.RANK_GAIN,
+//
+// // Maneuvers
+// DetailCheckboxInfo.TACK, DetailCheckboxInfo.JIBE,
+// DetailCheckboxInfo.PENALTY_CIRCLE
+//
+// };
+//
+//
+// leaderboardSettingsDialog = raceboard.openLeaderboardSettingsDialog();
+// leaderboardSettingsPanelPO = leaderboardSettingsDialog.getLeaderboardSettingsPanelPO();
+// selectedDetails = leaderboardSettingsPanelPO.getSelectedDetails();
+// Assert.assertArrayEquals(detailsToSelect, selectedDetails);
+//
+// detailsToSelect = new DetailCheckboxInfo[] {
+// // Overall details
+//
+// // Race details
+// DetailCheckboxInfo.RACE_GAP_TO_LEADER,
+// DetailCheckboxInfo.RACE_DISTANCE,
+// DetailCheckboxInfo.RACE_TIME,
+// DetailCheckboxInfo.RACE_CURRENT_SPEED_OVER_GROUND,
+// DetailCheckboxInfo.RACE_RATIO_BETWEEN_TIME_SINCE_LAST_POSITION_FIX_AND_AVERAGE_SAMPLING_INTERVAL, //new value
+// DetailCheckboxInfo.DISPLAY_LEGS, //new value which should override mode settings
+//
+// // Race Start Analysis
+//
+// // Leg Details
+// DetailCheckboxInfo.AVERAGE_SPEED_OVER_GROUND, DetailCheckboxInfo.DISTANCE, DetailCheckboxInfo.RANK_GAIN,
+//
+// // Maneuvers
+// DetailCheckboxInfo.TACK, DetailCheckboxInfo.JIBE,
+// DetailCheckboxInfo.PENALTY_CIRCLE
+//
+// };
+// leaderboardSettingsPanelPO.selectDetailsAndDeselectOther(detailsToSelect);
+// leaderboardSettingsPanelPO.setRefreshInterval(1);
+// leaderboardSettingsDialog.pressOk();
mapSettings = raceboard.openMapSettings();
// verify default mode settings override custom user settings
@@ -196,16 +199,16 @@ public class SettingsTest extends AbstractSeleniumTest {
raceboard = RaceBoardPage.goToRaceboardUrl(getWebDriver(), getContextRoot(), BMW_CUP_REGATTA, BMW_CUP_REGATTA,
String.format(BMW_RACE, 1), "WINNING_LANES");
- // leaderboardSettingsDialog = raceboard.openLeaderboardSettingsDialog();
- // leaderboardSettingsPanelPO = leaderboardSettingsDialog.getLeaderboardSettingsPanelPO();
- // selectedDetails = leaderboardSettingsPanelPO.getSelectedDetails();
- //
- // //verify highest precedence of document settings
- // Assert.assertArrayEquals(detailsToSelect, selectedDetails);
- // //verify that document settings are able to override custom user settings by a system default value
- // Assert.assertEquals(1, leaderboardSettingsPanelPO.getRefreshInterval());
- //
- // leaderboardSettingsDialog.pressCancel();
+// leaderboardSettingsDialog = raceboard.openLeaderboardSettingsDialog();
+// leaderboardSettingsPanelPO = leaderboardSettingsDialog.getLeaderboardSettingsPanelPO();
+// selectedDetails = leaderboardSettingsPanelPO.getSelectedDetails();
+//
+// //verify highest precedence of document settings
+// Assert.assertArrayEquals(detailsToSelect, selectedDetails);
+// //verify that document settings are able to override custom user settings by a system default value
+// Assert.assertEquals(1, leaderboardSettingsPanelPO.getRefreshInterval());
+//
+// leaderboardSettingsDialog.pressCancel();
mapSettings = raceboard.openMapSettings();
// Verify that mode settings are overridden by document settings
@@ -213,17 +216,36 @@ public class SettingsTest extends AbstractSeleniumTest {
// verify that document settings are able to override custom user settings by a system default value
Assert.assertFalse(mapSettings.isTransparentHoverlines());
- // // verify that custom document settings override mode settings of other modes
- // raceboard = RaceBoardPage.goToRaceboardUrl(getWebDriver(), getContextRoot(), BMW_CUP_REGATTA,
- // BMW_CUP_REGATTA,
- // String.format(BMW_RACE, 1), "START_ANALYSIS");
- // leaderboardSettingsDialog = raceboard.openLeaderboardSettingsDialog();
- // leaderboardSettingsPanelPO = leaderboardSettingsDialog.getLeaderboardSettingsPanelPO();
- // selectedDetails = leaderboardSettingsPanelPO.getSelectedDetails();
- // Assert.assertArrayEquals(detailsToSelect, selectedDetails);
- //
- // mapSettings = raceboard.openMapSettings();
- // Assert.assertFalse(mapSettings.isWindUp());
+ // verify that custom document settings override mode settings of other modes
+ raceboard = RaceBoardPage.goToRaceboardUrl(getWebDriver(), getContextRoot(), BMW_CUP_REGATTA,
+ BMW_CUP_REGATTA,
+ String.format(BMW_RACE, 1), "START_ANALYSIS");
+// leaderboardSettingsDialog = raceboard.openLeaderboardSettingsDialog();
+// leaderboardSettingsPanelPO = leaderboardSettingsDialog.getLeaderboardSettingsPanelPO();
+// selectedDetails = leaderboardSettingsPanelPO.getSelectedDetails();
+//
+// detailsToSelect = new DetailCheckboxInfo[] {
+// DetailCheckboxInfo.RACE_GAP_TO_LEADER, //start analysis mode
+// DetailCheckboxInfo.RACE_CURRENT_SPEED_OVER_GROUND, //user settings
+// DetailCheckboxInfo.DISPLAY_LEGS, //document settings which override mode settings
+// DetailCheckboxInfo.RACE_RATIO_BETWEEN_TIME_SINCE_LAST_POSITION_FIX_AND_AVERAGE_SAMPLING_INTERVAL, //document settings
+// DetailCheckboxInfo.RACE_DISTANCE_TO_START_FIVE_SECONDS_BEFORE_START, //start analysis mode
+// DetailCheckboxInfo.RACE_SPEED_OVER_GROUND_FIVE_SECONDS_BEFORE_START, //start analysis mode
+// DetailCheckboxInfo.DISTANCE_TO_START_AT_RACE_START, //start analysis mode
+// DetailCheckboxInfo.SPEED_OVER_GROUND_AT_RACE_START, //start analysis mode
+// DetailCheckboxInfo.SPEED_OVER_GROUND_WHEN_STARTING, //start analysis mode
+// DetailCheckboxInfo.DISTANCE_TO_STARBOARD_END_OF_STARTLINE_WHEN_STARTING, //start analysis mode
+// DetailCheckboxInfo.START_TACK, //start analysis mode
+//
+// DetailCheckboxInfo.AVERAGE_SPEED_OVER_GROUND, DetailCheckboxInfo.DISTANCE, DetailCheckboxInfo.RANK_GAIN,
+//
+// DetailCheckboxInfo.TACK, DetailCheckboxInfo.JIBE, DetailCheckboxInfo.PENALTY_CIRCLE
+// };
+// Assert.assertArrayEquals(detailsToSelect, selectedDetails);
+// leaderboardSettingsDialog.pressCancel();
+
+ mapSettings = raceboard.openMapSettings();
+ Assert.assertFalse(mapSettings.isWindUp());
}
private void initTrackingForBmwCupRace(AdminConsolePage adminConsole) {
diff --git a/java/com.sap.sse.common/src/com/sap/sse/common/settings/generic/support/SettingsUtil.java b/java/com.sap.sse.common/src/com/sap/sse/common/settings/generic/support/SettingsUtil.java
index 6d8b409da5a..937c8200ccb 100644
--- a/java/com.sap.sse.common/src/com/sap/sse/common/settings/generic/support/SettingsUtil.java
+++ b/java/com.sap.sse.common/src/com/sap/sse/common/settings/generic/support/SettingsUtil.java
@@ -24,7 +24,7 @@ public final class SettingsUtil {
private interface ValuesSetter {
void setDefaultValue(ValueSetting setting, V value);
- void getDefaultValue(ValueCollectionSetting setting, Iterable values);
+ void setDefaultValue(ValueCollectionSetting setting, Iterable values);
}
private static final ValuesExtractor defaultValuesExtractor = new ValuesExtractor() {
@@ -43,7 +43,7 @@ public final class SettingsUtil {
setting.setDefaultValue(value);
}
@Override
- public void getDefaultValue(ValueCollectionSetting setting, Iterable values) {
+ public void setDefaultValue(ValueCollectionSetting setting, Iterable values) {
setting.setDefaultValues(values);
}
};
@@ -64,7 +64,7 @@ public final class SettingsUtil {
setting.setValue(value);
}
@Override
- public void getDefaultValue(ValueCollectionSetting setting, Iterable values) {
+ public void setDefaultValue(ValueCollectionSetting setting, Iterable values) {
setting.setValues(values);
}
};
@@ -151,14 +151,12 @@ public final class SettingsUtil {
if (settingToSetDefault instanceof ValueSetting) {
ValueSetting valueSettingToSetDefault = (ValueSetting) settingToSetDefault;
ValueSetting valueSettingWithDefault = (ValueSetting) childSettingsWithDefaults.get(settingKey);
- valueSettingToSetDefault
- .setDefaultValue(defaultValuesExtractor.getDefaultValue(valueSettingWithDefault));
+ valuesSetter.setDefaultValue(valueSettingToSetDefault, defaultValuesExtractor.getDefaultValue(valueSettingWithDefault));
} else if (settingToSetDefault instanceof ValueCollectionSetting) {
ValueCollectionSetting valueCollectionSettingToSetDefault = (ValueCollectionSetting) settingToSetDefault;
ValueCollectionSetting valueCollectionSettingWithDefault = (ValueCollectionSetting) childSettingsWithDefaults
.get(settingKey);
- valueCollectionSettingToSetDefault
- .setDefaultValues(defaultValuesExtractor.getDefaultValue(valueCollectionSettingWithDefault));
+ valuesSetter.setDefaultValue(valueCollectionSettingToSetDefault, defaultValuesExtractor.getDefaultValue(valueCollectionSettingWithDefault));
} else if (settingToSetDefault instanceof GenericSerializableSettings) {
GenericSerializableSettings settingsToSetDefault = (GenericSerializableSettings) settingToSetDefault;
GenericSerializableSettings settingsWithDefault = (GenericSerializableSettings) childSettingsWithDefaults
diff --git a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/shared/settings/SettingsBuildingPipeline.java b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/shared/settings/SettingsBuildingPipeline.java
index e843eb63750..44a1e5c5467 100644
--- a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/shared/settings/SettingsBuildingPipeline.java
+++ b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/shared/settings/SettingsBuildingPipeline.java
@@ -29,7 +29,7 @@ public interface SettingsBuildingPipeline {
* @return The constructed settings object
*/
CS getSettingsObject(CS systemDefaultSettings,
- StorableRepresentationOfDocumentAndUserSettings settingsRepresentation, List absolutePathOfComponentWithSettings);
+ StorableRepresentationOfDocumentAndUserSettings settingsRepresentation);
/**
* Converts the provided settings according to the storage scope and the settings tree path of provided settings.
diff --git a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/shared/settings/StorableSettingsRepresentation.java b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/shared/settings/StorableSettingsRepresentation.java
index 06568ac5987..4aadf718525 100644
--- a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/shared/settings/StorableSettingsRepresentation.java
+++ b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/shared/settings/StorableSettingsRepresentation.java
@@ -115,5 +115,27 @@ public class StorableSettingsRepresentation {
}
return root;
}
+
+ public StorableSettingsRepresentation getSubSettingsRepresentation(List subPath) {
+ return new StorableSettingsRepresentation(getSubSettingsRepresentation(internalSettingsRepresentation, new ArrayList<>(subPath)));
+ }
+
+ public static JSONObject getSubSettingsRepresentation(JSONObject root, List subPath) {
+ if (subPath.isEmpty()) {
+ return root;
+ } else {
+ String current = subPath.remove(subPath.size() - 1);
+ // we need to go further
+ JSONValue child = root.get(current);
+ boolean haskey = root.containsKey(current);
+ if (child == null || child.isObject() == null) {
+ if (haskey) {
+ GWT.log("Warning: replacing some subtree element that is wrong type!");
+ }
+ child = new JSONObject();
+ }
+ return getSubSettingsRepresentation(child.isObject(), subPath);
+ }
+ }
}
diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/settings/ComponentContextWithSettingsStorage.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/settings/ComponentContextWithSettingsStorage.java
index fea8f644bce..0242c9cf2a0 100644
--- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/settings/ComponentContextWithSettingsStorage.java
+++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/settings/ComponentContextWithSettingsStorage.java
@@ -152,7 +152,7 @@ public class ComponentContextWithSettingsStorage extends Sim
} else {
S newDefaultSettings = settingsBuildingPipeline.getSettingsObject(systemDefaultSettings,
- cachedSettingsRepresentation, new ArrayList<>());
+ cachedSettingsRepresentation);
callback.onSuccess(newDefaultSettings);
}
}
@@ -161,7 +161,7 @@ public class ComponentContextWithSettingsStorage extends Sim
S systemDefaultSettings) {
cachedSettingsRepresentation = settingsRepresentation;
S settingsObject = settingsBuildingPipeline.getSettingsObject(systemDefaultSettings,
- cachedSettingsRepresentation, new ArrayList<>());
+ cachedSettingsRepresentation);
return settingsObject;
}
diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/settings/SimpleComponentContext.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/settings/SimpleComponentContext.java
index a68d5749dbc..42f7f9d030b 100644
--- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/settings/SimpleComponentContext.java
+++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/settings/SimpleComponentContext.java
@@ -101,7 +101,7 @@ public class SimpleComponentContext implements ComponentCont
private S getDefaultSettings() {
S defaultSettings = rootLifecycle.createDefaultSettings();
return settingsBuildingPipeline.getSettingsObject(defaultSettings,
- new StorableRepresentationOfDocumentAndUserSettings(null, null), new ArrayList<>());
+ new StorableRepresentationOfDocumentAndUserSettings(null, null));
}
/**
diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/settings/UrlSettingsBuildingPipeline.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/settings/UrlSettingsBuildingPipeline.java
index 2d507cd0a57..ce94085753e 100644
--- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/settings/UrlSettingsBuildingPipeline.java
+++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/settings/UrlSettingsBuildingPipeline.java
@@ -47,7 +47,7 @@ public class UrlSettingsBuildingPipeline implements SettingsBuildingPipeline {
*/
@Override
public S getSettingsObject(S systemDefaultSettings,
- StorableRepresentationOfDocumentAndUserSettings settingsRepresentation, List absolutePathOfComponentWithSettings) {
+ StorableRepresentationOfDocumentAndUserSettings settingsRepresentation) {
return settingsRepresentationTransformer.mergeSettingsObjectWithUrlSettings(systemDefaultSettings);
}
diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/settings/UserSettingsBuildingPipeline.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/settings/UserSettingsBuildingPipeline.java
index 58349feaca1..0b7dfa1b706 100644
--- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/settings/UserSettingsBuildingPipeline.java
+++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/settings/UserSettingsBuildingPipeline.java
@@ -45,7 +45,7 @@ public class UserSettingsBuildingPipeline extends UrlSettingsBuildingPipeline {
*/
@Override
public CS getSettingsObject(CS systemDefaultSettings,
- StorableRepresentationOfDocumentAndUserSettings settingsRepresentation, List absolutePathOfComponentWithSettings) {
+ StorableRepresentationOfDocumentAndUserSettings settingsRepresentation) {
CS effectiveSettings = systemDefaultSettings;
if (settingsRepresentation.hasStoredUserSettings()) {
effectiveSettings = settingsRepresentationTransformer.mergeSettingsObjectWithStorableRepresentation(effectiveSettings,
@@ -94,7 +94,7 @@ public class UserSettingsBuildingPipeline extends UrlSettingsBuildingPipeline {
if(previousSettingsRepresentation.hasStoredUserSettings()) {
CS pipelinedSettings = SettingsUtil.copyDefaultsFromValues(newInstance, newInstance);
pipelinedSettings = SettingsUtil.copyDefaults(newSettings, newInstance); //overrides values which are set to default values
- CS previousUserSettings = settingsRepresentationTransformer.mergeSettingsObjectWithStorableRepresentation(newInstance, previousSettingsRepresentation.getUserSettingsRepresentation());
+ CS previousUserSettings = settingsRepresentationTransformer.mergeSettingsObjectWithStorableRepresentation(newInstance, previousSettingsRepresentation.getUserSettingsRepresentation().getSubSettingsRepresentation(path));
pipelinedSettings = SettingsUtil.copyDefaultsFromValues(previousUserSettings, pipelinedSettings);
documentSettingsWithUserSettingsDiff = SettingsUtil.copyValues(newSettings, pipelinedSettings);
} else {
diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/settings/UserSettingsBuildingPipelineWithAdditionalSettingsLayers.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/settings/UserSettingsBuildingPipelineWithAdditionalSettingsLayers.java
index d1fcc0f329d..8ee1bcbe26a 100644
--- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/settings/UserSettingsBuildingPipelineWithAdditionalSettingsLayers.java
+++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/settings/UserSettingsBuildingPipelineWithAdditionalSettingsLayers.java
@@ -45,23 +45,23 @@ public class UserSettingsBuildingPipelineWithAdditionalSettingsLayers extends Us
@Override
public CS getSettingsObject(CS systemDefaultSettings,
- StorableRepresentationOfDocumentAndUserSettings settingsRepresentations,
- List absolutePathOfComponentWithSettings) {
+ StorableRepresentationOfDocumentAndUserSettings settingsRepresentations) {
+ List rootPath = new ArrayList<>();
CS effectiveSettings = applyPatchesForPipelineLevel(systemDefaultSettings, PipelineLevel.SYSTEM_DEFAULTS,
- absolutePathOfComponentWithSettings, layersSettingsPatches);
+ rootPath, layersSettingsPatches);
if (settingsRepresentations.hasStoredUserSettings()) {
effectiveSettings = settingsRepresentationTransformer.mergeSettingsObjectWithStorableRepresentation(
effectiveSettings, settingsRepresentations.getUserSettingsRepresentation());
}
effectiveSettings = applyPatchesForPipelineLevel(effectiveSettings, PipelineLevel.USER_DEFAULTS,
- absolutePathOfComponentWithSettings, layersSettingsPatches);
+ rootPath, layersSettingsPatches);
if (settingsRepresentations.hasStoredDocumentSettings()) {
effectiveSettings = settingsRepresentationTransformer.mergeSettingsObjectWithStorableRepresentation(
effectiveSettings, settingsRepresentations.getDocumentSettingsRepresentation());
}
effectiveSettings = applyPatchesForPipelineLevel(effectiveSettings, PipelineLevel.DOCUMENT_DEFAULTS,
- absolutePathOfComponentWithSettings, layersSettingsPatches);
+ rootPath, layersSettingsPatches);
effectiveSettings = settingsRepresentationTransformer.mergeSettingsObjectWithUrlSettings(effectiveSettings);
return effectiveSettings;
}
@@ -150,17 +150,19 @@ public class UserSettingsBuildingPipelineWithAdditionalSettingsLayers extends Us
pipelinedSettings = SettingsUtil.copyDefaultsFromValues(pipelinedSettings, pipelinedSettings);
if (previousSettingsRepresentation.hasStoredUserSettings()) {
- CS previousUserSettings = settingsRepresentationTransformer.mergeSettingsObjectWithStorableRepresentation(
- pipelinedSettings, previousSettingsRepresentation.getUserSettingsRepresentation());
- previousUserSettings = applyPatchesForPipelineLevel(previousUserSettings, PipelineLevel.USER_DEFAULTS, path,
+ pipelinedSettings = settingsRepresentationTransformer.mergeSettingsObjectWithStorableRepresentation(
+ pipelinedSettings, previousSettingsRepresentation.getUserSettingsRepresentation().getSubSettingsRepresentation(path));
+
+ pipelinedSettings = SettingsUtil.copyDefaultsFromValues(pipelinedSettings, pipelinedSettings);
+
+ pipelinedSettings = applyPatchesForPipelineLevel(pipelinedSettings, PipelineLevel.USER_DEFAULTS, path,
layersSettingsPatches);
- pipelinedSettings = SettingsUtil.copyDefaultsFromValues(previousUserSettings, pipelinedSettings);
} else {
pipelinedSettings = applyPatchesForPipelineLevel(pipelinedSettings, PipelineLevel.USER_DEFAULTS, path,
layersSettingsPatches);
- pipelinedSettings = SettingsUtil.copyDefaultsFromValues(pipelinedSettings, pipelinedSettings);
}
+ pipelinedSettings = SettingsUtil.copyDefaultsFromValues(pipelinedSettings, pipelinedSettings);
pipelinedSettings = SettingsUtil.copyValues(newSettings, pipelinedSettings);
return settingsRepresentationTransformer.convertToSettingsRepresentation(pipelinedSettings);
}