mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-22 12:03:58 +00:00
settings and livecycle seperation preparation
This commit is contained in:
1 parent
3516408fa0
commit
6ae04f0935
47 files changed
+708
-450
No files matched your search
+2
-2
@@ -3,7 +3,7 @@ package com.sap.sailing.gwt.ui.test;
|
||||
import com.sap.sailing.domain.common.dto.LeaderboardDTO;
|
||||
import com.sap.sailing.domain.common.dto.LeaderboardRowDTO;
|
||||
import com.sap.sailing.domain.common.dto.RaceColumnDTO;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardSettings;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.MultiRaceLeaderboardSettings;
|
||||
import com.sap.sailing.gwt.ui.client.CompetitorSelectionModel;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
@@ -18,7 +18,7 @@ public class LeaderboardPanelMock extends MultiRaceLeaderboardPanel {
|
||||
public LeaderboardPanelMock(SailingServiceAsync sailingService,
|
||||
String leaderboardName, ErrorReporter errorReporter,
|
||||
StringMessages stringMessages) {
|
||||
super(null, null, sailingService, new AsyncActionsExecutor(), new LeaderboardSettings(),
|
||||
super(null, null, sailingService, new AsyncActionsExecutor(), new MultiRaceLeaderboardSettings(),
|
||||
new CompetitorSelectionModel(
|
||||
/* hasMultiSelection */true),
|
||||
leaderboardName, errorReporter, stringMessages, /* showRaceDetails */ true);
|
||||
|
||||
+4
-4
@@ -2,7 +2,7 @@ package com.sap.sailing.gwt.autoplay.client.shared.leaderboard;
|
||||
|
||||
import com.sap.sailing.domain.common.dto.AbstractLeaderboardDTO;
|
||||
import com.sap.sailing.gwt.autoplay.client.shared.header.SAPHeaderComponentLifecycle;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardPanelLifecycle;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.MultiRaceLeaderboardPanelLifecycle;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sse.gwt.client.shared.components.SettingsDialogComponent;
|
||||
import com.sap.sse.gwt.client.shared.perspective.AbstractPerspectiveLifecycle;
|
||||
@@ -14,14 +14,14 @@ import com.sap.sse.gwt.client.shared.perspective.AbstractPerspectiveLifecycle;
|
||||
public class LeaderboardWithHeaderPerspectiveLifecycle extends AbstractPerspectiveLifecycle<LeaderboardWithHeaderPerspectiveSettings> {
|
||||
|
||||
private final SAPHeaderComponentLifecycle sapHeaderLifecycle;
|
||||
private final LeaderboardPanelLifecycle leaderboardPanelLifecycle;
|
||||
private final MultiRaceLeaderboardPanelLifecycle leaderboardPanelLifecycle;
|
||||
private final StringMessages stringMessages;
|
||||
|
||||
public static final String ID = "lbwh";
|
||||
|
||||
public LeaderboardWithHeaderPerspectiveLifecycle(AbstractLeaderboardDTO leaderboard, StringMessages stringMessages) {
|
||||
this.stringMessages = stringMessages;
|
||||
this.leaderboardPanelLifecycle = new LeaderboardPanelLifecycle(leaderboard, stringMessages);
|
||||
this.leaderboardPanelLifecycle = new MultiRaceLeaderboardPanelLifecycle(leaderboard, stringMessages);
|
||||
this.sapHeaderLifecycle = new SAPHeaderComponentLifecycle(stringMessages.leaderboard() + ": " +
|
||||
(leaderboard.getDisplayName() == null ? leaderboard.name : leaderboard.getDisplayName()),
|
||||
stringMessages);
|
||||
@@ -54,7 +54,7 @@ public class LeaderboardWithHeaderPerspectiveLifecycle extends AbstractPerspecti
|
||||
return sapHeaderLifecycle;
|
||||
}
|
||||
|
||||
public LeaderboardPanelLifecycle getLeaderboardPanelLifecycle() {
|
||||
public MultiRaceLeaderboardPanelLifecycle getLeaderboardPanelLifecycle() {
|
||||
return leaderboardPanelLifecycle;
|
||||
}
|
||||
|
||||
|
||||
+8
-9
@@ -15,14 +15,13 @@ import com.sap.sailing.gwt.autoplay.client.shared.header.SAPHeaderComponentSetti
|
||||
import com.sap.sailing.gwt.autoplay.client.shared.oldleaderboard.OldLeaderboard;
|
||||
import com.sap.sailing.gwt.common.client.CSS3Util;
|
||||
import com.sap.sailing.gwt.common.client.FullscreenUtil;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardPanelLifecycle;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardSettings;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.MultiRaceLeaderboardPanelLifecycle;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.MultiRaceLeaderboardSettings;
|
||||
import com.sap.sailing.gwt.ui.client.CompetitorSelectionProvider;
|
||||
import com.sap.sailing.gwt.ui.client.LeaderboardUpdateListener;
|
||||
import com.sap.sailing.gwt.ui.client.LeaderboardUpdateProvider;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.MultiRaceLeaderboardPanel;
|
||||
import com.sap.sse.gwt.client.ErrorReporter;
|
||||
import com.sap.sse.gwt.client.async.AsyncActionsExecutor;
|
||||
@@ -45,7 +44,7 @@ public class MultiRaceLeaderboardWithHeaderPerspective extends AbstractPerspecti
|
||||
private final DockLayoutPanel dockPanel;
|
||||
private final static int SAP_HEADER_HEIGHT = 75;
|
||||
private final Widget currentContentWidget;
|
||||
private final LeaderboardPanel leaderboardPanel;
|
||||
private final MultiRaceLeaderboardPanel leaderboardPanel;
|
||||
private final StringMessages stringMessages;
|
||||
|
||||
public MultiRaceLeaderboardWithHeaderPerspective(Component<?> parent,
|
||||
@@ -193,18 +192,18 @@ public class MultiRaceLeaderboardWithHeaderPerspective extends AbstractPerspecti
|
||||
withFullscreenButton);
|
||||
}
|
||||
|
||||
private LeaderboardPanel createLeaderboardPanel(LeaderboardWithHeaderPerspectiveLifecycle lifecycle,
|
||||
private MultiRaceLeaderboardPanel createLeaderboardPanel(LeaderboardWithHeaderPerspectiveLifecycle lifecycle,
|
||||
PerspectiveCompositeSettings<LeaderboardWithHeaderPerspectiveSettings> settings,
|
||||
SailingServiceAsync sailingService, AsyncActionsExecutor asyncActionsExecutor,
|
||||
CompetitorSelectionProvider competitorSelectionProvider, Timer timer,
|
||||
String leaderboardName, final ErrorReporter errorReporter, final StringMessages stringMessages) {
|
||||
LeaderboardPanelLifecycle leaderboardPanelLifecycle = getPerspectiveLifecycle().getLeaderboardPanelLifecycle();
|
||||
LeaderboardSettings leaderboardSettings = settings
|
||||
MultiRaceLeaderboardPanelLifecycle leaderboardPanelLifecycle = getPerspectiveLifecycle().getLeaderboardPanelLifecycle();
|
||||
MultiRaceLeaderboardSettings leaderboardSettings = settings
|
||||
.findSettingsByComponentId(leaderboardPanelLifecycle.getComponentId());
|
||||
|
||||
LeaderboardPanel leaderboardPanel = new MultiRaceLeaderboardPanel(this, getComponentContext(), sailingService,
|
||||
MultiRaceLeaderboardPanel leaderboardPanel = new MultiRaceLeaderboardPanel(this, getComponentContext(), sailingService,
|
||||
asyncActionsExecutor,
|
||||
leaderboardSettings, /*isEmbedded*/true, /* preSelectedRace */null,
|
||||
leaderboardSettings, /*isEmbedded*/true,
|
||||
competitorSelectionProvider, timer, /* leaderboardGroupName */"",
|
||||
leaderboardName, errorReporter, stringMessages,
|
||||
/* showRaceDetails */false, /* competitorSearchTextBox */ null, /* showRegattaRank */
|
||||
|
||||
+2
-2
@@ -23,7 +23,7 @@ import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.domain.common.dto.LeaderboardDTO;
|
||||
import com.sap.sailing.gwt.home.desktop.partials.old.EventRegattaLeaderboardResources;
|
||||
import com.sap.sailing.gwt.home.desktop.partials.old.LeaderboardDelegate;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardSettings;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.MultiRaceLeaderboardSettings;
|
||||
import com.sap.sailing.gwt.ui.client.DebugIdHelper;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.common.client.DateAndTimeFormatterUtil;
|
||||
@@ -160,7 +160,7 @@ public class OldMultiLeaderboard extends Composite implements SelectedLeaderboar
|
||||
final String componentName = multiLeaderboardPanel.getLocalizedShortName();
|
||||
final String debugIdPrefix = DebugIdHelper.createDebugId(componentName);
|
||||
|
||||
SettingsDialog<?> dialog = new SettingsDialog<LeaderboardSettings>(multiLeaderboardPanel, StringMessages.INSTANCE) {
|
||||
SettingsDialog<?> dialog = new SettingsDialog<MultiRaceLeaderboardSettings>(multiLeaderboardPanel, StringMessages.INSTANCE) {
|
||||
protected Widget getAdditionalWidget() {
|
||||
Widget additionalWidget = super.getAdditionalWidget();
|
||||
if (!oldMultiLeaderboardPanel.getElement().isOrHasChild(multiLeaderboardPanel.getElement())) {
|
||||
|
||||
+6
-8
@@ -1,15 +1,13 @@
|
||||
package com.sap.sailing.gwt.home.desktop.places.event.regatta;
|
||||
|
||||
import com.sap.sailing.domain.common.DetailType;
|
||||
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardSettings;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.MultiCompetitorLeaderboardChartSettings;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.MultiRaceLeaderboardSettings;
|
||||
import com.sap.sailing.gwt.ui.client.CompetitorSelectionModel;
|
||||
import com.sap.sailing.gwt.ui.client.DebugIdHelper;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.charts.MultiCompetitorLeaderboardChart;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.MultiRaceLeaderboardPanel;
|
||||
import com.sap.sse.common.settings.Settings;
|
||||
import com.sap.sse.gwt.client.ErrorReporter;
|
||||
@@ -25,7 +23,7 @@ import com.sap.sse.gwt.client.shared.settings.ComponentContext;
|
||||
* @author Frank Mittag (c163874)
|
||||
*/
|
||||
public class RegattaAnalyticsDataManager {
|
||||
private LeaderboardPanel leaderboardPanel;
|
||||
private MultiRaceLeaderboardPanel leaderboardPanel;
|
||||
private MultiCompetitorLeaderboardChart multiCompetitorChart;
|
||||
|
||||
private final CompetitorSelectionModel competitorSelectionProvider;
|
||||
@@ -45,15 +43,15 @@ public class RegattaAnalyticsDataManager {
|
||||
this.multiCompetitorChart = null;
|
||||
}
|
||||
|
||||
public LeaderboardPanel createMultiRaceLeaderboardPanel(Component<?> parent, ComponentContext<?> context,
|
||||
final LeaderboardSettings leaderboardSettings, final RegattaAndRaceIdentifier preselectedRace,
|
||||
public MultiRaceLeaderboardPanel createMultiRaceLeaderboardPanel(Component<?> parent, ComponentContext<?> context,
|
||||
final MultiRaceLeaderboardSettings leaderboardSettings,
|
||||
final String leaderboardGroupName, String leaderboardName, boolean showRaceDetails,
|
||||
boolean autoExpandLastRaceColumn) {
|
||||
if (leaderboardPanel == null) {
|
||||
leaderboardPanel = new MultiRaceLeaderboardPanel(parent, context, sailingService,
|
||||
asyncActionsExecutor,
|
||||
leaderboardSettings,
|
||||
true, preselectedRace,
|
||||
true,
|
||||
competitorSelectionProvider, timer, leaderboardGroupName, leaderboardName, errorReporter,
|
||||
StringMessages.INSTANCE, showRaceDetails, /* competitorSearchTextBox */ null,
|
||||
/* showSelectionCheckbox */ true, /* raceTimesInfoProvider */ null, autoExpandLastRaceColumn,
|
||||
@@ -72,7 +70,7 @@ public class RegattaAnalyticsDataManager {
|
||||
return multiCompetitorChart;
|
||||
}
|
||||
|
||||
public LeaderboardPanel getLeaderboardPanel() {
|
||||
public MultiRaceLeaderboardPanel getLeaderboardPanel() {
|
||||
return leaderboardPanel;
|
||||
}
|
||||
|
||||
|
||||
+11
-12
@@ -4,13 +4,13 @@ import com.google.gwt.event.logical.shared.AttachEvent;
|
||||
import com.google.gwt.event.logical.shared.AttachEvent.Handler;
|
||||
import com.google.gwt.user.client.ui.Composite;
|
||||
import com.sap.sailing.gwt.home.desktop.places.Consumer;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardPanelLifecycle;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardSettings;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardUrlSettings;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.MultiRaceLeaderboardPanelLifecycle;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.MultiRaceLeaderboardSettings;
|
||||
import com.sap.sailing.gwt.settings.client.utils.StoredSettingsLocationFactory;
|
||||
import com.sap.sailing.gwt.ui.client.LeaderboardUpdateListener;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.MultiRaceLeaderboardPanel;
|
||||
import com.sap.sse.gwt.client.mutationobserver.ElementSizeMutationObserver;
|
||||
import com.sap.sse.gwt.client.mutationobserver.ElementSizeMutationObserver.DomMutationCallback;
|
||||
import com.sap.sse.gwt.client.shared.settings.ComponentContext;
|
||||
@@ -31,20 +31,19 @@ public abstract class SharedLeaderboardRegattaTabView<T extends AbstractEventReg
|
||||
}
|
||||
|
||||
public void createSharedLeaderboardPanel(String leaderboardName, RegattaAnalyticsDataManager regattaAnalyticsManager, UserService userService,
|
||||
String placeToken, final Consumer<LeaderboardPanel> consumer) {
|
||||
String placeToken, final Consumer<MultiRaceLeaderboardPanel> consumer) {
|
||||
|
||||
// FIXME remove
|
||||
boolean autoExpandLastRaceColumn = GwtHttpRequestUtils.getBooleanParameter(
|
||||
LeaderboardUrlSettings.PARAM_AUTO_EXPAND_LAST_RACE_COLUMN, false);
|
||||
|
||||
final ComponentContext<LeaderboardSettings> componentContext = createLeaderboardComponentContext(leaderboardName, userService,
|
||||
final ComponentContext<MultiRaceLeaderboardSettings> componentContext = createLeaderboardComponentContext(leaderboardName, userService,
|
||||
placeToken);
|
||||
componentContext.getInitialSettings(new DefaultOnSettingsLoadedCallback<LeaderboardSettings>() {
|
||||
componentContext.getInitialSettings(new DefaultOnSettingsLoadedCallback<MultiRaceLeaderboardSettings>() {
|
||||
@Override
|
||||
public void onSuccess(LeaderboardSettings leaderboardSettings) {
|
||||
final LeaderboardPanel leaderboardPanel = regattaAnalyticsManager.createMultiRaceLeaderboardPanel(null, componentContext, //
|
||||
public void onSuccess(MultiRaceLeaderboardSettings leaderboardSettings) {
|
||||
final MultiRaceLeaderboardPanel leaderboardPanel = regattaAnalyticsManager.createMultiRaceLeaderboardPanel(null, componentContext, //
|
||||
leaderboardSettings, //
|
||||
null, //
|
||||
"leaderboardGroupName", // TODO: keep using magic string? ask frank!
|
||||
leaderboardName, //
|
||||
true,
|
||||
@@ -78,12 +77,12 @@ public abstract class SharedLeaderboardRegattaTabView<T extends AbstractEventReg
|
||||
});
|
||||
}
|
||||
|
||||
protected ComponentContext<LeaderboardSettings> createLeaderboardComponentContext(String leaderboardName, UserService userService,
|
||||
protected ComponentContext<MultiRaceLeaderboardSettings> createLeaderboardComponentContext(String leaderboardName, UserService userService,
|
||||
String placeToken) {
|
||||
final LeaderboardPanelLifecycle lifecycle = new LeaderboardPanelLifecycle(null, StringMessages.INSTANCE);
|
||||
final MultiRaceLeaderboardPanelLifecycle lifecycle = new MultiRaceLeaderboardPanelLifecycle(null, StringMessages.INSTANCE);
|
||||
final StoredSettingsLocation storageDefinition = StoredSettingsLocationFactory.createStoredSettingsLocatorForEventRegattaLeaderboard(leaderboardName);
|
||||
|
||||
final ComponentContext<LeaderboardSettings> componentContext = new PlaceBasedComponentContextWithSettingsStorage<>(
|
||||
final ComponentContext<MultiRaceLeaderboardSettings> componentContext = new PlaceBasedComponentContextWithSettingsStorage<>(
|
||||
lifecycle, userService, storageDefinition, placeToken);
|
||||
return componentContext;
|
||||
}
|
||||
|
||||
+3
-3
@@ -29,7 +29,7 @@ import com.sap.sailing.gwt.ui.client.CompetitorSelectionChangeListener;
|
||||
import com.sap.sailing.gwt.ui.client.CompetitorSelectionModel;
|
||||
import com.sap.sailing.gwt.ui.client.LeaderboardUpdateProvider;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.MultiRaceLeaderboardPanel;
|
||||
import com.sap.sse.common.Util;
|
||||
|
||||
/**
|
||||
@@ -96,9 +96,9 @@ public class RegattaCompetitorAnalyticsTabView extends SharedLeaderboardRegattaT
|
||||
}
|
||||
};
|
||||
if(regattaAnalyticsManager.getLeaderboardPanel() == null) {
|
||||
createSharedLeaderboardPanel(leaderboardName, regattaAnalyticsManager, currentPresenter.getUserService(), null, new Consumer<LeaderboardPanel>() {
|
||||
createSharedLeaderboardPanel(leaderboardName, regattaAnalyticsManager, currentPresenter.getUserService(), null, new Consumer<MultiRaceLeaderboardPanel>() {
|
||||
@Override
|
||||
public void consume(LeaderboardPanel object) {
|
||||
public void consume(MultiRaceLeaderboardPanel object) {
|
||||
callback.run();
|
||||
}
|
||||
});
|
||||
|
||||
+7
-7
@@ -29,10 +29,10 @@ import com.sap.sailing.gwt.home.shared.partials.placeholder.InfoPlaceholder;
|
||||
import com.sap.sailing.gwt.home.shared.refresh.RefreshManager;
|
||||
import com.sap.sailing.gwt.home.shared.refresh.RefreshManagerWithErrorAndBusy;
|
||||
import com.sap.sailing.gwt.home.shared.refresh.RefreshableWidget;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardSettings;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.MultiRaceLeaderboardSettings;
|
||||
import com.sap.sailing.gwt.ui.client.LeaderboardUpdateProvider;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.MultiRaceLeaderboardPanel;
|
||||
import com.sap.sse.gwt.client.shared.settings.DefaultOnSettingsLoadedCallback;
|
||||
import com.sap.sse.gwt.dispatch.shared.commands.CollectionResult;
|
||||
|
||||
@@ -88,10 +88,10 @@ public class RegattaLeaderboardTabView extends SharedLeaderboardRegattaTabView<R
|
||||
if (regattaId != null && !regattaId.isEmpty()) {
|
||||
String leaderboardName = regattaId;
|
||||
RegattaAnalyticsDataManager regattaAnalyticsManager = currentPresenter.getCtx().getRegattaAnalyticsManager();
|
||||
LeaderboardPanel leaderboardPanel = regattaAnalyticsManager.getLeaderboardPanel();
|
||||
final Consumer<LeaderboardPanel> leaderboardConsumer = new Consumer<LeaderboardPanel>() {
|
||||
MultiRaceLeaderboardPanel leaderboardPanel = regattaAnalyticsManager.getLeaderboardPanel();
|
||||
final Consumer<MultiRaceLeaderboardPanel> leaderboardConsumer = new Consumer<MultiRaceLeaderboardPanel>() {
|
||||
@Override
|
||||
public void consume(LeaderboardPanel leaderboardPanel) {
|
||||
public void consume(MultiRaceLeaderboardPanel leaderboardPanel) {
|
||||
leaderboardUpdateProvider = leaderboardPanel;
|
||||
leaderboardUpdateProvider.addLeaderboardUpdateListener(RegattaLeaderboardTabView.this);
|
||||
OldLeaderboardDelegateFullscreenViewer leaderboardDelegate = new OldLeaderboardDelegateFullscreenViewer();
|
||||
@@ -123,9 +123,9 @@ public class RegattaLeaderboardTabView extends SharedLeaderboardRegattaTabView<R
|
||||
} else if( /*FIXME placeToken not empty */ false) {
|
||||
createLeaderboardComponentContext(leaderboardName, currentPresenter.getUserService(),
|
||||
/* FIXME placeToken */ null)
|
||||
.getInitialSettings(new DefaultOnSettingsLoadedCallback<LeaderboardSettings>() {
|
||||
.getInitialSettings(new DefaultOnSettingsLoadedCallback<MultiRaceLeaderboardSettings>() {
|
||||
@Override
|
||||
public void onSuccess(LeaderboardSettings settings) {
|
||||
public void onSuccess(MultiRaceLeaderboardSettings settings) {
|
||||
leaderboardPanel.updateSettings(settings);
|
||||
leaderboardConsumer.consume(leaderboardPanel);
|
||||
}
|
||||
|
||||
+9
-12
@@ -5,18 +5,15 @@ import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import com.sap.sailing.domain.common.DetailType;
|
||||
import com.sap.sailing.domain.common.RaceIdentifier;
|
||||
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
|
||||
import com.sap.sailing.domain.common.dto.CompetitorDTO;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardSettings;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.MultiCompetitorLeaderboardChartSettings;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.MultiRaceLeaderboardSettings;
|
||||
import com.sap.sailing.gwt.ui.client.CompetitorSelectionChangeListener;
|
||||
import com.sap.sailing.gwt.ui.client.CompetitorSelectionModel;
|
||||
import com.sap.sailing.gwt.ui.client.DebugIdHelper;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.charts.MultiCompetitorLeaderboardChart;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.MultiLeaderboardProxyPanel;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.MultiRaceLeaderboardPanel;
|
||||
import com.sap.sse.common.Util;
|
||||
@@ -36,7 +33,7 @@ import com.sap.sse.gwt.client.shared.settings.ComponentContext;
|
||||
* @author Axel Uhl (d043530)
|
||||
*/
|
||||
public class EventSeriesAnalyticsDataManager {
|
||||
private LeaderboardPanel overallLeaderboardPanel;
|
||||
private MultiRaceLeaderboardPanel overallLeaderboardPanel;
|
||||
private MultiCompetitorLeaderboardChart multiCompetitorChart;
|
||||
private MultiLeaderboardProxyPanel multiLeaderboardPanel;
|
||||
|
||||
@@ -58,13 +55,13 @@ public class EventSeriesAnalyticsDataManager {
|
||||
this.multiCompetitorChart = null;
|
||||
}
|
||||
|
||||
public LeaderboardPanel createMultiRaceOverallLeaderboardPanel(Component<?> parent, ComponentContext<?> context,
|
||||
final LeaderboardSettings leaderboardSettings, final RegattaAndRaceIdentifier preselectedRace,
|
||||
public MultiRaceLeaderboardPanel createMultiRaceOverallLeaderboardPanel(Component<?> parent, ComponentContext<?> context,
|
||||
final MultiRaceLeaderboardSettings leaderboardSettings,
|
||||
final String leaderboardGroupName, String leaderboardName, boolean showRaceDetails,
|
||||
boolean autoExpandLastRaceColumn) {
|
||||
if(overallLeaderboardPanel == null) {
|
||||
overallLeaderboardPanel = new MultiRaceLeaderboardPanel(parent, context, sailingService, asyncActionsExecutor,
|
||||
leaderboardSettings, true, preselectedRace,
|
||||
leaderboardSettings, true,
|
||||
competitorSelectionProvider, timer, leaderboardGroupName, leaderboardName, errorReporter,
|
||||
StringMessages.INSTANCE, showRaceDetails, /* competitorSearchTextBox */ null,
|
||||
/* showSelectionCheckbox */ true,
|
||||
@@ -88,13 +85,13 @@ public class EventSeriesAnalyticsDataManager {
|
||||
}
|
||||
|
||||
public MultiLeaderboardProxyPanel createMultiLeaderboardPanel(Component<?> parent, ComponentContext<?> context,
|
||||
LeaderboardSettings leaderboardSettings,
|
||||
String preselectedLeaderboardName, RaceIdentifier preselectedRace, String leaderboardGroupName,
|
||||
MultiRaceLeaderboardSettings leaderboardSettings,
|
||||
String preselectedLeaderboardName, String leaderboardGroupName,
|
||||
String metaLeaderboardName, boolean showRaceDetails, boolean autoExpandLastRaceColumn) {
|
||||
if(multiLeaderboardPanel == null) {
|
||||
multiLeaderboardPanel = new MultiLeaderboardProxyPanel(parent, context, sailingService, metaLeaderboardName,
|
||||
asyncActionsExecutor, timer, true /* isEmbedded */,
|
||||
preselectedLeaderboardName, preselectedRace, errorReporter, StringMessages.INSTANCE,
|
||||
preselectedLeaderboardName, errorReporter, StringMessages.INSTANCE,
|
||||
showRaceDetails, autoExpandLastRaceColumn, leaderboardSettings);
|
||||
}
|
||||
return multiLeaderboardPanel;
|
||||
@@ -104,7 +101,7 @@ public class EventSeriesAnalyticsDataManager {
|
||||
return multiLeaderboardPanel;
|
||||
}
|
||||
|
||||
public LeaderboardPanel getLeaderboardPanel() {
|
||||
public MultiRaceLeaderboardPanel getLeaderboardPanel() {
|
||||
return overallLeaderboardPanel;
|
||||
}
|
||||
|
||||
|
||||
+12
-12
@@ -4,13 +4,13 @@ import com.google.gwt.event.logical.shared.AttachEvent;
|
||||
import com.google.gwt.event.logical.shared.AttachEvent.Handler;
|
||||
import com.google.gwt.user.client.ui.Composite;
|
||||
import com.sap.sailing.gwt.home.desktop.places.Consumer;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardPanelLifecycle;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardSettings;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardUrlSettings;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.MultiRaceLeaderboardPanelLifecycle;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.MultiRaceLeaderboardSettings;
|
||||
import com.sap.sailing.gwt.settings.client.utils.StoredSettingsLocationFactory;
|
||||
import com.sap.sailing.gwt.ui.client.LeaderboardUpdateListener;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.MultiRaceLeaderboardPanel;
|
||||
import com.sap.sse.gwt.client.shared.settings.ComponentContext;
|
||||
import com.sap.sse.gwt.client.shared.settings.DefaultOnSettingsLoadedCallback;
|
||||
import com.sap.sse.gwt.shared.GwtHttpRequestUtils;
|
||||
@@ -29,19 +29,19 @@ public abstract class SharedLeaderboardEventSeriesTabView<T extends AbstractSeri
|
||||
|
||||
protected void createSharedLeaderboardPanel(String leaderboardName,
|
||||
EventSeriesAnalyticsDataManager eventSeriesAnalyticsManager, UserService userService,
|
||||
String placeToken, final Consumer<LeaderboardPanel> consumer) {
|
||||
String placeToken, final Consumer<MultiRaceLeaderboardPanel> consumer) {
|
||||
|
||||
// FIXME remove
|
||||
boolean autoExpandLastRaceColumn = GwtHttpRequestUtils
|
||||
.getBooleanParameter(LeaderboardUrlSettings.PARAM_AUTO_EXPAND_LAST_RACE_COLUMN, false);
|
||||
|
||||
final ComponentContext<LeaderboardSettings> componentContext = createLeaderboardComponentContext(leaderboardName, userService,
|
||||
final ComponentContext<MultiRaceLeaderboardSettings> componentContext = createLeaderboardComponentContext(leaderboardName, userService,
|
||||
placeToken);
|
||||
componentContext.getInitialSettings(new DefaultOnSettingsLoadedCallback<LeaderboardSettings>() {
|
||||
componentContext.getInitialSettings(new DefaultOnSettingsLoadedCallback<MultiRaceLeaderboardSettings>() {
|
||||
@Override
|
||||
public void onSuccess(LeaderboardSettings leaderboardSettings) {
|
||||
LeaderboardPanel leaderboardPanel = eventSeriesAnalyticsManager.createMultiRaceOverallLeaderboardPanel(null,
|
||||
componentContext, leaderboardSettings, null, "leaderboardGroupName",
|
||||
public void onSuccess(MultiRaceLeaderboardSettings leaderboardSettings) {
|
||||
MultiRaceLeaderboardPanel leaderboardPanel = eventSeriesAnalyticsManager.createMultiRaceOverallLeaderboardPanel(null,
|
||||
componentContext, leaderboardSettings, "leaderboardGroupName",
|
||||
leaderboardName, true, // this information came from place, now hard coded. check with frank
|
||||
autoExpandLastRaceColumn);
|
||||
leaderboardPanel.addAttachHandler(new Handler() {
|
||||
@@ -60,12 +60,12 @@ public abstract class SharedLeaderboardEventSeriesTabView<T extends AbstractSeri
|
||||
});
|
||||
}
|
||||
|
||||
protected ComponentContext<LeaderboardSettings> createLeaderboardComponentContext(String leaderboardName, UserService userService,
|
||||
protected ComponentContext<MultiRaceLeaderboardSettings> createLeaderboardComponentContext(String leaderboardName, UserService userService,
|
||||
String placeToken) {
|
||||
final LeaderboardPanelLifecycle lifecycle = new LeaderboardPanelLifecycle(null, StringMessages.INSTANCE);
|
||||
final MultiRaceLeaderboardPanelLifecycle lifecycle = new MultiRaceLeaderboardPanelLifecycle(null, StringMessages.INSTANCE);
|
||||
final StoredSettingsLocation storageDefinition = StoredSettingsLocationFactory.createStoredSettingsLocatorForSeriesOverallLeaderboard(leaderboardName);
|
||||
|
||||
final ComponentContext<LeaderboardSettings> componentContext = new PlaceBasedComponentContextWithSettingsStorage<>(
|
||||
final ComponentContext<MultiRaceLeaderboardSettings> componentContext = new PlaceBasedComponentContextWithSettingsStorage<>(
|
||||
lifecycle, userService, storageDefinition, placeToken);
|
||||
return componentContext;
|
||||
}
|
||||
|
||||
+3
-3
@@ -25,7 +25,7 @@ import com.sap.sailing.gwt.home.desktop.places.fakeseries.SharedLeaderboardEvent
|
||||
import com.sap.sailing.gwt.home.shared.ExperimentalFeatures;
|
||||
import com.sap.sailing.gwt.ui.client.CompetitorSelectionChangeListener;
|
||||
import com.sap.sailing.gwt.ui.client.CompetitorSelectionModel;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.MultiRaceLeaderboardPanel;
|
||||
import com.sap.sse.common.Util;
|
||||
|
||||
/**
|
||||
@@ -78,9 +78,9 @@ public class EventSeriesCompetitorAnalyticsTabView extends SharedLeaderboardEven
|
||||
}
|
||||
};
|
||||
if(eventSeriesAnalyticsManager.getLeaderboardPanel() == null) {
|
||||
createSharedLeaderboardPanel(leaderboardName, eventSeriesAnalyticsManager, currentPresenter.getUserService(), null, new Consumer<LeaderboardPanel>() {
|
||||
createSharedLeaderboardPanel(leaderboardName, eventSeriesAnalyticsManager, currentPresenter.getUserService(), null, new Consumer<MultiRaceLeaderboardPanel>() {
|
||||
@Override
|
||||
public void consume(LeaderboardPanel object) {
|
||||
public void consume(MultiRaceLeaderboardPanel object) {
|
||||
callback.run();
|
||||
}
|
||||
});
|
||||
|
||||
+9
-9
@@ -19,9 +19,9 @@ import com.sap.sailing.gwt.home.desktop.partials.old.multileaderboard.OldMultiLe
|
||||
import com.sap.sailing.gwt.home.desktop.places.fakeseries.EventSeriesAnalyticsDataManager;
|
||||
import com.sap.sailing.gwt.home.desktop.places.fakeseries.SeriesTabView;
|
||||
import com.sap.sailing.gwt.home.desktop.places.fakeseries.SeriesView;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardSettings;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardUrlSettings;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.MultiLeaderboardPanelLifecycle;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.MultiRaceLeaderboardSettings;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.MultipleMultiLeaderboardPanelLifecycle;
|
||||
import com.sap.sailing.gwt.settings.client.utils.StoredSettingsLocationFactory;
|
||||
import com.sap.sailing.gwt.ui.client.LeaderboardUpdateListener;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
@@ -74,14 +74,14 @@ public class EventSeriesLeaderboardsTabView extends Composite implements SeriesT
|
||||
final EventSeriesAnalyticsDataManager regattaAnalyticsManager = currentPresenter.getCtx().getAnalyticsManager();
|
||||
final boolean autoExpandLastRaceColumn = GwtHttpRequestUtils.getBooleanParameter(LeaderboardUrlSettings.PARAM_AUTO_EXPAND_LAST_RACE_COLUMN, false);
|
||||
|
||||
final ComponentContext<LeaderboardSettings> componentContext = createLeaderboardComponentContext(leaderboardName, currentPresenter.getUserService(), /*FIXME placeToken */ null);
|
||||
componentContext.getInitialSettings(new DefaultOnSettingsLoadedCallback<LeaderboardSettings>() {
|
||||
final ComponentContext<MultiRaceLeaderboardSettings> componentContext = createLeaderboardComponentContext(leaderboardName, currentPresenter.getUserService(), /*FIXME placeToken */ null);
|
||||
componentContext.getInitialSettings(new DefaultOnSettingsLoadedCallback<MultiRaceLeaderboardSettings>() {
|
||||
@Override
|
||||
public void onSuccess(LeaderboardSettings settings) {
|
||||
public void onSuccess(MultiRaceLeaderboardSettings settings) {
|
||||
MultiLeaderboardProxyPanel leaderboardPanel = regattaAnalyticsManager.createMultiLeaderboardPanel(null, componentContext,
|
||||
settings,
|
||||
null, // TODO: preselectedLeaderboardName
|
||||
null,
|
||||
|
||||
"leaderboardGroupName",
|
||||
leaderboardName,
|
||||
true, // TODO @FM this information came from place, now hard coded. check with frank
|
||||
@@ -124,12 +124,12 @@ public class EventSeriesLeaderboardsTabView extends Composite implements SeriesT
|
||||
}
|
||||
}
|
||||
|
||||
private ComponentContext<LeaderboardSettings> createLeaderboardComponentContext(String leaderboardName, UserService userService,
|
||||
private ComponentContext<MultiRaceLeaderboardSettings> createLeaderboardComponentContext(String leaderboardName, UserService userService,
|
||||
String placeToken) {
|
||||
final MultiLeaderboardPanelLifecycle lifecycle = new MultiLeaderboardPanelLifecycle(null, StringMessages.INSTANCE);
|
||||
final MultipleMultiLeaderboardPanelLifecycle lifecycle = new MultipleMultiLeaderboardPanelLifecycle(null, StringMessages.INSTANCE);
|
||||
final StoredSettingsLocation storageDefinition = StoredSettingsLocationFactory.createStoredSettingsLocatorForSeriesRegattaLeaderboards(leaderboardName);
|
||||
|
||||
final ComponentContext<LeaderboardSettings> componentContext = new PlaceBasedComponentContextWithSettingsStorage<>(
|
||||
final ComponentContext<MultiRaceLeaderboardSettings> componentContext = new PlaceBasedComponentContextWithSettingsStorage<>(
|
||||
lifecycle, userService, storageDefinition, placeToken);
|
||||
return componentContext;
|
||||
}
|
||||
|
||||
+7
-7
@@ -16,8 +16,8 @@ import com.sap.sailing.gwt.home.desktop.places.Consumer;
|
||||
import com.sap.sailing.gwt.home.desktop.places.fakeseries.EventSeriesAnalyticsDataManager;
|
||||
import com.sap.sailing.gwt.home.desktop.places.fakeseries.SeriesView;
|
||||
import com.sap.sailing.gwt.home.desktop.places.fakeseries.SharedLeaderboardEventSeriesTabView;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardSettings;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.MultiRaceLeaderboardSettings;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.MultiRaceLeaderboardPanel;
|
||||
import com.sap.sse.gwt.client.shared.settings.DefaultOnSettingsLoadedCallback;
|
||||
|
||||
/**
|
||||
@@ -62,9 +62,9 @@ public class EventSeriesOverallLeaderboardTabView extends SharedLeaderboardEvent
|
||||
String leaderboardName = currentPresenter.getSeriesDTO().getLeaderboardId();
|
||||
if (leaderboardName != null && !leaderboardName.isEmpty()) {
|
||||
EventSeriesAnalyticsDataManager eventSeriesAnalyticsManager = currentPresenter.getCtx().getAnalyticsManager();
|
||||
final Consumer<LeaderboardPanel> leaderboardConsumer = new Consumer<LeaderboardPanel>() {
|
||||
final Consumer<MultiRaceLeaderboardPanel> leaderboardConsumer = new Consumer<MultiRaceLeaderboardPanel>() {
|
||||
@Override
|
||||
public void consume(LeaderboardPanel leaderboardPanel) {
|
||||
public void consume(MultiRaceLeaderboardPanel leaderboardPanel) {
|
||||
initWidget(ourUiBinder.createAndBindUi(EventSeriesOverallLeaderboardTabView.this));
|
||||
leaderboard.setLeaderboard(leaderboardPanel, currentPresenter.getAutoRefreshTimer());
|
||||
eventSeriesAnalyticsManager.hideCompetitorChart();
|
||||
@@ -74,13 +74,13 @@ public class EventSeriesOverallLeaderboardTabView extends SharedLeaderboardEvent
|
||||
}
|
||||
}
|
||||
};
|
||||
LeaderboardPanel leaderboardPanel = eventSeriesAnalyticsManager.getLeaderboardPanel();
|
||||
MultiRaceLeaderboardPanel leaderboardPanel = eventSeriesAnalyticsManager.getLeaderboardPanel();
|
||||
if(leaderboardPanel == null) {
|
||||
createSharedLeaderboardPanel(leaderboardName, eventSeriesAnalyticsManager, currentPresenter.getUserService(), /*FIXME placeToken */ null, leaderboardConsumer);
|
||||
} else if( /*FIXME placeToken not empty */ false) {
|
||||
createLeaderboardComponentContext(leaderboardName, currentPresenter.getUserService(), /*FIXME placeToken */ null).getInitialSettings(new DefaultOnSettingsLoadedCallback<LeaderboardSettings>() {
|
||||
createLeaderboardComponentContext(leaderboardName, currentPresenter.getUserService(), /*FIXME placeToken */ null).getInitialSettings(new DefaultOnSettingsLoadedCallback<MultiRaceLeaderboardSettings>() {
|
||||
@Override
|
||||
public void onSuccess(LeaderboardSettings settings) {
|
||||
public void onSuccess(MultiRaceLeaderboardSettings settings) {
|
||||
leaderboardPanel.updateSettings(settings);
|
||||
leaderboardConsumer.consume(leaderboardPanel);
|
||||
}
|
||||
|
||||
+2
-3
@@ -20,7 +20,7 @@ import com.google.gwt.user.client.ui.TabPanel;
|
||||
import com.google.gwt.user.client.ui.VerticalPanel;
|
||||
import com.sap.sailing.gwt.common.client.SharedResources;
|
||||
import com.sap.sailing.gwt.regattaoverview.client.RegattaRaceStatesComponent.EntryHandler;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardSettings;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.MultiRaceLeaderboardSettings;
|
||||
import com.sap.sailing.gwt.settings.client.regattaoverview.RegattaOverviewContextDefinition;
|
||||
import com.sap.sailing.gwt.settings.client.regattaoverview.RegattaRaceStatesSettings;
|
||||
import com.sap.sailing.gwt.settings.client.utils.StoredSettingsLocationFactory;
|
||||
@@ -309,7 +309,7 @@ public class RegattaOverviewPanel extends SimplePanel {
|
||||
if (leaderboardsTabPanel != null) {
|
||||
if (showLeaderboard) {
|
||||
final CompetitorSelectionModel competitorSelectionProvider = new CompetitorSelectionModel(/* hasMultiSelection */ true);
|
||||
final LeaderboardSettings leaderboardSettings = new LeaderboardSettings();
|
||||
final MultiRaceLeaderboardSettings leaderboardSettings = new MultiRaceLeaderboardSettings();
|
||||
sailingService.getLeaderboardsByEvent(eventDTO, new MarkedAsyncCallback<List<StrippedLeaderboardDTO>>(
|
||||
new AsyncCallback<List<StrippedLeaderboardDTO>>() {
|
||||
@Override
|
||||
@@ -318,7 +318,6 @@ public class RegattaOverviewPanel extends SimplePanel {
|
||||
for (StrippedLeaderboardDTO leaderboard : result) {
|
||||
LeaderboardPanel leaderboardPanel = new MultiRaceLeaderboardPanel(null, null, sailingService,
|
||||
new AsyncActionsExecutor(), leaderboardSettings, false,
|
||||
/*preSelectedRace*/null,
|
||||
competitorSelectionProvider,
|
||||
null, leaderboard.name,
|
||||
errorReporter, stringMessages, /* showRaceDetails */false);
|
||||
|
||||
+1
-1
@@ -9,7 +9,7 @@ public abstract class AbstractLeaderboardPerspectiveLifecycle extends AbstractPe
|
||||
|
||||
protected AbstractLeaderboardPerspectiveLifecycle(StringMessages stringMessages,
|
||||
AbstractLeaderboardDTO leaderboard, boolean isOverall) {
|
||||
addLifeCycle(new LeaderboardPanelLifecycle(leaderboard, stringMessages));
|
||||
addLifeCycle(new MultiRaceLeaderboardPanelLifecycle(leaderboard, stringMessages));
|
||||
addLifeCycle(new MultiCompetitorLeaderboardChartLifecycle(isOverall));
|
||||
}
|
||||
|
||||
|
||||
+2
-42
@@ -5,11 +5,10 @@ import java.util.List;
|
||||
|
||||
import com.sap.sailing.domain.common.dto.AbstractLeaderboardDTO;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sse.common.settings.generic.support.SettingsUtil;
|
||||
import com.sap.sse.gwt.client.shared.components.ComponentLifecycle;
|
||||
|
||||
public class LeaderboardPanelLifecycle
|
||||
implements ComponentLifecycle<LeaderboardSettings> {
|
||||
public abstract class LeaderboardPanelLifecycle<T extends LeaderboardSettings>
|
||||
implements ComponentLifecycle<T> {
|
||||
public static final String ID = "lb";
|
||||
|
||||
protected final StringMessages stringMessages;
|
||||
@@ -20,17 +19,6 @@ public class LeaderboardPanelLifecycle
|
||||
this.namesOfRaceColumns = leaderboard != null ? leaderboard.getNamesOfRaceColumns() : new ArrayList<String>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public LeaderboardSettingsDialogComponent getSettingsDialogComponent(LeaderboardSettings settings) {
|
||||
return new LeaderboardSettingsDialogComponent(settings, namesOfRaceColumns, stringMessages);
|
||||
}
|
||||
|
||||
@Override
|
||||
public LeaderboardSettings createDefaultSettings() {
|
||||
return LeaderboardSettingsFactory.getInstance()
|
||||
.createNewDefaultSettingsWithRaceColumns(namesOfRaceColumns);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getLocalizedShortName() {
|
||||
return stringMessages.leaderboard();
|
||||
@@ -45,32 +33,4 @@ public class LeaderboardPanelLifecycle
|
||||
public boolean hasSettings() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public LeaderboardSettings extractUserSettings(LeaderboardSettings currentLeaderboardSettings) {
|
||||
LeaderboardSettings defaultLeaderboardSettings = createDefaultSettings();
|
||||
LeaderboardSettings globalLeaderboardSettings = new LeaderboardSettings(
|
||||
currentLeaderboardSettings.getManeuverDetailsToShow(), currentLeaderboardSettings.getLegDetailsToShow(),
|
||||
currentLeaderboardSettings.getRaceDetailsToShow(), currentLeaderboardSettings.getOverallDetailsToShow(),
|
||||
defaultLeaderboardSettings.getNamesOfRaceColumnsToShow(),
|
||||
defaultLeaderboardSettings.getNamesOfRacesToShow(),
|
||||
currentLeaderboardSettings.getNumberOfLastRacesToShow(),
|
||||
defaultLeaderboardSettings.isAutoExpandPreSelectedRace(),
|
||||
currentLeaderboardSettings.getDelayBetweenAutoAdvancesInMilliseconds(),
|
||||
defaultLeaderboardSettings.getNameOfRaceToSort(), defaultLeaderboardSettings.isSortAscending(),
|
||||
currentLeaderboardSettings.isUpdateUponPlayStateChange(),
|
||||
currentLeaderboardSettings.getActiveRaceColumnSelectionStrategy(),
|
||||
currentLeaderboardSettings.isShowAddedScores(),
|
||||
currentLeaderboardSettings.isShowOverallColumnWithNumberOfRacesCompletedPerCompetitor(),
|
||||
currentLeaderboardSettings.isShowCompetitorSailIdColumn(),
|
||||
currentLeaderboardSettings.isShowCompetitorFullNameColumn(),
|
||||
currentLeaderboardSettings.isShowCompetitorNationality());
|
||||
return SettingsUtil.copyValues(globalLeaderboardSettings, defaultLeaderboardSettings);
|
||||
}
|
||||
|
||||
@Override
|
||||
public LeaderboardSettings extractDocumentSettings(LeaderboardSettings leaderboardSettings) {
|
||||
return leaderboardSettings;
|
||||
}
|
||||
|
||||
}
|
||||
+19
-51
@@ -16,7 +16,6 @@ import com.sap.sse.common.settings.generic.IntegerSetting;
|
||||
import com.sap.sse.common.settings.generic.LongSetting;
|
||||
import com.sap.sse.common.settings.generic.StringSetSetting;
|
||||
import com.sap.sse.common.settings.generic.StringSetting;
|
||||
import com.sap.sse.common.settings.util.SettingsDefaultValuesUtils;
|
||||
|
||||
/**
|
||||
* Settings for the {@link LeaderboardPanel} component. If you change here, please also visit
|
||||
@@ -26,34 +25,34 @@ import com.sap.sse.common.settings.util.SettingsDefaultValuesUtils;
|
||||
* @author Axel Uhl (d043530)
|
||||
*
|
||||
*/
|
||||
public class LeaderboardSettings extends AbstractGenericSerializableSettings {
|
||||
public abstract class LeaderboardSettings extends AbstractGenericSerializableSettings {
|
||||
private static final long serialVersionUID = 2625004077963291333L;
|
||||
|
||||
/**
|
||||
* Only one of {@link #namesOfRaceColumnsToShow} and {@link #namesOfRacesToShow} must be non-<code>null</code>.
|
||||
* Only valid when the {@link #activeRaceColumnSelectionStrategy} is set to EXPLIZIT
|
||||
*/
|
||||
private StringSetSetting namesOfRaceColumnsToShow;
|
||||
protected StringSetSetting namesOfRaceColumnsToShow;
|
||||
|
||||
/**
|
||||
* Only one of {@link #namesOfRaceColumnsToShow} and {@link #namesOfRacesToShow} must be non-<code>null</code>.
|
||||
* Only valid when the {@link #activeRaceColumnSelectionStrategy} is set to EXPLIZIT
|
||||
*/
|
||||
private StringSetSetting namesOfRacesToShow;
|
||||
protected StringSetSetting namesOfRacesToShow;
|
||||
|
||||
/**
|
||||
* Only valid when the {@link #activeRaceColumnSelectionStrategy} is set to LAST_N
|
||||
*/
|
||||
private IntegerSetting numberOfLastRacesToShow;
|
||||
protected IntegerSetting numberOfLastRacesToShow;
|
||||
|
||||
private EnumSetSetting<DetailType> maneuverDetailsToShow;
|
||||
private EnumSetSetting<DetailType> legDetailsToShow;
|
||||
private EnumSetSetting<DetailType> raceDetailsToShow;
|
||||
private EnumSetSetting<DetailType> overallDetailsToShow;
|
||||
private boolean autoExpandPreSelectedRace = false;
|
||||
private LongSetting delayBetweenAutoAdvancesInMilliseconds;
|
||||
private BooleanSetting updateUponPlayStateChange;
|
||||
private BooleanSetting isShowCompetitorNationality;
|
||||
protected EnumSetSetting<DetailType> maneuverDetailsToShow;
|
||||
protected EnumSetSetting<DetailType> legDetailsToShow;
|
||||
protected EnumSetSetting<DetailType> raceDetailsToShow;
|
||||
protected EnumSetSetting<DetailType> overallDetailsToShow;
|
||||
protected boolean autoExpandPreSelectedRace = false;
|
||||
protected LongSetting delayBetweenAutoAdvancesInMilliseconds;
|
||||
protected BooleanSetting updateUponPlayStateChange;
|
||||
protected BooleanSetting isShowCompetitorNationality;
|
||||
|
||||
/**
|
||||
* There are two ways to select race columns.
|
||||
@@ -61,27 +60,27 @@ public class LeaderboardSettings extends AbstractGenericSerializableSettings {
|
||||
*/
|
||||
public static enum RaceColumnSelectionStrategies { EXPLICIT, LAST_N; }
|
||||
|
||||
private EnumSetting<RaceColumnSelectionStrategies> activeRaceColumnSelectionStrategy;
|
||||
protected EnumSetting<RaceColumnSelectionStrategies> activeRaceColumnSelectionStrategy;
|
||||
|
||||
/**
|
||||
* An optional sort column; if <code>null</code>, the leaderboard sorting won't be touched when updating the settings.
|
||||
* Otherwise, the leaderboard will be sorted by the race column (ascending if {@link #sortAscending}, descending otherwise.
|
||||
*/
|
||||
private StringSetting nameOfRaceToSort;
|
||||
private BooleanSetting sortAscending;
|
||||
protected StringSetting nameOfRaceToSort;
|
||||
protected BooleanSetting sortAscending;
|
||||
|
||||
/**
|
||||
* Shows scores sum'd up for each race column
|
||||
*/
|
||||
private BooleanSetting showAddedScores;
|
||||
protected BooleanSetting showAddedScores;
|
||||
|
||||
private BooleanSetting showCompetitorSailIdColumn;
|
||||
private BooleanSetting showCompetitorFullNameColumn;
|
||||
protected BooleanSetting showCompetitorSailIdColumn;
|
||||
protected BooleanSetting showCompetitorFullNameColumn;
|
||||
|
||||
/**
|
||||
* Show a column with total number of races completed
|
||||
*/
|
||||
private BooleanSetting showOverallColumnWithNumberOfRacesCompletedPerCompetitor;
|
||||
protected BooleanSetting showOverallColumnWithNumberOfRacesCompletedPerCompetitor;
|
||||
|
||||
@Override
|
||||
protected void addChildSettings() {
|
||||
@@ -263,35 +262,4 @@ public class LeaderboardSettings extends AbstractGenericSerializableSettings {
|
||||
public boolean isShowCompetitorNationality() {
|
||||
return isShowCompetitorNationality.getValue();
|
||||
}
|
||||
|
||||
public LeaderboardSettings overrideDefaultsForNamesOfRaceColumns(List<String> namesOfRaceColumns) {
|
||||
LeaderboardSettings newSettings = new LeaderboardSettings();
|
||||
newSettings.legDetailsToShow.setValues(this.getLegDetailsToShow());
|
||||
newSettings.raceDetailsToShow.setValues(this.getRaceDetailsToShow());
|
||||
newSettings.overallDetailsToShow.setValues(this.getOverallDetailsToShow());
|
||||
newSettings.numberOfLastRacesToShow.setValue(this.getNumberOfLastRacesToShow());
|
||||
newSettings.activeRaceColumnSelectionStrategy.setValue(this.getActiveRaceColumnSelectionStrategy());
|
||||
newSettings.autoExpandPreSelectedRace = this.isAutoExpandPreSelectedRace();
|
||||
newSettings.delayBetweenAutoAdvancesInMilliseconds.setValue(this.getDelayBetweenAutoAdvancesInMilliseconds());
|
||||
newSettings.maneuverDetailsToShow.setValues(this.getManeuverDetailsToShow());
|
||||
newSettings.nameOfRaceToSort.setValue(this.getNameOfRaceToSort());
|
||||
newSettings.sortAscending.setValue(this.isSortAscending());
|
||||
newSettings.updateUponPlayStateChange.setValue(this.isUpdateUponPlayStateChange());
|
||||
newSettings.showAddedScores.setValue(this.isShowAddedScores());
|
||||
newSettings.showCompetitorSailIdColumn.setValue(this.isShowCompetitorSailIdColumn());
|
||||
newSettings.showCompetitorFullNameColumn.setValue(this.isShowCompetitorFullNameColumn());
|
||||
newSettings.showOverallColumnWithNumberOfRacesCompletedPerCompetitor.setValue(this.isShowOverallColumnWithNumberOfRacesCompletedPerCompetitor());
|
||||
newSettings.isShowCompetitorNationality.setValue(this.isShowCompetitorNationality());
|
||||
if(namesOfRaceColumns != null && !namesOfRaceColumns.isEmpty()) {
|
||||
newSettings.namesOfRacesToShow.setValues(null);
|
||||
}
|
||||
newSettings.namesOfRaceColumnsToShow.setValues(this.getNamesOfRaceColumnsToShow());
|
||||
SettingsDefaultValuesUtils.keepDefaults(this, newSettings);
|
||||
if(namesOfRaceColumns != null && !namesOfRaceColumns.isEmpty()) {
|
||||
newSettings.namesOfRacesToShow.setDefaultValues(null);
|
||||
}
|
||||
newSettings.namesOfRaceColumnsToShow.setDefaultValues(namesOfRaceColumns);
|
||||
return newSettings;
|
||||
}
|
||||
|
||||
}
|
||||
+22
-76
@@ -1,6 +1,5 @@
|
||||
package com.sap.sailing.gwt.settings.client.leaderboard;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
@@ -30,32 +29,31 @@ import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.LegColumn;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.ManeuverCountRaceColumn;
|
||||
import com.sap.sse.common.Util;
|
||||
import com.sap.sse.common.settings.util.SettingsDefaultValuesUtils;
|
||||
import com.sap.sse.gwt.client.controls.IntegerBox;
|
||||
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 LeaderboardSettingsDialogComponent implements SettingsDialogComponent<LeaderboardSettings> {
|
||||
private final Map<String, CheckBox> raceColumnCheckboxes;
|
||||
private final List<String> raceAllRaceColumnNames;
|
||||
private final Map<DetailType, CheckBox> maneuverDetailCheckboxes;
|
||||
private final Map<DetailType, CheckBox> legDetailCheckboxes;
|
||||
private final Map<DetailType, CheckBox> raceDetailCheckboxes;
|
||||
private final Map<DetailType, CheckBox> overallDetailCheckboxes;
|
||||
private final StringMessages stringMessages;
|
||||
private LongBox refreshIntervalInSecondsBox;
|
||||
private RaceColumnSelectionStrategies activeRaceColumnSelectionStrategy;
|
||||
public abstract class LeaderboardSettingsDialogComponent<T extends LeaderboardSettings> implements SettingsDialogComponent<T> {
|
||||
protected final Map<String, CheckBox> raceColumnCheckboxes;
|
||||
protected final List<String> raceAllRaceColumnNames;
|
||||
protected final Map<DetailType, CheckBox> maneuverDetailCheckboxes;
|
||||
protected final Map<DetailType, CheckBox> legDetailCheckboxes;
|
||||
protected final Map<DetailType, CheckBox> raceDetailCheckboxes;
|
||||
protected final Map<DetailType, CheckBox> overallDetailCheckboxes;
|
||||
protected final StringMessages stringMessages;
|
||||
protected LongBox refreshIntervalInSecondsBox;
|
||||
protected RaceColumnSelectionStrategies activeRaceColumnSelectionStrategy;
|
||||
|
||||
private RadioButton explicitRaceColumnSelectionRadioBtn;
|
||||
private RadioButton lastNRacesColumnSelectionRadioBtn;
|
||||
private IntegerBox numberOfLastRacesToShowBox;
|
||||
private CheckBox showAddedScoresCheckBox;
|
||||
private CheckBox showOverallColumnWithNumberOfRacesSailedPerCompetitorCheckBox;
|
||||
private CheckBox showCompetitorSailIdColumnheckBox;
|
||||
private CheckBox showCompetitorFullNameColumnCheckBox;
|
||||
private CheckBox isCompetitorNationalityColumnVisible;
|
||||
private LeaderboardSettings initialSettings;
|
||||
protected RadioButton explicitRaceColumnSelectionRadioBtn;
|
||||
protected RadioButton lastNRacesColumnSelectionRadioBtn;
|
||||
protected IntegerBox numberOfLastRacesToShowBox;
|
||||
protected CheckBox showAddedScoresCheckBox;
|
||||
protected CheckBox showOverallColumnWithNumberOfRacesSailedPerCompetitorCheckBox;
|
||||
protected CheckBox showCompetitorSailIdColumnheckBox;
|
||||
protected CheckBox showCompetitorFullNameColumnCheckBox;
|
||||
protected CheckBox isCompetitorNationalityColumnVisible;
|
||||
protected LeaderboardSettings initialSettings;
|
||||
|
||||
public LeaderboardSettingsDialogComponent(LeaderboardSettings initialSettings, List<String> allRaceColumnNames, StringMessages stringMessages) {
|
||||
this.initialSettings = initialSettings;
|
||||
@@ -357,62 +355,10 @@ public class LeaderboardSettingsDialogComponent implements SettingsDialogCompone
|
||||
}
|
||||
|
||||
@Override
|
||||
public LeaderboardSettings getResult() {
|
||||
List<DetailType> maneuverDetailsToShow = new ArrayList<DetailType>();
|
||||
for (Map.Entry<DetailType, CheckBox> entry : maneuverDetailCheckboxes.entrySet()) {
|
||||
if (entry.getValue().getValue()) {
|
||||
maneuverDetailsToShow.add(entry.getKey());
|
||||
}
|
||||
}
|
||||
List<DetailType> overallDetailsToShow = new ArrayList<DetailType>();
|
||||
for (Map.Entry<DetailType, CheckBox> entry : overallDetailCheckboxes.entrySet()) {
|
||||
if (entry.getValue().getValue()) {
|
||||
overallDetailsToShow.add(entry.getKey());
|
||||
}
|
||||
}
|
||||
List<DetailType> raceDetailsToShow = new ArrayList<DetailType>();
|
||||
for (Map.Entry<DetailType, CheckBox> entry : raceDetailCheckboxes.entrySet()) {
|
||||
if (entry.getValue().getValue()) {
|
||||
raceDetailsToShow.add(entry.getKey());
|
||||
}
|
||||
}
|
||||
List<DetailType> legDetailsToShow = new ArrayList<DetailType>();
|
||||
for (Map.Entry<DetailType, CheckBox> entry : legDetailCheckboxes.entrySet()) {
|
||||
if (entry.getValue().getValue()) {
|
||||
legDetailsToShow.add(entry.getKey());
|
||||
}
|
||||
}
|
||||
List<String> namesOfRaceColumnsToShow = null;
|
||||
if (activeRaceColumnSelectionStrategy == RaceColumnSelectionStrategies.EXPLICIT) {
|
||||
namesOfRaceColumnsToShow = new ArrayList<String>();
|
||||
for (Map.Entry<String, CheckBox> entry : raceColumnCheckboxes.entrySet()) {
|
||||
if (entry.getValue().getValue()) {
|
||||
namesOfRaceColumnsToShow.add(entry.getKey());
|
||||
}
|
||||
}
|
||||
}
|
||||
Long delayBetweenAutoAdvancesValue = refreshIntervalInSecondsBox.getValue();
|
||||
Integer lastNRacesToShowValue = activeRaceColumnSelectionStrategy == RaceColumnSelectionStrategies.LAST_N ?
|
||||
numberOfLastRacesToShowBox.getValue() : null;
|
||||
LeaderboardSettings newSettings = new LeaderboardSettings(maneuverDetailsToShow, legDetailsToShow, raceDetailsToShow,
|
||||
overallDetailsToShow, namesOfRaceColumnsToShow, /* nameOfRacesToShow */null,
|
||||
lastNRacesToShowValue,
|
||||
initialSettings.isAutoExpandPreSelectedRace(), 1000l * (delayBetweenAutoAdvancesValue == null ? 0l : delayBetweenAutoAdvancesValue.longValue()),
|
||||
null,
|
||||
true, /* updateUponPlayStateChange */ true, activeRaceColumnSelectionStrategy,
|
||||
/*showAddedScores*/ showAddedScoresCheckBox.getValue().booleanValue(),
|
||||
/*showOverallColumnWithNumberOfRacesSailedPerCompetitor*/ showOverallColumnWithNumberOfRacesSailedPerCompetitorCheckBox.getValue().booleanValue(),
|
||||
showCompetitorSailIdColumnheckBox.getValue(), showCompetitorFullNameColumnCheckBox.getValue(),
|
||||
isCompetitorNationalityColumnVisible.getValue());
|
||||
SettingsDefaultValuesUtils.keepDefaults(initialSettings, newSettings);
|
||||
return newSettings;
|
||||
}
|
||||
|
||||
public Validator<T> getValidator() {
|
||||
return new Validator<T>() {
|
||||
@Override
|
||||
public Validator<LeaderboardSettings> getValidator() {
|
||||
return new Validator<LeaderboardSettings>() {
|
||||
@Override
|
||||
public String getErrorMessage(LeaderboardSettings valueToValidate) {
|
||||
public String getErrorMessage(T valueToValidate) {
|
||||
final String result;
|
||||
if (valueToValidate.getLegDetailsToShow().isEmpty()) {
|
||||
result = stringMessages.selectAtLeastOneLegDetail();
|
||||
|
||||
+12
-12
@@ -23,15 +23,15 @@ public class LeaderboardSettingsFactory {
|
||||
return instance;
|
||||
}
|
||||
|
||||
public LeaderboardSettings createNewDefaultSettingsWithRaceColumns(List<String> namesOfRaceColumns) {
|
||||
LeaderboardSettings leaderboardSettings = new LeaderboardSettings(namesOfRaceColumns);
|
||||
public MultiRaceLeaderboardSettings createNewDefaultSettingsWithRaceColumns(List<String> namesOfRaceColumns) {
|
||||
MultiRaceLeaderboardSettings leaderboardSettings = new MultiRaceLeaderboardSettings(namesOfRaceColumns);
|
||||
SettingsUtil.copyDefaultsFromValues(leaderboardSettings, leaderboardSettings);
|
||||
return leaderboardSettings;
|
||||
}
|
||||
|
||||
public LeaderboardSettings createNewSettingsWithCustomRaceDetails(List<DetailType> raceDetailsToShow) {
|
||||
LeaderboardSettings defaultSettings = new LeaderboardSettings();
|
||||
return new LeaderboardSettings(
|
||||
public SingleRaceLeaderboardSettings createNewSettingsWithCustomRaceDetails(List<DetailType> raceDetailsToShow) {
|
||||
LeaderboardSettings defaultSettings = new SingleRaceLeaderboardSettings();
|
||||
return new SingleRaceLeaderboardSettings(
|
||||
defaultSettings.getManeuverDetailsToShow(),
|
||||
defaultSettings.getLegDetailsToShow(),
|
||||
raceDetailsToShow, defaultSettings.getOverallDetailsToShow(),
|
||||
@@ -50,8 +50,8 @@ public class LeaderboardSettingsFactory {
|
||||
defaultSettings.isShowCompetitorNationality());
|
||||
}
|
||||
|
||||
public LeaderboardSettings createSettingsWithCustomExpandPreselectedRaceState(LeaderboardSettings settings, boolean expandPreselectedRace) {
|
||||
return new LeaderboardSettings(
|
||||
public SingleRaceLeaderboardSettings createSettingsWithCustomExpandPreselectedRaceState(SingleRaceLeaderboardSettings settings, boolean expandPreselectedRace) {
|
||||
return new SingleRaceLeaderboardSettings(
|
||||
settings.getManeuverDetailsToShow(),
|
||||
settings.getLegDetailsToShow(),
|
||||
settings.getRaceDetailsToShow(), settings.getOverallDetailsToShow(),
|
||||
@@ -69,14 +69,14 @@ public class LeaderboardSettingsFactory {
|
||||
settings.isShowCompetitorNationality());
|
||||
}
|
||||
|
||||
public LeaderboardSettings mergeLeaderboardSettings(LeaderboardSettings settingsWithRaceSelection, LeaderboardSettings settingsWithDetails) {
|
||||
LeaderboardSettings newSettings = mergeLeaderboardSettingsHelper(settingsWithRaceSelection, settingsWithDetails);
|
||||
LeaderboardSettings newDefaultSettings = mergeLeaderboardSettingsHelper(SettingsDefaultValuesUtils.getDefaultSettings(new LeaderboardSettings(), settingsWithRaceSelection), SettingsDefaultValuesUtils.getDefaultSettings(new LeaderboardSettings(), settingsWithDetails));
|
||||
public MultiRaceLeaderboardSettings mergeLeaderboardSettings(MultiRaceLeaderboardSettings settingsWithRaceSelection, MultiRaceLeaderboardSettings settingsWithDetails) {
|
||||
MultiRaceLeaderboardSettings newSettings = mergeLeaderboardSettingsHelper(settingsWithRaceSelection, settingsWithDetails);
|
||||
MultiRaceLeaderboardSettings newDefaultSettings = mergeLeaderboardSettingsHelper(SettingsDefaultValuesUtils.getDefaultSettings(new MultiRaceLeaderboardSettings(), settingsWithRaceSelection), SettingsDefaultValuesUtils.getDefaultSettings(new MultiRaceLeaderboardSettings(), settingsWithDetails));
|
||||
SettingsDefaultValuesUtils.keepDefaults(newDefaultSettings, newSettings);
|
||||
return newSettings;
|
||||
}
|
||||
|
||||
private LeaderboardSettings mergeLeaderboardSettingsHelper(LeaderboardSettings settingsWithRaceSelection, LeaderboardSettings settingsWithDetails) {
|
||||
private MultiRaceLeaderboardSettings mergeLeaderboardSettingsHelper(MultiRaceLeaderboardSettings settingsWithRaceSelection, MultiRaceLeaderboardSettings settingsWithDetails) {
|
||||
Collection<DetailType> maneuverDetails = settingsWithDetails.getManeuverDetailsToShow();
|
||||
Collection<DetailType> legDetails = settingsWithDetails.getLegDetailsToShow();
|
||||
Collection<DetailType> raceDetails = settingsWithDetails.getRaceDetailsToShow();
|
||||
@@ -94,7 +94,7 @@ public class LeaderboardSettingsFactory {
|
||||
boolean sortAscending = settingsWithRaceSelection.isSortAscending();
|
||||
boolean updateUponPlayStateChange = settingsWithRaceSelection.isUpdateUponPlayStateChange();
|
||||
|
||||
return new LeaderboardSettings(maneuverDetails, legDetails, raceDetails, overallDetailsToShow,
|
||||
return new MultiRaceLeaderboardSettings(maneuverDetails, legDetails, raceDetails, overallDetailsToShow,
|
||||
namesOfRaceColumnsToShow, namesOfRacesToShow, numberOfLastRacesToShow, autoExpandPreSelectedRace, refreshIntervalInMs,
|
||||
nameOfRaceToSort, sortAscending, updateUponPlayStateChange, strategy, /*showAddedScores*/ false,
|
||||
/* showOverallRacesCompleted */ false, showCompetitorSailIdColumn, showCompetitorFullNameColumns,
|
||||
|
||||
+3
-3
@@ -7,11 +7,11 @@ public class MetaLeaderboardPerspectiveLifecycle extends AbstractLeaderboardPers
|
||||
|
||||
public static final String ID = "mlbh";
|
||||
|
||||
private final MultiLeaderboardPanelLifecycle multiLeaderboardPanelLifecycle;
|
||||
private final MultipleMultiLeaderboardPanelLifecycle multiLeaderboardPanelLifecycle;
|
||||
|
||||
public MetaLeaderboardPerspectiveLifecycle(StringMessages stringMessages, AbstractLeaderboardDTO leaderboard) {
|
||||
super(stringMessages, leaderboard, true);
|
||||
multiLeaderboardPanelLifecycle = new MultiLeaderboardPanelLifecycle(null, stringMessages);
|
||||
multiLeaderboardPanelLifecycle = new MultipleMultiLeaderboardPanelLifecycle(null, stringMessages);
|
||||
addLifeCycle(multiLeaderboardPanelLifecycle);
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ public class MetaLeaderboardPerspectiveLifecycle extends AbstractLeaderboardPers
|
||||
return ID;
|
||||
}
|
||||
|
||||
public MultiLeaderboardPanelLifecycle getMultiLeaderboardPanelLifecycle() {
|
||||
public MultipleMultiLeaderboardPanelLifecycle getMultiLeaderboardPanelLifecycle() {
|
||||
return multiLeaderboardPanelLifecycle;
|
||||
}
|
||||
}
|
||||
+65
@@ -0,0 +1,65 @@
|
||||
package com.sap.sailing.gwt.settings.client.leaderboard;
|
||||
|
||||
import com.sap.sailing.domain.common.dto.AbstractLeaderboardDTO;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sse.common.settings.generic.support.SettingsUtil;
|
||||
|
||||
public class MultiRaceLeaderboardPanelLifecycle extends LeaderboardPanelLifecycle<MultiRaceLeaderboardSettings> {
|
||||
public MultiRaceLeaderboardPanelLifecycle(AbstractLeaderboardDTO leaderboard, StringMessages stringMessages) {
|
||||
super(leaderboard, stringMessages);
|
||||
}
|
||||
@Override
|
||||
public MultiRaceLeaderboardSettings extractUserSettings(MultiRaceLeaderboardSettings currentLeaderboardSettings) {
|
||||
MultiRaceLeaderboardSettings defaultLeaderboardSettings = createDefaultSettings();
|
||||
MultiRaceLeaderboardSettings globalLeaderboardSettings = new MultiRaceLeaderboardSettings(
|
||||
currentLeaderboardSettings.getManeuverDetailsToShow(), currentLeaderboardSettings.getLegDetailsToShow(),
|
||||
currentLeaderboardSettings.getRaceDetailsToShow(), currentLeaderboardSettings.getOverallDetailsToShow(),
|
||||
defaultLeaderboardSettings.getNamesOfRaceColumnsToShow(),
|
||||
defaultLeaderboardSettings.getNamesOfRacesToShow(),
|
||||
currentLeaderboardSettings.getNumberOfLastRacesToShow(),
|
||||
defaultLeaderboardSettings.isAutoExpandPreSelectedRace(),
|
||||
currentLeaderboardSettings.getDelayBetweenAutoAdvancesInMilliseconds(),
|
||||
defaultLeaderboardSettings.getNameOfRaceToSort(), defaultLeaderboardSettings.isSortAscending(),
|
||||
currentLeaderboardSettings.isUpdateUponPlayStateChange(),
|
||||
currentLeaderboardSettings.getActiveRaceColumnSelectionStrategy(),
|
||||
currentLeaderboardSettings.isShowAddedScores(),
|
||||
currentLeaderboardSettings.isShowOverallColumnWithNumberOfRacesCompletedPerCompetitor(),
|
||||
currentLeaderboardSettings.isShowCompetitorSailIdColumn(),
|
||||
currentLeaderboardSettings.isShowCompetitorFullNameColumn(),
|
||||
currentLeaderboardSettings.isShowCompetitorNationality());
|
||||
return SettingsUtil.copyValues(globalLeaderboardSettings, defaultLeaderboardSettings);
|
||||
}
|
||||
|
||||
@Override
|
||||
public MultiRaceLeaderboardSettings extractDocumentSettings(MultiRaceLeaderboardSettings currentLeaderboardSettings) {
|
||||
MultiRaceLeaderboardSettings defaultLeaderboardSettings = createDefaultSettings();
|
||||
MultiRaceLeaderboardSettings contextSpecificLeaderboardSettings = new MultiRaceLeaderboardSettings(
|
||||
currentLeaderboardSettings.getManeuverDetailsToShow(), currentLeaderboardSettings.getLegDetailsToShow(),
|
||||
currentLeaderboardSettings.getRaceDetailsToShow(), currentLeaderboardSettings.getOverallDetailsToShow(),
|
||||
defaultLeaderboardSettings.getNamesOfRaceColumnsToShow(),
|
||||
defaultLeaderboardSettings.getNamesOfRacesToShow(),
|
||||
currentLeaderboardSettings.getNumberOfLastRacesToShow(),
|
||||
currentLeaderboardSettings.isAutoExpandPreSelectedRace(),
|
||||
currentLeaderboardSettings.getDelayBetweenAutoAdvancesInMilliseconds(),
|
||||
defaultLeaderboardSettings.getNameOfRaceToSort(), currentLeaderboardSettings.isSortAscending(),
|
||||
currentLeaderboardSettings.isUpdateUponPlayStateChange(),
|
||||
currentLeaderboardSettings.getActiveRaceColumnSelectionStrategy(),
|
||||
currentLeaderboardSettings.isShowAddedScores(),
|
||||
currentLeaderboardSettings.isShowOverallColumnWithNumberOfRacesCompletedPerCompetitor(),
|
||||
currentLeaderboardSettings.isShowCompetitorSailIdColumn(),
|
||||
currentLeaderboardSettings.isShowCompetitorFullNameColumn(),
|
||||
currentLeaderboardSettings.isShowCompetitorNationality());
|
||||
return SettingsUtil.copyValues(contextSpecificLeaderboardSettings, defaultLeaderboardSettings);
|
||||
}
|
||||
|
||||
@Override
|
||||
public MultiRaceLeaderboardSettingsDialogComponent getSettingsDialogComponent(MultiRaceLeaderboardSettings settings) {
|
||||
return new MultiRaceLeaderboardSettingsDialogComponent(settings, namesOfRaceColumns, stringMessages);
|
||||
}
|
||||
|
||||
@Override
|
||||
public MultiRaceLeaderboardSettings createDefaultSettings() {
|
||||
return LeaderboardSettingsFactory.getInstance()
|
||||
.createNewDefaultSettingsWithRaceColumns(namesOfRaceColumns);
|
||||
}
|
||||
}
|
||||
+65
@@ -0,0 +1,65 @@
|
||||
package com.sap.sailing.gwt.settings.client.leaderboard;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
import com.sap.sailing.domain.common.DetailType;
|
||||
import com.sap.sse.common.settings.util.SettingsDefaultValuesUtils;
|
||||
|
||||
public class MultiRaceLeaderboardSettings extends LeaderboardSettings {
|
||||
|
||||
public MultiRaceLeaderboardSettings() {
|
||||
super();
|
||||
}
|
||||
|
||||
public MultiRaceLeaderboardSettings(Collection<DetailType> maneuverDetailsToShow,
|
||||
Collection<DetailType> legDetailsToShow, Collection<DetailType> raceDetailsToShow,
|
||||
Collection<DetailType> overallDetailsToShow, List<String> namesOfRaceColumnsToShow,
|
||||
List<String> namesOfRacesToShow, Integer numberOfLastRacesToShow, boolean autoExpandPreSelectedRace,
|
||||
Long delayBetweenAutoAdvancesInMilliseconds, String nameOfRaceToSort, boolean sortAscending,
|
||||
boolean updateUponPlayStateChange, RaceColumnSelectionStrategies activeRaceColumnSelectionStrategy,
|
||||
boolean showAddedScores, boolean showOverallColumnWithNumberOfRacesCompletedPerCompetitor,
|
||||
boolean showCompetitorSailIdColumn, boolean showCompetitorFullNameColumn,
|
||||
boolean isCompetitorNationalityColumnVisible) {
|
||||
super(maneuverDetailsToShow, legDetailsToShow, raceDetailsToShow, overallDetailsToShow, namesOfRaceColumnsToShow,
|
||||
namesOfRacesToShow, numberOfLastRacesToShow, autoExpandPreSelectedRace, delayBetweenAutoAdvancesInMilliseconds,
|
||||
nameOfRaceToSort, sortAscending, updateUponPlayStateChange, activeRaceColumnSelectionStrategy, showAddedScores,
|
||||
showOverallColumnWithNumberOfRacesCompletedPerCompetitor, showCompetitorSailIdColumn,
|
||||
showCompetitorFullNameColumn, isCompetitorNationalityColumnVisible);
|
||||
}
|
||||
|
||||
public MultiRaceLeaderboardSettings(Iterable<String> namesOfRaceColumnsToShow) {
|
||||
super(namesOfRaceColumnsToShow);
|
||||
}
|
||||
|
||||
public LeaderboardSettings overrideDefaultsForNamesOfRaceColumns(List<String> namesOfRaceColumns) {
|
||||
LeaderboardSettings newSettings = new MultiRaceLeaderboardSettings();
|
||||
newSettings.legDetailsToShow.setValues(this.getLegDetailsToShow());
|
||||
newSettings.raceDetailsToShow.setValues(this.getRaceDetailsToShow());
|
||||
newSettings.overallDetailsToShow.setValues(this.getOverallDetailsToShow());
|
||||
newSettings.numberOfLastRacesToShow.setValue(this.getNumberOfLastRacesToShow());
|
||||
newSettings.activeRaceColumnSelectionStrategy.setValue(this.getActiveRaceColumnSelectionStrategy());
|
||||
newSettings.autoExpandPreSelectedRace = this.isAutoExpandPreSelectedRace();
|
||||
newSettings.delayBetweenAutoAdvancesInMilliseconds.setValue(this.getDelayBetweenAutoAdvancesInMilliseconds());
|
||||
newSettings.maneuverDetailsToShow.setValues(this.getManeuverDetailsToShow());
|
||||
newSettings.nameOfRaceToSort.setValue(this.getNameOfRaceToSort());
|
||||
newSettings.sortAscending.setValue(this.isSortAscending());
|
||||
newSettings.updateUponPlayStateChange.setValue(this.isUpdateUponPlayStateChange());
|
||||
newSettings.showAddedScores.setValue(this.isShowAddedScores());
|
||||
newSettings.showCompetitorSailIdColumn.setValue(this.isShowCompetitorSailIdColumn());
|
||||
newSettings.showCompetitorFullNameColumn.setValue(this.isShowCompetitorFullNameColumn());
|
||||
newSettings.showOverallColumnWithNumberOfRacesCompletedPerCompetitor.setValue(this.isShowOverallColumnWithNumberOfRacesCompletedPerCompetitor());
|
||||
newSettings.isShowCompetitorNationality.setValue(this.isShowCompetitorNationality());
|
||||
if(namesOfRaceColumns != null && !namesOfRaceColumns.isEmpty()) {
|
||||
newSettings.namesOfRacesToShow.setValues(null);
|
||||
}
|
||||
newSettings.namesOfRaceColumnsToShow.setValues(this.getNamesOfRaceColumnsToShow());
|
||||
SettingsDefaultValuesUtils.keepDefaults(this, newSettings);
|
||||
if(namesOfRaceColumns != null && !namesOfRaceColumns.isEmpty()) {
|
||||
newSettings.namesOfRacesToShow.setDefaultValues(null);
|
||||
}
|
||||
newSettings.namesOfRaceColumnsToShow.setDefaultValues(namesOfRaceColumns);
|
||||
return newSettings;
|
||||
}
|
||||
|
||||
}
|
||||
+73
@@ -0,0 +1,73 @@
|
||||
package com.sap.sailing.gwt.settings.client.leaderboard;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.google.gwt.user.client.ui.CheckBox;
|
||||
import com.sap.sailing.domain.common.DetailType;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardSettings.RaceColumnSelectionStrategies;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sse.common.settings.util.SettingsDefaultValuesUtils;
|
||||
|
||||
public class MultiRaceLeaderboardSettingsDialogComponent
|
||||
extends LeaderboardSettingsDialogComponent<MultiRaceLeaderboardSettings> {
|
||||
|
||||
public MultiRaceLeaderboardSettingsDialogComponent(LeaderboardSettings initialSettings,
|
||||
List<String> allRaceColumnNames, StringMessages stringMessages) {
|
||||
super(initialSettings, allRaceColumnNames, stringMessages);
|
||||
}
|
||||
|
||||
@Override
|
||||
public MultiRaceLeaderboardSettings getResult() {
|
||||
List<DetailType> maneuverDetailsToShow = new ArrayList<DetailType>();
|
||||
for (Map.Entry<DetailType, CheckBox> entry : maneuverDetailCheckboxes.entrySet()) {
|
||||
if (entry.getValue().getValue()) {
|
||||
maneuverDetailsToShow.add(entry.getKey());
|
||||
}
|
||||
}
|
||||
List<DetailType> overallDetailsToShow = new ArrayList<DetailType>();
|
||||
for (Map.Entry<DetailType, CheckBox> entry : overallDetailCheckboxes.entrySet()) {
|
||||
if (entry.getValue().getValue()) {
|
||||
overallDetailsToShow.add(entry.getKey());
|
||||
}
|
||||
}
|
||||
List<DetailType> raceDetailsToShow = new ArrayList<DetailType>();
|
||||
for (Map.Entry<DetailType, CheckBox> entry : raceDetailCheckboxes.entrySet()) {
|
||||
if (entry.getValue().getValue()) {
|
||||
raceDetailsToShow.add(entry.getKey());
|
||||
}
|
||||
}
|
||||
List<DetailType> legDetailsToShow = new ArrayList<DetailType>();
|
||||
for (Map.Entry<DetailType, CheckBox> entry : legDetailCheckboxes.entrySet()) {
|
||||
if (entry.getValue().getValue()) {
|
||||
legDetailsToShow.add(entry.getKey());
|
||||
}
|
||||
}
|
||||
List<String> namesOfRaceColumnsToShow = null;
|
||||
if (activeRaceColumnSelectionStrategy == RaceColumnSelectionStrategies.EXPLICIT) {
|
||||
namesOfRaceColumnsToShow = new ArrayList<String>();
|
||||
for (Map.Entry<String, CheckBox> entry : raceColumnCheckboxes.entrySet()) {
|
||||
if (entry.getValue().getValue()) {
|
||||
namesOfRaceColumnsToShow.add(entry.getKey());
|
||||
}
|
||||
}
|
||||
}
|
||||
Long delayBetweenAutoAdvancesValue = refreshIntervalInSecondsBox.getValue();
|
||||
Integer lastNRacesToShowValue = activeRaceColumnSelectionStrategy == RaceColumnSelectionStrategies.LAST_N
|
||||
? numberOfLastRacesToShowBox.getValue() : null;
|
||||
MultiRaceLeaderboardSettings newSettings = new MultiRaceLeaderboardSettings(maneuverDetailsToShow,
|
||||
legDetailsToShow, raceDetailsToShow, overallDetailsToShow, namesOfRaceColumnsToShow,
|
||||
/* nameOfRacesToShow */null, lastNRacesToShowValue, initialSettings.isAutoExpandPreSelectedRace(),
|
||||
1000l * (delayBetweenAutoAdvancesValue == null ? 0l : delayBetweenAutoAdvancesValue.longValue()), null,
|
||||
true, /* updateUponPlayStateChange */ true, activeRaceColumnSelectionStrategy,
|
||||
/* showAddedScores */ showAddedScoresCheckBox.getValue().booleanValue(),
|
||||
/* showOverallColumnWithNumberOfRacesSailedPerCompetitor */ showOverallColumnWithNumberOfRacesSailedPerCompetitorCheckBox
|
||||
.getValue().booleanValue(),
|
||||
showCompetitorSailIdColumnheckBox.getValue(), showCompetitorFullNameColumnCheckBox.getValue(),
|
||||
isCompetitorNationalityColumnVisible.getValue());
|
||||
SettingsDefaultValuesUtils.keepDefaults(initialSettings, newSettings);
|
||||
return newSettings;
|
||||
}
|
||||
|
||||
}
|
||||
+3
-3
@@ -7,10 +7,10 @@ import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
* This is a special lifecycle that uses a different ID, which is required to allow a MultiLeaderboard and a normal
|
||||
* Leaderboard to coexist.
|
||||
*/
|
||||
public class MultiLeaderboardPanelLifecycle extends LeaderboardPanelLifecycle {
|
||||
public class MultipleMultiLeaderboardPanelLifecycle extends MultiRaceLeaderboardPanelLifecycle {
|
||||
public static final String MID = "mlb";
|
||||
|
||||
public MultiLeaderboardPanelLifecycle(AbstractLeaderboardDTO leaderboard, StringMessages stringMessages) {
|
||||
public MultipleMultiLeaderboardPanelLifecycle(AbstractLeaderboardDTO leaderboard, StringMessages stringMessages) {
|
||||
super(leaderboard, stringMessages);
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ public class MultiLeaderboardPanelLifecycle extends LeaderboardPanelLifecycle {
|
||||
}
|
||||
|
||||
@Override
|
||||
public LeaderboardSettings extractDocumentSettings(LeaderboardSettings leaderboardSettings) {
|
||||
public MultiRaceLeaderboardSettings extractDocumentSettings(MultiRaceLeaderboardSettings leaderboardSettings) {
|
||||
return createDefaultSettings();
|
||||
}
|
||||
|
||||
+2
-2
@@ -7,7 +7,7 @@ import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
* This is a special lifecycle that uses a different ID, which is required to allow a OverallLeaderboard and a normal
|
||||
* Leaderboard to coexist.
|
||||
*/
|
||||
public class OverallLeaderboardPanelLifecycle extends LeaderboardPanelLifecycle {
|
||||
public class OverallLeaderboardPanelLifecycle extends MultiRaceLeaderboardPanelLifecycle {
|
||||
|
||||
public static final String ID = "olb";
|
||||
|
||||
@@ -26,7 +26,7 @@ public class OverallLeaderboardPanelLifecycle extends LeaderboardPanelLifecycle
|
||||
}
|
||||
|
||||
@Override
|
||||
public LeaderboardSettingsDialogComponent getSettingsDialogComponent(LeaderboardSettings settings) {
|
||||
public MultiRaceLeaderboardSettingsDialogComponent getSettingsDialogComponent(MultiRaceLeaderboardSettings settings) {
|
||||
return new OverallLeaderboardSettingsDialogComponent(settings, namesOfRaceColumns, stringMessages);
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@ import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sse.gwt.client.dialog.DataEntryDialog;
|
||||
|
||||
public class OverallLeaderboardSettingsDialogComponent extends LeaderboardSettingsDialogComponent {
|
||||
public class OverallLeaderboardSettingsDialogComponent extends MultiRaceLeaderboardSettingsDialogComponent {
|
||||
|
||||
public OverallLeaderboardSettingsDialogComponent(LeaderboardSettings initialSettings, List<String> allRaceColumnNames, StringMessages stringMessages) {
|
||||
super(initialSettings, allRaceColumnNames, stringMessages);
|
||||
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
package com.sap.sailing.gwt.settings.client.leaderboard;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
import com.sap.sailing.domain.common.DetailType;
|
||||
|
||||
public class SingleRaceLeaderboardSettings extends LeaderboardSettings {
|
||||
|
||||
public SingleRaceLeaderboardSettings() {
|
||||
super();
|
||||
// TODO Auto-generated constructor stub
|
||||
}
|
||||
|
||||
public SingleRaceLeaderboardSettings(Collection<DetailType> maneuverDetailsToShow,
|
||||
Collection<DetailType> legDetailsToShow, Collection<DetailType> raceDetailsToShow,
|
||||
Collection<DetailType> overallDetailsToShow, List<String> namesOfRaceColumnsToShow,
|
||||
List<String> namesOfRacesToShow, Integer numberOfLastRacesToShow, boolean autoExpandPreSelectedRace,
|
||||
Long delayBetweenAutoAdvancesInMilliseconds, String nameOfRaceToSort, boolean sortAscending,
|
||||
boolean updateUponPlayStateChange, RaceColumnSelectionStrategies activeRaceColumnSelectionStrategy,
|
||||
boolean showAddedScores, boolean showOverallColumnWithNumberOfRacesCompletedPerCompetitor,
|
||||
boolean showCompetitorSailIdColumn, boolean showCompetitorFullNameColumn,
|
||||
boolean isCompetitorNationalityColumnVisible) {
|
||||
super(maneuverDetailsToShow, legDetailsToShow, raceDetailsToShow, overallDetailsToShow, namesOfRaceColumnsToShow,
|
||||
namesOfRacesToShow, numberOfLastRacesToShow, autoExpandPreSelectedRace, delayBetweenAutoAdvancesInMilliseconds,
|
||||
nameOfRaceToSort, sortAscending, updateUponPlayStateChange, activeRaceColumnSelectionStrategy, showAddedScores,
|
||||
showOverallColumnWithNumberOfRacesCompletedPerCompetitor, showCompetitorSailIdColumn,
|
||||
showCompetitorFullNameColumn, isCompetitorNationalityColumnVisible);
|
||||
}
|
||||
|
||||
public SingleRaceLeaderboardSettings(Iterable<String> namesOfRaceColumnsToShow) {
|
||||
super(namesOfRaceColumnsToShow);
|
||||
}
|
||||
|
||||
}
|
||||
+72
@@ -0,0 +1,72 @@
|
||||
package com.sap.sailing.gwt.settings.client.leaderboard;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.google.gwt.user.client.ui.CheckBox;
|
||||
import com.sap.sailing.domain.common.DetailType;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardSettings.RaceColumnSelectionStrategies;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sse.common.settings.util.SettingsDefaultValuesUtils;
|
||||
|
||||
public class SingleRaceLeaderboardSettingsDialogComponent
|
||||
extends LeaderboardSettingsDialogComponent<SingleRaceLeaderboardSettings> {
|
||||
|
||||
public SingleRaceLeaderboardSettingsDialogComponent(SingleRaceLeaderboardSettings initialSettings,
|
||||
List<String> allRaceColumnNames, StringMessages stringMessages) {
|
||||
super(initialSettings, allRaceColumnNames, stringMessages);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SingleRaceLeaderboardSettings getResult() {
|
||||
List<DetailType> maneuverDetailsToShow = new ArrayList<DetailType>();
|
||||
for (Map.Entry<DetailType, CheckBox> entry : maneuverDetailCheckboxes.entrySet()) {
|
||||
if (entry.getValue().getValue()) {
|
||||
maneuverDetailsToShow.add(entry.getKey());
|
||||
}
|
||||
}
|
||||
List<DetailType> overallDetailsToShow = new ArrayList<DetailType>();
|
||||
for (Map.Entry<DetailType, CheckBox> entry : overallDetailCheckboxes.entrySet()) {
|
||||
if (entry.getValue().getValue()) {
|
||||
overallDetailsToShow.add(entry.getKey());
|
||||
}
|
||||
}
|
||||
List<DetailType> raceDetailsToShow = new ArrayList<DetailType>();
|
||||
for (Map.Entry<DetailType, CheckBox> entry : raceDetailCheckboxes.entrySet()) {
|
||||
if (entry.getValue().getValue()) {
|
||||
raceDetailsToShow.add(entry.getKey());
|
||||
}
|
||||
}
|
||||
List<DetailType> legDetailsToShow = new ArrayList<DetailType>();
|
||||
for (Map.Entry<DetailType, CheckBox> entry : legDetailCheckboxes.entrySet()) {
|
||||
if (entry.getValue().getValue()) {
|
||||
legDetailsToShow.add(entry.getKey());
|
||||
}
|
||||
}
|
||||
List<String> namesOfRaceColumnsToShow = null;
|
||||
if (activeRaceColumnSelectionStrategy == RaceColumnSelectionStrategies.EXPLICIT) {
|
||||
namesOfRaceColumnsToShow = new ArrayList<String>();
|
||||
for (Map.Entry<String, CheckBox> entry : raceColumnCheckboxes.entrySet()) {
|
||||
if (entry.getValue().getValue()) {
|
||||
namesOfRaceColumnsToShow.add(entry.getKey());
|
||||
}
|
||||
}
|
||||
}
|
||||
Long delayBetweenAutoAdvancesValue = refreshIntervalInSecondsBox.getValue();
|
||||
Integer lastNRacesToShowValue = activeRaceColumnSelectionStrategy == RaceColumnSelectionStrategies.LAST_N
|
||||
? numberOfLastRacesToShowBox.getValue() : null;
|
||||
SingleRaceLeaderboardSettings newSettings = new SingleRaceLeaderboardSettings(maneuverDetailsToShow,
|
||||
legDetailsToShow, raceDetailsToShow, overallDetailsToShow, namesOfRaceColumnsToShow,
|
||||
/* nameOfRacesToShow */null, lastNRacesToShowValue, initialSettings.isAutoExpandPreSelectedRace(),
|
||||
1000l * (delayBetweenAutoAdvancesValue == null ? 0l : delayBetweenAutoAdvancesValue.longValue()), null,
|
||||
true, /* updateUponPlayStateChange */ true, activeRaceColumnSelectionStrategy,
|
||||
/* showAddedScores */ showAddedScoresCheckBox.getValue().booleanValue(),
|
||||
/* showOverallColumnWithNumberOfRacesSailedPerCompetitor */ showOverallColumnWithNumberOfRacesSailedPerCompetitorCheckBox
|
||||
.getValue().booleanValue(),
|
||||
showCompetitorSailIdColumnheckBox.getValue(), showCompetitorFullNameColumnCheckBox.getValue(),
|
||||
isCompetitorNationalityColumnVisible.getValue());
|
||||
SettingsDefaultValuesUtils.keepDefaults(initialSettings, newSettings);
|
||||
return newSettings;
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -163,7 +163,7 @@ public class LeaderboardEntryPoint extends AbstractSailingEntryPoint {
|
||||
|
||||
final MultiRaceLeaderboardViewer leaderboardViewer = new MultiRaceLeaderboardViewer(null, context,
|
||||
rootComponentLifeCycle, defaultSettings, sailingService, new AsyncActionsExecutor(),
|
||||
timer, null, leaderboardGroupName, leaderboardName,
|
||||
timer, leaderboardGroupName, leaderboardName,
|
||||
LeaderboardEntryPoint.this, getStringMessages(), getActualChartDetailType(defaultSettings));
|
||||
createUi(leaderboardViewer, defaultSettings, timer, leaderboardContextDefinition);
|
||||
}
|
||||
|
||||
+36
-48
@@ -82,7 +82,6 @@ import com.sap.sailing.domain.common.impl.InvertibleComparatorAdapter;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardPanelLifecycle;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardSettings;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardSettings.RaceColumnSelectionStrategies;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardSettingsDialogComponent;
|
||||
import com.sap.sailing.gwt.ui.actions.GetLeaderboardByNameAction;
|
||||
import com.sap.sailing.gwt.ui.client.Collator;
|
||||
import com.sap.sailing.gwt.ui.client.CompetitorSelectionChangeListener;
|
||||
@@ -125,8 +124,6 @@ import com.sap.sse.gwt.client.shared.components.AbstractCompositeComponent;
|
||||
import com.sap.sse.gwt.client.shared.components.Component;
|
||||
import com.sap.sse.gwt.client.shared.components.ComponentResources;
|
||||
import com.sap.sse.gwt.client.shared.components.IsEmbeddableComponent;
|
||||
import com.sap.sse.gwt.client.shared.components.SettingsDialog;
|
||||
import com.sap.sse.gwt.client.shared.components.SettingsDialogComponent;
|
||||
import com.sap.sse.gwt.client.shared.settings.ComponentContext;
|
||||
|
||||
/**
|
||||
@@ -135,7 +132,7 @@ import com.sap.sse.gwt.client.shared.settings.ComponentContext;
|
||||
* @author Axel Uhl (D043530)
|
||||
*
|
||||
*/
|
||||
public abstract class LeaderboardPanel extends AbstractCompositeComponent<LeaderboardSettings>
|
||||
public abstract class LeaderboardPanel<LS extends LeaderboardSettings> extends AbstractCompositeComponent<LS>
|
||||
implements TimeListener, PlayStateListener, DisplayedLeaderboardRowsProvider, IsEmbeddableComponent,
|
||||
CompetitorSelectionChangeListener, LeaderboardFetcher, BusyStateProvider, LeaderboardUpdateProvider {
|
||||
private static final LeaderboardResources RESOURCES = GWT.create(LeaderboardResources.class);
|
||||
@@ -387,16 +384,15 @@ public abstract class LeaderboardPanel extends AbstractCompositeComponent<Leader
|
||||
AsyncActionsExecutor asyncActionsExecutor, LeaderboardSettings settings,
|
||||
CompetitorSelectionProvider competitorSelectionProvider, String leaderboardName,
|
||||
ErrorReporter errorReporter, final StringMessages stringMessages, boolean showRaceDetails) {
|
||||
this(parent, context, sailingService, asyncActionsExecutor, settings, false, /* preSelectedRace */null,
|
||||
this(parent, context, sailingService, asyncActionsExecutor, settings, false,
|
||||
competitorSelectionProvider, null, leaderboardName, errorReporter, stringMessages, showRaceDetails);
|
||||
}
|
||||
|
||||
public LeaderboardPanel(Component<?> parent, ComponentContext<?> context, SailingServiceAsync sailingService,
|
||||
AsyncActionsExecutor asyncActionsExecutor, LeaderboardSettings settings, boolean isEmbedded,
|
||||
RegattaAndRaceIdentifier preSelectedRace, CompetitorSelectionProvider competitorSelectionProvider,
|
||||
AsyncActionsExecutor asyncActionsExecutor, LeaderboardSettings settings, boolean isEmbedded, CompetitorSelectionProvider competitorSelectionProvider,
|
||||
String leaderboardGroupName, String leaderboardName, ErrorReporter errorReporter,
|
||||
final StringMessages stringMessages, boolean showRaceDetails) {
|
||||
this(parent, context, sailingService, asyncActionsExecutor, settings, isEmbedded, preSelectedRace,
|
||||
this(parent, context, sailingService, asyncActionsExecutor, settings, isEmbedded,
|
||||
competitorSelectionProvider,
|
||||
new Timer(
|
||||
// perform the first request as "live" but don't by default auto-play
|
||||
@@ -410,8 +406,7 @@ public abstract class LeaderboardPanel extends AbstractCompositeComponent<Leader
|
||||
}
|
||||
|
||||
public LeaderboardPanel(Component<?> parent, ComponentContext<?> context, SailingServiceAsync sailingService,
|
||||
AsyncActionsExecutor asyncActionsExecutor, LeaderboardSettings settings, boolean isEmbedded,
|
||||
RegattaAndRaceIdentifier preSelectedRace, CompetitorSelectionProvider competitorSelectionProvider,
|
||||
AsyncActionsExecutor asyncActionsExecutor, LeaderboardSettings settings, boolean isEmbedded, CompetitorSelectionProvider competitorSelectionProvider,
|
||||
Timer timer, String leaderboardGroupName, String leaderboardName, final ErrorReporter errorReporter,
|
||||
final StringMessages stringMessages, boolean showRaceDetails, CompetitorFilterPanel competitorSearchTextBox,
|
||||
boolean showSelectionCheckbox, RaceTimesInfoProvider optionalRaceTimesInfoProvider,
|
||||
@@ -425,7 +420,7 @@ public abstract class LeaderboardPanel extends AbstractCompositeComponent<Leader
|
||||
this.asyncActionsExecutor = asyncActionsExecutor;
|
||||
this.isEmbedded = isEmbedded;
|
||||
this.competitorSelectionProvider = competitorSelectionProvider;
|
||||
competitorSelectionProvider.addCompetitorSelectionChangeListener(this);
|
||||
this.competitorSelectionProvider.addCompetitorSelectionChangeListener(this);
|
||||
this.setLeaderboardName(leaderboardName);
|
||||
this.errorReporter = errorReporter;
|
||||
this.stringMessages = stringMessages;
|
||||
@@ -448,19 +443,6 @@ public abstract class LeaderboardPanel extends AbstractCompositeComponent<Leader
|
||||
timer.addPlayStateListener(this);
|
||||
timer.addTimeListener(this);
|
||||
|
||||
switch (settings.getActiveRaceColumnSelectionStrategy()) {
|
||||
case EXPLICIT:
|
||||
if (preSelectedRace == null) {
|
||||
raceColumnSelection = new ExplicitRaceColumnSelection();
|
||||
} else {
|
||||
raceColumnSelection = new ExplicitRaceColumnSelectionWithPreselectedRace(preSelectedRace);
|
||||
}
|
||||
break;
|
||||
case LAST_N:
|
||||
setRaceColumnSelectionToLastNStrategy(settings.getNumberOfLastRacesToShow());
|
||||
break;
|
||||
}
|
||||
|
||||
totalRankColumn = new TotalRankColumn();
|
||||
leaderboardTable = new FlushableSortedCellTableWithStylableHeaders<LeaderboardRowDTO>(/* pageSize */10000,
|
||||
TABLE_RESOURCES);
|
||||
@@ -523,9 +505,7 @@ public abstract class LeaderboardPanel extends AbstractCompositeComponent<Leader
|
||||
competitorSearchTextBox.getSettingsButton().addClickHandler(new ClickHandler() {
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
SettingsDialog<LeaderboardSettings> settingsDialog = new SettingsDialog<LeaderboardSettings>(LeaderboardPanel.this, stringMessages);
|
||||
settingsDialog.ensureDebugId("LeaderboardSettingsDialog");
|
||||
settingsDialog.show();
|
||||
openSettingsDialog();
|
||||
}
|
||||
});
|
||||
this.competitorFilterPanel = competitorSearchTextBox;
|
||||
@@ -543,9 +523,23 @@ public abstract class LeaderboardPanel extends AbstractCompositeComponent<Leader
|
||||
initWidget(mainPanel);
|
||||
mainPanel.setWidget(contentPanel);
|
||||
this.setTitle(stringMessages.leaderboard());
|
||||
}
|
||||
|
||||
protected abstract void openSettingsDialog();
|
||||
|
||||
protected void initialize(LeaderboardSettings settings){
|
||||
switch (settings.getActiveRaceColumnSelectionStrategy()) {
|
||||
case EXPLICIT:
|
||||
raceColumnSelection = getDefaultRaceColumnSelection();
|
||||
break;
|
||||
case LAST_N:
|
||||
setRaceColumnSelectionToLastNStrategy(settings.getNumberOfLastRacesToShow());
|
||||
break;
|
||||
}
|
||||
if (timer.isInitialized()) {
|
||||
loadCompleteLeaderboard(/* showProgress */ false);
|
||||
}
|
||||
updateSettings(settings);
|
||||
}
|
||||
|
||||
private Widget createToolbarPanel() {
|
||||
@@ -2140,7 +2134,7 @@ public abstract class LeaderboardPanel extends AbstractCompositeComponent<Leader
|
||||
private RaceColumn<?> getRaceColumnByRaceName(String raceName) {
|
||||
for (int i = 0; i < getLeaderboardTable().getColumnCount(); i++) {
|
||||
Column<LeaderboardRowDTO, ?> column = getLeaderboardTable().getColumn(i);
|
||||
if (column instanceof RaceColumn<?>) {
|
||||
if (column instanceof LeaderboardPanel.RaceColumn) {
|
||||
RaceColumnDTO raceInLeaderboard = ((RaceColumn<?>) column).getRace();
|
||||
for (FleetDTO fleet : raceInLeaderboard.getFleets()) {
|
||||
final RegattaAndRaceIdentifier raceIdentifier = raceInLeaderboard.getRaceIdentifier(fleet);
|
||||
@@ -2156,7 +2150,7 @@ public abstract class LeaderboardPanel extends AbstractCompositeComponent<Leader
|
||||
private RaceColumn<?> getRaceColumnByRaceColumnName(String raceColumnName) {
|
||||
for (int i = 0; i < getLeaderboardTable().getColumnCount(); i++) {
|
||||
Column<LeaderboardRowDTO, ?> column = getLeaderboardTable().getColumn(i);
|
||||
if (column instanceof RaceColumn<?>) {
|
||||
if (column instanceof LeaderboardPanel.RaceColumn) {
|
||||
if (((RaceColumn<?>) column).getRaceColumnName().equals(raceColumnName)) {
|
||||
return (RaceColumn<?>) column;
|
||||
}
|
||||
@@ -2373,7 +2367,7 @@ public abstract class LeaderboardPanel extends AbstractCompositeComponent<Leader
|
||||
Collection<String> namesOfExpandedRaceColumns = new ArrayList<String>();
|
||||
for (int i = 0; i < getLeaderboardTable().getColumnCount(); i++) {
|
||||
Column<LeaderboardRowDTO, ?> column = getLeaderboardTable().getColumn(i);
|
||||
if (column instanceof RaceColumn<?>) {
|
||||
if (column instanceof LeaderboardPanel.RaceColumn) {
|
||||
RaceColumn<?> raceColumn = (RaceColumn<?>) column;
|
||||
if (raceColumn.isExpanded()) {
|
||||
namesOfExpandedRaceColumns.add(raceColumn.getRaceColumnName());
|
||||
@@ -2441,7 +2435,7 @@ public abstract class LeaderboardPanel extends AbstractCompositeComponent<Leader
|
||||
}
|
||||
RaceColumn<?> lastRaceColumn = null;
|
||||
for (int i = getLeaderboardTable().getColumnCount() - 1; i >= 0; i--) {
|
||||
if (getLeaderboardTable().getColumn(i) instanceof RaceColumn<?>) {
|
||||
if (getLeaderboardTable().getColumn(i) instanceof LeaderboardPanel.RaceColumn) {
|
||||
lastRaceColumn = (RaceColumn<?>) getLeaderboardTable().getColumn(i);
|
||||
break;
|
||||
}
|
||||
@@ -2532,7 +2526,7 @@ public abstract class LeaderboardPanel extends AbstractCompositeComponent<Leader
|
||||
if (selectedRaceDetails.contains(DetailType.DISPLAY_LEGS)) {
|
||||
for (int i = 0; i < getLeaderboardTable().getColumnCount(); i++) {
|
||||
Column<LeaderboardRowDTO, ?> c = getLeaderboardTable().getColumn(i);
|
||||
if (c instanceof RaceColumn<?>) {
|
||||
if (c instanceof LeaderboardPanel.RaceColumn) {
|
||||
RaceColumn<?> rc = (RaceColumn<?>) c;
|
||||
// If the new leaderboard no longer contains the column, getLegCount will return -1, causing the
|
||||
// column
|
||||
@@ -2885,7 +2879,7 @@ public abstract class LeaderboardPanel extends AbstractCompositeComponent<Leader
|
||||
*/
|
||||
private void addRaceColumn(RaceColumn<?> raceColumn) {
|
||||
if (getLeaderboardTable()
|
||||
.getColumn(getLeaderboardTable().getColumnCount() - 1) instanceof TotalNetPointssColumn) {
|
||||
.getColumn(getLeaderboardTable().getColumnCount() - 1) instanceof LeaderboardPanel.TotalNetPointssColumn) {
|
||||
removeColumn(getLeaderboardTable().getColumnCount() - 1);
|
||||
}
|
||||
addColumn(raceColumn);
|
||||
@@ -2960,7 +2954,7 @@ public abstract class LeaderboardPanel extends AbstractCompositeComponent<Leader
|
||||
if (isShowCompetitorSailId()) {
|
||||
if (getLeaderboardTable().getColumnCount() <= columnIndexWhereToInsertTheNextColumn
|
||||
|| !(getLeaderboardTable()
|
||||
.getColumn(columnIndexWhereToInsertTheNextColumn) instanceof SailIDColumn<?>)) {
|
||||
.getColumn(columnIndexWhereToInsertTheNextColumn) instanceof SailIDColumn)) {
|
||||
insertColumn(columnIndexWhereToInsertTheNextColumn,
|
||||
new SailIDColumn<LeaderboardRowDTO>(new CompetitorFetcher<LeaderboardRowDTO>() {
|
||||
@Override
|
||||
@@ -2972,20 +2966,20 @@ public abstract class LeaderboardPanel extends AbstractCompositeComponent<Leader
|
||||
columnIndexWhereToInsertTheNextColumn++;
|
||||
} else {
|
||||
if (getLeaderboardTable().getColumnCount() > columnIndexWhereToInsertTheNextColumn && getLeaderboardTable()
|
||||
.getColumn(columnIndexWhereToInsertTheNextColumn) instanceof SailIDColumn<?>) {
|
||||
.getColumn(columnIndexWhereToInsertTheNextColumn) instanceof SailIDColumn) {
|
||||
removeColumn(columnIndexWhereToInsertTheNextColumn);
|
||||
}
|
||||
}
|
||||
if (isShowCompetitorFullName()) {
|
||||
if (getLeaderboardTable().getColumnCount() <= columnIndexWhereToInsertTheNextColumn
|
||||
|| !(getLeaderboardTable()
|
||||
.getColumn(columnIndexWhereToInsertTheNextColumn) instanceof CompetitorColumn)) {
|
||||
.getColumn(columnIndexWhereToInsertTheNextColumn) instanceof LeaderboardPanel.CompetitorColumn)) {
|
||||
insertColumn(columnIndexWhereToInsertTheNextColumn, createCompetitorColumn());
|
||||
}
|
||||
columnIndexWhereToInsertTheNextColumn++;
|
||||
} else {
|
||||
if (getLeaderboardTable().getColumnCount() > columnIndexWhereToInsertTheNextColumn && getLeaderboardTable()
|
||||
.getColumn(columnIndexWhereToInsertTheNextColumn) instanceof CompetitorColumn) {
|
||||
.getColumn(columnIndexWhereToInsertTheNextColumn) instanceof LeaderboardPanel.CompetitorColumn) {
|
||||
removeColumn(columnIndexWhereToInsertTheNextColumn);
|
||||
}
|
||||
}
|
||||
@@ -3005,7 +2999,7 @@ public abstract class LeaderboardPanel extends AbstractCompositeComponent<Leader
|
||||
private void ensureTotalsColumn() {
|
||||
// add a totals column on the right
|
||||
if (getLeaderboardTable().getColumnCount() == 0 || !(getLeaderboardTable()
|
||||
.getColumn(getLeaderboardTable().getColumnCount() - 1) instanceof TotalNetPointssColumn)) {
|
||||
.getColumn(getLeaderboardTable().getColumnCount() - 1) instanceof LeaderboardPanel.TotalNetPointssColumn)) {
|
||||
addColumn(new TotalNetPointssColumn(TOTAL_COLUMN_STYLE));
|
||||
}
|
||||
}
|
||||
@@ -3013,14 +3007,14 @@ public abstract class LeaderboardPanel extends AbstractCompositeComponent<Leader
|
||||
private void ensureTotalRacesSailedColumn() {
|
||||
// add a totals column on the right
|
||||
if (getLeaderboardTable().getColumnCount() == 0 || !(getLeaderboardTable()
|
||||
.getColumn(getLeaderboardTable().getColumnCount() - 2) instanceof TotalRacesCompletedColumn)) {
|
||||
.getColumn(getLeaderboardTable().getColumnCount() - 2) instanceof LeaderboardPanel.TotalRacesCompletedColumn)) {
|
||||
insertColumn(getLeaderboardTable().getColumnCount() - 1, new TotalRacesCompletedColumn(TOTAL_COLUMN_STYLE));
|
||||
}
|
||||
}
|
||||
|
||||
private void ensureNoTotalRacesSailedColumn() {
|
||||
if ((getLeaderboardTable()
|
||||
.getColumn(getLeaderboardTable().getColumnCount() - 2) instanceof TotalRacesCompletedColumn)) {
|
||||
.getColumn(getLeaderboardTable().getColumnCount() - 2) instanceof LeaderboardPanel.TotalRacesCompletedColumn)) {
|
||||
removeColumn(getLeaderboardTable().getColumnCount() - 2);
|
||||
}
|
||||
}
|
||||
@@ -3057,14 +3051,14 @@ public abstract class LeaderboardPanel extends AbstractCompositeComponent<Leader
|
||||
|
||||
private void ensureNoCarryColumn(int zeroBasedIndexOfCarryColumn) {
|
||||
if (getLeaderboardTable().getColumnCount() > zeroBasedIndexOfCarryColumn
|
||||
&& getLeaderboardTable().getColumn(zeroBasedIndexOfCarryColumn) instanceof CarryColumn) {
|
||||
&& getLeaderboardTable().getColumn(zeroBasedIndexOfCarryColumn) instanceof LeaderboardPanel.CarryColumn) {
|
||||
removeColumn(zeroBasedIndexOfCarryColumn);
|
||||
}
|
||||
}
|
||||
|
||||
protected void ensureCarryColumn(int zeroBasedIndexOfCarryColumn) {
|
||||
if (getLeaderboardTable().getColumnCount() <= zeroBasedIndexOfCarryColumn
|
||||
|| !(getLeaderboardTable().getColumn(zeroBasedIndexOfCarryColumn) instanceof CarryColumn)) {
|
||||
|| !(getLeaderboardTable().getColumn(zeroBasedIndexOfCarryColumn) instanceof LeaderboardPanel.CarryColumn)) {
|
||||
while (getLeaderboardTable().getColumnCount() > zeroBasedIndexOfCarryColumn) {
|
||||
removeColumn(zeroBasedIndexOfCarryColumn);
|
||||
}
|
||||
@@ -3146,12 +3140,6 @@ public abstract class LeaderboardPanel extends AbstractCompositeComponent<Leader
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SettingsDialogComponent<LeaderboardSettings> getSettingsDialogComponent(LeaderboardSettings settings) {
|
||||
return new LeaderboardSettingsDialogComponent(settings, leaderboard.getNamesOfRaceColumns(),
|
||||
stringMessages);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getLocalizedShortName() {
|
||||
return stringMessages.leaderboard();
|
||||
|
||||
+5
-5
@@ -7,9 +7,9 @@ import com.sap.sailing.domain.common.DetailType;
|
||||
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardPanelLifecycle;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardPerspectiveOwnSettings;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardSettings;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.MetaLeaderboardPerspectiveLifecycle;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.MultiLeaderboardPanelLifecycle;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.MultiRaceLeaderboardSettings;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.MultipleMultiLeaderboardPanelLifecycle;
|
||||
import com.sap.sailing.gwt.ui.client.CompetitorSelectionModel;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
@@ -63,7 +63,7 @@ public class MetaLeaderboardViewer extends AbstractLeaderboardViewer<MetaLeaderb
|
||||
/**
|
||||
* Cleanup one java8 suppliers can be used
|
||||
*/
|
||||
init(new SingleLeaderboardPanel(this, componentContext, sailingService, asyncActionsExecutor,
|
||||
init(new SingleRaceLeaderboardPanel(this, componentContext, sailingService, asyncActionsExecutor,
|
||||
settings.findSettingsByComponentId(LeaderboardPanelLifecycle.ID),
|
||||
preselectedRace != null, preselectedRace, competitorSelectionModel, timer,
|
||||
leaderboardGroupName, metaLeaderboardName, errorReporter, stringMessages,
|
||||
@@ -87,7 +87,7 @@ public class MetaLeaderboardViewer extends AbstractLeaderboardViewer<MetaLeaderb
|
||||
multiCompetitorChart.getElement().getStyle().setMarginTop(10, Unit.PX);
|
||||
multiCompetitorChart.getElement().getStyle().setMarginBottom(10, Unit.PX);
|
||||
|
||||
LeaderboardSettings leaderboardSettings = settings.findSettingsByComponentId(MultiLeaderboardPanelLifecycle.MID);
|
||||
MultiRaceLeaderboardSettings leaderboardSettings = settings.findSettingsByComponentId(MultipleMultiLeaderboardPanelLifecycle.MID);
|
||||
if(leaderboardSettings == null) {
|
||||
leaderboardSettings = lifecycle.getMultiLeaderboardPanelLifecycle().createDefaultSettings();
|
||||
}
|
||||
@@ -95,7 +95,7 @@ public class MetaLeaderboardViewer extends AbstractLeaderboardViewer<MetaLeaderb
|
||||
multiLeaderboardPanel = new MultiLeaderboardProxyPanel(this, componentContext, sailingService,
|
||||
metaLeaderboardName,
|
||||
asyncActionsExecutor, timer, false /* isEmbedded */,
|
||||
preselectedLeaderboardName, preselectedRace, errorReporter, stringMessages,
|
||||
preselectedLeaderboardName, errorReporter, stringMessages,
|
||||
perspectiveSettings.isShowRaceDetails(), perspectiveSettings.isAutoExpandLastRaceColumn(),
|
||||
leaderboardSettings);
|
||||
multiLeaderboardPanel.setVisible(perspectiveSettings.isShowSeriesLeaderboards());
|
||||
|
||||
+16
-17
@@ -18,10 +18,9 @@ import com.google.gwt.user.client.ui.Label;
|
||||
import com.google.gwt.user.client.ui.TabPanel;
|
||||
import com.google.gwt.user.client.ui.VerticalPanel;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.domain.common.RaceIdentifier;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardSettings;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardSettingsFactory;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.MultiLeaderboardPanelLifecycle;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.MultiRaceLeaderboardSettings;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.MultipleMultiLeaderboardPanelLifecycle;
|
||||
import com.sap.sailing.gwt.ui.client.CompetitorSelectionModel;
|
||||
import com.sap.sailing.gwt.ui.client.LeaderboardUpdateListener;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
@@ -40,9 +39,9 @@ import com.sap.sse.gwt.client.shared.settings.ComponentContext;
|
||||
* A panel managing multiple {@link LeaderboardPanel}s (e.g. from a meta leaderboard) so that the user can switch between them.
|
||||
* @author Frank
|
||||
*/
|
||||
public class MultiLeaderboardProxyPanel extends AbstractLazyComponent<LeaderboardSettings> implements TimeListener, SelectedLeaderboardChangeProvider {
|
||||
public class MultiLeaderboardProxyPanel extends AbstractLazyComponent<MultiRaceLeaderboardSettings> implements TimeListener, SelectedLeaderboardChangeProvider {
|
||||
|
||||
private LeaderboardPanel selectedLeaderboardPanel;
|
||||
private MultiRaceLeaderboardPanel selectedLeaderboardPanel;
|
||||
private FlowPanel selectedLeaderboardFlowPanel;
|
||||
|
||||
private final StringMessages stringMessages;
|
||||
@@ -65,16 +64,16 @@ public class MultiLeaderboardProxyPanel extends AbstractLazyComponent<Leaderboar
|
||||
|
||||
private final Set<LeaderboardUpdateListener> leaderboardUpdateListeners;
|
||||
private final Set<SelectedLeaderboardChangeListener> selectedLeaderboardChangeListeners;
|
||||
private HashMap<String, LeaderboardSettings> contextStore;
|
||||
private LeaderboardSettings loadedSettings;
|
||||
private HashMap<String, MultiRaceLeaderboardSettings> contextStore;
|
||||
private MultiRaceLeaderboardSettings loadedSettings;
|
||||
|
||||
public MultiLeaderboardProxyPanel(Component<?> parent, ComponentContext<?> context,
|
||||
SailingServiceAsync sailingService, String metaLeaderboardName,
|
||||
AsyncActionsExecutor asyncActionsExecutor,
|
||||
Timer timer, boolean isEmbedded, String preselectedLeaderboardName, RaceIdentifier preselectedRace,
|
||||
Timer timer, boolean isEmbedded, String preselectedLeaderboardName,
|
||||
ErrorReporter errorReporter, StringMessages stringMessages,
|
||||
boolean showRaceDetails, boolean autoExpandLastRaceColumn,
|
||||
LeaderboardSettings settings) {
|
||||
MultiRaceLeaderboardSettings settings) {
|
||||
super(parent, context);
|
||||
|
||||
loadedSettings = settings;
|
||||
@@ -146,17 +145,17 @@ public class MultiLeaderboardProxyPanel extends AbstractLazyComponent<Leaderboar
|
||||
}
|
||||
|
||||
@Override
|
||||
public LeaderboardSettings getSettings() {
|
||||
public MultiRaceLeaderboardSettings getSettings() {
|
||||
return selectedLeaderboardPanel.getSettings();
|
||||
}
|
||||
|
||||
@Override
|
||||
public SettingsDialogComponent<LeaderboardSettings> getSettingsDialogComponent(LeaderboardSettings settings) {
|
||||
public SettingsDialogComponent<MultiRaceLeaderboardSettings> getSettingsDialogComponent(MultiRaceLeaderboardSettings settings) {
|
||||
return selectedLeaderboardPanel.getSettingsDialogComponent(settings);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateSettings(LeaderboardSettings newSettings) {
|
||||
public void updateSettings(MultiRaceLeaderboardSettings newSettings) {
|
||||
// store contextspecific setting in this hashmap, so they are not lost on tab change
|
||||
contextStore.put(selectedLeaderboardPanel.getLeaderboardName(), newSettings);
|
||||
selectedLeaderboardPanel.updateSettings(newSettings);
|
||||
@@ -225,7 +224,7 @@ public class MultiLeaderboardProxyPanel extends AbstractLazyComponent<Leaderboar
|
||||
|
||||
selectedLeaderboardFlowPanel = (FlowPanel) leaderboardsTabPanel.getWidget(newTabIndex);
|
||||
|
||||
LeaderboardSettings toMerge = contextStore.get(newSelectedLeaderboardName);
|
||||
MultiRaceLeaderboardSettings toMerge = contextStore.get(newSelectedLeaderboardName);
|
||||
if (toMerge != null) {
|
||||
toMerge = mergeContext(loadedSettings, toMerge);
|
||||
} else {
|
||||
@@ -235,7 +234,7 @@ public class MultiLeaderboardProxyPanel extends AbstractLazyComponent<Leaderboar
|
||||
MultiMultiRaceLeaderboardPanel newSelectedLeaderboardPanel = new MultiMultiRaceLeaderboardPanel(this, getComponentContext(),
|
||||
sailingService,
|
||||
asyncActionsExecutor, toMerge, isEmbedded,
|
||||
/* preselectedRace*/ null, new CompetitorSelectionModel(true), timer,
|
||||
new CompetitorSelectionModel(true), timer,
|
||||
null, newSelectedLeaderboardName, errorReporter, stringMessages,
|
||||
showRaceDetails, /* competitorSearchTextBox */ null, /* showSelectionCheckbox */ true, /* raceTimesInfoProvider */null,
|
||||
false, /* adjustTimerDelay */ true, /* autoApplyTopNFilter */ false,
|
||||
@@ -256,7 +255,7 @@ public class MultiLeaderboardProxyPanel extends AbstractLazyComponent<Leaderboar
|
||||
this.selectedLeaderboardName = newSelectedLeaderboardName;
|
||||
}
|
||||
|
||||
private LeaderboardSettings mergeContext(LeaderboardSettings settings, LeaderboardSettings toMerge) {
|
||||
private MultiRaceLeaderboardSettings mergeContext(MultiRaceLeaderboardSettings settings, MultiRaceLeaderboardSettings toMerge) {
|
||||
return LeaderboardSettingsFactory.getInstance().mergeLeaderboardSettings(toMerge, settings);
|
||||
}
|
||||
|
||||
@@ -288,7 +287,7 @@ public class MultiLeaderboardProxyPanel extends AbstractLazyComponent<Leaderboar
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setSelectedLeaderboard(LeaderboardPanel selectedLeaderboard) {
|
||||
public void setSelectedLeaderboard(MultiRaceLeaderboardPanel selectedLeaderboard) {
|
||||
if (this.selectedLeaderboardPanel != selectedLeaderboard) {
|
||||
this.selectedLeaderboardPanel = selectedLeaderboard;
|
||||
for (SelectedLeaderboardChangeListener listener : selectedLeaderboardChangeListeners) {
|
||||
@@ -303,6 +302,6 @@ public class MultiLeaderboardProxyPanel extends AbstractLazyComponent<Leaderboar
|
||||
|
||||
@Override
|
||||
public String getId() {
|
||||
return MultiLeaderboardPanelLifecycle.MID;
|
||||
return MultipleMultiLeaderboardPanelLifecycle.MID;
|
||||
}
|
||||
}
|
||||
+4
-6
@@ -1,7 +1,6 @@
|
||||
package com.sap.sailing.gwt.ui.leaderboard;
|
||||
|
||||
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardSettings;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.MultiRaceLeaderboardSettings;
|
||||
import com.sap.sailing.gwt.ui.client.CompetitorSelectionProvider;
|
||||
import com.sap.sailing.gwt.ui.client.RaceTimesInfoProvider;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
@@ -18,15 +17,14 @@ import com.sap.sse.gwt.client.shared.settings.ComponentContext;
|
||||
*/
|
||||
public class MultiMultiRaceLeaderboardPanel extends MultiRaceLeaderboardPanel {
|
||||
public MultiMultiRaceLeaderboardPanel(Component<?> parent, ComponentContext<?> context,
|
||||
SailingServiceAsync sailingService, AsyncActionsExecutor asyncActionsExecutor, LeaderboardSettings settings,
|
||||
boolean isEmbedded, RegattaAndRaceIdentifier preSelectedRace,
|
||||
CompetitorSelectionProvider competitorSelectionProvider, Timer timer, String leaderboardGroupName,
|
||||
SailingServiceAsync sailingService, AsyncActionsExecutor asyncActionsExecutor, MultiRaceLeaderboardSettings settings,
|
||||
boolean isEmbedded, CompetitorSelectionProvider competitorSelectionProvider, Timer timer, String leaderboardGroupName,
|
||||
String leaderboardName, ErrorReporter errorReporter, StringMessages stringMessages,
|
||||
boolean showRaceDetails, CompetitorFilterPanel competitorSearchTextBox,
|
||||
boolean showSelectionCheckbox, RaceTimesInfoProvider optionalRaceTimesInfoProvider,
|
||||
boolean autoExpandLastRaceColumn, boolean adjustTimerDelay, boolean autoApplyTopNFilter,
|
||||
boolean showCompetitorFilterStatus, boolean enableSyncScroller) {
|
||||
super(parent, context, sailingService, asyncActionsExecutor, settings, isEmbedded, preSelectedRace,
|
||||
super(parent, context, sailingService, asyncActionsExecutor, settings, isEmbedded,
|
||||
competitorSelectionProvider, timer, leaderboardGroupName, leaderboardName, errorReporter,
|
||||
stringMessages, showRaceDetails, competitorSearchTextBox, showSelectionCheckbox,
|
||||
optionalRaceTimesInfoProvider, autoExpandLastRaceColumn, adjustTimerDelay, autoApplyTopNFilter,
|
||||
|
||||
+59
-20
@@ -1,15 +1,20 @@
|
||||
package com.sap.sailing.gwt.ui.leaderboard;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
|
||||
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
|
||||
import com.sap.sailing.domain.common.dto.AbstractLeaderboardDTO;
|
||||
import com.sap.sailing.domain.common.dto.CompetitorDTO;
|
||||
import com.sap.sailing.domain.common.dto.LeaderboardDTO;
|
||||
import com.sap.sailing.domain.common.dto.LeaderboardRowDTO;
|
||||
import com.sap.sailing.domain.common.dto.RaceColumnDTO;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardSettings;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.MultiRaceLeaderboardSettings;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.MultiRaceLeaderboardSettingsDialogComponent;
|
||||
import com.sap.sailing.gwt.ui.client.CompetitorSelectionProvider;
|
||||
import com.sap.sailing.gwt.ui.client.RaceTimesInfoProvider;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
@@ -20,56 +25,74 @@ import com.sap.sse.common.Util;
|
||||
import com.sap.sse.common.filter.BinaryOperator;
|
||||
import com.sap.sse.common.filter.Filter;
|
||||
import com.sap.sse.common.filter.FilterSet;
|
||||
import com.sap.sse.common.settings.util.SettingsDefaultValuesUtils;
|
||||
import com.sap.sse.gwt.client.ErrorReporter;
|
||||
import com.sap.sse.gwt.client.async.AsyncActionsExecutor;
|
||||
import com.sap.sse.gwt.client.player.Timer;
|
||||
import com.sap.sse.gwt.client.shared.components.Component;
|
||||
import com.sap.sse.gwt.client.shared.components.SettingsDialog;
|
||||
import com.sap.sse.gwt.client.shared.components.SettingsDialogComponent;
|
||||
import com.sap.sse.gwt.client.shared.settings.ComponentContext;
|
||||
|
||||
public class MultiRaceLeaderboardPanel extends LeaderboardPanel {
|
||||
public class MultiRaceLeaderboardPanel extends LeaderboardPanel<MultiRaceLeaderboardSettings> {
|
||||
|
||||
public MultiRaceLeaderboardPanel(Component<?> parent, ComponentContext<?> context,
|
||||
SailingServiceAsync sailingService, AsyncActionsExecutor asyncActionsExecutor, LeaderboardSettings settings,
|
||||
boolean isEmbedded, RegattaAndRaceIdentifier preSelectedRace,
|
||||
SailingServiceAsync sailingService, AsyncActionsExecutor asyncActionsExecutor, MultiRaceLeaderboardSettings settings,
|
||||
boolean isEmbedded,
|
||||
CompetitorSelectionProvider competitorSelectionProvider, String leaderboardGroupName,
|
||||
String leaderboardName, ErrorReporter errorReporter, StringMessages stringMessages,
|
||||
boolean showRaceDetails) {
|
||||
super(parent, context, sailingService, asyncActionsExecutor, settings, isEmbedded, preSelectedRace,
|
||||
super(parent, context, sailingService, asyncActionsExecutor, settings, isEmbedded,
|
||||
competitorSelectionProvider, leaderboardGroupName, leaderboardName, errorReporter, stringMessages,
|
||||
showRaceDetails);
|
||||
updateSettings(settings);
|
||||
initialize(settings);
|
||||
}
|
||||
|
||||
public MultiRaceLeaderboardPanel(Component<?> parent, ComponentContext<?> context,
|
||||
SailingServiceAsync sailingService, AsyncActionsExecutor asyncActionsExecutor, LeaderboardSettings settings,
|
||||
boolean isEmbedded, RegattaAndRaceIdentifier preSelectedRace,
|
||||
SailingServiceAsync sailingService, AsyncActionsExecutor asyncActionsExecutor, MultiRaceLeaderboardSettings settings,
|
||||
boolean isEmbedded,
|
||||
CompetitorSelectionProvider competitorSelectionProvider, Timer timer, String leaderboardGroupName,
|
||||
String leaderboardName, ErrorReporter errorReporter, StringMessages stringMessages, boolean showRaceDetails,
|
||||
CompetitorFilterPanel competitorSearchTextBox, boolean showSelectionCheckbox,
|
||||
RaceTimesInfoProvider optionalRaceTimesInfoProvider, boolean autoExpandLastRaceColumn,
|
||||
boolean adjustTimerDelay, boolean autoApplyTopNFilter, boolean showCompetitorFilterStatus,
|
||||
boolean enableSyncScroller) {
|
||||
super(parent, context, sailingService, asyncActionsExecutor, settings, isEmbedded, preSelectedRace,
|
||||
super(parent, context, sailingService, asyncActionsExecutor, settings, isEmbedded,
|
||||
competitorSelectionProvider, timer, leaderboardGroupName, leaderboardName, errorReporter,
|
||||
stringMessages, showRaceDetails, competitorSearchTextBox, showSelectionCheckbox,
|
||||
optionalRaceTimesInfoProvider, autoExpandLastRaceColumn, adjustTimerDelay, autoApplyTopNFilter,
|
||||
showCompetitorFilterStatus, enableSyncScroller);
|
||||
updateSettings(settings);
|
||||
initialize(settings);
|
||||
}
|
||||
|
||||
public MultiRaceLeaderboardPanel(Component<?> parent, ComponentContext<?> context,
|
||||
SailingServiceAsync sailingService, AsyncActionsExecutor asyncActionsExecutor, LeaderboardSettings settings,
|
||||
SailingServiceAsync sailingService, AsyncActionsExecutor asyncActionsExecutor, MultiRaceLeaderboardSettings settings,
|
||||
CompetitorSelectionProvider competitorSelectionProvider, String leaderboardName,
|
||||
ErrorReporter errorReporter, StringMessages stringMessages, boolean showRaceDetails) {
|
||||
super(parent, context, sailingService, asyncActionsExecutor, settings, competitorSelectionProvider,
|
||||
leaderboardName, errorReporter, stringMessages, showRaceDetails);
|
||||
updateSettings(settings);
|
||||
initialize(settings);
|
||||
}
|
||||
|
||||
@Override
|
||||
public LeaderboardSettings getSettings() {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
public MultiRaceLeaderboardSettings getSettings() {
|
||||
Iterable<RaceColumnDTO> selectedRaceColumns = raceColumnSelection
|
||||
.getSelectedRaceColumnsOrderedAsInLeaderboard(leaderboard);
|
||||
List<String> namesOfRaceColumnsToShow = new ArrayList<>();
|
||||
for (RaceColumnDTO raceColumn : selectedRaceColumns) {
|
||||
namesOfRaceColumnsToShow.add(raceColumn.getName());
|
||||
}
|
||||
MultiRaceLeaderboardSettings leaderboardSettings = new MultiRaceLeaderboardSettings(
|
||||
Collections.unmodifiableList(selectedManeuverDetails), Collections.unmodifiableList(selectedLegDetails),
|
||||
Collections.unmodifiableList(selectedRaceDetails),
|
||||
Collections.unmodifiableList(selectedOverallDetailColumns), namesOfRaceColumnsToShow,
|
||||
/* namesOfRacesToShow */ null, raceColumnSelection.getNumberOfLastRaceColumnsToShow(),
|
||||
false, timer.getRefreshInterval(), /* nameOfRaceToSort */ null,
|
||||
/* sortAscending */ true, /* updateUponPlayStateChange */ true, raceColumnSelection.getType(),
|
||||
isShowAddedScores(), isShowOverallColumnWithNumberOfRacesCompletedPerCompetitor(),
|
||||
isShowCompetitorSailId(), isShowCompetitorFullName(), isShowCompetitorNationality);
|
||||
SettingsDefaultValuesUtils.keepDefaults(currentSettings, leaderboardSettings);
|
||||
return leaderboardSettings;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -96,7 +119,7 @@ public class MultiRaceLeaderboardPanel extends LeaderboardPanel {
|
||||
@Override
|
||||
protected LeaderboardSettings overrideDefaultsForNamesOfRaceColumns(LeaderboardSettings currentSettings,
|
||||
LeaderboardDTO result) {
|
||||
return currentSettings.overrideDefaultsForNamesOfRaceColumns(result.getNamesOfRaceColumns());
|
||||
return ((MultiRaceLeaderboardSettings) currentSettings).overrideDefaultsForNamesOfRaceColumns(result.getNamesOfRaceColumns());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -115,10 +138,6 @@ public class MultiRaceLeaderboardPanel extends LeaderboardPanel {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void processAutoExpands(AbstractSortableColumnWithMinMax<?, ?> c, RaceColumn<?> lastRaceColumn) {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateExpansionStates(boolean expand) {
|
||||
}
|
||||
@@ -140,4 +159,24 @@ public class MultiRaceLeaderboardPanel extends LeaderboardPanel {
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SettingsDialogComponent<MultiRaceLeaderboardSettings> getSettingsDialogComponent(
|
||||
MultiRaceLeaderboardSettings useTheseSettings) {
|
||||
return new MultiRaceLeaderboardSettingsDialogComponent((MultiRaceLeaderboardSettings) useTheseSettings, leaderboard.getNamesOfRaceColumns(),
|
||||
stringMessages);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void openSettingsDialog() {
|
||||
SettingsDialog<MultiRaceLeaderboardSettings> settingsDialog = new SettingsDialog<MultiRaceLeaderboardSettings>(this, stringMessages);
|
||||
settingsDialog.ensureDebugId("LeaderboardSettingsDialog");
|
||||
settingsDialog.show();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void processAutoExpands(AbstractSortableColumnWithMinMax c, RaceColumn lastRaceColumn) {
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+6
-7
@@ -6,7 +6,6 @@ import com.google.gwt.dom.client.Style.Unit;
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
import com.google.gwt.user.client.ui.FlowPanel;
|
||||
import com.sap.sailing.domain.common.DetailType;
|
||||
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardPanelLifecycle;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardPerspectiveLifecycle;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardPerspectiveOwnSettings;
|
||||
@@ -37,12 +36,12 @@ public class MultiRaceLeaderboardViewer extends AbstractLeaderboardViewer<Leader
|
||||
LeaderboardPerspectiveLifecycle lifecycle,
|
||||
PerspectiveCompositeSettings<LeaderboardPerspectiveOwnSettings> settings,
|
||||
final SailingServiceAsync sailingService, final AsyncActionsExecutor asyncActionsExecutor,
|
||||
final Timer timer, final RegattaAndRaceIdentifier preselectedRace,
|
||||
final Timer timer,
|
||||
final String leaderboardGroupName, String leaderboardName, final ErrorReporter errorReporter,
|
||||
final StringMessages stringMessages, DetailType chartDetailType) {
|
||||
this(parent, componentContext, lifecycle, settings, new CompetitorSelectionModel(/* hasMultiSelection */true),
|
||||
sailingService, asyncActionsExecutor, timer,
|
||||
preselectedRace, leaderboardGroupName, leaderboardName, errorReporter,
|
||||
leaderboardGroupName, leaderboardName, errorReporter,
|
||||
stringMessages, chartDetailType);
|
||||
}
|
||||
|
||||
@@ -52,15 +51,15 @@ public class MultiRaceLeaderboardViewer extends AbstractLeaderboardViewer<Leader
|
||||
PerspectiveCompositeSettings<LeaderboardPerspectiveOwnSettings> settings,
|
||||
CompetitorSelectionModel competitorSelectionModel,
|
||||
final SailingServiceAsync sailingService, final AsyncActionsExecutor asyncActionsExecutor,
|
||||
final Timer timer, final RegattaAndRaceIdentifier preselectedRace,
|
||||
final Timer timer,
|
||||
final String leaderboardGroupName, String leaderboardName, final ErrorReporter errorReporter,
|
||||
final StringMessages stringMessages, DetailType chartDetailType) {
|
||||
super(parent, componentContext, lifecycle, settings, competitorSelectionModel, asyncActionsExecutor, timer,
|
||||
stringMessages);
|
||||
// FIXME: Cleanup with java8 using supplier
|
||||
init(new MultiRaceLeaderboardPanel(this, getComponentContext(), sailingService, asyncActionsExecutor,
|
||||
settings.findSettingsByComponentId(LeaderboardPanelLifecycle.ID), preselectedRace != null,
|
||||
preselectedRace, competitorSelectionModel, timer, leaderboardGroupName, leaderboardName, errorReporter,
|
||||
settings.findSettingsByComponentId(LeaderboardPanelLifecycle.ID), false,
|
||||
competitorSelectionModel, timer, leaderboardGroupName, leaderboardName, errorReporter,
|
||||
stringMessages, settings.getPerspectiveOwnSettings().isShowRaceDetails(),
|
||||
/* competitorSearchTextBox */ null, /* showSelectionCheckbox */ true, /* raceTimesInfoProvider */ null,
|
||||
settings.getPerspectiveOwnSettings().isAutoExpandLastRaceColumn(), /* adjustTimerDelay */ true,
|
||||
@@ -103,7 +102,7 @@ public class MultiRaceLeaderboardViewer extends AbstractLeaderboardViewer<Leader
|
||||
getComponentContext(), sailingService,
|
||||
asyncActionsExecutor,
|
||||
settings.findSettingsByComponentId(OverallLeaderboardPanelLifecycle.ID),
|
||||
preselectedRace != null, preselectedRace, competitorSelectionProvider, timer,
|
||||
false, competitorSelectionProvider, timer,
|
||||
leaderboardGroupName, overallLeaderboardName, errorReporter, stringMessages,
|
||||
false, /* competitorSearchTextBox */ null, /* showSelectionCheckbox */ true, /* raceTimesInfoProvider */null,
|
||||
false, /* adjustTimerDelay */ true, /* autoApplyTopNFilter */ false,
|
||||
|
||||
+4
-5
@@ -1,7 +1,6 @@
|
||||
package com.sap.sailing.gwt.ui.leaderboard;
|
||||
|
||||
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardSettings;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.MultiRaceLeaderboardSettings;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.OverallLeaderboardPanelLifecycle;
|
||||
import com.sap.sailing.gwt.ui.client.CompetitorSelectionProvider;
|
||||
import com.sap.sailing.gwt.ui.client.RaceTimesInfoProvider;
|
||||
@@ -15,15 +14,15 @@ import com.sap.sse.gwt.client.shared.settings.ComponentContext;
|
||||
|
||||
public class OverallLeaderboardPanel extends MultiRaceLeaderboardPanel {
|
||||
public OverallLeaderboardPanel(Component<?> parent, ComponentContext<?> context,
|
||||
SailingServiceAsync sailingService, AsyncActionsExecutor asyncActionsExecutor, LeaderboardSettings settings,
|
||||
boolean isEmbedded, RegattaAndRaceIdentifier preSelectedRace,
|
||||
SailingServiceAsync sailingService, AsyncActionsExecutor asyncActionsExecutor, MultiRaceLeaderboardSettings settings,
|
||||
boolean isEmbedded,
|
||||
CompetitorSelectionProvider competitorSelectionProvider, Timer timer, String leaderboardGroupName,
|
||||
String leaderboardName, ErrorReporter errorReporter, StringMessages stringMessages,
|
||||
boolean showRaceDetails, CompetitorFilterPanel competitorSearchTextBox,
|
||||
boolean showSelectionCheckbox, RaceTimesInfoProvider optionalRaceTimesInfoProvider,
|
||||
boolean autoExpandLastRaceColumn, boolean adjustTimerDelay, boolean autoApplyTopNFilter,
|
||||
boolean showCompetitorFilterStatus, boolean enableSyncScroller) {
|
||||
super(parent, context, sailingService, asyncActionsExecutor, settings, isEmbedded, preSelectedRace,
|
||||
super(parent, context, sailingService, asyncActionsExecutor, settings, isEmbedded,
|
||||
competitorSelectionProvider, timer, leaderboardGroupName, leaderboardName, errorReporter,
|
||||
stringMessages, showRaceDetails, competitorSearchTextBox, showSelectionCheckbox,
|
||||
optionalRaceTimesInfoProvider, autoExpandLastRaceColumn, adjustTimerDelay, autoApplyTopNFilter,
|
||||
|
||||
+1
-1
@@ -7,5 +7,5 @@ public interface SelectedLeaderboardChangeProvider {
|
||||
|
||||
void removeSelectedLeaderboardChangeListener(SelectedLeaderboardChangeListener listener);
|
||||
|
||||
void setSelectedLeaderboard(LeaderboardPanel selectedLeaderboard);
|
||||
void setSelectedLeaderboard(MultiRaceLeaderboardPanel selectedLeaderboard);
|
||||
}
|
||||
+38
-13
@@ -1,7 +1,6 @@
|
||||
package com.sap.sailing.gwt.ui.leaderboard;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -14,6 +13,8 @@ import com.sap.sailing.domain.common.dto.LeaderboardDTO;
|
||||
import com.sap.sailing.domain.common.dto.LeaderboardRowDTO;
|
||||
import com.sap.sailing.domain.common.dto.RaceColumnDTO;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardSettings;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.SingleRaceLeaderboardSettings;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.SingleRaceLeaderboardSettingsDialogComponent;
|
||||
import com.sap.sailing.gwt.ui.client.CompetitorSelectionProvider;
|
||||
import com.sap.sailing.gwt.ui.client.RaceTimesInfoProvider;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
@@ -29,9 +30,11 @@ import com.sap.sse.gwt.client.ErrorReporter;
|
||||
import com.sap.sse.gwt.client.async.AsyncActionsExecutor;
|
||||
import com.sap.sse.gwt.client.player.Timer;
|
||||
import com.sap.sse.gwt.client.shared.components.Component;
|
||||
import com.sap.sse.gwt.client.shared.components.SettingsDialog;
|
||||
import com.sap.sse.gwt.client.shared.components.SettingsDialogComponent;
|
||||
import com.sap.sse.gwt.client.shared.settings.ComponentContext;
|
||||
|
||||
public class SingleLeaderboardPanel extends LeaderboardPanel {
|
||||
public class SingleRaceLeaderboardPanel extends LeaderboardPanel<SingleRaceLeaderboardSettings> {
|
||||
private boolean autoExpandPreSelectedRace;
|
||||
|
||||
/**
|
||||
@@ -41,7 +44,7 @@ public class SingleLeaderboardPanel extends LeaderboardPanel {
|
||||
*/
|
||||
private final RegattaAndRaceIdentifier preSelectedRace;
|
||||
|
||||
public SingleLeaderboardPanel(Component<?> parent, ComponentContext<?> context, SailingServiceAsync sailingService,
|
||||
public SingleRaceLeaderboardPanel(Component<?> parent, ComponentContext<?> context, SailingServiceAsync sailingService,
|
||||
AsyncActionsExecutor asyncActionsExecutor, LeaderboardSettings settings, boolean isEmbedded,
|
||||
RegattaAndRaceIdentifier preSelectedRace, CompetitorSelectionProvider competitorSelectionProvider,
|
||||
Timer timer, String leaderboardGroupName, String leaderboardName, ErrorReporter errorReporter,
|
||||
@@ -49,7 +52,7 @@ public class SingleLeaderboardPanel extends LeaderboardPanel {
|
||||
boolean showSelectionCheckbox, RaceTimesInfoProvider optionalRaceTimesInfoProvider,
|
||||
boolean autoExpandLastRaceColumn, boolean adjustTimerDelay, boolean autoApplyTopNFilter,
|
||||
boolean showCompetitorFilterStatus, boolean enableSyncScroller) {
|
||||
super(parent, context, sailingService, asyncActionsExecutor, settings, isEmbedded, preSelectedRace,
|
||||
super(parent, context, sailingService, asyncActionsExecutor, settings, isEmbedded,
|
||||
competitorSelectionProvider, timer, leaderboardGroupName, leaderboardName, errorReporter,
|
||||
stringMessages, showRaceDetails, competitorSearchTextBox, showSelectionCheckbox,
|
||||
optionalRaceTimesInfoProvider, autoExpandLastRaceColumn, adjustTimerDelay, autoApplyTopNFilter,
|
||||
@@ -57,7 +60,7 @@ public class SingleLeaderboardPanel extends LeaderboardPanel {
|
||||
assert preSelectedRace != null;
|
||||
this.preSelectedRace = preSelectedRace;
|
||||
|
||||
updateSettings(settings);
|
||||
initialize(settings);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -66,17 +69,17 @@ public class SingleLeaderboardPanel extends LeaderboardPanel {
|
||||
}
|
||||
|
||||
@Override
|
||||
public LeaderboardSettings getSettings() {
|
||||
public SingleRaceLeaderboardSettings getSettings() {
|
||||
Iterable<RaceColumnDTO> selectedRaceColumns = raceColumnSelection
|
||||
.getSelectedRaceColumnsOrderedAsInLeaderboard(leaderboard);
|
||||
List<String> namesOfRaceColumnsToShow = new ArrayList<>();
|
||||
for (RaceColumnDTO raceColumn : selectedRaceColumns) {
|
||||
namesOfRaceColumnsToShow.add(raceColumn.getName());
|
||||
}
|
||||
LeaderboardSettings leaderboardSettings = new LeaderboardSettings(
|
||||
Collections.unmodifiableList(selectedManeuverDetails), Collections.unmodifiableList(selectedLegDetails),
|
||||
Collections.unmodifiableList(selectedRaceDetails),
|
||||
Collections.unmodifiableList(selectedOverallDetailColumns), namesOfRaceColumnsToShow,
|
||||
SingleRaceLeaderboardSettings leaderboardSettings = new SingleRaceLeaderboardSettings(
|
||||
selectedManeuverDetails,selectedLegDetails,
|
||||
selectedRaceDetails,
|
||||
selectedOverallDetailColumns, namesOfRaceColumnsToShow,
|
||||
/* namesOfRacesToShow */ null, raceColumnSelection.getNumberOfLastRaceColumnsToShow(),
|
||||
autoExpandPreSelectedRace, timer.getRefreshInterval(), /* nameOfRaceToSort */ null,
|
||||
/* sortAscending */ true, /* updateUponPlayStateChange */ true, raceColumnSelection.getType(),
|
||||
@@ -144,7 +147,7 @@ public class SingleLeaderboardPanel extends LeaderboardPanel {
|
||||
protected void processAutoExpands(AbstractSortableColumnWithMinMax<?, ?> c, RaceColumn<?> lastRaceColumn) {
|
||||
// Toggle pre-selected race, if the setting is set and it isn't open yet, or the last race column if
|
||||
// that was requested
|
||||
if ((!autoExpandPerformedOnce && isAutoExpandPreSelectedRace() && c instanceof RaceColumn<?>
|
||||
if ((!autoExpandPerformedOnce && isAutoExpandPreSelectedRace() && c instanceof LeaderboardPanel.RaceColumn
|
||||
&& ((RaceColumn<?>) c).getRace().hasTrackedRace(preSelectedRace))
|
||||
|| (isAutoExpandLastRaceColumn() && c == lastRaceColumn)) {
|
||||
ExpandableSortableColumn<?> expandableSortableColumn = (ExpandableSortableColumn<?>) c;
|
||||
@@ -153,8 +156,8 @@ public class SingleLeaderboardPanel extends LeaderboardPanel {
|
||||
autoExpandPerformedOnce = true;
|
||||
}
|
||||
}
|
||||
if (c instanceof RaceColumn && ((RaceColumn<?>) c).getRace().hasTrackedRace(preSelectedRace)) {
|
||||
RaceColumnDTO raceColumn = ((RaceColumn<?>) c).getRace();
|
||||
if (c instanceof RaceColumn && ((RaceColumn) c).getRace().hasTrackedRace(preSelectedRace)) {
|
||||
RaceColumnDTO raceColumn = ((RaceColumn) c).getRace();
|
||||
informLeaderboardUpdateListenersAboutRaceSelected(preSelectedRace, raceColumn);
|
||||
}
|
||||
}
|
||||
@@ -181,4 +184,26 @@ public class SingleLeaderboardPanel extends LeaderboardPanel {
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void updateSettings(SingleRaceLeaderboardSettings newSettings) {
|
||||
SettingsDialog<SingleRaceLeaderboardSettings> settingsDialog = new SettingsDialog<SingleRaceLeaderboardSettings>(this, stringMessages);
|
||||
settingsDialog.ensureDebugId("LeaderboardSettingsDialog");
|
||||
settingsDialog.show();
|
||||
}
|
||||
|
||||
@Override
|
||||
public SettingsDialogComponent<SingleRaceLeaderboardSettings> getSettingsDialogComponent(
|
||||
SingleRaceLeaderboardSettings useTheseSettings) {
|
||||
return new SingleRaceLeaderboardSettingsDialogComponent(useTheseSettings, leaderboard.getNamesOfRaceColumns(),
|
||||
stringMessages);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void openSettingsDialog() {
|
||||
SettingsDialog<SingleRaceLeaderboardSettings> settingsDialog = new SettingsDialog<SingleRaceLeaderboardSettings>(this, stringMessages);
|
||||
settingsDialog.ensureDebugId("LeaderboardSettingsDialog");
|
||||
settingsDialog.show();
|
||||
}
|
||||
}
|
||||
+3
-3
@@ -52,7 +52,7 @@ import com.sap.sailing.domain.common.dto.LeaderboardEntryDTO;
|
||||
import com.sap.sailing.domain.common.dto.LeaderboardRowDTO;
|
||||
import com.sap.sailing.domain.common.dto.RaceColumnDTO;
|
||||
import com.sap.sailing.domain.common.impl.InvertibleComparatorAdapter;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardSettings;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.MultiRaceLeaderboardSettings;
|
||||
import com.sap.sailing.gwt.ui.adminconsole.AdminConsoleTableResources;
|
||||
import com.sap.sailing.gwt.ui.client.Collator;
|
||||
import com.sap.sailing.gwt.ui.client.CompetitorSelectionModel;
|
||||
@@ -99,7 +99,7 @@ public class EditableLeaderboardPanel extends MultiRaceLeaderboardPanel {
|
||||
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
new SettingsDialog<LeaderboardSettings>(EditableLeaderboardPanel.this, stringMessages).show();
|
||||
new SettingsDialog<MultiRaceLeaderboardSettings>(EditableLeaderboardPanel.this, stringMessages).show();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -584,7 +584,7 @@ public class EditableLeaderboardPanel extends MultiRaceLeaderboardPanel {
|
||||
public EditableLeaderboardPanel(final SailingServiceAsync sailingService, AsyncActionsExecutor asyncActionsExecutor,
|
||||
String leaderboardName, String leaderboardGroupName, final ErrorReporter errorReporter,
|
||||
final StringMessages stringMessages, UserAgentDetails userAgent) {
|
||||
super(null, null, sailingService, asyncActionsExecutor, new LeaderboardSettings(),
|
||||
super(null, null, sailingService, asyncActionsExecutor, new MultiRaceLeaderboardSettings(),
|
||||
new CompetitorSelectionModel(/* hasMultiSelection */true),
|
||||
leaderboardName, errorReporter, stringMessages, /* showRaceDetails */ true);
|
||||
suppressedCompetitorsShown = new ListDataProvider<CompetitorDTO>(new ArrayList<CompetitorDTO>());
|
||||
|
||||
+3
-2
@@ -17,6 +17,7 @@ import com.sap.sailing.gwt.ui.client.RaceTimesInfoProviderListener;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.racemap.RaceCompetitorSet.CompetitorsForRaceDefinedListener;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.SingleRaceLeaderboardPanel;
|
||||
import com.sap.sailing.gwt.ui.shared.RaceTimesInfoDTO;
|
||||
import com.sap.sse.gwt.client.player.Timer;
|
||||
|
||||
@@ -53,7 +54,7 @@ public abstract class AbstractRaceBoardMode implements RaceBoardMode, RaceTimesI
|
||||
private Timer timer;
|
||||
private RegattaAndRaceIdentifier raceIdentifier;
|
||||
private RaceTimePanel raceTimePanel;
|
||||
private LeaderboardPanel leaderboardPanel;
|
||||
private SingleRaceLeaderboardPanel leaderboardPanel;
|
||||
private RaceBoardPanel raceBoardPanel;
|
||||
|
||||
private Map<RegattaAndRaceIdentifier, RaceTimesInfoDTO> raceTimesInfo;
|
||||
@@ -91,7 +92,7 @@ public abstract class AbstractRaceBoardMode implements RaceBoardMode, RaceTimesI
|
||||
return raceTimePanel;
|
||||
}
|
||||
|
||||
protected LeaderboardPanel getLeaderboardPanel() {
|
||||
protected SingleRaceLeaderboardPanel getLeaderboardPanel() {
|
||||
return leaderboardPanel;
|
||||
}
|
||||
|
||||
|
||||
+6
-5
@@ -6,7 +6,8 @@ import java.util.List;
|
||||
import com.sap.sailing.domain.common.DetailType;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardSettings;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardSettingsFactory;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.SingleRaceLeaderboardSettings;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.SingleRaceLeaderboardPanel;
|
||||
import com.sap.sse.gwt.client.player.Timer.PlayModes;
|
||||
import com.sap.sse.gwt.client.player.Timer.PlayStates;
|
||||
import com.sap.sse.security.ui.settings.ComponentContextWithSettingsStorageAndAdditionalSettingsLayers.OnSettingsReloadedCallback;
|
||||
@@ -46,17 +47,17 @@ public class FullAnalysisMode extends AbstractRaceBoardMode {
|
||||
}
|
||||
|
||||
private void adjustLeaderboardSettings() {
|
||||
final LeaderboardPanel leaderboardPanel = getLeaderboardPanel();
|
||||
final SingleRaceLeaderboardPanel leaderboardPanel = getLeaderboardPanel();
|
||||
final List<DetailType> raceDetailsToShow = new ArrayList<>();
|
||||
raceDetailsToShow.add(DetailType.DISPLAY_LEGS);
|
||||
raceDetailsToShow.add(DetailType.RACE_AVERAGE_SPEED_OVER_GROUND_IN_KNOTS);
|
||||
raceDetailsToShow.add(DetailType.RACE_DISTANCE_TRAVELED);
|
||||
raceDetailsToShow.add(DetailType.RACE_GAP_TO_LEADER_IN_SECONDS);
|
||||
final LeaderboardSettings additiveSettings = LeaderboardSettingsFactory.getInstance().createNewSettingsWithCustomRaceDetails(raceDetailsToShow);
|
||||
((RaceBoardComponentContext) leaderboardPanel.getComponentContext()).addModesPatching(leaderboardPanel, additiveSettings, new OnSettingsReloadedCallback<LeaderboardSettings>() {
|
||||
final SingleRaceLeaderboardSettings additiveSettings = LeaderboardSettingsFactory.getInstance().createNewSettingsWithCustomRaceDetails(raceDetailsToShow);
|
||||
((RaceBoardComponentContext) leaderboardPanel.getComponentContext()).addModesPatching(leaderboardPanel, additiveSettings, new OnSettingsReloadedCallback<SingleRaceLeaderboardSettings>() {
|
||||
|
||||
@Override
|
||||
public void onSettingsReloaded(LeaderboardSettings patchedSettings) {
|
||||
public void onSettingsReloaded(SingleRaceLeaderboardSettings patchedSettings) {
|
||||
LeaderboardSettings settingsToUse = LeaderboardSettingsFactory.getInstance().createSettingsWithCustomExpandPreselectedRaceState(patchedSettings, true);
|
||||
leaderboardPanel.updateSettings(settingsToUse);
|
||||
}
|
||||
|
||||
+6
-5
@@ -6,7 +6,8 @@ import java.util.List;
|
||||
import com.sap.sailing.domain.common.DetailType;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardSettings;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardSettingsFactory;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.SingleRaceLeaderboardSettings;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.SingleRaceLeaderboardPanel;
|
||||
import com.sap.sse.common.Duration;
|
||||
import com.sap.sse.common.impl.MillisecondsTimePoint;
|
||||
import com.sap.sse.gwt.client.player.Timer.PlayModes;
|
||||
@@ -28,16 +29,16 @@ public class PlayerMode extends AbstractRaceBoardMode {
|
||||
private boolean timerAdjusted;
|
||||
|
||||
private void adjustLeaderboardSettings() {
|
||||
final LeaderboardPanel leaderboardPanel = getLeaderboardPanel();
|
||||
final SingleRaceLeaderboardPanel leaderboardPanel = getLeaderboardPanel();
|
||||
final List<DetailType> raceDetailsToShow = new ArrayList<>();
|
||||
raceDetailsToShow.add(DetailType.DISPLAY_LEGS);
|
||||
raceDetailsToShow.add(DetailType.RACE_CURRENT_SPEED_OVER_GROUND_IN_KNOTS);
|
||||
raceDetailsToShow.add(DetailType.RACE_GAP_TO_LEADER_IN_SECONDS);
|
||||
final LeaderboardSettings additiveSettings = LeaderboardSettingsFactory.getInstance().createNewSettingsWithCustomRaceDetails(raceDetailsToShow);
|
||||
((RaceBoardComponentContext) leaderboardPanel.getComponentContext()).addModesPatching(leaderboardPanel, additiveSettings, new OnSettingsReloadedCallback<LeaderboardSettings>() {
|
||||
final SingleRaceLeaderboardSettings additiveSettings = LeaderboardSettingsFactory.getInstance().createNewSettingsWithCustomRaceDetails(raceDetailsToShow);
|
||||
((RaceBoardComponentContext) leaderboardPanel.getComponentContext()).addModesPatching(leaderboardPanel, additiveSettings, new OnSettingsReloadedCallback<SingleRaceLeaderboardSettings>() {
|
||||
|
||||
@Override
|
||||
public void onSettingsReloaded(LeaderboardSettings patchedSettings) {
|
||||
public void onSettingsReloaded(SingleRaceLeaderboardSettings patchedSettings) {
|
||||
LeaderboardSettings settingsToUse = LeaderboardSettingsFactory.getInstance().createSettingsWithCustomExpandPreselectedRaceState(patchedSettings, true);
|
||||
leaderboardPanel.updateSettings(settingsToUse);
|
||||
}
|
||||
|
||||
+5
-6
@@ -75,8 +75,7 @@ import com.sap.sailing.gwt.ui.client.shared.racemap.RaceMapLifecycle;
|
||||
import com.sap.sailing.gwt.ui.client.shared.racemap.RaceMapResources;
|
||||
import com.sap.sailing.gwt.ui.client.shared.racemap.RaceMapSettings;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.CompetitorFilterPanel;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.SingleLeaderboardPanel;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.SingleRaceLeaderboardPanel;
|
||||
import com.sap.sailing.gwt.ui.raceboard.RaceBoardResources.RaceBoardMainCss;
|
||||
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
||||
import com.sap.sse.common.Util;
|
||||
@@ -129,7 +128,7 @@ public class RaceBoardPanel
|
||||
private final RegattaAndRaceIdentifier selectedRaceIdentifier;
|
||||
|
||||
private final String leaderboardName;
|
||||
private final LeaderboardPanel leaderboardPanel;
|
||||
private final SingleRaceLeaderboardPanel leaderboardPanel;
|
||||
private WindChart windChart;
|
||||
private MultiCompetitorRaceChart competitorChart;
|
||||
private MediaPlayerManagerComponent mediaPlayerManagerComponent;
|
||||
@@ -446,14 +445,14 @@ public class RaceBoardPanel
|
||||
}
|
||||
}
|
||||
|
||||
private LeaderboardPanel createLeaderboardPanel(RaceBoardPerspectiveLifecycle lifecycle,
|
||||
private SingleRaceLeaderboardPanel createLeaderboardPanel(RaceBoardPerspectiveLifecycle lifecycle,
|
||||
PerspectiveCompositeSettings<RaceBoardPerspectiveOwnSettings> settings, String leaderboardName,
|
||||
String leaderboardGroupName,
|
||||
CompetitorFilterPanel competitorSearchTextBox) {
|
||||
LeaderboardPanelLifecycle leaderboardPanelLifecycle = getPerspectiveLifecycle().getLeaderboardPanelLifecycle();
|
||||
LeaderboardSettings leaderboardSettings = settings
|
||||
.findSettingsByComponentId(leaderboardPanelLifecycle.getComponentId());
|
||||
return new SingleLeaderboardPanel(this, getComponentContext(), sailingService, asyncActionsExecutor,
|
||||
return new SingleRaceLeaderboardPanel(this, getComponentContext(), sailingService, asyncActionsExecutor,
|
||||
leaderboardSettings,
|
||||
selectedRaceIdentifier != null, selectedRaceIdentifier,
|
||||
competitorSelectionProvider, timer, leaderboardGroupName, leaderboardName, errorReporter, stringMessages,
|
||||
@@ -468,7 +467,7 @@ public class RaceBoardPanel
|
||||
componentViewer.forceLayout();
|
||||
}
|
||||
|
||||
LeaderboardPanel getLeaderboardPanel() {
|
||||
SingleRaceLeaderboardPanel getLeaderboardPanel() {
|
||||
return leaderboardPanel;
|
||||
}
|
||||
|
||||
|
||||
+5
-2
@@ -19,7 +19,7 @@ public class RaceBoardPerspectiveLifecycle extends AbstractPerspectiveLifecycle<
|
||||
private final StringMessages stringMessages;
|
||||
private final RaceMapLifecycle raceMapLifecycle;
|
||||
private final WindChartLifecycle windChartLifecycle;
|
||||
private final LeaderboardPanelLifecycle leaderboardPanelLifecycle;
|
||||
private final SingleRaceLeaderboardPanelLifecycle leaderboardPanelLifecycle;
|
||||
private final MultiCompetitorRaceChartLifecycle multiCompetitorRaceChartLifecycle;
|
||||
private final MediaPlayerLifecycle mediaPlayerLifecycle;
|
||||
private final RaceTimePanelLifecycle raceTimePanelLifecycle;
|
||||
@@ -37,10 +37,13 @@ public class RaceBoardPerspectiveLifecycle extends AbstractPerspectiveLifecycle<
|
||||
}
|
||||
|
||||
private RaceBoardPerspectiveLifecycle(RegattaAndRaceIdentifier raceIdentifier, AbstractLeaderboardDTO leaderboard, StringMessages stringMessages) {
|
||||
if(raceIdentifier == null){
|
||||
throw new IllegalStateException("Started ReaceBoardPerspective without any raceidentifier");
|
||||
}
|
||||
this.stringMessages = stringMessages;
|
||||
raceMapLifecycle = new RaceMapLifecycle(stringMessages);
|
||||
windChartLifecycle = new WindChartLifecycle(stringMessages);
|
||||
leaderboardPanelLifecycle = raceIdentifier == null ? new LeaderboardPanelLifecycle(leaderboard, stringMessages) : new SingleRaceLeaderboardPanelLifecycle(raceIdentifier, stringMessages);
|
||||
leaderboardPanelLifecycle = new SingleRaceLeaderboardPanelLifecycle(raceIdentifier, stringMessages);
|
||||
multiCompetitorRaceChartLifecycle = new MultiCompetitorRaceChartLifecycle(stringMessages, false);
|
||||
mediaPlayerLifecycle = new MediaPlayerLifecycle(stringMessages);
|
||||
raceTimePanelLifecycle = new RaceTimePanelLifecycle(stringMessages);
|
||||
|
||||
+37
-8
@@ -8,11 +8,12 @@ import com.google.gwt.dom.client.Document;
|
||||
import com.sap.sailing.domain.common.DetailType;
|
||||
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardPanelLifecycle;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardSettings;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.SingleRaceLeaderboardSettings;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.SingleRaceLeaderboardSettingsDialogComponent;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sse.common.settings.generic.support.SettingsUtil;
|
||||
|
||||
public class SingleRaceLeaderboardPanelLifecycle extends LeaderboardPanelLifecycle {
|
||||
public class SingleRaceLeaderboardPanelLifecycle extends LeaderboardPanelLifecycle<SingleRaceLeaderboardSettings> {
|
||||
|
||||
private static final long DEFAULT_REFRESH_INTERVAL = 1000L;
|
||||
|
||||
@@ -26,7 +27,7 @@ public class SingleRaceLeaderboardPanelLifecycle extends LeaderboardPanelLifecyc
|
||||
}
|
||||
|
||||
@Override
|
||||
public LeaderboardSettings createDefaultSettings() {
|
||||
public SingleRaceLeaderboardSettings createDefaultSettings() {
|
||||
List<String> namesOfRaceColumnsToShow = null;
|
||||
List<String> namesOfRacesToShow = Collections.singletonList(raceIdentifier.getRaceName());
|
||||
|
||||
@@ -37,8 +38,8 @@ public class SingleRaceLeaderboardPanelLifecycle extends LeaderboardPanelLifecyc
|
||||
raceDetails.add(DetailType.NUMBER_OF_MANEUVERS);
|
||||
raceDetails.add(DetailType.DISPLAY_LEGS);
|
||||
List<DetailType> overallDetails = new ArrayList<>();
|
||||
LeaderboardSettings defaultSettings = new LeaderboardSettings();
|
||||
LeaderboardSettings settings = new LeaderboardSettings(defaultSettings.getManeuverDetailsToShow(), defaultSettings.getLegDetailsToShow(), defaultSettings.getRaceDetailsToShow(), overallDetails, namesOfRaceColumnsToShow, namesOfRacesToShow,
|
||||
SingleRaceLeaderboardSettings defaultSettings = new SingleRaceLeaderboardSettings();
|
||||
SingleRaceLeaderboardSettings settings = new SingleRaceLeaderboardSettings(defaultSettings.getManeuverDetailsToShow(), defaultSettings.getLegDetailsToShow(), defaultSettings.getRaceDetailsToShow(), overallDetails, namesOfRaceColumnsToShow, namesOfRacesToShow,
|
||||
defaultSettings.getNumberOfLastRacesToShow(), false, DEFAULT_REFRESH_INTERVAL, raceIdentifier.getRaceName(), defaultSettings.isSortAscending(), defaultSettings.isUpdateUponPlayStateChange(), defaultSettings.getActiveRaceColumnSelectionStrategy(), defaultSettings.isShowAddedScores(), defaultSettings.isShowOverallColumnWithNumberOfRacesCompletedPerCompetitor(),
|
||||
/*showCompetitorSailIdColumn*/ true,
|
||||
/* don't showCompetitorFullNameColumn in case screen is so small that we don't
|
||||
@@ -54,9 +55,9 @@ public class SingleRaceLeaderboardPanelLifecycle extends LeaderboardPanelLifecyc
|
||||
}
|
||||
|
||||
@Override
|
||||
public LeaderboardSettings extractDocumentSettings(LeaderboardSettings currentLeaderboardSettings) {
|
||||
LeaderboardSettings defaultLeaderboardSettings = createDefaultSettings();
|
||||
LeaderboardSettings contextSpecificLeaderboardSettings = new LeaderboardSettings(
|
||||
public SingleRaceLeaderboardSettings extractDocumentSettings(SingleRaceLeaderboardSettings currentLeaderboardSettings) {
|
||||
SingleRaceLeaderboardSettings defaultLeaderboardSettings = createDefaultSettings();
|
||||
SingleRaceLeaderboardSettings contextSpecificLeaderboardSettings = new SingleRaceLeaderboardSettings(
|
||||
currentLeaderboardSettings.getManeuverDetailsToShow(), currentLeaderboardSettings.getLegDetailsToShow(),
|
||||
currentLeaderboardSettings.getRaceDetailsToShow(), currentLeaderboardSettings.getOverallDetailsToShow(),
|
||||
defaultLeaderboardSettings.getNamesOfRaceColumnsToShow(),
|
||||
@@ -74,4 +75,32 @@ public class SingleRaceLeaderboardPanelLifecycle extends LeaderboardPanelLifecyc
|
||||
currentLeaderboardSettings.isShowCompetitorNationality());
|
||||
return SettingsUtil.copyValues(contextSpecificLeaderboardSettings, defaultLeaderboardSettings);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SingleRaceLeaderboardSettings extractUserSettings(SingleRaceLeaderboardSettings currentLeaderboardSettings) {
|
||||
SingleRaceLeaderboardSettings defaultLeaderboardSettings = createDefaultSettings();
|
||||
SingleRaceLeaderboardSettings globalLeaderboardSettings = new SingleRaceLeaderboardSettings(
|
||||
currentLeaderboardSettings.getManeuverDetailsToShow(), currentLeaderboardSettings.getLegDetailsToShow(),
|
||||
currentLeaderboardSettings.getRaceDetailsToShow(), currentLeaderboardSettings.getOverallDetailsToShow(),
|
||||
defaultLeaderboardSettings.getNamesOfRaceColumnsToShow(),
|
||||
defaultLeaderboardSettings.getNamesOfRacesToShow(),
|
||||
currentLeaderboardSettings.getNumberOfLastRacesToShow(),
|
||||
defaultLeaderboardSettings.isAutoExpandPreSelectedRace(),
|
||||
currentLeaderboardSettings.getDelayBetweenAutoAdvancesInMilliseconds(),
|
||||
defaultLeaderboardSettings.getNameOfRaceToSort(), defaultLeaderboardSettings.isSortAscending(),
|
||||
currentLeaderboardSettings.isUpdateUponPlayStateChange(),
|
||||
currentLeaderboardSettings.getActiveRaceColumnSelectionStrategy(),
|
||||
currentLeaderboardSettings.isShowAddedScores(),
|
||||
currentLeaderboardSettings.isShowOverallColumnWithNumberOfRacesCompletedPerCompetitor(),
|
||||
currentLeaderboardSettings.isShowCompetitorSailIdColumn(),
|
||||
currentLeaderboardSettings.isShowCompetitorFullNameColumn(),
|
||||
currentLeaderboardSettings.isShowCompetitorNationality());
|
||||
return SettingsUtil.copyValues(globalLeaderboardSettings, defaultLeaderboardSettings);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SingleRaceLeaderboardSettingsDialogComponent getSettingsDialogComponent(SingleRaceLeaderboardSettings settings) {
|
||||
return new SingleRaceLeaderboardSettingsDialogComponent(settings, namesOfRaceColumns, stringMessages);
|
||||
}
|
||||
|
||||
}
|
||||
+6
-5
@@ -13,6 +13,7 @@ import com.google.gwt.maps.client.events.idle.IdleMapHandler;
|
||||
import com.sap.sailing.domain.common.DetailType;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardSettings;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardSettingsFactory;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.SingleRaceLeaderboardSettings;
|
||||
import com.sap.sailing.gwt.ui.client.shared.charts.ChartSettings;
|
||||
import com.sap.sailing.gwt.ui.client.shared.charts.MultiCompetitorRaceChart;
|
||||
import com.sap.sailing.gwt.ui.client.shared.charts.MultiCompetitorRaceChartSettings;
|
||||
@@ -20,7 +21,7 @@ import com.sap.sailing.gwt.ui.client.shared.racemap.RaceMap;
|
||||
import com.sap.sailing.gwt.ui.client.shared.racemap.RaceMapSettings;
|
||||
import com.sap.sailing.gwt.ui.client.shared.racemap.RaceMapZoomSettings;
|
||||
import com.sap.sailing.gwt.ui.client.shared.racemap.RaceMapZoomSettings.ZoomTypes;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.SingleRaceLeaderboardPanel;
|
||||
import com.sap.sse.common.Duration;
|
||||
import com.sap.sse.common.impl.MillisecondsTimePoint;
|
||||
import com.sap.sse.common.settings.util.SettingsDefaultValuesUtils;
|
||||
@@ -178,7 +179,7 @@ public class StartAnalysisMode extends RaceBoardModeWithPerRaceCompetitors {
|
||||
}
|
||||
|
||||
private void adjustLeaderboardSettings() {
|
||||
final LeaderboardPanel leaderboardPanel = getLeaderboardPanel();
|
||||
final SingleRaceLeaderboardPanel leaderboardPanel = getLeaderboardPanel();
|
||||
final List<DetailType> raceDetailsToShow = new ArrayList<>();
|
||||
raceDetailsToShow.add(DetailType.RACE_SPEED_OVER_GROUND_FIVE_SECONDS_BEFORE_START);
|
||||
raceDetailsToShow.add(DetailType.RACE_DISTANCE_TO_START_FIVE_SECONDS_BEFORE_RACE_START);
|
||||
@@ -188,11 +189,11 @@ public class StartAnalysisMode extends RaceBoardModeWithPerRaceCompetitors {
|
||||
raceDetailsToShow.add(DetailType.SPEED_OVER_GROUND_WHEN_PASSING_START);
|
||||
raceDetailsToShow.add(DetailType.START_TACK);
|
||||
raceDetailsToShow.add(DetailType.RACE_GAP_TO_LEADER_IN_SECONDS);
|
||||
final LeaderboardSettings additiveSettings = LeaderboardSettingsFactory.getInstance().createNewSettingsWithCustomRaceDetails(raceDetailsToShow);
|
||||
((RaceBoardComponentContext) leaderboardPanel.getComponentContext()).addModesPatching(leaderboardPanel, additiveSettings, new OnSettingsReloadedCallback<LeaderboardSettings>() {
|
||||
final SingleRaceLeaderboardSettings additiveSettings = LeaderboardSettingsFactory.getInstance().createNewSettingsWithCustomRaceDetails(raceDetailsToShow);
|
||||
((RaceBoardComponentContext) leaderboardPanel.getComponentContext()).addModesPatching(leaderboardPanel, additiveSettings, new OnSettingsReloadedCallback<SingleRaceLeaderboardSettings>() {
|
||||
|
||||
@Override
|
||||
public void onSettingsReloaded(LeaderboardSettings patchedSettings) {
|
||||
public void onSettingsReloaded(SingleRaceLeaderboardSettings patchedSettings) {
|
||||
LeaderboardSettings settingsToUse = LeaderboardSettingsFactory.getInstance().createSettingsWithCustomExpandPreselectedRaceState(patchedSettings, true);
|
||||
leaderboardPanel.updateSettings(settingsToUse);
|
||||
}
|
||||
|
||||
+7
-7
@@ -6,11 +6,11 @@ import java.util.List;
|
||||
|
||||
import com.sap.sailing.domain.common.DetailType;
|
||||
import com.sap.sailing.domain.common.dto.CompetitorDTO;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardSettings;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.LeaderboardSettingsFactory;
|
||||
import com.sap.sailing.gwt.settings.client.leaderboard.SingleRaceLeaderboardSettings;
|
||||
import com.sap.sailing.gwt.ui.client.shared.racemap.RaceMap;
|
||||
import com.sap.sailing.gwt.ui.client.shared.racemap.RaceMapSettings;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.SingleRaceLeaderboardPanel;
|
||||
import com.sap.sailing.gwt.ui.shared.MarkPassingTimesDTO;
|
||||
import com.sap.sse.common.Duration;
|
||||
import com.sap.sse.common.Util;
|
||||
@@ -41,18 +41,18 @@ public class WinningLanesMode extends RaceBoardModeWithPerRaceCompetitors {
|
||||
}
|
||||
|
||||
private void adjustLeaderboardSettings() {
|
||||
final LeaderboardPanel leaderboardPanel = getLeaderboardPanel();
|
||||
final SingleRaceLeaderboardPanel leaderboardPanel = getLeaderboardPanel();
|
||||
final List<DetailType> raceDetailsToShow = new ArrayList<>();
|
||||
raceDetailsToShow.add(DetailType.RACE_AVERAGE_ABSOLUTE_CROSS_TRACK_ERROR_IN_METERS);
|
||||
raceDetailsToShow.add(DetailType.RACE_AVERAGE_SIGNED_CROSS_TRACK_ERROR_IN_METERS);
|
||||
raceDetailsToShow.add(DetailType.RACE_DISTANCE_TRAVELED);
|
||||
raceDetailsToShow.add(DetailType.RACE_TIME_TRAVELED);
|
||||
final LeaderboardSettings additiveSettings = LeaderboardSettingsFactory.getInstance().createNewSettingsWithCustomRaceDetails(raceDetailsToShow);
|
||||
((RaceBoardComponentContext) leaderboardPanel.getComponentContext()).addModesPatching(leaderboardPanel, additiveSettings, new OnSettingsReloadedCallback<LeaderboardSettings>() {
|
||||
final SingleRaceLeaderboardSettings additiveSettings = LeaderboardSettingsFactory.getInstance().createNewSettingsWithCustomRaceDetails(raceDetailsToShow);
|
||||
((RaceBoardComponentContext) leaderboardPanel.getComponentContext()).addModesPatching(leaderboardPanel, additiveSettings, new OnSettingsReloadedCallback<SingleRaceLeaderboardSettings>() {
|
||||
|
||||
@Override
|
||||
public void onSettingsReloaded(LeaderboardSettings patchedSettings) {
|
||||
LeaderboardSettings settingsToUse = LeaderboardSettingsFactory.getInstance().createSettingsWithCustomExpandPreselectedRaceState(patchedSettings, true);
|
||||
public void onSettingsReloaded(SingleRaceLeaderboardSettings patchedSettings) {
|
||||
SingleRaceLeaderboardSettings settingsToUse = LeaderboardSettingsFactory.getInstance().createSettingsWithCustomExpandPreselectedRaceState(patchedSettings, true);
|
||||
leaderboardPanel.updateSettings(settingsToUse);
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user