added competitors charts as configurable component to the Autoplay config

This commit is contained in:
fmittag committed 2015-12-08 21:54:49 +01:00
1 parent 53f9741a5a
commit beb779d428
9 files changed
+90 -9

No files matched your search

@@ -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<String> namesOfRaceColumnsToShow = new ArrayList<String>();
for (RaceColumnDTO raceColumn : leaderboard.getRaceList()) {
@@ -105,7 +105,7 @@
</div>
<div class="{res.mediaCss.grid} {style.row}">
<div class="{res.mediaCss.small12} {res.mediaCss.medium6} {res.mediaCss.large3} {res.mediaCss.columns}">
<span>Raceboard Viewer:</span>
<span>Race Viewer:</span>
</div>
<div class="{res.mediaCss.small12} {res.mediaCss.medium6} {res.mediaCss.large9} {res.mediaCss.columns}">
<g:FlowPanel ui:field="raceboardPerspectiveSettingsPanel" />
@@ -45,7 +45,7 @@ public class ProxyLeaderboardComponent implements Component<LeaderboardSettings>
@Override
public String getLocalizedShortName() {
return stringMessages.leaderboardConfiguration();
return stringMessages.leaderboard();
}
@Override
@@ -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<MultiCompetitorRaceChartSettings> {
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<MultiCompetitorRaceChartSettings> 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;
}
}
@@ -33,7 +33,7 @@ public class ProxyRaceMapComponent implements Component<RaceMapSettings> {
@Override
public String getLocalizedShortName() {
return stringMessages.settingsForComponent(stringMessages.map());
return stringMessages.map();
}
@Override
@@ -33,7 +33,7 @@ public class ProxyWindChartComponent implements Component<WindChartSettings> {
@Override
public String getLocalizedShortName() {
return stringMessages.settingsForComponent(stringMessages.windChart());
return stringMessages.windChart();
}
@Override
@@ -76,6 +76,8 @@ public abstract class AbstractCompetitorRaceChart<SettingsType extends ChartSett
CompetitorSelectionChangeListener, RequiresResize {
public static final String LOAD_COMPETITOR_CHART_DATA_CATEGORY = "loadCompetitorChartData";
public static final long DEFAULT_STEPSIZE = 5000;
private static final int LINE_WIDTH = 1;
private final Label noCompetitorsSelectedLabel;
@@ -87,7 +89,7 @@ public abstract class AbstractCompetitorRaceChart<SettingsType extends ChartSett
private final boolean allowTimeAdjust;
private final String leaderboardGroupName;
private final String leaderboardName;
private long stepSize = 5000;
private long stepSize = DEFAULT_STEPSIZE;
private final Map<CompetitorDTO, Series> dataSeriesByCompetitor;
private final Map<CompetitorDTO, Series> markPassingSeriesByCompetitor;
private Long timeOfEarliestRequestInMillis;
@@ -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;
}
@@ -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<RaceBoardPerspectiveSettings> {
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<RaceBoardPers
components.add(new ProxyRaceMapComponent(new RaceMapSettings(), StringMessages.INSTANCE));
components.add(new ProxyWindChartComponent(new WindChartSettings(), StringMessages.INSTANCE));
components.add(new ProxyLeaderboardComponent(defaultLeaderboardSettings, leaderboard, StringMessages.INSTANCE));
components.add(new ProxyMultiCompetitorRaceChartComponent(defaultMultiCompetitorRaceChartSettings, StringMessages.INSTANCE));
}
@Override