Ensuring the correct default value for detailType in

MultiCompetitorLeaderboardChart
This commit is contained in:
Steffen Schaefer committed 2017-03-06 16:45:54 +01:00
1 parent 0d87afbdef
commit 9acb1acf53
5 files changed
+29 -7

No files matched your search

@@ -25,7 +25,7 @@ public class MultiCompetitorLeaderboardChartLifecycle implements
@Override
public MultiCompetitorLeaderboardChartSettings createDefaultSettings() {
return new MultiCompetitorLeaderboardChartSettings(null);
return MultiCompetitorLeaderboardChartSettings.createWithDefaultDetailType(isOverall);
}
@Override
@@ -10,10 +10,13 @@ public class MultiCompetitorLeaderboardChartSettings extends AbstractGenericSeri
private EnumSetting<DetailType> detailType;
private MultiCompetitorLeaderboardChartSettings() {
}
public MultiCompetitorLeaderboardChartSettings(DetailType detailType) {
this.detailType.setValue(detailType);
}
@Override
protected void addChildSettings() {
detailType = new EnumSetting<>("detailType", this, new StringToEnumConverter<DetailType>() {
@@ -27,4 +30,20 @@ public class MultiCompetitorLeaderboardChartSettings extends AbstractGenericSeri
public DetailType getDetailType() {
return detailType.getValue();
}
public static MultiCompetitorLeaderboardChartSettings createWithDefaultDetailType(boolean isOverall, DetailType detailType) {
MultiCompetitorLeaderboardChartSettings result = createWithDefaultDetailType(isOverall);
result.detailType.setValue(detailType);
return result;
}
public static MultiCompetitorLeaderboardChartSettings createWithDefaultDetailType(boolean isOverall) {
MultiCompetitorLeaderboardChartSettings result = new MultiCompetitorLeaderboardChartSettings();
result.detailType.setDefaultValue(getDefaultDetailType(isOverall));
return result;
}
public static DetailType getDefaultDetailType(boolean isOverall) {
return isOverall ? DetailType.OVERALL_RANK : DetailType.REGATTA_RANK;
}
}
@@ -19,12 +19,14 @@ public class MultiCompetitorLeaderboardChartSettingsDialogComponent implements S
private ListBox chartTypeSelectionListBox;
private final DetailType initialDetailType;
private final List<DetailType> availableDetailsTypes;
private final boolean isOverall;
public MultiCompetitorLeaderboardChartSettingsDialogComponent(MultiCompetitorLeaderboardChartSettings settings, boolean isOverall) {
this.isOverall = isOverall;
this.initialDetailType = settings.getDetailType();
availableDetailsTypes = new ArrayList<DetailType>();
availableDetailsTypes.add(isOverall ? DetailType.OVERALL_RANK : DetailType.REGATTA_RANK);
availableDetailsTypes.add(MultiCompetitorLeaderboardChartSettings.getDefaultDetailType(isOverall));
availableDetailsTypes.add(DetailType.REGATTA_NET_POINTS_SUM);
}
@@ -72,7 +74,7 @@ public class MultiCompetitorLeaderboardChartSettingsDialogComponent implements S
break;
}
}
return new MultiCompetitorLeaderboardChartSettings(newDetailType);
return MultiCompetitorLeaderboardChartSettings.createWithDefaultDetailType(isOverall, newDetailType);
}
@Override
@@ -26,7 +26,7 @@ public class MultiCompetitorLeaderboardChart extends AbstractCompetitorLeaderboa
super(parent, context,sailingService, asyncActionsExecutor, leaderboardName, detailType, competitorSelectionProvider,
timer, stringMessages, errorReporter);
this.isOverall = isOverall;
settings = new MultiCompetitorLeaderboardChartSettings(detailType);
settings = MultiCompetitorLeaderboardChartSettings.createWithDefaultDetailType(isOverall, detailType);
}
@Override
@@ -41,7 +41,8 @@ public class MultiCompetitorLeaderboardChart extends AbstractCompetitorLeaderboa
@Override
public SettingsDialogComponent<MultiCompetitorLeaderboardChartSettings> getSettingsDialogComponent() {
MultiCompetitorLeaderboardChartSettings chartSettings = new MultiCompetitorLeaderboardChartSettings(settings.getDetailType());
MultiCompetitorLeaderboardChartSettings chartSettings = MultiCompetitorLeaderboardChartSettings
.createWithDefaultDetailType(isOverall, settings.getDetailType());
return new MultiCompetitorLeaderboardChartSettingsDialogComponent(chartSettings, isOverall);
}
@@ -186,7 +186,7 @@ public class LeaderboardEntryPoint extends AbstractSailingEntryPoint {
if (chartDetailType == DetailType.REGATTA_NET_POINTS_SUM) {
return chartDetailType;
}
return leaderboardType.isMetaLeaderboard() ? DetailType.OVERALL_RANK : DetailType.REGATTA_RANK;
return MultiCompetitorLeaderboardChartSettings.getDefaultDetailType(leaderboardType.isMetaLeaderboard());
}
private void createUi(Widget leaderboardViewer, PerspectiveCompositeSettings<LeaderboardPerspectiveOwnSettings> settings, Timer timer, LeaderboardContextDefinition leaderboardContextSettings) {