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