mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-15 06:49:56 +00:00
Bug 4657: Fixed leaderboard context in LeaderboardEntryPoint for
additionally showable leaderboard panels
This commit is contained in:
1 parent
425d4b2724
commit
e75d8587ea
2 files changed
+18
-15
No files matched your search
+3
-4
@@ -136,6 +136,8 @@ public class LeaderboardEntryPoint extends AbstractSailingEntryPoint implements
|
||||
|
||||
@Override
|
||||
public void onSuccess(Iterable<DetailType> result) {
|
||||
final Function<String, SailingServiceAsync> sailingServiceFactory = leaderboardName -> SailingServiceHelper
|
||||
.createSailingServiceInstance(() -> leaderboardName);
|
||||
if (leaderboardDTO.type.isMetaLeaderboard()) {
|
||||
// overall
|
||||
MetaLeaderboardPerspectiveLifecycle rootComponentLifeCycle = new MetaLeaderboardPerspectiveLifecycle(
|
||||
@@ -148,9 +150,6 @@ public class LeaderboardEntryPoint extends AbstractSailingEntryPoint implements
|
||||
public void onSuccess(
|
||||
PerspectiveCompositeSettings<LeaderboardPerspectiveOwnSettings> defaultSettings) {
|
||||
configureWithSettings(defaultSettings, timer);
|
||||
|
||||
Function<String, SailingServiceAsync> sailingServiceFactory = leaderboardName -> SailingServiceHelper
|
||||
.createSailingServiceInstance(() -> leaderboardName);
|
||||
final MetaLeaderboardViewer leaderboardViewer = new MetaLeaderboardViewer(
|
||||
null, context, rootComponentLifeCycle, defaultSettings,
|
||||
sailingServiceFactory, new AsyncActionsExecutor(), timer, null,
|
||||
@@ -195,7 +194,7 @@ public class LeaderboardEntryPoint extends AbstractSailingEntryPoint implements
|
||||
configureWithSettings(defaultSettings, timer);
|
||||
final MultiRaceLeaderboardViewer leaderboardViewer = new MultiRaceLeaderboardViewer(
|
||||
null, context, rootComponentLifeCycle,
|
||||
defaultSettings, getSailingService(),
|
||||
defaultSettings, sailingServiceFactory,
|
||||
new AsyncActionsExecutor(), timer,
|
||||
leaderboardGroupName, leaderboardName,
|
||||
LeaderboardEntryPoint.this, getStringMessages(),
|
||||
|
||||
+15
-11
@@ -1,6 +1,7 @@
|
||||
package com.sap.sailing.gwt.ui.leaderboard;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.function.Function;
|
||||
|
||||
import com.google.gwt.dom.client.Style.Unit;
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
@@ -36,12 +37,12 @@ public class MultiRaceLeaderboardViewer extends AbstractLeaderboardViewer<Leader
|
||||
ComponentContext<PerspectiveCompositeSettings<LeaderboardPerspectiveOwnSettings>> componentContext,
|
||||
LeaderboardPerspectiveLifecycle lifecycle,
|
||||
PerspectiveCompositeSettings<LeaderboardPerspectiveOwnSettings> settings,
|
||||
final SailingServiceAsync sailingService, final AsyncActionsExecutor asyncActionsExecutor,
|
||||
final Function<String, SailingServiceAsync> sailingServiceFactory, final AsyncActionsExecutor asyncActionsExecutor,
|
||||
final Timer timer,
|
||||
final String leaderboardGroupName, String leaderboardName, final ErrorReporter errorReporter,
|
||||
final StringMessages stringMessages, DetailType chartDetailType, Iterable<DetailType> availableDetailTypes) {
|
||||
this(parent, componentContext, lifecycle, settings, new CompetitorSelectionModel(/* hasMultiSelection */true),
|
||||
sailingService, asyncActionsExecutor, timer,
|
||||
sailingServiceFactory, asyncActionsExecutor, timer,
|
||||
leaderboardGroupName, leaderboardName, errorReporter,
|
||||
stringMessages, chartDetailType, availableDetailTypes);
|
||||
}
|
||||
@@ -51,13 +52,16 @@ public class MultiRaceLeaderboardViewer extends AbstractLeaderboardViewer<Leader
|
||||
LeaderboardPerspectiveLifecycle lifecycle,
|
||||
PerspectiveCompositeSettings<LeaderboardPerspectiveOwnSettings> settings,
|
||||
CompetitorSelectionModel competitorSelectionModel,
|
||||
final SailingServiceAsync sailingService, final AsyncActionsExecutor asyncActionsExecutor,
|
||||
final Function<String, SailingServiceAsync> sailingServiceFactory, final AsyncActionsExecutor asyncActionsExecutor,
|
||||
final Timer timer,
|
||||
final String leaderboardGroupName, String leaderboardName, final ErrorReporter errorReporter,
|
||||
final StringMessages stringMessages, DetailType chartDetailType, Iterable<DetailType> availableDetailTypes) {
|
||||
super(parent, componentContext, lifecycle, settings, competitorSelectionModel, asyncActionsExecutor, timer,
|
||||
stringMessages);
|
||||
init(new MultiRaceLeaderboardPanel(this, getComponentContext(), sailingService, asyncActionsExecutor,
|
||||
|
||||
final SailingServiceAsync sailingServiceForMainLeaderboard = sailingServiceFactory.apply(leaderboardName);
|
||||
|
||||
init(new MultiRaceLeaderboardPanel(this, getComponentContext(), sailingServiceForMainLeaderboard, asyncActionsExecutor,
|
||||
settings.findSettingsByComponentId(LeaderboardPanelLifecycle.ID), false,
|
||||
competitorSelectionModel, timer, leaderboardGroupName, leaderboardName, errorReporter,
|
||||
stringMessages, settings.getPerspectiveOwnSettings().isShowRaceDetails(),
|
||||
@@ -71,9 +75,8 @@ public class MultiRaceLeaderboardViewer extends AbstractLeaderboardViewer<Leader
|
||||
|
||||
final FlowPanel mainPanel = createViewerPanel();
|
||||
initWidget(mainPanel);
|
||||
multiCompetitorChart = new MultiCompetitorLeaderboardChart(this, getComponentContext(), sailingService,
|
||||
asyncActionsExecutor,
|
||||
leaderboardName, chartDetailType,
|
||||
multiCompetitorChart = new MultiCompetitorLeaderboardChart(this, getComponentContext(),
|
||||
sailingServiceForMainLeaderboard, asyncActionsExecutor, leaderboardName, chartDetailType,
|
||||
competitorSelectionProvider, timer, stringMessages, false, errorReporter);
|
||||
multiCompetitorChart.setVisible(showCharts);
|
||||
multiCompetitorChart.getElement().getStyle().setMarginTop(10, Unit.PX);
|
||||
@@ -91,15 +94,16 @@ public class MultiRaceLeaderboardViewer extends AbstractLeaderboardViewer<Leader
|
||||
multiCompetitorChart.timeChanged(timer.getTime(), null);
|
||||
}
|
||||
overallLeaderboardPanel = null;
|
||||
if(perspectiveSettings.isShowOverallLeaderboard()) {
|
||||
sailingService.getOverallLeaderboardNamesContaining(leaderboardName, new MarkedAsyncCallback<List<String>>(
|
||||
if (perspectiveSettings.isShowOverallLeaderboard()) {
|
||||
sailingServiceForMainLeaderboard.getOverallLeaderboardNamesContaining(leaderboardName, new MarkedAsyncCallback<List<String>>(
|
||||
new AsyncCallback<List<String>>() {
|
||||
@Override
|
||||
public void onSuccess(List<String> result) {
|
||||
if(result.size() == 1) {
|
||||
if (result.size() == 1) {
|
||||
String overallLeaderboardName = result.get(0);
|
||||
final SailingServiceAsync sailingServiceForOverallLeaderboard = sailingServiceFactory.apply(overallLeaderboardName);
|
||||
overallLeaderboardPanel = new OverallLeaderboardPanel(MultiRaceLeaderboardViewer.this,
|
||||
getComponentContext(), sailingService,
|
||||
getComponentContext(), sailingServiceForOverallLeaderboard,
|
||||
asyncActionsExecutor,
|
||||
settings.findSettingsByComponentId(OverallLeaderboardPanelLifecycle.ID),
|
||||
false, competitorSelectionProvider, timer,
|
||||
|
||||
Reference in new issue
Block a user