Creating Leaderboard.html links only using Settings objects instead of

String Maps
This commit is contained in:
Steffen Schaefer committed 2017-02-23 15:29:57 +01:00
1 parent 38f7588d30
commit fbacf4546c
6 files changed
+42 -50

No files matched your search

@@ -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<Settings> linkWithSettingsGenerator = new LinkWithSettingsGenerator<>(
EntryPointLinkFactory.LEADERBOARD_PATH,
contextDefinition);
final PerspectiveCompositeSettings<LeaderboardPerspectiveOwnSettings> settings = new PerspectiveCompositeSettings<LeaderboardPerspectiveOwnSettings>(
perspectiveOwnSettings, Collections.emptyMap());
return linkWithSettingsGenerator.createUrl(settings);
}
public static String createRaceBoardLink(RaceboardContextDefinition ctx,
PerspectiveCompositeSettings<RaceBoardPerspectiveOwnSettings> settings) {
@@ -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);
@@ -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);
}
@@ -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<StrippedLeaderboardDTO, SafeHtml> linkColumn = new Column<StrippedLeaderboardDTO, SafeHtml>(anchorCell) {
@Override
public SafeHtml getValue(StrippedLeaderboardDTO object) {
final LinkWithSettingsGenerator<Settings> linkWithSettingsGenerator = new LinkWithSettingsGenerator<>(
EntryPointLinkFactory.LEADERBOARD_PATH,
new LeaderboardContextDefinition(object.name, object.displayName));
LeaderboardPerspectiveOwnSettings perspectiveOwnSettings = new LeaderboardPerspectiveOwnSettings(
showRaceDetails);
final PerspectiveCompositeSettings<LeaderboardPerspectiveOwnSettings> settings = new PerspectiveCompositeSettings<LeaderboardPerspectiveOwnSettings>(
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);
}
};
@@ -12,10 +12,6 @@ public class EntryPointLinkFactory extends AbstractEntryPointLinkFactory {
public static String createSimulatorLink(Map<String, String> parameters) {
return createEntryPointLink("/gwt/Simulator.html", parameters);
}
public static String createLeaderboardLink(Map<String, String> parameters) {
return createEntryPointLink(LEADERBOARD_PATH, parameters);
}
public static String createLeaderboardEditingLink(Map<String, String> parameters) {
return createEntryPointLink("/gwt/LeaderboardEditing.html", parameters);
@@ -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<String, String> createOverallLeaderboardLinkParameters() {
Map<String, String> linkParams = new HashMap<String, String>();
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<String, String> createLeaderboardLinkParameters(StrippedLeaderboardDTO leaderboard) {
Map<String, String> linkParams = new HashMap<String, String>();
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);