pass on showRaceDetails URL parameter consistently

This commit is contained in:
Axel Uhl committed 2012-06-17 01:22:14 +02:00
1 parent 348588816f
commit f67ad453be
11 files changed
+34 -23

No files matched your search

@@ -19,7 +19,7 @@ public class LeaderboardPanelMock extends LeaderboardPanel {
StringMessages stringConstants) {
super(sailingService, null, LeaderboardSettingsFactory.getInstance().createNewDefaultSettings(
/* racesToShow */null, /* namesOfRacesToShow */ null, null, /* autoExpandFirstRace */false), new CompetitorSelectionModel(
/* hasMultiSelection */true), leaderboardName, null, errorReporter, stringConstants, null);
/* hasMultiSelection */true), leaderboardName, null, errorReporter, stringConstants, null, /* showRaceDetails */ true);
}
@Override
@@ -60,7 +60,8 @@ public class AdminConsoleEntryPoint extends AbstractEntryPoint implements Regatt
leaderboardGroupConfigPanel.setSize("90%", "90%");
tabPanel.add(leaderboardGroupConfigPanel, stringMessages.leaderboardGroupConfiguration(), /*asHTML*/ false);
regattaDisplayers.add(leaderboardGroupConfigPanel);
final LeaderboardConfigPanel leaderboardConfigPanel = new LeaderboardConfigPanel(sailingService, this, this, stringMessages);
final LeaderboardConfigPanel leaderboardConfigPanel = new LeaderboardConfigPanel(sailingService, this, this, stringMessages,
/* showRaceDetails */ true);
leaderboardConfigPanel.setSize("90%", "90%");
tabPanel.add(leaderboardConfigPanel, stringMessages.leaderboardConfiguration(), /* asHTML */ false);
regattaDisplayers.add(leaderboardConfigPanel);
@@ -120,7 +120,7 @@ public class LeaderboardConfigPanel extends FormPanel implements RegattaDisplaye
private static AnchorTemplates ANCHORTEMPLATE = GWT.create(AnchorTemplates.class);
public LeaderboardConfigPanel(SailingServiceAsync sailingService, AdminConsoleEntryPoint adminConsole,
final ErrorReporter errorReporter, StringMessages theStringConstants) {
final ErrorReporter errorReporter, StringMessages theStringConstants, final boolean showRaceDetails) {
this.stringMessages = theStringConstants;
this.sailingService = sailingService;
leaderboardList = new ListDataProvider<StrippedLeaderboardDTO>();
@@ -166,6 +166,7 @@ public class LeaderboardConfigPanel extends FormPanel implements RegattaDisplaye
public SafeHtml getValue(StrippedLeaderboardDTO object) {
String debugParam = Window.Location.getParameter("gwt.codesvr");
String link = URLFactory.INSTANCE.encode("/gwt/Leaderboard.html?name=" + object.name
+ (showRaceDetails ? "&showRaceDetails=true" : "")
+ (debugParam != null && !debugParam.isEmpty() ? "&gwt.codesvr=" + debugParam : ""));
return ANCHORTEMPLATE.cell(link, object.name);
}
@@ -25,13 +25,15 @@ public class LeaderboardEntryPoint extends AbstractEntryPoint {
@Override
public void onModuleLoad() {
super.onModuleLoad();
final boolean showRaceDetails = Window.Location.getParameter("showRaceDetails") != null
&& Window.Location.getParameter("showRaceDetails").equalsIgnoreCase("true");
sailingService.getLeaderboardNames(new AsyncCallback<List<String>>() {
@Override
public void onSuccess(List<String> leaderboardNames) {
leaderboardName = Window.Location.getParameter("name");
leaderboardGroupName = Window.Location.getParameter("leaderboardGroupName");
if (leaderboardNames.contains(leaderboardName)) {
createUI();
createUI(showRaceDetails);
} else {
RootPanel.get().add(new Label(stringMessages.noSuchLeaderboard()));
}
@@ -44,7 +46,7 @@ public class LeaderboardEntryPoint extends AbstractEntryPoint {
});
}
private void createUI() {
private void createUI(boolean showRaceDetails) {
LogoAndTitlePanel logoAndTitlePanel = new LogoAndTitlePanel(leaderboardGroupName, stringMessages.leaderboard() + " " +leaderboardName, stringMessages);
logoAndTitlePanel.addStyleName("LogoAndTitlePanel");
@@ -59,7 +61,7 @@ public class LeaderboardEntryPoint extends AbstractEntryPoint {
Timer timer = new Timer(PlayModes.Replay, 1000l);
timer.setLivePlayDelayInMillis(5000l);
TVViewPanel tvViewPanel = new TVViewPanel(sailingService, stringMessages, this, leaderboardName,
userAgentType, null, timer, logoAndTitlePanel, mainPanel);
userAgentType, null, timer, logoAndTitlePanel, mainPanel, showRaceDetails);
contentScrollPanel.setWidget(tvViewPanel);
} else {
Timer timer = new Timer(PlayModes.Replay, /* delayBetweenAutoAdvancesInMilliseconds */3000l);
@@ -68,7 +70,7 @@ public class LeaderboardEntryPoint extends AbstractEntryPoint {
LeaderboardSettingsFactory.getInstance().createNewDefaultSettings(null, null, null, /* autoExpandFirstRace */ false),
/* preSelectedRace */ null, new CompetitorSelectionModel(/* hasMultiSelection */ true), timer,
leaderboardName, leaderboardGroupName,
LeaderboardEntryPoint.this, stringMessages, userAgentType);
LeaderboardEntryPoint.this, stringMessages, userAgentType, showRaceDetails);
contentScrollPanel.setWidget(leaderboardPanel);
}
@@ -209,6 +209,11 @@ public class LeaderboardPanel extends FormPanel implements TimeListener, PlaySta
* then sort by it. Otherwise, default sorting will default to the overall rank column.
*/
private String raceNameForDefaultSorting;
/**
* Can be used to disallow users to drill into the race details.
*/
private final boolean showRaceDetails;
private class SettingsClickHandler implements ClickHandler {
private final StringMessages stringMessages;
@@ -909,21 +914,22 @@ public class LeaderboardPanel extends FormPanel implements TimeListener, PlaySta
public LeaderboardPanel(SailingServiceAsync sailingService, AsyncActionsExecutor asyncActionsExecutor, LeaderboardSettings settings,
CompetitorSelectionProvider competitorSelectionProvider, String leaderboardName,
String leaderboardGroupName, ErrorReporter errorReporter, final StringMessages stringMessages,
final UserAgentTypes userAgentType) {
final UserAgentTypes userAgentType, boolean showRaceDetails) {
this(sailingService, asyncActionsExecutor, settings, /* preSelectedRace */null, competitorSelectionProvider, leaderboardName,
leaderboardGroupName, errorReporter, stringMessages, userAgentType);
leaderboardGroupName, errorReporter, stringMessages, userAgentType, showRaceDetails);
}
public LeaderboardPanel(SailingServiceAsync sailingService, AsyncActionsExecutor asyncActionsExecutor, LeaderboardSettings settings, RaceIdentifier preSelectedRace,
CompetitorSelectionProvider competitorSelectionProvider, String leaderboardName, String leaderboardGroupName,
ErrorReporter errorReporter, final StringMessages stringMessages, final UserAgentTypes userAgentType) {
ErrorReporter errorReporter, final StringMessages stringMessages, final UserAgentTypes userAgentType, boolean showRaceDetails) {
this(sailingService, asyncActionsExecutor, settings, preSelectedRace, competitorSelectionProvider, new Timer(PlayModes.Replay, /* delayBetweenAutoAdvancesInMilliseconds */3000l),
leaderboardName, leaderboardGroupName, errorReporter, stringMessages, userAgentType);
leaderboardName, leaderboardGroupName, errorReporter, stringMessages, userAgentType, showRaceDetails);
}
public LeaderboardPanel(SailingServiceAsync sailingService, AsyncActionsExecutor asyncActionsExecutor, LeaderboardSettings settings, RaceIdentifier preSelectedRace,
CompetitorSelectionProvider competitorSelectionProvider, Timer timer, String leaderboardName, String leaderboardGroupName,
ErrorReporter errorReporter, final StringMessages stringMessages, final UserAgentTypes userAgentType) {
ErrorReporter errorReporter, final StringMessages stringMessages, final UserAgentTypes userAgentType, boolean showRaceDetails) {
this.showRaceDetails = showRaceDetails;
this.sailingService = sailingService;
this.asyncActionsExecutor = asyncActionsExecutor;
this.preSelectedRace = preSelectedRace;
@@ -1036,7 +1042,7 @@ public class LeaderboardPanel extends FormPanel implements TimeListener, PlaySta
refreshAndSettingsPanel.add(refreshPanel);
refreshAndSettingsPanel.add(settingsAnchor);
toolbarPanel.add(refreshAndSettingsPanel, DockPanel.EAST);
if (!isEmbedded) {
if (!isEmbedded && showRaceDetails) {
contentPanel.add(toolbarPanel);
}
contentPanel.add(getLeaderboardTable());
@@ -1611,8 +1617,8 @@ public class LeaderboardPanel extends FormPanel implements TimeListener, PlaySta
}
protected RaceColumn<?> createRaceColumn(RaceColumnDTO raceInLeaderboard) {
TextRaceColumn textRaceColumn = new TextRaceColumn(raceInLeaderboard, raceInLeaderboard.hasTrackedRaces(), RACE_COLUMN_HEADER_STYLE,
RACE_COLUMN_STYLE);
TextRaceColumn textRaceColumn = new TextRaceColumn(raceInLeaderboard, showRaceDetails
&& raceInLeaderboard.hasTrackedRaces(), RACE_COLUMN_HEADER_STYLE, RACE_COLUMN_STYLE);
return textRaceColumn;
}
@@ -58,7 +58,7 @@ public class TVViewPanel extends SimplePanel implements RaceTimesInfoProviderLis
public TVViewPanel(SailingServiceAsync sailingService, StringMessages stringMessages, ErrorReporter errorReporter,
String leaderboardName, UserAgentTypes userAgentType, UserDTO userDTO, Timer timer,
LogoAndTitlePanel logoAndTitlePanel, DockLayoutPanel dockPanel) {
LogoAndTitlePanel logoAndTitlePanel, DockLayoutPanel dockPanel, boolean showRaceDetails) {
setSize("100%", "100%");
this.sailingService = sailingService;
this.stringMessages = stringMessages;
@@ -76,20 +76,19 @@ public class TVViewPanel extends SimplePanel implements RaceTimesInfoProviderLis
timer.play();
raceTimesInfoProvider = new RaceTimesInfoProvider(sailingService, errorReporter, new ArrayList<RegattaAndRaceIdentifier>(), 1000l);
raceTimesInfoProvider.addRaceTimesInfoProviderListener(this);
leaderboardPanel = createLeaderboardPanel(leaderboardName);
leaderboardPanel = createLeaderboardPanel(leaderboardName, showRaceDetails);
leaderboard = null;
showLeaderboard();
}
private LeaderboardPanel createLeaderboardPanel(String leaderboardName) {
private LeaderboardPanel createLeaderboardPanel(String leaderboardName, boolean showRaceDetails) {
LeaderboardSettings settings = LeaderboardSettingsFactory.getInstance().createNewDefaultSettings(null, null, null, /* autoExpandFirstRace */ false);
CompetitorSelectionModel selectionModel = new CompetitorSelectionModel(/* hasMultiSelection */ true);
Timer timer = new Timer(PlayModes.Live, /* delayBetweenAutoAdvancesInMilliseconds */3000l);
timer.play();
LeaderboardPanel leaderboardPanel = new LeaderboardPanel(sailingService, new AsyncActionsExecutor(), settings,
/* preSelectedRace */null, selectionModel, timer, leaderboardName, null, errorReporter, stringMessages,
userAgentType) {
userAgentType, showRaceDetails) {
@Override
protected void setLeaderboard(LeaderboardDTO leaderboard) {
super.setLeaderboard(leaderboard);
@@ -366,7 +366,7 @@ public class EditableLeaderboardPanel extends LeaderboardPanel {
super(sailingService, asyncActionsExecutor, LeaderboardSettingsFactory.getInstance().createNewDefaultSettings(
/* racesToShow */ null, /* namesOfRacesToShow */ null, null, /* autoExpandFirstRace */false),
new CompetitorSelectionModel(/* hasMultiSelection */true),
leaderboardName, leaderboardGroupName, errorReporter, stringMessages, userAgentType);
leaderboardName, leaderboardGroupName, errorReporter, stringMessages, userAgentType, /* showRaceDetails */ true);
ImageResource importIcon = resources.importIcon();
Anchor importAnchor = new Anchor(AbstractImagePrototype.create(importIcon).getSafeHtml());
getRefreshAndSettingsPanel().insert(importAnchor, 0);
@@ -43,7 +43,7 @@ public class GlobalNavigationPanel extends FlowPanel {
}
if (leaderboardName != null && !leaderboardName.isEmpty()) {
String leaderBoardLink = leaderboardViewLink + "?name=" + leaderboardName;
String leaderBoardLink = leaderboardViewLink + "?name=" + leaderboardName + "&showRaceDetails=true";
if (leaderboardGroupName != null && !leaderboardGroupName.isEmpty()) {
leaderBoardLink += "&leaderboardGroupName=" + leaderboardGroupName;
}
@@ -199,7 +199,7 @@ public class RaceBoardPanel extends FormPanel implements RegattaDisplayer, RaceS
/* nameOfRaceColumnToShow */null, /* nameOfRaceToShow */selectedRaceIdentifier.getRaceName());
return new LeaderboardPanel(sailingService, asyncActionsExecutor, leaderBoardSettings, selectedRaceIdentifier,
competitorSelectionModel, timer, leaderboardName, leaderboardGroupName, errorReporter, stringMessages,
userAgentType);
userAgentType, /* showRaceDetails */ true);
}
private <SettingsType> void addComponentToNavigationMenu(final ComponentViewer componentViewer,
@@ -353,6 +353,7 @@ public class LeaderboardGroupOverviewPanel extends FormPanel {
LeaderboardGroupDTO selectedGroup = groupsSelectionModel.getSelectedObject();
String debugParam = Window.Location.getParameter("gwt.codesvr");
String link = URLFactory.INSTANCE.encode("/gwt/Leaderboard.html?name=" + leaderboard.name
+ (showRaceDetails ? "&showRaceDetails=true" : "")
+ "&leaderboardGroupName=" + selectedGroup.name + "&root=overview"
+ (debugParam != null && !debugParam.isEmpty() ? "&gwt.codesvr=" + debugParam : ""));
return ANCHORTEMPLATE.anchor(link, leaderboard.name);
@@ -172,6 +172,7 @@ public class LeaderboardGroupPanel extends FormPanel implements HasWelcomeWidget
public SafeHtml getValue(StrippedLeaderboardDTO leaderboard) {
String debugParam = Window.Location.getParameter("gwt.codesvr");
String link = URLFactory.INSTANCE.encode("/gwt/Leaderboard.html?name=" + leaderboard.name
+ (showRaceDetails ? "&showRaceDetails=true" : "")
+ "&leaderboardGroupName=" + group.name + "&root=" + root
+ (debugParam != null && !debugParam.isEmpty() ? "&gwt.codesvr=" + debugParam : ""));
if (embedded) {