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 062ea3ae77e..c9a8a03458b 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,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 raceboardParameters; private Map leaderboardParameters; - private List supportedPerspectives; + private final List supportedPerspectives; - private LeaderboardPerspective leaderboardPerspective; - private RaceViewerPerspective raceViewerPerspective; + private ProxyLeaderboardPerspective leaderboardPerspective; + private ProxyRaceViewerPerspective raceViewerPerspective; private final int defaultTimeToStartTimeInSeconds = 180; - + private final Map 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() { + @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 namesOfRaceColumnsToShow = new ArrayList(); + 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()); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/place/start/LeaderboardSettingsDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/place/start/LeaderboardSettingsDialog.java deleted file mode 100644 index 24646b96b36..00000000000 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/place/start/LeaderboardSettingsDialog.java +++ /dev/null @@ -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 { - - public LeaderboardSettingsDialog(AbstractLeaderboardDTO leaderboard, StringMessages stringMessages, DialogCallback callback) { - super(new ProxyLeaderboardComponent(leaderboard, stringMessages), stringMessages, callback); - } - - public static class ProxyLeaderboardComponent implements Component { - private final StringMessages stringMessages; - private final LeaderboardSettingsDialogComponent settingsDialogComponent; - - public ProxyLeaderboardComponent(AbstractLeaderboardDTO leaderboard, StringMessages stringMessages) { - this.stringMessages = stringMessages; - List raceList = leaderboard.getRaceList(); - List namesOfRaceColumnsToShow = new ArrayList(); - 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 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"; - } - } -} 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 new file mode 100644 index 00000000000..c428de9219f --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/place/start/ProxyLeaderboardComponent.java @@ -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 { + private final StringMessages stringMessages; + private LeaderboardSettings settings; + private final List 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 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"; + } +} \ No newline at end of file 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 new file mode 100644 index 00000000000..58ea6d5dbdc --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/place/start/ProxyRaceMapComponent.java @@ -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 { + 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 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"; + } +} \ No newline at end of file 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 new file mode 100644 index 00000000000..93853310c5a --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/place/start/ProxyWindChartComponent.java @@ -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 { + 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 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"; + } +} \ No newline at end of file diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/place/start/RaceMapSettingsDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/place/start/RaceMapSettingsDialog.java deleted file mode 100644 index 9a28fbf9c95..00000000000 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/place/start/RaceMapSettingsDialog.java +++ /dev/null @@ -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 { - - public RaceMapSettingsDialog(RaceMapSettings raceMapSettings, StringMessages stringMessages, DialogCallback callback) { - super(new ProxyRaceMapComponent(raceMapSettings, stringMessages), stringMessages, callback); - } - - public static class ProxyRaceMapComponent implements Component { - 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 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"; - } - } -} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/perspective/AbstractPerspective.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/perspective/AbstractPerspective.java new file mode 100644 index 00000000000..83e274d831c --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/perspective/AbstractPerspective.java @@ -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> components; + + public AbstractPerspective() { + components = new ArrayList>(); + } + + @Override + public Iterable> getComponents() { + return components; + } +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/perspective/TabbedPerspectiveConfigurationDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/perspective/TabbedPerspectiveConfigurationDialog.java index 7a6611bf722..921ccf300a5 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/perspective/TabbedPerspectiveConfigurationDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/perspective/TabbedPerspectiveConfigurationDialog.java @@ -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 callback) { + super(stringConstants, perspective.getComponents(), perspective.getPerspectiveName(), callback); + } } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardPerspective.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardPerspective.java deleted file mode 100644 index ad6a26d7954..00000000000 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardPerspective.java +++ /dev/null @@ -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> components; - - public LeaderboardPerspective() { - components = new ArrayList>(); - } - - public void setLeaderboard(AbstractLeaderboardDTO leaderboard) { - components.clear(); - components.add(new ProxyLeaderboardComponent(leaderboard, StringMessages.INSTANCE)); - } - - @Override - public Iterable> getComponents() { - return components; - } - - @Override - public String getPerspectiveName() { - return StringMessages.INSTANCE.leaderboard(); - } - - -} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/ProxyLeaderboardPerspective.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/ProxyLeaderboardPerspective.java new file mode 100644 index 00000000000..59afa6e9fa5 --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/ProxyLeaderboardPerspective.java @@ -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(); + } +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/ProxyRaceViewerPerspective.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/ProxyRaceViewerPerspective.java new file mode 100644 index 00000000000..3ca2e44ab85 --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/ProxyRaceViewerPerspective.java @@ -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"; + } +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/RaceViewerPerspective.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/RaceViewerPerspective.java deleted file mode 100644 index e8c9d17fe60..00000000000 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/RaceViewerPerspective.java +++ /dev/null @@ -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> components; - - public RaceViewerPerspective() { - components = new ArrayList>(); - } - - 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> getComponents() { - return components; - } - - @Override - public String getPerspectiveName() { - return "Race Viewer"; - } -} diff --git a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/shared/components/CompositeTabbedSettingsDialog.java b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/shared/components/CompositeTabbedSettingsDialog.java index 91da528b900..0d357d2ca69 100755 --- a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/shared/components/CompositeTabbedSettingsDialog.java +++ b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/shared/components/CompositeTabbedSettingsDialog.java @@ -10,13 +10,12 @@ import com.sap.sse.gwt.client.StringMessages; * */ public class CompositeTabbedSettingsDialog extends SettingsDialog { - - public CompositeTabbedSettingsDialog(StringMessages stringConstants, final Iterable> components) { - this(stringConstants, components, null); - } public CompositeTabbedSettingsDialog(StringMessages stringConstants, final Iterable> components, final String title) { super(new CompositeTabbedSettingsComponent(components, title), stringConstants); } - + + public CompositeTabbedSettingsDialog(StringMessages stringConstants, final Iterable> components, final String title, DialogCallback callback) { + super(new CompositeTabbedSettingsComponent(components, title), stringConstants, callback); + } }