fixing bug 1971 by passing on Timer object constructed based on URL parameters to [Meta]LeaderboardViewer

This commit is contained in:
Axel Uhl committed 2014-05-28 00:34:33 +02:00
1 parent 5cc535c4b9
commit b7b6ba443b
3 files changed
+21 -26

No files matched your search

@@ -37,6 +37,7 @@ import com.sap.sse.gwt.client.async.MarkedAsyncCallback;
import com.sap.sse.gwt.client.dialog.DataEntryDialog;
import com.sap.sse.gwt.client.player.Timer;
import com.sap.sse.gwt.client.player.Timer.PlayModes;
import com.sap.sse.gwt.client.player.Timer.PlayStates;
import com.sap.sse.gwt.server.GwtHttpRequestUtils;
@@ -154,33 +155,34 @@ public class LeaderboardEntryPoint extends AbstractEntryPoint {
ScrollPanel contentScrollPanel = new ScrollPanel();
long delayBetweenAutoAdvancesInMilliseconds = 3000l;
final RaceIdentifier preselectedRace = getPreselectedRace(Window.Location.getParameterMap());
Timer timer = new Timer(PlayModes.Replay, delayBetweenAutoAdvancesInMilliseconds);
// make a single live request as the default but don't continue to play by default
Timer timer = new Timer(PlayModes.Live, PlayStates.Paused, delayBetweenAutoAdvancesInMilliseconds);
final LeaderboardSettings leaderboardSettings = createLeaderboardSettingsFromURLParameters(Window.Location.getParameterMap());
if (leaderboardSettings.getDelayBetweenAutoAdvancesInMilliseconds() != null) {
timer.setPlayMode(PlayModes.Live); // the leaderboard, viewed via the entry point, always goes "live"
}
timer.setPlayMode(PlayModes.Live); // the leaderboard, viewed via the entry point, goes "live" and "playing" if an auto-refresh
} // interval has been specified
boolean autoExpandLastRaceColumn = GwtHttpRequestUtils.getBooleanParameter(PARAM_AUTO_EXPAND_LAST_RACE_COLUMN, false);
boolean showCharts = GwtHttpRequestUtils.getBooleanParameter(PARAM_SHOW_CHARTS, false);
boolean showOverallLeaderboard = GwtHttpRequestUtils.getBooleanParameter(PARAM_SHOW_OVERALL_LEADERBOARD, false);
boolean showSeriesLeaderboards = GwtHttpRequestUtils.getBooleanParameter(PARAM_SHOW_SERIES_LEADERBOARDS, false);
String chartDetailParam = GwtHttpRequestUtils.getStringParameter(PARAM_CHART_DETAIL, null);
DetailType chartDetailType;
if(chartDetailParam != null && (DetailType.REGATTA_RANK.name().equals(chartDetailParam) || DetailType.OVERALL_RANK.name().equals(chartDetailParam) ||
if (chartDetailParam != null && (DetailType.REGATTA_RANK.name().equals(chartDetailParam) || DetailType.OVERALL_RANK.name().equals(chartDetailParam) ||
DetailType.REGATTA_TOTAL_POINTS.name().equals(chartDetailParam))) {
chartDetailType = DetailType.valueOf(chartDetailParam);
} else {
chartDetailType = leaderboardType.isMetaLeaderboard() ? DetailType.OVERALL_RANK : DetailType.REGATTA_RANK;
}
Widget leaderboardViewer;
final Widget leaderboardViewer;
if (leaderboardType.isMetaLeaderboard()) {
leaderboardViewer = new MetaLeaderboardViewer(sailingService, new AsyncActionsExecutor(),
leaderboardSettings, null, preselectedRace, leaderboardGroupName, leaderboardName, this, stringMessages, userAgent,
showRaceDetails, hideToolbar, autoExpandLastRaceColumn, showCharts, chartDetailType, showSeriesLeaderboards);
timer, leaderboardSettings, null, preselectedRace, leaderboardGroupName, leaderboardName, this, stringMessages,
userAgent, showRaceDetails, hideToolbar, autoExpandLastRaceColumn, showCharts, chartDetailType, showSeriesLeaderboards);
} else {
leaderboardViewer = new LeaderboardViewer(sailingService, new AsyncActionsExecutor(),
leaderboardSettings, preselectedRace, leaderboardGroupName, leaderboardName, this, stringMessages, userAgent,
showRaceDetails, hideToolbar, autoExpandLastRaceColumn, showCharts, chartDetailType, showOverallLeaderboard);
timer, leaderboardSettings, preselectedRace, leaderboardGroupName, leaderboardName, this, stringMessages,
userAgent, showRaceDetails, hideToolbar, autoExpandLastRaceColumn, showCharts, chartDetailType, showOverallLeaderboard);
}
contentScrollPanel.setWidget(leaderboardViewer);
mainPanel.add(contentScrollPanel);
@@ -15,8 +15,6 @@ import com.sap.sailing.gwt.ui.client.shared.charts.MultiCompetitorLeaderboardCha
import com.sap.sse.gwt.client.async.AsyncActionsExecutor;
import com.sap.sse.gwt.client.async.MarkedAsyncCallback;
import com.sap.sse.gwt.client.player.Timer;
import com.sap.sse.gwt.client.player.Timer.PlayModes;
import com.sap.sse.gwt.client.player.Timer.PlayStates;
import com.sap.sse.gwt.client.useragent.UserAgentDetails;
/**
@@ -31,13 +29,12 @@ public class LeaderboardViewer extends AbstractLeaderboardViewer {
private LeaderboardPanel overallLeaderboardPanel;
public LeaderboardViewer(final SailingServiceAsync sailingService, final AsyncActionsExecutor asyncActionsExecutor,
final LeaderboardSettings leaderboardSettings, final RaceIdentifier preselectedRace, final String leaderboardGroupName,
String leaderboardName, final ErrorReporter errorReporter, final StringMessages stringMessages,
final UserAgentDetails userAgent, boolean showRaceDetails, boolean hideToolbar, boolean autoExpandLastRaceColumn,
boolean showCharts, DetailType chartDetailType, boolean showOverallLeaderboard) {
final Timer timer, final LeaderboardSettings leaderboardSettings, final RaceIdentifier preselectedRace,
final String leaderboardGroupName, String leaderboardName, final ErrorReporter errorReporter,
final StringMessages stringMessages, final UserAgentDetails userAgent, boolean showRaceDetails, boolean hideToolbar,
boolean autoExpandLastRaceColumn, boolean showCharts, DetailType chartDetailType, boolean showOverallLeaderboard) {
super(new CompetitorSelectionModel(/* hasMultiSelection */true), asyncActionsExecutor,
// perform the first request as live request but don't auto-play
new Timer(PlayModes.Live, PlayStates.Paused, /* delayBetweenAutoAdvancesInMilliseconds */ 3000l), stringMessages, hideToolbar);
timer, stringMessages, hideToolbar);
final FlowPanel mainPanel = createViewerPanel();
setWidget(mainPanel);
@@ -12,8 +12,6 @@ import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.client.shared.charts.MultiCompetitorLeaderboardChart;
import com.sap.sse.gwt.client.async.AsyncActionsExecutor;
import com.sap.sse.gwt.client.player.Timer;
import com.sap.sse.gwt.client.player.Timer.PlayModes;
import com.sap.sse.gwt.client.player.Timer.PlayStates;
import com.sap.sse.gwt.client.useragent.UserAgentDetails;
/**
@@ -28,13 +26,11 @@ public class MetaLeaderboardViewer extends AbstractLeaderboardViewer {
private final MultiCompetitorLeaderboardChart multiCompetitorChart;
public MetaLeaderboardViewer(SailingServiceAsync sailingService, AsyncActionsExecutor asyncActionsExecutor,
LeaderboardSettings leaderboardSettings, String preselectedLeaderboardName, RaceIdentifier preselectedRace, String leaderboardGroupName,
String metaLeaderboardName, ErrorReporter errorReporter, StringMessages stringMessages,
UserAgentDetails userAgent, boolean showRaceDetails, boolean hideToolbar, boolean autoExpandLastRaceColumn,
boolean showCharts, DetailType chartDetailType, boolean showSeriesLeaderboards) {
super(new CompetitorSelectionModel(/* hasMultiSelection */true), asyncActionsExecutor,
// perform the first request as live request but don't auto-play
new Timer(PlayModes.Live, PlayStates.Paused, /*delayBetweenAutoAdvancesInMilliseconds*/ 3000l), stringMessages, hideToolbar);
Timer timer, LeaderboardSettings leaderboardSettings, String preselectedLeaderboardName, RaceIdentifier preselectedRace,
String leaderboardGroupName, String metaLeaderboardName, ErrorReporter errorReporter,
StringMessages stringMessages, UserAgentDetails userAgent, boolean showRaceDetails, boolean hideToolbar,
boolean autoExpandLastRaceColumn, boolean showCharts, DetailType chartDetailType, boolean showSeriesLeaderboards) {
super(new CompetitorSelectionModel(/* hasMultiSelection */true), asyncActionsExecutor, timer, stringMessages, hideToolbar);
FlowPanel mainPanel = createViewerPanel();
setWidget(mainPanel);
final Label overallStandingsLabel = new Label(stringMessages.overallStandings());