Avoid potential NPE in RaceBoard start analysis mode on mobile devices,

where the competitor chart is used
This commit is contained in:
Benjamin Barth committed 2016-07-15 17:55:57 +02:00
1 parent c073f312c4
commit 11d1f137f5
1 file changed
+16 -8
@@ -116,7 +116,9 @@ public class StartAnalysisMode extends RaceBoardModeWithPerRaceCompetitors {
setLeaderboard(result);
getLeaderboardPanel().updateLeaderboard(result);
updateCompetitorSelection();
getRaceBoardPanel().setCompetitorChartVisible(true);
if (isCompetitorChartEnabled()) {
getRaceBoardPanel().setCompetitorChartVisible(true);
}
}
});
Scheduler.get().scheduleFixedDelay(new RepeatingCommand() {
@@ -126,13 +128,15 @@ public class StartAnalysisMode extends RaceBoardModeWithPerRaceCompetitors {
// settings is largely more successful because
boolean result = getRaceBoardPanel().getMap().getSimulationOverlay() == null;
if (!result) {
final MultiCompetitorRaceChartSettings newCompetitorChartSettings = new MultiCompetitorRaceChartSettings(
new ChartSettings(/* stepSizeInMillis */ 1000), DetailType.RACE_CURRENT_SPEED_OVER_GROUND_IN_KNOTS,
/* no second series */ null);
competitorChart.updateSettings(newCompetitorChartSettings);
getRaceTimePanel().getTimeRangeProvider().setTimeZoom(
new MillisecondsTimePoint(raceTimesInfo.startOfRace).minus(DURATION_BEFORE_START_TO_INCLUDE_IN_CHART_TIME_RANGE).asDate(),
new MillisecondsTimePoint(raceTimesInfo.startOfRace).plus(DURATION_AFTER_START_TO_INCLUDE_IN_CHART_TIME_RANGE).asDate());
if (isCompetitorChartEnabled()) {
final MultiCompetitorRaceChartSettings newCompetitorChartSettings = new MultiCompetitorRaceChartSettings(
new ChartSettings(/* stepSizeInMillis */ 1000), DetailType.RACE_CURRENT_SPEED_OVER_GROUND_IN_KNOTS,
/* no second series */ null);
competitorChart.updateSettings(newCompetitorChartSettings);
getRaceTimePanel().getTimeRangeProvider().setTimeZoom(
new MillisecondsTimePoint(raceTimesInfo.startOfRace).minus(DURATION_BEFORE_START_TO_INCLUDE_IN_CHART_TIME_RANGE).asDate(),
new MillisecondsTimePoint(raceTimesInfo.startOfRace).plus(DURATION_AFTER_START_TO_INCLUDE_IN_CHART_TIME_RANGE).asDate());
}
final RaceMapSettings existingMapSettings = getRaceBoardPanel().getMap().getSettings();
final RaceMapSettings newMapSettings = new RaceMapSettings(
new RaceMapZoomSettings(Collections.singleton(ZoomTypes.BOATS), /* zoomToSelected */ false),
@@ -212,5 +216,9 @@ public class StartAnalysisMode extends RaceBoardModeWithPerRaceCompetitors {
showCompetitorChartIfAllDataReceived();
}
}
private boolean isCompetitorChartEnabled() {
return competitorChart != null;
}
}