diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/settings/client/EntryPointWithSettingsLinkFactory.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/settings/client/EntryPointWithSettingsLinkFactory.java index 981b1a8a04c..2e64b856e4b 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/settings/client/EntryPointWithSettingsLinkFactory.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/settings/client/EntryPointWithSettingsLinkFactory.java @@ -1,9 +1,15 @@ package com.sap.sailing.gwt.settings.client; +import java.util.Collections; + +import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardContextDefinition; +import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardPerspectiveOwnSettings; import com.sap.sailing.gwt.settings.client.raceboard.RaceBoardPerspectiveOwnSettings; import com.sap.sailing.gwt.settings.client.raceboard.RaceboardContextDefinition; import com.sap.sailing.gwt.settings.client.regattaoverview.RegattaOverviewContextDefinition; import com.sap.sailing.gwt.settings.client.regattaoverview.RegattaRaceStatesSettings; +import com.sap.sailing.gwt.ui.client.EntryPointLinkFactory; +import com.sap.sse.common.settings.Settings; 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; @@ -25,6 +31,15 @@ public class EntryPointWithSettingsLinkFactory extends AbstractEntryPointWithSet return new LinkWithSettingsGenerator<>("/gwt/RegattaOverview.html", regattaOverviewSettings, new IgnoreLocalSettings(true)).createUrl(regattaRaceStatesSettings); } + + public static String createLeaderboardLink(LeaderboardContextDefinition contextDefinition, LeaderboardPerspectiveOwnSettings perspectiveOwnSettings) { + final LinkWithSettingsGenerator linkWithSettingsGenerator = new LinkWithSettingsGenerator<>( + EntryPointLinkFactory.LEADERBOARD_PATH, + contextDefinition); + final PerspectiveCompositeSettings settings = new PerspectiveCompositeSettings( + perspectiveOwnSettings, Collections.emptyMap()); + return linkWithSettingsGenerator.createUrl(settings); + } public static String createRaceBoardLink(RaceboardContextDefinition ctx, PerspectiveCompositeSettings settings) { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/settings/client/leaderboard/LeaderboardContextDefinition.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/settings/client/leaderboard/LeaderboardContextDefinition.java index 5d7a445c5dc..6ac0f7104ee 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/settings/client/leaderboard/LeaderboardContextDefinition.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/settings/client/leaderboard/LeaderboardContextDefinition.java @@ -16,6 +16,11 @@ public class LeaderboardContextDefinition extends AbstractGenericSerializableSet public LeaderboardContextDefinition() { } + + public LeaderboardContextDefinition(String leaderboardName, String displayName, String leaderboardGroupName) { + this(leaderboardName, displayName); + this.leaderboardGroupName.setValue(leaderboardGroupName); + } public LeaderboardContextDefinition(String leaderboardName, String displayName) { this.leaderboardName.setValue(leaderboardName); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/settings/client/leaderboard/LeaderboardPerspectiveOwnSettings.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/settings/client/leaderboard/LeaderboardPerspectiveOwnSettings.java index bde9226169a..e3ef3435297 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/settings/client/leaderboard/LeaderboardPerspectiveOwnSettings.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/settings/client/leaderboard/LeaderboardPerspectiveOwnSettings.java @@ -24,18 +24,22 @@ public class LeaderboardPerspectiveOwnSettings extends AbstractGenericSerializab public LeaderboardPerspectiveOwnSettings(boolean showRaceDetails) { this.showRaceDetails.setValue(showRaceDetails); } + + public LeaderboardPerspectiveOwnSettings(boolean showRaceDetails, boolean embedded) { + this(showRaceDetails); + this.embedded.setValue(embedded); + } LeaderboardPerspectiveOwnSettings(boolean showRaceDetails, boolean hideToolbar, boolean autoExpandLastRaceColumn, boolean showCharts, boolean showOverallLeaderboard, boolean showSeriesLeaderboards, String zoomTo, boolean embedded, boolean lifeplay) { - this(showRaceDetails); + this(showRaceDetails, embedded); this.hideToolbar.setValue(hideToolbar); this.autoExpandLastRaceColumn.setValue(autoExpandLastRaceColumn); this.showCharts.setValue(showCharts); this.showOverallLeaderboard.setValue(showOverallLeaderboard); this.showSeriesLeaderboards.setValue(showSeriesLeaderboards); this.zoomTo.setValue(zoomTo); - this.embedded.setValue(embedded); this.livePlay.setValue(lifeplay); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardConfigPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardConfigPanel.java index 2de604a91fa..152936e71cc 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardConfigPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardConfigPanel.java @@ -36,6 +36,7 @@ import com.sap.sailing.domain.common.dto.AbstractLeaderboardDTO; import com.sap.sailing.domain.common.dto.CompetitorDTO; import com.sap.sailing.domain.common.dto.FleetDTO; import com.sap.sailing.domain.common.dto.RaceColumnDTO; +import com.sap.sailing.gwt.settings.client.EntryPointWithSettingsLinkFactory; import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardContextDefinition; import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardPerspectiveOwnSettings; import com.sap.sailing.gwt.ui.adminconsole.DisablableCheckboxCell.IsEnabled; @@ -54,13 +55,10 @@ import com.sap.sailing.gwt.ui.shared.EventDTO; import com.sap.sailing.gwt.ui.shared.RaceLogSetStartTimeAndProcedureDTO; import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO; import com.sap.sse.common.Util; -import com.sap.sse.common.settings.Settings; import com.sap.sse.common.util.NaturalComparator; import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.async.MarkedAsyncCallback; import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; -import com.sap.sse.gwt.client.shared.components.LinkWithSettingsGenerator; -import com.sap.sse.gwt.client.shared.perspective.PerspectiveCompositeSettings; public class LeaderboardConfigPanel extends AbstractLeaderboardConfigPanel implements SelectedLeaderboardProvider, RegattasDisplayer, TrackedRaceChangedListener, LeaderboardsDisplayer { @@ -141,14 +139,10 @@ TrackedRaceChangedListener, LeaderboardsDisplayer { Column linkColumn = new Column(anchorCell) { @Override public SafeHtml getValue(StrippedLeaderboardDTO object) { - final LinkWithSettingsGenerator linkWithSettingsGenerator = new LinkWithSettingsGenerator<>( - EntryPointLinkFactory.LEADERBOARD_PATH, - new LeaderboardContextDefinition(object.name, object.displayName)); - LeaderboardPerspectiveOwnSettings perspectiveOwnSettings = new LeaderboardPerspectiveOwnSettings( - showRaceDetails); - final PerspectiveCompositeSettings settings = new PerspectiveCompositeSettings( - perspectiveOwnSettings, Collections.emptyMap()); - return ANCHORTEMPLATE.cell(linkWithSettingsGenerator.createUrl(settings), object.name); + final String link = EntryPointWithSettingsLinkFactory.createLeaderboardLink( + new LeaderboardContextDefinition(object.name, object.displayName), + new LeaderboardPerspectiveOwnSettings(showRaceDetails)); + return ANCHORTEMPLATE.cell(link, object.name); } }; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/EntryPointLinkFactory.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/EntryPointLinkFactory.java index 18a9f929607..f10278e0dc6 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/EntryPointLinkFactory.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/EntryPointLinkFactory.java @@ -12,10 +12,6 @@ public class EntryPointLinkFactory extends AbstractEntryPointLinkFactory { public static String createSimulatorLink(Map parameters) { return createEntryPointLink("/gwt/Simulator.html", parameters); } - - public static String createLeaderboardLink(Map parameters) { - return createEntryPointLink(LEADERBOARD_PATH, parameters); - } public static String createLeaderboardEditingLink(Map parameters) { return createEntryPointLink("/gwt/LeaderboardEditing.html", parameters); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/spectator/LeaderboardGroupPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/spectator/LeaderboardGroupPanel.java index 84c52c0fb5c..a29f0f68b5d 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/spectator/LeaderboardGroupPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/spectator/LeaderboardGroupPanel.java @@ -32,10 +32,11 @@ 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.leaderboard.LeaderboardContextDefinition; +import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardPerspectiveOwnSettings; import com.sap.sailing.gwt.settings.client.raceboard.RaceBoardPerspectiveOwnSettings; import com.sap.sailing.gwt.settings.client.raceboard.RaceboardContextDefinition; 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; @@ -207,7 +208,11 @@ public class LeaderboardGroupPanel extends SimplePanel implements HasWelcomeWidg flexTable.setWidget(0, 1, legendPanel); if (leaderboardGroup.hasOverallLeaderboard()) { - String link = EntryPointLinkFactory.createLeaderboardLink(createOverallLeaderboardLinkParameters()); + final String link = EntryPointWithSettingsLinkFactory.createLeaderboardLink( + new LeaderboardContextDefinition( + leaderboardGroup.getName() + " " + LeaderboardNameConstants.OVERALL, + stringMessages.overallStandings(), leaderboardGroup.getName()), + new LeaderboardPerspectiveOwnSettings(showRaceDetails, isEmbedded)); Anchor overallStandingsLink = new Anchor(stringMessages.overallStandings(), true, link); overallStandingsLink.setStyleName(STYLE_ACTIVE_LEADERBOARD); overallStandingsLink.addStyleName("overallStandings"); @@ -231,7 +236,10 @@ public class LeaderboardGroupPanel extends SimplePanel implements HasWelcomeWidg nameAnchorCell) { @Override public SafeHtml getValue(StrippedLeaderboardDTO leaderboard) { - String link = EntryPointLinkFactory.createLeaderboardLink(createLeaderboardLinkParameters(leaderboard)); + final String link = EntryPointWithSettingsLinkFactory.createLeaderboardLink( + new LeaderboardContextDefinition(leaderboard.name, leaderboard.displayName, + leaderboardGroup.getName()), + new LeaderboardPerspectiveOwnSettings(showRaceDetails, isEmbedded)); return getAnchor(link, stringMessages.leaderboard(), STYLE_ACTIVE_LEADERBOARD); } }; @@ -263,36 +271,6 @@ public class LeaderboardGroupPanel extends SimplePanel implements HasWelcomeWidg flexTable.getFlexCellFormatter().setColSpan(1, 0,2); } - private Map createOverallLeaderboardLinkParameters() { - Map linkParams = new HashMap(); - linkParams.put("name", leaderboardGroup.getName() + " " + LeaderboardNameConstants.OVERALL); - if (showRaceDetails) { - linkParams.put("showRaceDetails", "true"); - } - if (isEmbedded) { - linkParams.put("embedded", "true"); - } - linkParams.put("displayName", stringMessages.overallStandings()); - linkParams.put("leaderboardGroupName", leaderboardGroup.getName()); - return linkParams; - } - - private Map createLeaderboardLinkParameters(StrippedLeaderboardDTO leaderboard) { - Map linkParams = new HashMap(); - linkParams.put("name", leaderboard.name); - if (showRaceDetails) { - linkParams.put("showRaceDetails", "true"); - } - if (isEmbedded) { - linkParams.put("embedded", "true"); - } - if (leaderboard.displayName != null) { - linkParams.put("displayName", leaderboard.displayName); - } - linkParams.put("leaderboardGroupName", leaderboardGroup.getName()); - return linkParams; - } - private HorizontalPanel createLegendPanel() { HorizontalPanel legendPanel = new HorizontalPanel(); legendPanel.setStyleName(STYLE_LEGEND);