racebord url creation in adminconsole fixed

This commit is contained in:
Kai Boernert committed 2017-02-22 09:42:44 +01:00
1 parent 14df3e4e48
commit 3fec3d770b
13 files changed
+75 -76

No files matched your search

@@ -23,7 +23,7 @@ import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardEntryPoint;
import com.sap.sailing.gwt.ui.raceboard.RaceBoardPanel;
import com.sap.sailing.gwt.ui.raceboard.RaceBoardPerspectiveSettings;
import com.sap.sailing.gwt.ui.raceboard.RaceBoardPerspectiveOwnSettings;
import com.sap.sailing.gwt.ui.shared.RaceTimesInfoDTO;
import com.sap.sailing.gwt.ui.shared.RaceboardDataDTO;
import com.sap.sse.gwt.client.ErrorReporter;
@@ -131,7 +131,7 @@ public class AutoPlayController implements RaceTimesInfoProviderListener, Leader
playerView.clearContent();
PerspectiveCompositeSettings<RaceBoardPerspectiveSettings> raceboardSettings = settings
PerspectiveCompositeSettings<RaceBoardPerspectiveOwnSettings> raceboardSettings = settings
.findSettingsByComponentId(autoplayLiveCycle.getRaceboardLifecycle().getComponentId());
RaceBoardPanel raceboardPerspective = new RaceBoardPanel(null, null,
@@ -41,7 +41,7 @@ import com.sap.sailing.gwt.ui.client.EntryPointLinkFactory;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.refresh.ErrorAndBusyClientFactory;
import com.sap.sailing.gwt.ui.client.shared.racemap.RaceMapSettings;
import com.sap.sailing.gwt.ui.raceboard.RaceBoardPerspectiveSettings;
import com.sap.sailing.gwt.ui.raceboard.RaceBoardPerspectiveOwnSettings;
import com.sap.sse.gwt.client.player.Timer;
import com.sap.sse.gwt.client.player.Timer.PlayModes;
@@ -178,7 +178,7 @@ public abstract class AbstractEventActivity<PLACE extends AbstractEventPlace> ex
// TODO this must only be forwarded if there is a logged-on user
// linkParams.put(RaceBoardViewConfiguration.PARAM_CAN_REPLAY_DURING_LIVE_RACES, "true");
linkParams.put(RaceMapSettings.PARAM_SHOW_MAPCONTROLS, "true");
linkParams.put(RaceBoardPerspectiveSettings.PARAM_VIEW_SHOW_NAVIGATION_PANEL, "true");
linkParams.put(RaceBoardPerspectiveOwnSettings.PARAM_VIEW_SHOW_NAVIGATION_PANEL, "true");
linkParams.put("regattaName", regattaName);
return linkParams;
}
@@ -1,9 +1,12 @@
package com.sap.sailing.gwt.settings.client;
import com.sap.sailing.gwt.settings.client.raceboard.RaceboardContextSettings;
import com.sap.sailing.gwt.settings.client.regattaoverview.RegattaOverviewBaseSettings;
import com.sap.sailing.gwt.settings.client.regattaoverview.RegattaRaceStatesSettings;
import com.sap.sailing.gwt.ui.raceboard.RaceBoardPerspectiveOwnSettings;
import com.sap.sse.gwt.client.shared.components.LinkWithSettingsGenerator;
import com.sap.sse.gwt.client.shared.perspective.IgnoreLocalSettings;
import com.sap.sse.gwt.client.shared.perspective.PerspectiveCompositeSettings;
import com.sap.sse.gwt.settings.AbstractEntryPointWithSettingsLinkFactory;
public class EntryPointWithSettingsLinkFactory extends AbstractEntryPointWithSettingsLinkFactory {
@@ -18,4 +21,9 @@ public class EntryPointWithSettingsLinkFactory extends AbstractEntryPointWithSet
new IgnoreLocalSettings(true)).createUrl(regattaRaceStatesSettings);
}
public static String createRaceBoardLink(RaceboardContextSettings ctx,
PerspectiveCompositeSettings<RaceBoardPerspectiveOwnSettings> settings) {
return new LinkWithSettingsGenerator<>("/gwt/RaceBoard.html", ctx).createUrl(settings);
}
}
@@ -44,7 +44,7 @@ import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.client.shared.controls.FlushableCellTable;
import com.sap.sailing.gwt.ui.client.shared.controls.SelectionCheckboxColumn;
import com.sap.sailing.gwt.ui.leaderboard.ScoringSchemeTypeFormatter;
import com.sap.sailing.gwt.ui.raceboard.RaceBoardPerspectiveSettings;
import com.sap.sailing.gwt.ui.raceboard.RaceBoardPerspectiveOwnSettings;
import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO;
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO;
@@ -506,7 +506,7 @@ public class LeaderboardGroupConfigPanel extends AbstractRegattaPanel implements
public SafeHtml getValue(LeaderboardGroupDTO group) {
String debugParam = Window.Location.getParameter("gwt.codesvr");
String link = URLEncoder.encode("/gwt/Spectator.html?leaderboardGroupName=" + group.getName()
+ "&showRaceDetails=true&"+RaceBoardPerspectiveSettings.PARAM_CAN_REPLAY_DURING_LIVE_RACES+"=true"
+ "&showRaceDetails=true&"+RaceBoardPerspectiveOwnSettings.PARAM_CAN_REPLAY_DURING_LIVE_RACES+"=true"
+ (debugParam != null && !debugParam.isEmpty() ? "&gwt.codesvr=" + debugParam : ""));
return ANCHORTEMPLATE.cell(link, group.getName());
}
@@ -93,10 +93,10 @@ public class RaceMapSettings extends AbstractGenericSerializableSettings {
}
public RaceMapSettings(RaceMapZoomSettings zoomSettings, RaceMapHelpLinesSettings helpLinesSettings,
boolean transparentHoverlines, int hoverlineStrokeWeight, long tailLengthInMilliseconds, boolean windUp,
Distance buoyZoneRadius, boolean showOnlySelectedCompetitors, boolean showSelectedCompetitorsInfo,
boolean showWindStreamletColors, boolean showWindStreamletOverlay, boolean showSimulationOverlay,
boolean showMapControls, Collection<ManeuverType> maneuverTypesToShow, boolean showDouglasPeuckerPoints) {
Boolean transparentHoverlines, Integer hoverlineStrokeWeight, Long tailLengthInMilliseconds, Boolean windUp,
Distance buoyZoneRadius, Boolean showOnlySelectedCompetitors, Boolean showSelectedCompetitorsInfo,
Boolean showWindStreamletColors, Boolean showWindStreamletOverlay, Boolean showSimulationOverlay,
Boolean showMapControls, Collection<ManeuverType> maneuverTypesToShow, Boolean showDouglasPeuckerPoints) {
this.zoomSettings.init(zoomSettings);
this.helpLinesSettings.init(helpLinesSettings);
this.transparentHoverlines.setValue(transparentHoverlines);
@@ -86,7 +86,7 @@ public class EmbeddedMapAndWindChartEntryPoint extends AbstractSailingEntryPoint
}
// read optional parameters
final RaceBoardPerspectiveSettings raceboardPerspectiveSettings = RaceBoardPerspectiveSettings
final RaceBoardPerspectiveOwnSettings raceboardPerspectiveSettings = RaceBoardPerspectiveOwnSettings
.readSettingsFromURL(/* defaultForViewShowLeaderboard */ true, /* defaultForViewShowWindchart */ true,
/* defaultForViewShowCompetitorsChart */ false, /* defaultForViewCompetitorFilter */ null,
/* defaultForCanReplayDuringLiveRaces */ false);
@@ -154,7 +154,7 @@ public class EmbeddedMapAndWindChartEntryPoint extends AbstractSailingEntryPoint
}
private void createEmbeddedMap(final RegattaAndRaceIdentifier selectedRaceIdentifier, Map<CompetitorDTO, BoatDTO> competitorBoats,
final RaceBoardPerspectiveSettings raceboardPerspectiveSettings, final RaceMapSettings raceMapSettings,
final RaceBoardPerspectiveOwnSettings raceboardPerspectiveSettings, final RaceMapSettings raceMapSettings,
final boolean showCompetitors, final boolean play) {
final StringBuilder title = new StringBuilder(regattaLikeName);
title.append('/');
@@ -73,9 +73,9 @@ public class RaceBoardEntryPoint extends AbstractSailingEntryPoint {
componentContextGlobalDefinition += "." + raceBoardContextSettings.getMode().toString();
}
RaceBoardPerspectiveLifecycle lifeCycle = new RaceBoardPerspectiveLifecycle(null, StringMessages.INSTANCE);
ComponentContextWithSettingsStorage<PerspectiveCompositeSettings<RaceBoardPerspectiveSettings>> context = new ComponentContextWithSettingsStorage<PerspectiveCompositeSettings<RaceBoardPerspectiveSettings>>(
ComponentContextWithSettingsStorage<PerspectiveCompositeSettings<RaceBoardPerspectiveOwnSettings>> context = new ComponentContextWithSettingsStorage<PerspectiveCompositeSettings<RaceBoardPerspectiveOwnSettings>>(
lifeCycle,
new UserSettingsStorageManager<PerspectiveCompositeSettings<RaceBoardPerspectiveSettings>>(
new UserSettingsStorageManager<PerspectiveCompositeSettings<RaceBoardPerspectiveOwnSettings>>(
getUserService(), componentContextGlobalDefinition + "." + lifeCycle.getComponentId(),
UserSettingsStorageManager.buildContextDefinitionId(raceBoardContextSettings.getRegattaName(),
raceBoardContextSettings.getRaceName(), raceBoardContextSettings.getLeaderboardName(),
@@ -115,9 +115,9 @@ public class RaceBoardEntryPoint extends AbstractSailingEntryPoint {
return;
}
context.initInitialSettings(new DefaultOnSettingsLoadedCallback<PerspectiveCompositeSettings<RaceBoardPerspectiveSettings>>() {
context.initInitialSettings(new DefaultOnSettingsLoadedCallback<PerspectiveCompositeSettings<RaceBoardPerspectiveOwnSettings>>() {
@Override
public void onSuccess(PerspectiveCompositeSettings<RaceBoardPerspectiveSettings> initialSettings) {
public void onSuccess(PerspectiveCompositeSettings<RaceBoardPerspectiveOwnSettings> initialSettings) {
final RaceBoardPanel raceBoardPanel = createPerspectivePage(null, context, initialSettings,
raceboardData, showChartMarkEditMediaButtonsAndVideo, lifeCycle);
if (finalMode != null) {
@@ -149,8 +149,8 @@ public class RaceBoardEntryPoint extends AbstractSailingEntryPoint {
}
private RaceBoardPanel createPerspectivePage(Component<?> parent,
ComponentContextWithSettingsStorage<PerspectiveCompositeSettings<RaceBoardPerspectiveSettings>> context,
PerspectiveCompositeSettings<RaceBoardPerspectiveSettings> settings, RaceboardDataDTO raceboardData,
ComponentContextWithSettingsStorage<PerspectiveCompositeSettings<RaceBoardPerspectiveOwnSettings>> context,
PerspectiveCompositeSettings<RaceBoardPerspectiveOwnSettings> settings, RaceboardDataDTO raceboardData,
boolean showChartMarkEditMediaButtonsAndVideo, RaceBoardPerspectiveLifecycle raceLifeCycle) {
selectedRace = raceboardData.getRace();
Window.setTitle(selectedRace.getName());
@@ -113,7 +113,7 @@ import com.sap.sse.security.ui.client.UserService;
*
*/
public class RaceBoardPanel
extends AbstractPerspectiveComposite<RaceBoardPerspectiveLifecycle, RaceBoardPerspectiveSettings>
extends AbstractPerspectiveComposite<RaceBoardPerspectiveLifecycle, RaceBoardPerspectiveOwnSettings>
implements LeaderboardUpdateListener, PopupPositionProvider, RequiresResize
{
private final SailingServiceAsync sailingService;
@@ -177,9 +177,9 @@ public class RaceBoardPanel
* aligns its right border with that of the chart. Otherwise those components will be hidden.
*/
public RaceBoardPanel(Component<?> parent,
ComponentContext<PerspectiveCompositeSettings<RaceBoardPerspectiveSettings>> context,
ComponentContext<PerspectiveCompositeSettings<RaceBoardPerspectiveOwnSettings>> context,
RaceBoardPerspectiveLifecycle lifecycle,
PerspectiveCompositeSettings<RaceBoardPerspectiveSettings> settings,
PerspectiveCompositeSettings<RaceBoardPerspectiveOwnSettings> settings,
SailingServiceAsync sailingService, MediaServiceAsync mediaService, UserService userService,
AsyncActionsExecutor asyncActionsExecutor, Map<CompetitorDTO, BoatDTO> competitorsAndTheirBoats,
Timer timer, RegattaAndRaceIdentifier selectedRaceIdentifier, String leaderboardName,
@@ -367,7 +367,7 @@ public class RaceBoardPanel
* the charts are created.
*/
private void createOneScreenView(RaceBoardPerspectiveLifecycle lifecycle,
PerspectiveCompositeSettings<RaceBoardPerspectiveSettings> settings, String leaderboardName,
PerspectiveCompositeSettings<RaceBoardPerspectiveOwnSettings> settings, String leaderboardName,
String leaderboardGroupName, UUID event,
FlowPanel mainPanel, boolean isScreenLargeEnoughToInitiallyDisplayLeaderboard, RaceMap raceMap,
UserService userService, boolean showChartMarkEditMediaButtonsAndVideo) {
@@ -472,7 +472,7 @@ public class RaceBoardPanel
}
private LeaderboardPanel createLeaderboardPanel(RaceBoardPerspectiveLifecycle lifecycle,
PerspectiveCompositeSettings<RaceBoardPerspectiveSettings> settings, String leaderboardName,
PerspectiveCompositeSettings<RaceBoardPerspectiveOwnSettings> settings, String leaderboardName,
String leaderboardGroupName,
CompetitorFilterPanel competitorSearchTextBox, boolean isScreenLargeEnoughToInitiallyDisplayLeaderboard) {
LeaderboardPanelLifecycle leaderboardPanelLifecycle = getPerspectiveLifecycle().getLeaderboardPanelLifecycle();
@@ -718,7 +718,7 @@ public class RaceBoardPanel
}
@Override
public SettingsDialogComponent<RaceBoardPerspectiveSettings> getPerspectiveOwnSettingsDialogComponent() {
public SettingsDialogComponent<RaceBoardPerspectiveOwnSettings> getPerspectiveOwnSettingsDialogComponent() {
return new RaceBoardPerspectiveSettingsDialogComponent(getPerspectiveSettings(), stringMessages);
}
@@ -12,7 +12,7 @@ import com.sap.sse.gwt.client.shared.components.SettingsDialogComponent;
import com.sap.sse.gwt.client.shared.perspective.AbstractPerspectiveLifecycle;
public class RaceBoardPerspectiveLifecycle extends AbstractPerspectiveLifecycle<RaceBoardPerspectiveSettings> {
public class RaceBoardPerspectiveLifecycle extends AbstractPerspectiveLifecycle<RaceBoardPerspectiveOwnSettings> {
private final StringMessages stringMessages;
private final RaceMapLifecycle raceMapLifecycle;
@@ -45,12 +45,12 @@ public class RaceBoardPerspectiveLifecycle extends AbstractPerspectiveLifecycle<
}
@Override
public RaceBoardPerspectiveSettings createPerspectiveOwnDefaultSettings() {
return new RaceBoardPerspectiveSettings();
public RaceBoardPerspectiveOwnSettings createPerspectiveOwnDefaultSettings() {
return new RaceBoardPerspectiveOwnSettings();
}
@Override
public SettingsDialogComponent<RaceBoardPerspectiveSettings> getPerspectiveOwnSettingsDialogComponent(RaceBoardPerspectiveSettings perspectiveSettings) {
public SettingsDialogComponent<RaceBoardPerspectiveOwnSettings> getPerspectiveOwnSettingsDialogComponent(RaceBoardPerspectiveOwnSettings perspectiveSettings) {
return new RaceBoardPerspectiveSettingsDialogComponent(perspectiveSettings, stringMessages);
}
@@ -94,12 +94,12 @@ public class RaceBoardPerspectiveLifecycle extends AbstractPerspectiveLifecycle<
}
@Override
protected RaceBoardPerspectiveSettings extractOwnGlobalSettings(RaceBoardPerspectiveSettings settings) {
protected RaceBoardPerspectiveOwnSettings extractOwnGlobalSettings(RaceBoardPerspectiveOwnSettings settings) {
return createPerspectiveOwnDefaultSettings();
}
@Override
protected RaceBoardPerspectiveSettings extractOwnContextSettings(RaceBoardPerspectiveSettings settings) {
protected RaceBoardPerspectiveOwnSettings extractOwnContextSettings(RaceBoardPerspectiveOwnSettings settings) {
return createPerspectiveOwnDefaultSettings();
}
}
@@ -13,7 +13,7 @@ import com.sap.sse.gwt.shared.GwtHttpRequestUtils;
* @author Frank
*
*/
public class RaceBoardPerspectiveSettings extends AbstractGenericSerializableSettings {
public class RaceBoardPerspectiveOwnSettings extends AbstractGenericSerializableSettings {
private static final long serialVersionUID = 5471954179434008459L;
@@ -35,7 +35,7 @@ public class RaceBoardPerspectiveSettings extends AbstractGenericSerializableSet
public static final String PARAM_CAN_REPLAY_DURING_LIVE_RACES = "canReplayDuringLiveRaces";
public static final String PARAM_TIME_AFTER_RACE_START_AS_HOURS_COLON_MILLIS_COLON_SECONDS = "t";
public RaceBoardPerspectiveSettings() {
public RaceBoardPerspectiveOwnSettings() {
}
@Override
@@ -48,8 +48,8 @@ public class RaceBoardPerspectiveSettings extends AbstractGenericSerializableSet
this.initialDurationAfterRaceStartInReplay = new DurationSetting("initialDurationAfterRaceStartInReplay", this, null);
}
public RaceBoardPerspectiveSettings(String activeCompetitorsFilterSetName, boolean showLeaderboard,
boolean showWindChart, boolean showCompetitorsChart, boolean canReplayDuringLiveRaces,
public RaceBoardPerspectiveOwnSettings(String activeCompetitorsFilterSetName, Boolean showLeaderboard,
Boolean showWindChart, Boolean showCompetitorsChart, Boolean canReplayDuringLiveRaces,
Duration initialDurationAfterRaceStartInReplay) {
this.activeCompetitorsFilterSetName.setValue(activeCompetitorsFilterSetName);
this.showLeaderboard.setValue(showLeaderboard);
@@ -79,7 +79,7 @@ public class RaceBoardPerspectiveSettings extends AbstractGenericSerializableSet
return canReplayDuringLiveRaces.getValue();
}
public static RaceBoardPerspectiveSettings readSettingsFromURL(boolean defaultForViewShowLeaderboard,
public static RaceBoardPerspectiveOwnSettings readSettingsFromURL(boolean defaultForViewShowLeaderboard,
boolean defaultForViewShowWindchart, boolean defaultForViewShowCompetitorsChart,
String defaultForViewCompetitorFilter, boolean defaultForCanReplayDuringLiveRaces) {
final boolean showLeaderboard = GwtHttpRequestUtils.getBooleanParameter(PARAM_VIEW_SHOW_LEADERBOARD, defaultForViewShowLeaderboard /* default */);
@@ -89,7 +89,7 @@ public class RaceBoardPerspectiveSettings extends AbstractGenericSerializableSet
final boolean canReplayWhileLiveIsPossible = GwtHttpRequestUtils.getBooleanParameter(PARAM_CAN_REPLAY_DURING_LIVE_RACES, defaultForCanReplayDuringLiveRaces /* default */);
final Duration initialDurationAfterRaceStartInReplay = parseDuration(GwtHttpRequestUtils.getStringParameter(
PARAM_TIME_AFTER_RACE_START_AS_HOURS_COLON_MILLIS_COLON_SECONDS, null /* default */));
return new RaceBoardPerspectiveSettings(activeCompetitorsFilterSetName, showLeaderboard, showWindChart,
return new RaceBoardPerspectiveOwnSettings(activeCompetitorsFilterSetName, showLeaderboard, showWindChart,
showCompetitorsChart, canReplayWhileLiveIsPossible, initialDurationAfterRaceStartInReplay);
}
@@ -9,15 +9,15 @@ import com.sap.sse.gwt.client.dialog.DataEntryDialog;
import com.sap.sse.gwt.client.dialog.DataEntryDialog.Validator;
import com.sap.sse.gwt.client.shared.components.SettingsDialogComponent;
public class RaceBoardPerspectiveSettingsDialogComponent implements SettingsDialogComponent<RaceBoardPerspectiveSettings> {
public class RaceBoardPerspectiveSettingsDialogComponent implements SettingsDialogComponent<RaceBoardPerspectiveOwnSettings> {
private CheckBox showLeaderboardCheckBox;
private CheckBox showWindChartCheckBox;
private CheckBox showCompetitorsChartCheckBox;
private final StringMessages stringMessages;
private final RaceBoardPerspectiveSettings initialSettings;
private final RaceBoardPerspectiveOwnSettings initialSettings;
public RaceBoardPerspectiveSettingsDialogComponent(RaceBoardPerspectiveSettings settings, StringMessages stringMessages) {
public RaceBoardPerspectiveSettingsDialogComponent(RaceBoardPerspectiveOwnSettings settings, StringMessages stringMessages) {
this.initialSettings = settings;
this.stringMessages = stringMessages;
}
@@ -42,18 +42,18 @@ public class RaceBoardPerspectiveSettingsDialogComponent implements SettingsDial
}
@Override
public RaceBoardPerspectiveSettings getResult() {
RaceBoardPerspectiveSettings result = new RaceBoardPerspectiveSettings(initialSettings.getActiveCompetitorsFilterSetName(),
public RaceBoardPerspectiveOwnSettings getResult() {
RaceBoardPerspectiveOwnSettings result = new RaceBoardPerspectiveOwnSettings(initialSettings.getActiveCompetitorsFilterSetName(),
showLeaderboardCheckBox.getValue(), showWindChartCheckBox.getValue(), showCompetitorsChartCheckBox.getValue(),
initialSettings.isCanReplayDuringLiveRaces(), initialSettings.getInitialDurationAfterRaceStartInReplay());
return result;
}
@Override
public Validator<RaceBoardPerspectiveSettings> getValidator() {
return new Validator<RaceBoardPerspectiveSettings>() {
public Validator<RaceBoardPerspectiveOwnSettings> getValidator() {
return new Validator<RaceBoardPerspectiveOwnSettings>() {
@Override
public String getErrorMessage(RaceBoardPerspectiveSettings valueToValidate) {
public String getErrorMessage(RaceBoardPerspectiveOwnSettings valueToValidate) {
String errorMessage = null;
return errorMessage;
}
@@ -31,24 +31,29 @@ import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
import com.sap.sailing.domain.common.dto.FleetDTO;
import com.sap.sailing.domain.common.dto.RaceColumnDTO;
import com.sap.sailing.domain.common.dto.RaceDTO;
import com.sap.sailing.gwt.settings.client.EntryPointWithSettingsLinkFactory;
import com.sap.sailing.gwt.settings.client.raceboard.RaceboardContextSettings;
import com.sap.sailing.gwt.ui.adminconsole.LeaderboardConfigPanel.AnchorCell;
import com.sap.sailing.gwt.ui.client.EntryPointLinkFactory;
import com.sap.sailing.gwt.ui.client.HasWelcomeWidget;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.client.shared.panels.WelcomeWidget;
import com.sap.sailing.gwt.ui.client.shared.racemap.RaceMapLifecycle;
import com.sap.sailing.gwt.ui.client.shared.racemap.RaceMapSettings;
import com.sap.sailing.gwt.ui.raceboard.RaceBoardPerspectiveSettings;
import com.sap.sailing.gwt.ui.raceboard.RaceBoardPerspectiveOwnSettings;
import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO;
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
import com.sap.sailing.gwt.ui.shared.SeriesDTO;
import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO;
import com.sap.sse.common.Color;
import com.sap.sse.common.Util;
import com.sap.sse.common.settings.Settings;
import com.sap.sse.gwt.client.ErrorReporter;
import com.sap.sse.gwt.client.celltable.BaseCelltable;
import com.sap.sse.gwt.client.player.Timer;
import com.sap.sse.gwt.client.player.Timer.PlayModes;
import com.sap.sse.gwt.client.shared.perspective.PerspectiveCompositeSettings;
public class LeaderboardGroupPanel extends SimplePanel implements HasWelcomeWidget {
@@ -97,7 +102,6 @@ public class LeaderboardGroupPanel extends SimplePanel implements HasWelcomeWidg
private final ErrorReporter errorReporter;
private LeaderboardGroupDTO leaderboardGroup;
private Map<String, RegattaDTO> regattasByName;
private final String root;
private final String viewMode;
private VerticalPanel mainPanel;
@@ -106,13 +110,11 @@ public class LeaderboardGroupPanel extends SimplePanel implements HasWelcomeWidg
private final boolean showRaceDetails;
private final boolean canReplayDuringLiveRaces;
private final boolean showMapControls;
private final boolean showNavigationPanel;
private final Timer timerForClientServerOffset;
public LeaderboardGroupPanel(SailingServiceAsync sailingService, StringMessages stringConstants,
ErrorReporter errorReporter, final String groupName, String root, String viewMode, boolean embedded,
boolean showRaceDetails, boolean canReplayDuringLiveRaces, boolean showMapControls,
boolean showNavigationPanel) {
boolean showRaceDetails, boolean canReplayDuringLiveRaces, boolean showMapControls) {
super();
this.isEmbedded = embedded;
this.showRaceDetails = showRaceDetails;
@@ -121,8 +123,6 @@ public class LeaderboardGroupPanel extends SimplePanel implements HasWelcomeWidg
this.sailingService = sailingService;
this.stringMessages = stringConstants;
this.errorReporter = errorReporter;
this.showNavigationPanel = showNavigationPanel;
this.root = (root == null || root.length() == 0) ? "leaderboardGroupPanel" : root;
this.viewMode = viewMode;
setWidth("95%");
regattasByName = new HashMap<String, RegattaDTO>();
@@ -405,7 +405,19 @@ public class LeaderboardGroupPanel extends SimplePanel implements HasWelcomeWidg
private void renderRaceLink(String leaderboardName, RaceDTO race, boolean isLive, String raceColumnName, SafeHtmlBuilder b) {
if (race != null) {
RegattaAndRaceIdentifier raceIdentifier = race.getRaceIdentifier();
String link = EntryPointLinkFactory.createRaceBoardLink(createRaceBoardLinkParameters(leaderboardName, raceIdentifier));
RaceboardContextSettings raceboardContext = new RaceboardContextSettings(raceIdentifier.getRegattaName(),
raceIdentifier.getRaceName(), leaderboardName, leaderboardGroup.getName(), null, viewMode);
RaceBoardPerspectiveOwnSettings perspectiveOwnSettings = new RaceBoardPerspectiveOwnSettings(null, null,
null, null, canReplayDuringLiveRaces, null);
HashMap<String, Settings> innerSettings = new HashMap<>();
innerSettings.put(RaceMapLifecycle.ID,
new RaceMapSettings(null, null, null, null, null, null, null, null, null, null, null, null,
showMapControls, null, null));
PerspectiveCompositeSettings<RaceBoardPerspectiveOwnSettings> settings = new PerspectiveCompositeSettings<>(
perspectiveOwnSettings, innerSettings);
String link = EntryPointWithSettingsLinkFactory.createRaceBoardLink(raceboardContext, settings);
if (isLive) {
b.append(getAnchor(link, raceColumnName, STYLE_LIVE_RACE));
} else if (race.trackedRace.hasGPSData && race.trackedRace.hasWindData) {
@@ -418,25 +430,6 @@ public class LeaderboardGroupPanel extends SimplePanel implements HasWelcomeWidg
}
}
private Map<String, String> createRaceBoardLinkParameters(String leaderboardName,
RegattaAndRaceIdentifier raceIdentifier) {
Map<String, String> linkParams = new HashMap<String, String>();
linkParams.put("leaderboardName", leaderboardName);
linkParams.put("raceName", raceIdentifier.getRaceName());
if (canReplayDuringLiveRaces) {
linkParams.put(RaceBoardPerspectiveSettings.PARAM_CAN_REPLAY_DURING_LIVE_RACES, "true");
}
linkParams.put(RaceMapSettings.PARAM_SHOW_MAPCONTROLS, Boolean.toString(showMapControls));
linkParams.put(RaceBoardPerspectiveSettings.PARAM_VIEW_SHOW_NAVIGATION_PANEL,
Boolean.toString(showNavigationPanel));
linkParams.put("regattaName", raceIdentifier.getRegattaName());
linkParams.put("leaderboardGroupName", leaderboardGroup.getName());
if (viewMode != null && !viewMode.isEmpty()) {
linkParams.put("viewMode", viewMode);
}
return linkParams;
}
private SafeHtml getAnchor(String link, String linkText, String style) {
if (isEmbedded) {
return ANCHORTEMPLATE.anchorWithTarget(link, linkText, style, "_blank");
@@ -15,7 +15,7 @@ import com.sap.sailing.gwt.ui.client.AbstractSailingEntryPoint;
import com.sap.sailing.gwt.ui.client.RegattaRefresher;
import com.sap.sailing.gwt.ui.client.shared.panels.SimpleWelcomeWidget;
import com.sap.sailing.gwt.ui.client.shared.racemap.RaceMapSettings;
import com.sap.sailing.gwt.ui.raceboard.RaceBoardPerspectiveSettings;
import com.sap.sailing.gwt.ui.raceboard.RaceBoardPerspectiveOwnSettings;
import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO;
import com.sap.sse.gwt.shared.GwtHttpRequestUtils;
@@ -33,11 +33,9 @@ public class SpectatorEntryPoint extends AbstractSailingEntryPoint implements Re
String groupParamValue = Window.Location.getParameter("leaderboardGroupName");
String viewModeParamValue = Window.Location.getParameter("viewMode");
final boolean canReplayDuringLiveRaces = GwtHttpRequestUtils.getBooleanParameter(
RaceBoardPerspectiveSettings.PARAM_CAN_REPLAY_DURING_LIVE_RACES, /* defaultValue */ false);
RaceBoardPerspectiveOwnSettings.PARAM_CAN_REPLAY_DURING_LIVE_RACES, /* defaultValue */ false);
final boolean showMapControls = GwtHttpRequestUtils.getBooleanParameter(
RaceMapSettings.PARAM_SHOW_MAPCONTROLS, /* defaultValue */ true);
final boolean showNavigationPanel = GwtHttpRequestUtils.getBooleanParameter(
RaceBoardPerspectiveSettings.PARAM_VIEW_SHOW_NAVIGATION_PANEL, true /* default */);
boolean showRaceDetails = Window.Location.getParameter("showRaceDetails") != null
&& Window.Location.getParameter("showRaceDetails").equalsIgnoreCase("true");
final String groupName;
@@ -77,7 +75,7 @@ public class SpectatorEntryPoint extends AbstractSailingEntryPoint implements Re
} else {
LeaderboardGroupPanel groupPanel = new LeaderboardGroupPanel(sailingService, getStringMessages(), this,
groupName, root, viewModeParamValue, embedded, showRaceDetails, canReplayDuringLiveRaces,
showMapControls, showNavigationPanel);
showMapControls);
groupAndFeedbackPanel.add(groupPanel);
if (!embedded) {
groupPanel.setWelcomeWidget(new SimpleWelcomeWidget(getStringMessages().welcomeToSailingAnalytics(),