mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-28 06:47:15 +00:00
extended the autoplay configuration page to create settings for 'perspectives' (raceboard, leaderboard) containing potentially multiple components
This commit is contained in:
1 parent
fe56759bf2
commit
ab574bb15f
13 files changed
+325
-257
No files matched your search
+48
-16
@@ -24,6 +24,8 @@ 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.dto.AbstractLeaderboardDTO;
|
||||
import com.sap.sailing.domain.common.dto.RaceColumnDTO;
|
||||
import com.sap.sailing.gwt.autoplay.client.app.PlaceNavigator;
|
||||
import com.sap.sailing.gwt.autoplay.client.place.player.PlayerPlace;
|
||||
import com.sap.sailing.gwt.autoplay.client.shared.header.SAPHeader;
|
||||
@@ -31,12 +33,16 @@ import com.sap.sailing.gwt.common.client.SharedResources;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
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.LeaderboardPerspective;
|
||||
import com.sap.sailing.gwt.ui.raceboard.RaceViewerPerspective;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.ProxyLeaderboardPerspective;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettingsFactory;
|
||||
import com.sap.sailing.gwt.ui.raceboard.ProxyRaceViewerPerspective;
|
||||
import com.sap.sailing.gwt.ui.shared.EventDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO;
|
||||
import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback;
|
||||
import com.sap.sse.gwt.client.event.LocaleChangeEvent;
|
||||
import com.sap.sse.gwt.client.shared.components.CompositeSettings;
|
||||
|
||||
public class DesktopStartView extends Composite implements StartView {
|
||||
private static StartPageViewUiBinder uiBinder = GWT.create(StartPageViewUiBinder.class);
|
||||
@@ -69,13 +75,14 @@ public class DesktopStartView extends Composite implements StartView {
|
||||
private Map<String, String> raceboardParameters;
|
||||
private Map<String, String> leaderboardParameters;
|
||||
|
||||
private List<Perspective> supportedPerspectives;
|
||||
private final List<Perspective> supportedPerspectives;
|
||||
|
||||
private LeaderboardPerspective leaderboardPerspective;
|
||||
private RaceViewerPerspective raceViewerPerspective;
|
||||
private ProxyLeaderboardPerspective leaderboardPerspective;
|
||||
private ProxyRaceViewerPerspective raceViewerPerspective;
|
||||
|
||||
private final int defaultTimeToStartTimeInSeconds = 180;
|
||||
|
||||
private final Map<Perspective, CompositeSettings> perspectiveSettings;
|
||||
|
||||
public DesktopStartView(PlaceNavigator navigator, EventBus eventBus) {
|
||||
super();
|
||||
this.navigator = navigator;
|
||||
@@ -93,11 +100,7 @@ public class DesktopStartView extends Composite implements StartView {
|
||||
localeSelectionBox = new ListBox();
|
||||
localeSelectionBox.setMultipleSelect(false);
|
||||
|
||||
leaderboardPerspective = new LeaderboardPerspective();
|
||||
raceViewerPerspective = new RaceViewerPerspective();
|
||||
|
||||
supportedPerspectives.add(leaderboardPerspective);
|
||||
supportedPerspectives.add(raceViewerPerspective);
|
||||
perspectiveSettings = new HashMap<>();
|
||||
|
||||
LocaleInfo currentLocale = LocaleInfo.getCurrentLocale();
|
||||
int i = 0;
|
||||
@@ -130,8 +133,28 @@ public class DesktopStartView extends Composite implements StartView {
|
||||
startAutoPlayButton.addStyleName(SharedResources.INSTANCE.mainCss().buttoninactive());
|
||||
}
|
||||
|
||||
private void openPerspectiveConfigurationDialog(Perspective perspective) {
|
||||
TabbedPerspectiveConfigurationDialog dialog = new TabbedPerspectiveConfigurationDialog(StringMessages.INSTANCE, perspective);
|
||||
private void updatePerspectives(AbstractLeaderboardDTO leaderboard) {
|
||||
leaderboardPerspective = new ProxyLeaderboardPerspective(leaderboard, createDefaultLeaderboardSettings(leaderboard));
|
||||
raceViewerPerspective = new ProxyRaceViewerPerspective(leaderboard, createDefaultLeaderboardSettings(leaderboard));
|
||||
|
||||
perspectiveSettings.clear();
|
||||
supportedPerspectives.clear();
|
||||
supportedPerspectives.add(leaderboardPerspective);
|
||||
supportedPerspectives.add(raceViewerPerspective);
|
||||
}
|
||||
|
||||
private void openPerspectiveConfigurationDialog(final Perspective perspective) {
|
||||
TabbedPerspectiveConfigurationDialog dialog = new TabbedPerspectiveConfigurationDialog(StringMessages.INSTANCE,
|
||||
perspective, new DialogCallback<CompositeSettings>() {
|
||||
@Override
|
||||
public void cancel() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void ok(CompositeSettings newSettings) {
|
||||
perspectiveSettings.put(perspective, newSettings);
|
||||
}
|
||||
});
|
||||
dialog.show();
|
||||
}
|
||||
|
||||
@@ -169,9 +192,7 @@ public class DesktopStartView extends Composite implements StartView {
|
||||
startAutoPlayButton.removeStyleName(SharedResources.INSTANCE.mainCss().buttoninactive());
|
||||
|
||||
StrippedLeaderboardDTO selectedLeaderboard = getSelectedLeaderboard();
|
||||
|
||||
leaderboardPerspective.setLeaderboard(selectedLeaderboard);
|
||||
raceViewerPerspective.setLeaderboard(selectedLeaderboard);
|
||||
this.updatePerspectives(selectedLeaderboard);
|
||||
|
||||
perspectiveConfigurationPanel.clear();
|
||||
for(final Perspective perspective: supportedPerspectives) {
|
||||
@@ -217,6 +238,17 @@ public class DesktopStartView extends Composite implements StartView {
|
||||
}
|
||||
}
|
||||
|
||||
private LeaderboardSettings createDefaultLeaderboardSettings(AbstractLeaderboardDTO leaderboard) {
|
||||
List<String> namesOfRaceColumnsToShow = new ArrayList<String>();
|
||||
for (RaceColumnDTO raceColumn : leaderboard.getRaceList()) {
|
||||
namesOfRaceColumnsToShow.add(raceColumn.getName());
|
||||
}
|
||||
return LeaderboardSettingsFactory.getInstance().createNewDefaultSettings(
|
||||
namesOfRaceColumnsToShow, /* namesOfRacesToShow */null, /* nameOfRaceToSort */null, /* autoExpandPreSelectedRace */
|
||||
false, /* showRegattaRank */ true);
|
||||
|
||||
}
|
||||
|
||||
private String getLeaderboardZoom() {
|
||||
return leaderboardAutoZoomBox.getValue() == true ? "auto" : String.valueOf(leaderboardZoomBox.getValue());
|
||||
}
|
||||
|
||||
-87
@@ -1,87 +0,0 @@
|
||||
package com.sap.sailing.gwt.autoplay.client.place.start;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.domain.common.dto.AbstractLeaderboardDTO;
|
||||
import com.sap.sailing.domain.common.dto.RaceColumnDTO;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.ExplicitRaceColumnSelection;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettingsDialogComponent;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettingsFactory;
|
||||
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;
|
||||
|
||||
public class LeaderboardSettingsDialog extends SettingsDialog<LeaderboardSettings> {
|
||||
|
||||
public LeaderboardSettingsDialog(AbstractLeaderboardDTO leaderboard, StringMessages stringMessages, DialogCallback<LeaderboardSettings> callback) {
|
||||
super(new ProxyLeaderboardComponent(leaderboard, stringMessages), stringMessages, callback);
|
||||
}
|
||||
|
||||
public static class ProxyLeaderboardComponent implements Component<LeaderboardSettings> {
|
||||
private final StringMessages stringMessages;
|
||||
private final LeaderboardSettingsDialogComponent settingsDialogComponent;
|
||||
|
||||
public ProxyLeaderboardComponent(AbstractLeaderboardDTO leaderboard, StringMessages stringMessages) {
|
||||
this.stringMessages = stringMessages;
|
||||
List<RaceColumnDTO> raceList = leaderboard.getRaceList();
|
||||
List<String> namesOfRaceColumnsToShow = new ArrayList<String>();
|
||||
for (RaceColumnDTO raceColumn : raceList) {
|
||||
namesOfRaceColumnsToShow.add(raceColumn.getName());
|
||||
}
|
||||
LeaderboardSettings settings = LeaderboardSettingsFactory.getInstance().createNewDefaultSettings(
|
||||
namesOfRaceColumnsToShow, /* namesOfRacesToShow */null, /* nameOfRaceToSort */null, /* autoExpandPreSelectedRace */
|
||||
false, /* showRegattaRank */ true);
|
||||
this.settingsDialogComponent = new LeaderboardSettingsDialogComponent(settings.getManeuverDetailsToShow(),
|
||||
settings.getLegDetailsToShow(), settings.getRaceDetailsToShow(), settings.getOverallDetailsToShow(), raceList,
|
||||
/* select all races by default */ raceList, new ExplicitRaceColumnSelection(),
|
||||
/* autoExpandPreSelectedRace */ false, settings.isShowAddedScores(),
|
||||
/* delayBetweenAutoAdvancesInMilliseconds */ 3000l, settings.isShowOverallColumnWithNumberOfRacesCompletedPerCompetitor(),
|
||||
settings.isShowCompetitorSailIdColumn(), settings.isShowCompetitorFullNameColumn(), stringMessages);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasSettings() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SettingsDialogComponent<LeaderboardSettings> getSettingsDialogComponent() {
|
||||
return settingsDialogComponent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateSettings(LeaderboardSettings newSettings) {
|
||||
// no-op; the resulting URL has already been updated to the anchor in the dialog
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getLocalizedShortName() {
|
||||
return stringMessages.leaderboardConfiguration();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Widget getEntryWidget() {
|
||||
throw new UnsupportedOperationException(
|
||||
"Internal error. This settings dialog does not actually belong to a LeaderboardPanel");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isVisible() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setVisible(boolean visibility) {
|
||||
// no-op
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDependentCssClassName() {
|
||||
return "leaderboardSettingsDialog";
|
||||
}
|
||||
}
|
||||
}
|
||||
+71
@@ -0,0 +1,71 @@
|
||||
package com.sap.sailing.gwt.autoplay.client.place.start;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.domain.common.dto.AbstractLeaderboardDTO;
|
||||
import com.sap.sailing.domain.common.dto.RaceColumnDTO;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.ExplicitRaceColumnSelection;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettingsDialogComponent;
|
||||
import com.sap.sse.gwt.client.shared.components.Component;
|
||||
import com.sap.sse.gwt.client.shared.components.SettingsDialogComponent;
|
||||
|
||||
public class ProxyLeaderboardComponent implements Component<LeaderboardSettings> {
|
||||
private final StringMessages stringMessages;
|
||||
private LeaderboardSettings settings;
|
||||
private final List<RaceColumnDTO> raceList;
|
||||
|
||||
public ProxyLeaderboardComponent(LeaderboardSettings settings, AbstractLeaderboardDTO leaderboard, StringMessages stringMessages) {
|
||||
this.settings = settings;
|
||||
this.stringMessages = stringMessages;
|
||||
raceList = leaderboard.getRaceList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasSettings() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SettingsDialogComponent<LeaderboardSettings> getSettingsDialogComponent() {
|
||||
return new LeaderboardSettingsDialogComponent(settings.getManeuverDetailsToShow(),
|
||||
settings.getLegDetailsToShow(), settings.getRaceDetailsToShow(), settings.getOverallDetailsToShow(), raceList,
|
||||
/* select all races by default */ raceList, new ExplicitRaceColumnSelection(),
|
||||
/* autoExpandPreSelectedRace */ false, settings.isShowAddedScores(),
|
||||
/* delayBetweenAutoAdvancesInMilliseconds */ 3000l, settings.isShowOverallColumnWithNumberOfRacesCompletedPerCompetitor(),
|
||||
settings.isShowCompetitorSailIdColumn(), settings.isShowCompetitorFullNameColumn(), stringMessages);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateSettings(LeaderboardSettings newSettings) {
|
||||
this.settings = newSettings;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getLocalizedShortName() {
|
||||
return stringMessages.leaderboardConfiguration();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Widget getEntryWidget() {
|
||||
throw new UnsupportedOperationException(
|
||||
"Internal error. This settings dialog does not actually belong to a LeaderboardPanel");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isVisible() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setVisible(boolean visibility) {
|
||||
// no-op
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDependentCssClassName() {
|
||||
return "leaderboardSettingsDialog";
|
||||
}
|
||||
}
|
||||
+59
@@ -0,0 +1,59 @@
|
||||
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.racemap.RaceMapSettings;
|
||||
import com.sap.sailing.gwt.ui.client.shared.racemap.RaceMapSettingsDialogComponent;
|
||||
import com.sap.sse.gwt.client.shared.components.Component;
|
||||
import com.sap.sse.gwt.client.shared.components.SettingsDialogComponent;
|
||||
|
||||
public class ProxyRaceMapComponent implements Component<RaceMapSettings> {
|
||||
private final StringMessages stringMessages;
|
||||
private RaceMapSettings settings;
|
||||
|
||||
public ProxyRaceMapComponent(RaceMapSettings raceMapSettings, StringMessages stringMessages) {
|
||||
this.settings = raceMapSettings;
|
||||
this.stringMessages = stringMessages;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasSettings() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SettingsDialogComponent<RaceMapSettings> getSettingsDialogComponent() {
|
||||
return new RaceMapSettingsDialogComponent(settings, stringMessages, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateSettings(RaceMapSettings newSettings) {
|
||||
this.settings = newSettings;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getLocalizedShortName() {
|
||||
return stringMessages.settingsForComponent(stringMessages.map());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Widget getEntryWidget() {
|
||||
throw new UnsupportedOperationException(
|
||||
"Internal error. This settings dialog does not actually belong to a RaceMap");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isVisible() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setVisible(boolean visibility) {
|
||||
// no-op
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDependentCssClassName() {
|
||||
return "raceMapSettingsDialog";
|
||||
}
|
||||
}
|
||||
+59
@@ -0,0 +1,59 @@
|
||||
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.WindChartSettings;
|
||||
import com.sap.sailing.gwt.ui.client.shared.charts.WindChartSettingsDialogComponent;
|
||||
import com.sap.sse.gwt.client.shared.components.Component;
|
||||
import com.sap.sse.gwt.client.shared.components.SettingsDialogComponent;
|
||||
|
||||
public class ProxyWindChartComponent implements Component<WindChartSettings> {
|
||||
private final StringMessages stringMessages;
|
||||
private WindChartSettings settings;
|
||||
|
||||
public ProxyWindChartComponent(WindChartSettings settings, StringMessages stringMessages) {
|
||||
this.settings = settings;
|
||||
this.stringMessages = stringMessages;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasSettings() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SettingsDialogComponent<WindChartSettings> getSettingsDialogComponent() {
|
||||
return new WindChartSettingsDialogComponent(settings, stringMessages);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateSettings(WindChartSettings newSettings) {
|
||||
this.settings = newSettings;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getLocalizedShortName() {
|
||||
return stringMessages.settingsForComponent(stringMessages.windChart());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Widget getEntryWidget() {
|
||||
throw new UnsupportedOperationException(
|
||||
"Internal error. This settings dialog does not actually belong to a wind chart");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isVisible() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setVisible(boolean visibility) {
|
||||
// no-op
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDependentCssClassName() {
|
||||
return "windChartSettingsDialog";
|
||||
}
|
||||
}
|
||||
-67
@@ -1,67 +0,0 @@
|
||||
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.racemap.RaceMapSettings;
|
||||
import com.sap.sailing.gwt.ui.client.shared.racemap.RaceMapSettingsDialogComponent;
|
||||
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;
|
||||
|
||||
public class RaceMapSettingsDialog extends SettingsDialog<RaceMapSettings> {
|
||||
|
||||
public RaceMapSettingsDialog(RaceMapSettings raceMapSettings, StringMessages stringMessages, DialogCallback<RaceMapSettings> callback) {
|
||||
super(new ProxyRaceMapComponent(raceMapSettings, stringMessages), stringMessages, callback);
|
||||
}
|
||||
|
||||
public static class ProxyRaceMapComponent implements Component<RaceMapSettings> {
|
||||
private final StringMessages stringMessages;
|
||||
private final RaceMapSettingsDialogComponent settingsDialogComponent;
|
||||
|
||||
public ProxyRaceMapComponent(RaceMapSettings raceMapSettings, StringMessages stringMessages) {
|
||||
this.stringMessages = stringMessages;
|
||||
this.settingsDialogComponent = new RaceMapSettingsDialogComponent(raceMapSettings, stringMessages, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasSettings() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SettingsDialogComponent<RaceMapSettings> getSettingsDialogComponent() {
|
||||
return settingsDialogComponent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateSettings(RaceMapSettings newSettings) {
|
||||
// no-op; the resulting URL has already been updated to the anchor in the dialog
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getLocalizedShortName() {
|
||||
return stringMessages.settingsForComponent(stringMessages.map());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Widget getEntryWidget() {
|
||||
throw new UnsupportedOperationException(
|
||||
"Internal error. This settings dialog does not actually belong to a RaceMap");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isVisible() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setVisible(boolean visibility) {
|
||||
// no-op
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDependentCssClassName() {
|
||||
return "raceMapSettingsDialog";
|
||||
}
|
||||
}
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
package com.sap.sailing.gwt.ui.client.shared.perspective;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.sap.sse.gwt.client.shared.components.Component;
|
||||
|
||||
/**
|
||||
* An abstract base class for perspectives.
|
||||
* @author Frank
|
||||
*
|
||||
*/
|
||||
public abstract class AbstractPerspective implements Perspective {
|
||||
|
||||
protected final List<Component<?>> components;
|
||||
|
||||
public AbstractPerspective() {
|
||||
components = new ArrayList<Component<?>>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<Component<?>> getComponents() {
|
||||
return components;
|
||||
}
|
||||
}
|
||||
+6
-1
@@ -1,6 +1,7 @@
|
||||
package com.sap.sailing.gwt.ui.client.shared.perspective;
|
||||
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sse.gwt.client.shared.components.CompositeSettings;
|
||||
import com.sap.sse.gwt.client.shared.components.CompositeTabbedSettingsDialog;
|
||||
|
||||
/**
|
||||
@@ -9,8 +10,12 @@ import com.sap.sse.gwt.client.shared.components.CompositeTabbedSettingsDialog;
|
||||
*
|
||||
*/
|
||||
public class TabbedPerspectiveConfigurationDialog extends CompositeTabbedSettingsDialog {
|
||||
|
||||
|
||||
public TabbedPerspectiveConfigurationDialog(StringMessages stringConstants, Perspective perspective) {
|
||||
super(stringConstants, perspective.getComponents(), perspective.getPerspectiveName());
|
||||
}
|
||||
|
||||
public TabbedPerspectiveConfigurationDialog(StringMessages stringConstants, Perspective perspective, DialogCallback<CompositeSettings> callback) {
|
||||
super(stringConstants, perspective.getComponents(), perspective.getPerspectiveName(), callback);
|
||||
}
|
||||
}
|
||||
-40
@@ -1,40 +0,0 @@
|
||||
package com.sap.sailing.gwt.ui.leaderboard;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.sap.sailing.domain.common.dto.AbstractLeaderboardDTO;
|
||||
import com.sap.sailing.gwt.autoplay.client.place.start.LeaderboardSettingsDialog.ProxyLeaderboardComponent;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.perspective.Perspective;
|
||||
import com.sap.sse.gwt.client.shared.components.Component;
|
||||
|
||||
/**
|
||||
* A perspective containing only a LeaderboardPanel
|
||||
* @author Frank
|
||||
*
|
||||
*/
|
||||
public class LeaderboardPerspective implements Perspective {
|
||||
private final List<Component<?>> components;
|
||||
|
||||
public LeaderboardPerspective() {
|
||||
components = new ArrayList<Component<?>>();
|
||||
}
|
||||
|
||||
public void setLeaderboard(AbstractLeaderboardDTO leaderboard) {
|
||||
components.clear();
|
||||
components.add(new ProxyLeaderboardComponent(leaderboard, StringMessages.INSTANCE));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<Component<?>> getComponents() {
|
||||
return components;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPerspectiveName() {
|
||||
return StringMessages.INSTANCE.leaderboard();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
package com.sap.sailing.gwt.ui.leaderboard;
|
||||
|
||||
import com.sap.sailing.domain.common.dto.AbstractLeaderboardDTO;
|
||||
import com.sap.sailing.gwt.autoplay.client.place.start.ProxyLeaderboardComponent;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.perspective.AbstractPerspective;
|
||||
|
||||
/**
|
||||
* A proxy perspective containing a proxy component for the LeaderboardPanel
|
||||
* @author Frank
|
||||
*
|
||||
*/
|
||||
public class ProxyLeaderboardPerspective extends AbstractPerspective {
|
||||
public ProxyLeaderboardPerspective(AbstractLeaderboardDTO leaderboard, LeaderboardSettings defaultLeaderboardSettings) {
|
||||
super();
|
||||
components.add(new ProxyLeaderboardComponent(defaultLeaderboardSettings, leaderboard, StringMessages.INSTANCE));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPerspectiveName() {
|
||||
return StringMessages.INSTANCE.leaderboard();
|
||||
}
|
||||
}
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
package com.sap.sailing.gwt.ui.raceboard;
|
||||
|
||||
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.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.WindChartSettings;
|
||||
import com.sap.sailing.gwt.ui.client.shared.perspective.AbstractPerspective;
|
||||
import com.sap.sailing.gwt.ui.client.shared.racemap.RaceMapSettings;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings;
|
||||
|
||||
/**
|
||||
* A proxy perspective containing proxy components for all components of a race viewer with all components like map, leaderboard, charts, etc.
|
||||
* @author Frank
|
||||
*
|
||||
*/
|
||||
public class ProxyRaceViewerPerspective extends AbstractPerspective {
|
||||
public ProxyRaceViewerPerspective(AbstractLeaderboardDTO leaderboard, LeaderboardSettings defaultLeaderboardSettings) {
|
||||
super();
|
||||
components.add(new ProxyRaceMapComponent(new RaceMapSettings(), StringMessages.INSTANCE));
|
||||
components.add(new ProxyWindChartComponent(new WindChartSettings(), StringMessages.INSTANCE));
|
||||
components.add(new ProxyLeaderboardComponent(defaultLeaderboardSettings, leaderboard, StringMessages.INSTANCE));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPerspectiveName() {
|
||||
return "Race Viewer";
|
||||
}
|
||||
}
|
||||
-41
@@ -1,41 +0,0 @@
|
||||
package com.sap.sailing.gwt.ui.raceboard;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.sap.sailing.domain.common.dto.AbstractLeaderboardDTO;
|
||||
import com.sap.sailing.gwt.autoplay.client.place.start.LeaderboardSettingsDialog.ProxyLeaderboardComponent;
|
||||
import com.sap.sailing.gwt.autoplay.client.place.start.RaceMapSettingsDialog.ProxyRaceMapComponent;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.perspective.Perspective;
|
||||
import com.sap.sailing.gwt.ui.client.shared.racemap.RaceMapSettings;
|
||||
import com.sap.sse.gwt.client.shared.components.Component;
|
||||
|
||||
/**
|
||||
* A perspective containing a race viewer with all components like map, leaderboard, charts, etc.
|
||||
* @author Frank
|
||||
*
|
||||
*/
|
||||
public class RaceViewerPerspective implements Perspective {
|
||||
private final List<Component<?>> components;
|
||||
|
||||
public RaceViewerPerspective() {
|
||||
components = new ArrayList<Component<?>>();
|
||||
}
|
||||
|
||||
public void setLeaderboard(AbstractLeaderboardDTO leaderboard) {
|
||||
components.clear();
|
||||
components.add(new ProxyRaceMapComponent(new RaceMapSettings(), StringMessages.INSTANCE));
|
||||
components.add(new ProxyLeaderboardComponent(leaderboard, StringMessages.INSTANCE));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<Component<?>> getComponents() {
|
||||
return components;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPerspectiveName() {
|
||||
return "Race Viewer";
|
||||
}
|
||||
}
|
||||
+4
-5
@@ -10,13 +10,12 @@ import com.sap.sse.gwt.client.StringMessages;
|
||||
*
|
||||
*/
|
||||
public class CompositeTabbedSettingsDialog extends SettingsDialog<CompositeSettings> {
|
||||
|
||||
public CompositeTabbedSettingsDialog(StringMessages stringConstants, final Iterable<Component<?>> components) {
|
||||
this(stringConstants, components, null);
|
||||
}
|
||||
|
||||
public CompositeTabbedSettingsDialog(StringMessages stringConstants, final Iterable<Component<?>> components, final String title) {
|
||||
super(new CompositeTabbedSettingsComponent(components, title), stringConstants);
|
||||
}
|
||||
|
||||
|
||||
public CompositeTabbedSettingsDialog(StringMessages stringConstants, final Iterable<Component<?>> components, final String title, DialogCallback<CompositeSettings> callback) {
|
||||
super(new CompositeTabbedSettingsComponent(components, title), stringConstants, callback);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user