From beb779d428c313f4289981c1a1291ee4b445680c Mon Sep 17 00:00:00 2001 From: fmittag Date: Tue, 8 Dec 2015 21:54:49 +0100 Subject: [PATCH] added competitors charts as configurable component to the Autoplay config --- .../client/place/start/DesktopStartView.java | 13 +++- .../place/start/DesktopStartView.ui.xml | 2 +- .../start/ProxyLeaderboardComponent.java | 2 +- ...roxyMultiCompetitorRaceChartComponent.java | 64 +++++++++++++++++++ .../place/start/ProxyRaceMapComponent.java | 2 +- .../place/start/ProxyWindChartComponent.java | 2 +- .../charts/AbstractCompetitorRaceChart.java | 4 +- .../MultiCompetitorRaceChartSettings.java | 4 +- .../raceboard/ProxyRaceBoardPerspective.java | 6 +- 9 files changed, 90 insertions(+), 9 deletions(-) create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/place/start/ProxyMultiCompetitorRaceChartComponent.java diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/place/start/DesktopStartView.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/place/start/DesktopStartView.java index f3e441a0a5a..6144c6a7445 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/place/start/DesktopStartView.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/place/start/DesktopStartView.java @@ -24,6 +24,7 @@ import com.google.gwt.user.client.ui.ListBox; import com.google.gwt.user.client.ui.TextBox; import com.google.gwt.user.client.ui.Widget; import com.google.web.bindery.event.shared.EventBus; +import com.sap.sailing.domain.common.DetailType; import com.sap.sailing.domain.common.dto.AbstractLeaderboardDTO; import com.sap.sailing.domain.common.dto.RaceColumnDTO; import com.sap.sailing.gwt.autoplay.client.app.PlaceNavigator; @@ -31,6 +32,9 @@ import com.sap.sailing.gwt.autoplay.client.place.player.AutoPlayerConfiguration; import com.sap.sailing.gwt.autoplay.client.shared.header.SAPHeader; import com.sap.sailing.gwt.common.client.SharedResources; import com.sap.sailing.gwt.ui.client.StringMessages; +import com.sap.sailing.gwt.ui.client.shared.charts.AbstractCompetitorRaceChart; +import com.sap.sailing.gwt.ui.client.shared.charts.ChartSettings; +import com.sap.sailing.gwt.ui.client.shared.charts.MultiCompetitorRaceChartSettings; import com.sap.sailing.gwt.ui.client.shared.perspective.Perspective; import com.sap.sailing.gwt.ui.client.shared.perspective.TabbedPerspectiveConfigurationDialog; import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings; @@ -127,7 +131,8 @@ public class DesktopStartView extends Composite implements StartView { private void updatePerspectives(AbstractLeaderboardDTO leaderboard) { leaderboardPerspective = new ProxyLeaderboardPerspective(leaderboard, createDefaultLeaderboardSettings(leaderboard)); - raceboardPerspective = new ProxyRaceBoardPerspective(new RaceBoardPerspectiveSettings(), leaderboard, createDefaultLeaderboardSettings(leaderboard)); + raceboardPerspective = new ProxyRaceBoardPerspective(new RaceBoardPerspectiveSettings(), leaderboard, + createDefaultLeaderboardSettings(leaderboard), createDefaultMultiCompetitorRaceChartSettings()); perspectiveSettings.clear(); } @@ -241,6 +246,12 @@ public class DesktopStartView extends Composite implements StartView { } } + private MultiCompetitorRaceChartSettings createDefaultMultiCompetitorRaceChartSettings() { + ChartSettings chartSettings = new ChartSettings(AbstractCompetitorRaceChart.DEFAULT_STEPSIZE); + DetailType defaultDetailType = DetailType.WINDWARD_DISTANCE_TO_COMPETITOR_FARTHEST_AHEAD; + return new MultiCompetitorRaceChartSettings(chartSettings, defaultDetailType); + } + private LeaderboardSettings createDefaultLeaderboardSettings(AbstractLeaderboardDTO leaderboard) { List namesOfRaceColumnsToShow = new ArrayList(); for (RaceColumnDTO raceColumn : leaderboard.getRaceList()) { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/place/start/DesktopStartView.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/place/start/DesktopStartView.ui.xml index 4f3fe179f38..84a515654af 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/place/start/DesktopStartView.ui.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/place/start/DesktopStartView.ui.xml @@ -105,7 +105,7 @@
- Raceboard Viewer: + Race Viewer:
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/place/start/ProxyLeaderboardComponent.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/place/start/ProxyLeaderboardComponent.java index 69bd545deec..fce6b3a5cac 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/place/start/ProxyLeaderboardComponent.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/place/start/ProxyLeaderboardComponent.java @@ -45,7 +45,7 @@ public class ProxyLeaderboardComponent implements Component @Override public String getLocalizedShortName() { - return stringMessages.leaderboardConfiguration(); + return stringMessages.leaderboard(); } @Override diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/place/start/ProxyMultiCompetitorRaceChartComponent.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/place/start/ProxyMultiCompetitorRaceChartComponent.java new file mode 100644 index 00000000000..af52e053c82 --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/place/start/ProxyMultiCompetitorRaceChartComponent.java @@ -0,0 +1,64 @@ +package com.sap.sailing.gwt.autoplay.client.place.start; + +import com.google.gwt.user.client.ui.Widget; +import com.sap.sailing.gwt.ui.client.StringMessages; +import com.sap.sailing.gwt.ui.client.shared.charts.MultiCompetitorRaceChartSettings; +import com.sap.sailing.gwt.ui.client.shared.charts.MultiCompetitorRaceChartSettingsComponent; +import com.sap.sse.gwt.client.shared.components.Component; +import com.sap.sse.gwt.client.shared.components.SettingsDialogComponent; + +public class ProxyMultiCompetitorRaceChartComponent implements Component { + private final StringMessages stringMessages; + private MultiCompetitorRaceChartSettings settings; + + public ProxyMultiCompetitorRaceChartComponent(MultiCompetitorRaceChartSettings settings, StringMessages stringMessages) { + this.settings = settings; + this.stringMessages = stringMessages; + } + + @Override + public boolean hasSettings() { + return true; + } + + @Override + public SettingsDialogComponent getSettingsDialogComponent() { + return new MultiCompetitorRaceChartSettingsComponent(settings, stringMessages, true); + } + + @Override + public void updateSettings(MultiCompetitorRaceChartSettings newSettings) { + this.settings = newSettings; + } + + @Override + public String getLocalizedShortName() { + return stringMessages.competitorCharts(); + } + + @Override + public Widget getEntryWidget() { + throw new UnsupportedOperationException( + "Internal error. This settings dialog does not actually belong to a real chart"); + } + + @Override + public boolean isVisible() { + return false; + } + + @Override + public void setVisible(boolean visibility) { + // no-op + } + + @Override + public String getDependentCssClassName() { + return "multiCompetitorRaceChart"; + } + + @Override + public MultiCompetitorRaceChartSettings getSettings() { + return settings; + } +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/place/start/ProxyRaceMapComponent.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/place/start/ProxyRaceMapComponent.java index d14427c5d4f..0a96e18079c 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/place/start/ProxyRaceMapComponent.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/place/start/ProxyRaceMapComponent.java @@ -33,7 +33,7 @@ public class ProxyRaceMapComponent implements Component { @Override public String getLocalizedShortName() { - return stringMessages.settingsForComponent(stringMessages.map()); + return stringMessages.map(); } @Override diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/place/start/ProxyWindChartComponent.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/place/start/ProxyWindChartComponent.java index 8d07f42659c..b3098d9c0a7 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/place/start/ProxyWindChartComponent.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/place/start/ProxyWindChartComponent.java @@ -33,7 +33,7 @@ public class ProxyWindChartComponent implements Component { @Override public String getLocalizedShortName() { - return stringMessages.settingsForComponent(stringMessages.windChart()); + return stringMessages.windChart(); } @Override diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/AbstractCompetitorRaceChart.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/AbstractCompetitorRaceChart.java index 58bfe7fe2aa..500fbd601f1 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/AbstractCompetitorRaceChart.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/AbstractCompetitorRaceChart.java @@ -76,6 +76,8 @@ public abstract class AbstractCompetitorRaceChart dataSeriesByCompetitor; private final Map markPassingSeriesByCompetitor; private Long timeOfEarliestRequestInMillis; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/MultiCompetitorRaceChartSettings.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/MultiCompetitorRaceChartSettings.java index 356fb20c573..c0130aaa8f3 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/MultiCompetitorRaceChartSettings.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/MultiCompetitorRaceChartSettings.java @@ -5,8 +5,8 @@ import com.sap.sailing.domain.common.DetailType; public class MultiCompetitorRaceChartSettings extends ChartSettings { private final DetailType detailType; - public MultiCompetitorRaceChartSettings(ChartSettings superResult, DetailType detailType) { - super(superResult); + public MultiCompetitorRaceChartSettings(ChartSettings settings, DetailType detailType) { + super(settings); this.detailType = detailType; } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/ProxyRaceBoardPerspective.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/ProxyRaceBoardPerspective.java index 913a1efd0ac..8102a16ba1a 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/ProxyRaceBoardPerspective.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/ProxyRaceBoardPerspective.java @@ -3,9 +3,11 @@ package com.sap.sailing.gwt.ui.raceboard; import com.google.gwt.user.client.ui.Widget; import com.sap.sailing.domain.common.dto.AbstractLeaderboardDTO; import com.sap.sailing.gwt.autoplay.client.place.start.ProxyLeaderboardComponent; +import com.sap.sailing.gwt.autoplay.client.place.start.ProxyMultiCompetitorRaceChartComponent; import com.sap.sailing.gwt.autoplay.client.place.start.ProxyRaceMapComponent; import com.sap.sailing.gwt.autoplay.client.place.start.ProxyWindChartComponent; import com.sap.sailing.gwt.ui.client.StringMessages; +import com.sap.sailing.gwt.ui.client.shared.charts.MultiCompetitorRaceChartSettings; import com.sap.sailing.gwt.ui.client.shared.charts.WindChartSettings; import com.sap.sailing.gwt.ui.client.shared.perspective.AbstractPerspective; import com.sap.sailing.gwt.ui.client.shared.racemap.RaceMapSettings; @@ -20,7 +22,8 @@ import com.sap.sse.gwt.client.shared.components.SettingsDialogComponent; public class ProxyRaceBoardPerspective extends AbstractPerspective { private RaceBoardPerspectiveSettings perspectiveSettings; - public ProxyRaceBoardPerspective(RaceBoardPerspectiveSettings perspectiveSettings, AbstractLeaderboardDTO leaderboard, LeaderboardSettings defaultLeaderboardSettings) { + public ProxyRaceBoardPerspective(RaceBoardPerspectiveSettings perspectiveSettings, AbstractLeaderboardDTO leaderboard, LeaderboardSettings defaultLeaderboardSettings, + MultiCompetitorRaceChartSettings defaultMultiCompetitorRaceChartSettings) { super(); this.perspectiveSettings = perspectiveSettings; @@ -28,6 +31,7 @@ public class ProxyRaceBoardPerspective extends AbstractPerspective