mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-28 14:57:12 +00:00
made a RaceboardPanel a 'Perspective', applied all settings created in the Autoplay config to the Raceboardpanel
This commit is contained in:
1 parent
f87332ea54
commit
a1a5c75d44
8 files changed
+156
-18
No files matched your search
+4
-7
@@ -72,7 +72,6 @@ public class AutoPlayController implements RaceTimesInfoProviderListener {
|
|||||||
|
|
||||||
// leaderboard related attributes
|
// leaderboard related attributes
|
||||||
private LeaderboardDTO leaderboard;
|
private LeaderboardDTO leaderboard;
|
||||||
// private LeaderboardSettings leaderboardSettings;
|
|
||||||
|
|
||||||
// raceboard related attributes
|
// raceboard related attributes
|
||||||
private RegattaAndRaceIdentifier currentLiveRace;
|
private RegattaAndRaceIdentifier currentLiveRace;
|
||||||
@@ -104,11 +103,7 @@ public class AutoPlayController implements RaceTimesInfoProviderListener {
|
|||||||
this.raceboardComponentsSettings = allRaceboardSettings.getB();
|
this.raceboardComponentsSettings = allRaceboardSettings.getB();
|
||||||
this.leaderboardPerspectiveSettings = allLeaderboardSettings.getA();
|
this.leaderboardPerspectiveSettings = allLeaderboardSettings.getA();
|
||||||
this.leaderboardComponentsSettings = allLeaderboardSettings.getB();
|
this.leaderboardComponentsSettings = allLeaderboardSettings.getB();
|
||||||
|
|
||||||
// if(this.leaderboardSettings == null) {
|
|
||||||
// leaderboardSettings = LeaderboardSettingsFactory.getInstance().createNewDefaultSettings(null, null, null, /* autoExpandFirstRace */ false, /* showRegattaRank */ true, /* showCompetitorSailIdColumn */ true, /* showCompetitorFullNameColumn */ true);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
asyncActionsExecutor = new AsyncActionsExecutor();
|
asyncActionsExecutor = new AsyncActionsExecutor();
|
||||||
leaderboard = null;
|
leaderboard = null;
|
||||||
leaderboardTimer = new Timer(PlayModes.Live, /* delayBetweenAutoAdvancesInMilliseconds */1000l);
|
leaderboardTimer = new Timer(PlayModes.Live, /* delayBetweenAutoAdvancesInMilliseconds */1000l);
|
||||||
@@ -135,7 +130,7 @@ public class AutoPlayController implements RaceTimesInfoProviderListener {
|
|||||||
|
|
||||||
private LeaderboardPanel createLeaderboardPanel(String leaderboardName, boolean showRaceDetails) {
|
private LeaderboardPanel createLeaderboardPanel(String leaderboardName, boolean showRaceDetails) {
|
||||||
CompetitorSelectionModel selectionModel = new CompetitorSelectionModel(/* hasMultiSelection */ true);
|
CompetitorSelectionModel selectionModel = new CompetitorSelectionModel(/* hasMultiSelection */ true);
|
||||||
LeaderboardSettings leaderboardSettings = (LeaderboardSettings) leaderboardComponentsSettings.getSettingsPerComponent().iterator().next().getB();
|
LeaderboardSettings leaderboardSettings = leaderboardComponentsSettings.getSettingsForType(LeaderboardSettings.class);
|
||||||
LeaderboardPanel leaderboardPanel = new LeaderboardPanel(sailingService, asyncActionsExecutor,
|
LeaderboardPanel leaderboardPanel = new LeaderboardPanel(sailingService, asyncActionsExecutor,
|
||||||
leaderboardSettings, true,
|
leaderboardSettings, true,
|
||||||
/* preSelectedRace */null, selectionModel, leaderboardTimer, /*leaderboardGroupName*/ "", leaderboardName,
|
/* preSelectedRace */null, selectionModel, leaderboardTimer, /*leaderboardGroupName*/ "", leaderboardName,
|
||||||
@@ -299,6 +294,8 @@ public class AutoPlayController implements RaceTimesInfoProviderListener {
|
|||||||
leaderboardTimer.pause();
|
leaderboardTimer.pause();
|
||||||
raceboardTimer.setPlayMode(PlayModes.Live);
|
raceboardTimer.setPlayMode(PlayModes.Live);
|
||||||
|
|
||||||
|
raceBoardPanel.setSettingsOfComponents(raceboardComponentsSettings);
|
||||||
|
|
||||||
isInitialScreen = false;
|
isInitialScreen = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+64
@@ -0,0 +1,64 @@
|
|||||||
|
package com.sap.sailing.gwt.ui.client.shared.perspective;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.google.gwt.user.client.ui.Composite;
|
||||||
|
import com.google.gwt.user.client.ui.Widget;
|
||||||
|
import com.sap.sse.common.settings.Settings;
|
||||||
|
import com.sap.sse.gwt.client.shared.components.Component;
|
||||||
|
import com.sap.sse.gwt.client.shared.components.CompositeSettings;
|
||||||
|
import com.sap.sse.gwt.client.shared.components.CompositeSettings.ComponentAndSettingsPair;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An abstract base class for perspectives with a widget.
|
||||||
|
* @author Frank
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public abstract class AbstractPerspectiveComposite<SettingsType extends Settings> extends Composite implements Perspective<SettingsType> {
|
||||||
|
|
||||||
|
protected final List<Component<?>> components;
|
||||||
|
|
||||||
|
public AbstractPerspectiveComposite() {
|
||||||
|
components = new ArrayList<Component<?>>();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CompositeSettings getSettingsOfComponents() {
|
||||||
|
Collection<ComponentAndSettingsPair<?>> settings = new HashSet<>();
|
||||||
|
for (Component<?> component : components) {
|
||||||
|
ComponentAndSettingsPair<?> componentAndSettings = getComponentAndSettings(component);
|
||||||
|
if (componentAndSettings != null) {
|
||||||
|
settings.add(componentAndSettings);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return new CompositeSettings(settings);
|
||||||
|
}
|
||||||
|
|
||||||
|
private <ComponentSettingsType extends Settings> ComponentAndSettingsPair<ComponentSettingsType> getComponentAndSettings(Component<ComponentSettingsType> component) {
|
||||||
|
return component.hasSettings() ? new ComponentAndSettingsPair<ComponentSettingsType>(component, component.getSettings()) : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateSettingsOfComponents(CompositeSettings newSettings) {
|
||||||
|
for (CompositeSettings.ComponentAndSettingsPair<?> componentAndSettings : newSettings.getSettingsPerComponent()) {
|
||||||
|
updateSettings(componentAndSettings);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private <ComponentSettingsType extends Settings> void updateSettings(ComponentAndSettingsPair<ComponentSettingsType> componentAndSettings) {
|
||||||
|
componentAndSettings.getA().updateSettings(componentAndSettings.getB());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Iterable<Component<?>> getComponents() {
|
||||||
|
return components;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Widget getEntryWidget() {
|
||||||
|
return this.asWidget();
|
||||||
|
}
|
||||||
|
}
|
||||||
+1
@@ -22,6 +22,7 @@ public abstract class AbstractPerspectiveWithoutSettings extends AbstractPerspec
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateSettings(AbstractSettings newSettings) {
|
public void updateSettings(AbstractSettings newSettings) {
|
||||||
|
// no-op
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+3
-1
@@ -16,6 +16,8 @@ public interface Perspective<SettingsType extends Settings> extends Component<Se
|
|||||||
CompositeSettings getSettingsOfComponents();
|
CompositeSettings getSettingsOfComponents();
|
||||||
|
|
||||||
void updateSettingsOfComponents(CompositeSettings settingsOfComponents);
|
void updateSettingsOfComponents(CompositeSettings settingsOfComponents);
|
||||||
|
|
||||||
|
void setSettingsOfComponents(CompositeSettings settingsOfComponents);
|
||||||
|
|
||||||
String getPerspectiveName();
|
String getPerspectiveName();
|
||||||
}
|
}
|
||||||
+6
@@ -5,6 +5,7 @@ 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.ProxyLeaderboardComponent;
|
||||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||||
import com.sap.sailing.gwt.ui.client.shared.perspective.AbstractPerspective;
|
import com.sap.sailing.gwt.ui.client.shared.perspective.AbstractPerspective;
|
||||||
|
import com.sap.sse.gwt.client.shared.components.CompositeSettings;
|
||||||
import com.sap.sse.gwt.client.shared.components.SettingsDialogComponent;
|
import com.sap.sse.gwt.client.shared.components.SettingsDialogComponent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -69,4 +70,9 @@ public class ProxyLeaderboardPerspective extends AbstractPerspective<Leaderboard
|
|||||||
public String getDependentCssClassName() {
|
public String getDependentCssClassName() {
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setSettingsOfComponents(CompositeSettings settingsOfComponents) {
|
||||||
|
// no-op
|
||||||
|
}
|
||||||
}
|
}
|
||||||
+6
@@ -12,6 +12,7 @@ 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.perspective.AbstractPerspective;
|
||||||
import com.sap.sailing.gwt.ui.client.shared.racemap.RaceMapSettings;
|
import com.sap.sailing.gwt.ui.client.shared.racemap.RaceMapSettings;
|
||||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings;
|
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings;
|
||||||
|
import com.sap.sse.gwt.client.shared.components.CompositeSettings;
|
||||||
import com.sap.sse.gwt.client.shared.components.SettingsDialogComponent;
|
import com.sap.sse.gwt.client.shared.components.SettingsDialogComponent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -82,4 +83,9 @@ public class ProxyRaceBoardPerspective extends AbstractPerspective<RaceBoardPers
|
|||||||
public RaceBoardPerspectiveSettings getSettings() {
|
public RaceBoardPerspectiveSettings getSettings() {
|
||||||
return perspectiveSettings;
|
return perspectiveSettings;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setSettingsOfComponents(CompositeSettings settingsOfComponents) {
|
||||||
|
// no-op
|
||||||
|
}
|
||||||
}
|
}
|
||||||
+61
-10
@@ -20,7 +20,6 @@ import com.google.gwt.user.client.ui.FlowPanel;
|
|||||||
import com.google.gwt.user.client.ui.Label;
|
import com.google.gwt.user.client.ui.Label;
|
||||||
import com.google.gwt.user.client.ui.MenuBar;
|
import com.google.gwt.user.client.ui.MenuBar;
|
||||||
import com.google.gwt.user.client.ui.RequiresResize;
|
import com.google.gwt.user.client.ui.RequiresResize;
|
||||||
import com.google.gwt.user.client.ui.SimplePanel;
|
|
||||||
import com.google.gwt.user.client.ui.UIObject;
|
import com.google.gwt.user.client.ui.UIObject;
|
||||||
import com.google.gwt.user.client.ui.Widget;
|
import com.google.gwt.user.client.ui.Widget;
|
||||||
import com.sap.sailing.domain.common.LeaderboardNameConstants;
|
import com.sap.sailing.domain.common.LeaderboardNameConstants;
|
||||||
@@ -50,12 +49,15 @@ import com.sap.sailing.gwt.ui.client.media.MediaPlayerManagerComponent;
|
|||||||
import com.sap.sailing.gwt.ui.client.media.PopupPositionProvider;
|
import com.sap.sailing.gwt.ui.client.media.PopupPositionProvider;
|
||||||
import com.sap.sailing.gwt.ui.client.shared.charts.EditMarkPassingsPanel;
|
import com.sap.sailing.gwt.ui.client.shared.charts.EditMarkPassingsPanel;
|
||||||
import com.sap.sailing.gwt.ui.client.shared.charts.MultiCompetitorRaceChart;
|
import com.sap.sailing.gwt.ui.client.shared.charts.MultiCompetitorRaceChart;
|
||||||
|
import com.sap.sailing.gwt.ui.client.shared.charts.MultiCompetitorRaceChartSettings;
|
||||||
import com.sap.sailing.gwt.ui.client.shared.charts.WindChart;
|
import com.sap.sailing.gwt.ui.client.shared.charts.WindChart;
|
||||||
import com.sap.sailing.gwt.ui.client.shared.charts.WindChartSettings;
|
import com.sap.sailing.gwt.ui.client.shared.charts.WindChartSettings;
|
||||||
import com.sap.sailing.gwt.ui.client.shared.filter.FilterWithUI;
|
import com.sap.sailing.gwt.ui.client.shared.filter.FilterWithUI;
|
||||||
import com.sap.sailing.gwt.ui.client.shared.filter.LeaderboardFetcher;
|
import com.sap.sailing.gwt.ui.client.shared.filter.LeaderboardFetcher;
|
||||||
|
import com.sap.sailing.gwt.ui.client.shared.perspective.AbstractPerspectiveComposite;
|
||||||
import com.sap.sailing.gwt.ui.client.shared.racemap.RaceMap;
|
import com.sap.sailing.gwt.ui.client.shared.racemap.RaceMap;
|
||||||
import com.sap.sailing.gwt.ui.client.shared.racemap.RaceMapResources;
|
import com.sap.sailing.gwt.ui.client.shared.racemap.RaceMapResources;
|
||||||
|
import com.sap.sailing.gwt.ui.client.shared.racemap.RaceMapSettings;
|
||||||
import com.sap.sailing.gwt.ui.leaderboard.CompetitorFilterPanel;
|
import com.sap.sailing.gwt.ui.leaderboard.CompetitorFilterPanel;
|
||||||
import com.sap.sailing.gwt.ui.leaderboard.ExplicitRaceColumnSelectionWithPreselectedRace;
|
import com.sap.sailing.gwt.ui.leaderboard.ExplicitRaceColumnSelectionWithPreselectedRace;
|
||||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
|
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
|
||||||
@@ -69,7 +71,9 @@ import com.sap.sse.gwt.client.async.AsyncActionsExecutor;
|
|||||||
import com.sap.sse.gwt.client.player.TimeRangeWithZoomModel;
|
import com.sap.sse.gwt.client.player.TimeRangeWithZoomModel;
|
||||||
import com.sap.sse.gwt.client.player.Timer;
|
import com.sap.sse.gwt.client.player.Timer;
|
||||||
import com.sap.sse.gwt.client.shared.components.Component;
|
import com.sap.sse.gwt.client.shared.components.Component;
|
||||||
|
import com.sap.sse.gwt.client.shared.components.CompositeSettings;
|
||||||
import com.sap.sse.gwt.client.shared.components.SettingsDialog;
|
import com.sap.sse.gwt.client.shared.components.SettingsDialog;
|
||||||
|
import com.sap.sse.gwt.client.shared.components.SettingsDialogComponent;
|
||||||
import com.sap.sse.gwt.client.useragent.UserAgentDetails;
|
import com.sap.sse.gwt.client.useragent.UserAgentDetails;
|
||||||
import com.sap.sse.security.ui.client.UserService;
|
import com.sap.sse.security.ui.client.UserService;
|
||||||
|
|
||||||
@@ -82,14 +86,14 @@ import com.sap.sse.security.ui.client.UserService;
|
|||||||
* @author Frank Mittag, Axel Uhl (d043530)
|
* @author Frank Mittag, Axel Uhl (d043530)
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class RaceBoardPanel extends SimplePanel implements RaceSelectionChangeListener,
|
public class RaceBoardPanel extends AbstractPerspectiveComposite<RaceBoardPerspectiveSettings> implements RaceSelectionChangeListener,
|
||||||
LeaderboardUpdateListener, PopupPositionProvider, RequiresResize {
|
LeaderboardUpdateListener, PopupPositionProvider, RequiresResize {
|
||||||
private final SailingServiceAsync sailingService;
|
private final SailingServiceAsync sailingService;
|
||||||
private final MediaServiceAsync mediaService;
|
private final MediaServiceAsync mediaService;
|
||||||
private final UUID eventId;
|
private final UUID eventId;
|
||||||
private final StringMessages stringMessages;
|
private final StringMessages stringMessages;
|
||||||
private final ErrorReporter errorReporter;
|
private final ErrorReporter errorReporter;
|
||||||
private final RaceBoardPerspectiveSettings raceboardViewConfiguration;
|
private RaceBoardPerspectiveSettings perspectiveSettings;
|
||||||
private String raceBoardName;
|
private String raceBoardName;
|
||||||
|
|
||||||
private RaceTimePanel timePanel;
|
private RaceTimePanel timePanel;
|
||||||
@@ -135,13 +139,13 @@ public class RaceBoardPanel extends SimplePanel implements RaceSelectionChangeLi
|
|||||||
public RaceBoardPanel(SailingServiceAsync sailingService, MediaServiceAsync mediaService,
|
public RaceBoardPanel(SailingServiceAsync sailingService, MediaServiceAsync mediaService,
|
||||||
UserService userService, AsyncActionsExecutor asyncActionsExecutor, Map<CompetitorDTO, BoatDTO> competitorsAndTheirBoats,
|
UserService userService, AsyncActionsExecutor asyncActionsExecutor, Map<CompetitorDTO, BoatDTO> competitorsAndTheirBoats,
|
||||||
Timer timer, RaceSelectionProvider theRaceSelectionProvider, String leaderboardName,
|
Timer timer, RaceSelectionProvider theRaceSelectionProvider, String leaderboardName,
|
||||||
String leaderboardGroupName, UUID eventId, RaceBoardPerspectiveSettings raceboardViewConfiguration,
|
String leaderboardGroupName, UUID eventId, RaceBoardPerspectiveSettings raceboardPerspectiveSettings,
|
||||||
ErrorReporter errorReporter, final StringMessages stringMessages,
|
ErrorReporter errorReporter, final StringMessages stringMessages,
|
||||||
UserAgentDetails userAgent, RaceTimesInfoProvider raceTimesInfoProvider, boolean showMapControls, boolean isScreenLargeEnoughToOfferChartSupport) {
|
UserAgentDetails userAgent, RaceTimesInfoProvider raceTimesInfoProvider, boolean showMapControls, boolean isScreenLargeEnoughToOfferChartSupport) {
|
||||||
this.sailingService = sailingService;
|
this.sailingService = sailingService;
|
||||||
this.mediaService = mediaService;
|
this.mediaService = mediaService;
|
||||||
this.stringMessages = stringMessages;
|
this.stringMessages = stringMessages;
|
||||||
this.raceboardViewConfiguration = raceboardViewConfiguration;
|
this.perspectiveSettings = raceboardPerspectiveSettings;
|
||||||
this.raceSelectionProvider = theRaceSelectionProvider;
|
this.raceSelectionProvider = theRaceSelectionProvider;
|
||||||
this.raceTimesInfoProvider = raceTimesInfoProvider;
|
this.raceTimesInfoProvider = raceTimesInfoProvider;
|
||||||
this.errorReporter = errorReporter;
|
this.errorReporter = errorReporter;
|
||||||
@@ -157,7 +161,7 @@ public class RaceBoardPanel extends SimplePanel implements RaceSelectionChangeLi
|
|||||||
this.asyncActionsExecutor = asyncActionsExecutor;
|
this.asyncActionsExecutor = asyncActionsExecutor;
|
||||||
FlowPanel mainPanel = new ResizableFlowPanel();
|
FlowPanel mainPanel = new ResizableFlowPanel();
|
||||||
mainPanel.setSize("100%", "100%");
|
mainPanel.setSize("100%", "100%");
|
||||||
setWidget(mainPanel);
|
initWidget(mainPanel);
|
||||||
raceInformationHeader = new FlowPanel();
|
raceInformationHeader = new FlowPanel();
|
||||||
raceInformationHeader.setStyleName("RegattaRaceInformation-Header");
|
raceInformationHeader.setStyleName("RegattaRaceInformation-Header");
|
||||||
regattaAndRaceTimeInformationHeader = new FlowPanel();
|
regattaAndRaceTimeInformationHeader = new FlowPanel();
|
||||||
@@ -220,17 +224,17 @@ public class RaceBoardPanel extends SimplePanel implements RaceSelectionChangeLi
|
|||||||
leaderboardPanel.addLeaderboardUpdateListener(this);
|
leaderboardPanel.addLeaderboardUpdateListener(this);
|
||||||
// in case the URL configuration contains the name of a competitors filter set we try to activate it
|
// in case the URL configuration contains the name of a competitors filter set we try to activate it
|
||||||
// FIXME the competitorsFilterSets has now moved to CompetitorSearchTextBox (which should probably be renamed); pass on the parameters to the LeaderboardPanel and see what it does with it
|
// FIXME the competitorsFilterSets has now moved to CompetitorSearchTextBox (which should probably be renamed); pass on the parameters to the LeaderboardPanel and see what it does with it
|
||||||
if (raceboardViewConfiguration.getActiveCompetitorsFilterSetName() != null) {
|
if (raceboardPerspectiveSettings.getActiveCompetitorsFilterSetName() != null) {
|
||||||
for (FilterSet<CompetitorDTO, FilterWithUI<CompetitorDTO>> filterSet : competitorSearchTextBox.getCompetitorsFilterSets()
|
for (FilterSet<CompetitorDTO, FilterWithUI<CompetitorDTO>> filterSet : competitorSearchTextBox.getCompetitorsFilterSets()
|
||||||
.getFilterSets()) {
|
.getFilterSets()) {
|
||||||
if (filterSet.getName().equals(raceboardViewConfiguration.getActiveCompetitorsFilterSetName())) {
|
if (filterSet.getName().equals(raceboardPerspectiveSettings.getActiveCompetitorsFilterSetName())) {
|
||||||
competitorSearchTextBox.getCompetitorsFilterSets().setActiveFilterSet(filterSet);
|
competitorSearchTextBox.getCompetitorsFilterSets().setActiveFilterSet(filterSet);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
timePanel = new RaceTimePanel(timer, timeRangeWithZoomModel, stringMessages, raceTimesInfoProvider,
|
timePanel = new RaceTimePanel(timer, timeRangeWithZoomModel, stringMessages, raceTimesInfoProvider,
|
||||||
raceboardViewConfiguration.isCanReplayDuringLiveRaces(), isScreenLargeEnoughToOfferChartSupport);
|
raceboardPerspectiveSettings.isCanReplayDuringLiveRaces(), isScreenLargeEnoughToOfferChartSupport);
|
||||||
timeRangeWithZoomModel.addTimeZoomChangeListener(timePanel);
|
timeRangeWithZoomModel.addTimeZoomChangeListener(timePanel);
|
||||||
raceTimesInfoProvider.addRaceTimesInfoProviderListener(timePanel);
|
raceTimesInfoProvider.addRaceTimesInfoProviderListener(timePanel);
|
||||||
raceSelectionProvider.addRaceSelectionChangeListener(timePanel);
|
raceSelectionProvider.addRaceSelectionChangeListener(timePanel);
|
||||||
@@ -391,7 +395,7 @@ public class RaceBoardPanel extends SimplePanel implements RaceSelectionChangeLi
|
|||||||
}
|
}
|
||||||
|
|
||||||
public RaceBoardPerspectiveSettings getConfiguration() {
|
public RaceBoardPerspectiveSettings getConfiguration() {
|
||||||
return raceboardViewConfiguration;
|
return perspectiveSettings;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -483,5 +487,52 @@ public class RaceBoardPanel extends SimplePanel implements RaceSelectionChangeLi
|
|||||||
((RequiresResize) child).onResize();
|
((RequiresResize) child).onResize();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getLocalizedShortName() {
|
||||||
|
return getPerspectiveName();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasSettings() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SettingsDialogComponent<RaceBoardPerspectiveSettings> getSettingsDialogComponent() {
|
||||||
|
return new RaceBoardPerspectiveSettingsDialogComponent(perspectiveSettings, StringMessages.INSTANCE);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public RaceBoardPerspectiveSettings getSettings() {
|
||||||
|
return perspectiveSettings;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateSettings(RaceBoardPerspectiveSettings newSettings) {
|
||||||
|
this.perspectiveSettings = newSettings;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getDependentCssClassName() {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getPerspectiveName() {
|
||||||
|
return "Race Viewer";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setSettingsOfComponents(CompositeSettings settingsOfComponents) {
|
||||||
|
RaceMapSettings raceMapSettings = settingsOfComponents.getSettingsForType(RaceMapSettings.class);
|
||||||
|
raceMap.updateSettings(raceMapSettings);
|
||||||
|
LeaderboardSettings leaderboardSettings = settingsOfComponents.getSettingsForType(LeaderboardSettings.class);
|
||||||
|
leaderboardPanel.updateSettings(leaderboardSettings);
|
||||||
|
WindChartSettings windChartSettings = settingsOfComponents.getSettingsForType(WindChartSettings.class);
|
||||||
|
windChart.updateSettings(windChartSettings);
|
||||||
|
MultiCompetitorRaceChartSettings multiCompetitorRaceChartSettings = settingsOfComponents.getSettingsForType(MultiCompetitorRaceChartSettings.class);
|
||||||
|
competitorChart.updateSettings(multiCompetitorRaceChartSettings);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
+11
@@ -23,4 +23,15 @@ public class CompositeSettings extends AbstractSettings {
|
|||||||
return settingsPerComponent;
|
return settingsPerComponent;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
public <SettingsType extends Settings> SettingsType getSettingsForType(Class<SettingsType> settingsType) {
|
||||||
|
SettingsType result = null;
|
||||||
|
for(ComponentAndSettingsPair<?> componentAndSettings: settingsPerComponent) {
|
||||||
|
if(componentAndSettings.getB().getClass().getName().equals(settingsType.getName())) {
|
||||||
|
result = (SettingsType) componentAndSettings.getB();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user