From 586a6c9a3e9432922df4db272b44eb1222e9a092 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Fri, 9 Mar 2012 20:30:58 +0100 Subject: [PATCH] trying to fix automatic sorting or leaderboard in case of pre-selected race --- .../gwt/ui/leaderboard/LeaderboardPanel.java | 23 ++++--------------- .../gwt/ui/raceboard/RaceBoardPanel.java | 8 ++++--- 2 files changed, 10 insertions(+), 21 deletions(-) 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 d9b9681c817..0e0b9ea2158 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 @@ -147,11 +147,6 @@ public class LeaderboardPanel extends FormPanel implements TimeListener, PlaySta private final Timer timer; - /** - * The delay with which the timer shall work. Before the timer is resumed, the delay is set to this value. - */ - private long delayInMilliseconds; - private boolean autoExpandFirstRace; /** @@ -844,7 +839,6 @@ public class LeaderboardPanel extends FormPanel implements TimeListener, PlaySta ErrorReporter errorReporter, final StringMessages stringMessages, final UserAgentTypes userAgentType) { this(sailingService, settings, preSelectedRace, competitorSelectionProvider, new Timer(PlayModes.Replay, /* delayBetweenAutoAdvancesInMilliseconds */3000l), leaderboardName, leaderboardGroupName, errorReporter, stringMessages, userAgentType); - timer.setDelay(getDelayInMilliseconds()); // set time/delay before adding as listener } public LeaderboardPanel(SailingServiceAsync sailingService, LeaderboardSettings settings, RaceIdentifier preSelectedRace, @@ -865,7 +859,6 @@ public class LeaderboardPanel extends FormPanel implements TimeListener, PlaySta selectedLegDetails.addAll(settings.getLegDetailsToShow()); selectedManeuverDetails.addAll(settings.getManeuverDetailsToShow()); selectedRaceDetails.addAll(settings.getRaceDetailsToShow()); - delayInMilliseconds = settings.getDelayInMilliseconds(); setAutoExpandFirstRace(settings.isAutoExpandFirstRace()); this.timer = timer; @@ -930,7 +923,6 @@ public class LeaderboardPanel extends FormPanel implements TimeListener, PlaySta if (LeaderboardPanel.this.timer.getPlayState() == PlayStates.Playing) { LeaderboardPanel.this.timer.pause(); } else { - LeaderboardPanel.this.timer.setDelay(getDelayInMilliseconds()); LeaderboardPanel.this.timer.play(); } } @@ -996,16 +988,8 @@ public class LeaderboardPanel extends FormPanel implements TimeListener, PlaySta return AbstractImagePrototype.create(playIcon).getSafeHtml(); } - private long getDelayInMilliseconds() { - return delayInMilliseconds; - } - private void setDelayInMilliseconds(long delayInMilliseconds) { - this.delayInMilliseconds = delayInMilliseconds; timer.setDelay(delayInMilliseconds); - if (timer.getPlayMode() == PlayModes.Live) { - - } } public boolean isAutoExpandFirstRace() { @@ -1584,7 +1568,10 @@ public class LeaderboardPanel extends FormPanel implements TimeListener, PlaySta playPause.setHTML(getPlayPauseImgHtml(playState)); playPause.setTitle(playState == PlayStates.Playing ? stringMessages.pauseAutomaticRefresh() : stringMessages.autoRefresh()); if (!settingsUpdatedExplicitly && playMode != oldPlayMode) { - updateSettings(LeaderboardSettingsFactory.getInstance().createNewSettingsForPlayMode(playMode, /* columnToSort */ null)); + // if settings weren't explicitly modified, auto-switch to live mode settings and sort for + // any pre-selected race + updateSettings(LeaderboardSettingsFactory.getInstance().createNewSettingsForPlayMode(playMode, + /* don't touch columnToSort */ preSelectedRace == null ? null : preSelectedRace.getRaceName())); } currentlyHandlingPlayStateChange = false; oldPlayMode = playMode; @@ -1623,7 +1610,7 @@ public class LeaderboardPanel extends FormPanel implements TimeListener, PlaySta Collections.unmodifiableList(selectedLegDetails), Collections.unmodifiableList(selectedRaceDetails), /* All races to select */ leaderboard.getRaceList(), selectedRaceColumns, - autoExpandFirstRace, timer.getRefreshInterval(), delayInMilliseconds, stringMessages); + autoExpandFirstRace, timer.getRefreshInterval(), timer.getLivePlayDelayInMillis(), stringMessages); } @Override diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/RaceBoardPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/RaceBoardPanel.java index ba804bfdd72..05cfc2cf4cb 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/RaceBoardPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/RaceBoardPanel.java @@ -129,8 +129,10 @@ public class RaceBoardPanel extends FormPanel implements EventDisplayer, RaceSel componentsNavigationPanel.addStyleName("raceBoardNavigation"); // create the default leaderboard and select the right race - LeaderboardSettings leaderBoardSettings = LeaderboardSettingsFactory.getInstance().createNewSettingsForPlayMode(timer.getPlayMode(), /* columnToSort */ null); - LeaderboardPanel leaderboardPanel = new LeaderboardPanel(sailingService, leaderBoardSettings, selectedRaceIdentifier, competitorSelectionModel, + LeaderboardSettings leaderBoardSettings = LeaderboardSettingsFactory.getInstance() + .createNewSettingsForPlayMode(timer.getPlayMode(), /* nameOfRaceToSort */ selectedRaceIdentifier.getRaceName()); + LeaderboardPanel leaderboardPanel = new LeaderboardPanel(sailingService, leaderBoardSettings, + selectedRaceIdentifier, competitorSelectionModel, timer, leaderboardName, leaderboardGroupName, errorReporter, stringMessages, userAgentType); RaceMap raceMap = new RaceMap(sailingService, errorReporter, timer, competitorSelectionModel, stringMessages); raceMap.onRaceSelectionChange(Collections.singletonList(selectedRaceIdentifier)); @@ -201,7 +203,7 @@ public class RaceBoardPanel extends FormPanel implements EventDisplayer, RaceSel // create the default leaderboard and select the right race if(showLeaderboard) { LeaderboardSettings leaderBoardSettings = LeaderboardSettingsFactory.getInstance() - .createNewSettingsForPlayMode(timer.getPlayMode(), /* nameOfRaceToSort */null); + .createNewSettingsForPlayMode(timer.getPlayMode(), /* nameOfRaceToSort */ selectedRaceIdentifier.getRaceName()); LeaderboardPanel leaderboardPanel = new LeaderboardPanel(sailingService, leaderBoardSettings, selectedRaceIdentifier, competitorSelectionModel, timer, leaderboardName, leaderboardGroupName, errorReporter, stringMessages, userAgentType);