diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardPanel.java index 9d27147c6ec..b0f2005e243 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardPanel.java @@ -254,12 +254,18 @@ public class LeaderboardPanel extends FormPanel implements TimeListener, PlaySta } } } - selectedManeuverDetails.clear(); - selectedManeuverDetails.addAll(newSettings.getManeuverDetailsToShow()); - selectedLegDetails.clear(); - selectedLegDetails.addAll(newSettings.getLegDetailsToShow()); - selectedRaceDetails.clear(); - selectedRaceDetails.addAll(newSettings.getRaceDetailsToShow()); + if (newSettings.getManeuverDetailsToShow() != null) { + selectedManeuverDetails.clear(); + selectedManeuverDetails.addAll(newSettings.getManeuverDetailsToShow()); + } + if (newSettings.getLegDetailsToShow() != null) { + selectedLegDetails.clear(); + selectedLegDetails.addAll(newSettings.getLegDetailsToShow()); + } + if (newSettings.getRaceDetailsToShow() != null) { + selectedRaceDetails.clear(); + selectedRaceDetails.addAll(newSettings.getRaceDetailsToShow()); + } if (newSettings.getRaceColumnsToShow() != null) { selectedRaceColumns.clear(); selectedRaceColumns.addAll(newSettings.getRaceColumnsToShow()); @@ -269,8 +275,12 @@ public class LeaderboardPanel extends FormPanel implements TimeListener, PlaySta updateLeaderboard(leaderboard); setAutoExpandFirstRace(newSettings.isAutoExpandFirstRace()); - timer.setRefreshInterval(newSettings.getDelayBetweenAutoAdvancesInMilliseconds()); - setDelayInMilliseconds(newSettings.getDelayInMilliseconds()); + if (newSettings.getDelayBetweenAutoAdvancesInMilliseconds() != null) { + timer.setRefreshInterval(newSettings.getDelayBetweenAutoAdvancesInMilliseconds()); + } + if (newSettings.getDelayInMilliseconds() != null) { + setDelayInMilliseconds(newSettings.getDelayInMilliseconds()); + } for (ExpandableSortableColumn expandableSortableColumn : columnsToExpandAgain) { expandableSortableColumn.toggleExpansion(); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardSettings.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardSettings.java index 07e8680f72c..584502d4df4 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardSettings.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardSettings.java @@ -12,8 +12,8 @@ public class LeaderboardSettings { private final List legDetailsToShow; private final List raceDetailsToShow; private final boolean autoExpandFirstRace; - private final long delayBetweenAutoAdvancesInMilliseconds; - private final long delayInMilliseconds; + private final Long delayBetweenAutoAdvancesInMilliseconds; + private final Long delayInMilliseconds; /** * An optional sort column; if null, the leaderboard sorting won't be touched when updating the settings. @@ -24,7 +24,7 @@ public class LeaderboardSettings { public LeaderboardSettings(List meneuverDetailsToShow, List legDetailsToShow, List raceDetailsToShow, List raceColumnsToShow, - boolean autoExpandFirstRace, long delayBetweenAutoAdvancesInMilliseconds, long delayInMilliseconds, + boolean autoExpandFirstRace, Long delayBetweenAutoAdvancesInMilliseconds, Long delayInMilliseconds, SortableColumn sortByColumn, boolean sortAscending) { this.legDetailsToShow = legDetailsToShow; this.raceDetailsToShow = raceDetailsToShow; @@ -61,11 +61,18 @@ public class LeaderboardSettings { return autoExpandFirstRace; } - public long getDelayBetweenAutoAdvancesInMilliseconds() { + /** + * @return if null, leave refresh interval alone (don't change in + * {@link LeaderboardPanel#updateSettings(LeaderboardSettings)} + */ + public Long getDelayBetweenAutoAdvancesInMilliseconds() { return delayBetweenAutoAdvancesInMilliseconds; } - public long getDelayInMilliseconds() { + /** + * @return if null, leave delay alone (don't change in {@link LeaderboardPanel#updateSettings(LeaderboardSettings)} + */ + public Long getDelayInMilliseconds() { return delayInMilliseconds; } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardSettingsFactory.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardSettingsFactory.java index 8f7230cfeef..964a92a4ecd 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardSettingsFactory.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardSettingsFactory.java @@ -36,7 +36,7 @@ public class LeaderboardSettingsFactory { raceDetails.add(DetailType.NUMBER_OF_MANEUVERS); settings = new LeaderboardSettings(maneuverDetails, legDetails, raceDetails, /* don't change raceColumns */ null, true, - /* refresh interval */ 3000l, /* delay to live */ 5000l, + /* refresh interval */ null, /* delay to live */ null, /* sort by column */ null, /* ascending */ true); break; case Replay: