diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/AbstractChartPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/AbstractChartPanel.java index f74f9a91bdf..3ba20f55fd6 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/AbstractChartPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/AbstractChartPanel.java @@ -289,10 +289,10 @@ implements CompetitorSelectionChangeListener, RaceSelectionChangeListener, TimeL long starttime = System.currentTimeMillis(); List> markPassingTimes = getCompetitorsAndTimePointsDTO().getMarkPassings(competitor); List markPassingPoints = new ArrayList(); - Double[] markPassingValues = chartData.getMarkPassings(competitor); + List markPassingValues = chartData.getMarkPassings(competitor); for (int j = 0; j < markPassingTimes.size(); j++) { - if (markPassingValues[j] != null && markPassingTimes.get(j).getB() != null) { - Point markPassingPoint = new Point(markPassingTimes.get(j).getB(), markPassingValues[j]); + if (markPassingValues.get(j) != null && markPassingTimes.get(j).getB() != null) { + Point markPassingPoint = new Point(markPassingTimes.get(j).getB(), markPassingValues.get(j)); markPassingPoint.setName(markPassingTimes.get(j).getA()); markPassingPoints.add(markPassingPoint); } @@ -301,12 +301,12 @@ implements CompetitorSelectionChangeListener, RaceSelectionChangeListener, TimeL GWT.log("Update mark passings time for " + competitor.name + ": " + (System.currentTimeMillis() - starttime)); starttime = System.currentTimeMillis(); - Double[] data = chartData.getRaceData(competitor); + List data = chartData.getRaceData(competitor); List timepoints = getCompetitorsAndTimePointsDTO().getTimePoints(); List competitorPoints = new ArrayList(); for (int j = 0; j < timepoints.size(); j++) { - if (data[j] != null) { - Point competitorPoint = new Point(timepoints.get(j), data[j]); + if (data.get(j) != null) { + Point competitorPoint = new Point(timepoints.get(j), data.get(j)); competitorPoints.add(competitorPoint); } } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java index fac48216f5f..a011ff9c9fa 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java @@ -1351,17 +1351,17 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS for (CompetitorDTO competitorDTO : competitorAndTimePointsDTO.getCompetitors()) { Competitor competitor = getCompetitorById(trackedRace.getRace().getCompetitors(), competitorDTO.id); List timePoints = competitorAndTimePointsDTO.getTimePoints(); - Double[] entries = new Double[timePoints.size()]; + List entries = new ArrayList(); for (int i = 0; i < timePoints.size(); i++) { MillisecondsTimePoint time = new MillisecondsTimePoint(timePoints.get(i)); - entries[i] = getCompetitorRaceDataEntry(dataType, trackedRace, competitor, time); + entries.add(getCompetitorRaceDataEntry(dataType, trackedRace, competitor, time)); } competitorData.setRaceData(competitorDTO, entries); - entries = new Double[competitorAndTimePointsDTO.getMarkPassings(competitorDTO).size()]; + entries = new ArrayList(); for (int i = 0; i < competitorAndTimePointsDTO.getMarkPassings(competitorDTO).size(); i++) { MillisecondsTimePoint time = new MillisecondsTimePoint( competitorAndTimePointsDTO.getMarkPassings(competitorDTO).get(i).getB()); - entries[i] = getCompetitorRaceDataEntry(dataType, trackedRace, competitor, time); + entries.add(getCompetitorRaceDataEntry(dataType, trackedRace, competitor, time)); } competitorData.setMarkPassingData(competitorDTO, entries); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/CompetitorInRaceDTO.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/CompetitorInRaceDTO.java index 0895cd419c9..fb2d47800a4 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/CompetitorInRaceDTO.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/CompetitorInRaceDTO.java @@ -1,30 +1,48 @@ package com.sap.sailing.gwt.ui.shared; import java.util.HashMap; +import java.util.List; + import com.google.gwt.user.client.rpc.IsSerializable; public class CompetitorInRaceDTO implements IsSerializable { - private HashMap raceData; - private HashMap markPassings; + private HashMap> raceData; + private HashMap> markPassings; public CompetitorInRaceDTO(){ - raceData = new HashMap(); - markPassings = new HashMap(); + raceData = new HashMap>(); + markPassings = new HashMap>(); } - public void setRaceData(CompetitorDTO competitor, Double[] data){ + public void setRaceData(CompetitorDTO competitor, List data){ raceData.put(competitor, data); } - public void setMarkPassingData(CompetitorDTO competitor, Double[] data){ + public void setMarkPassingData(CompetitorDTO competitor, List data){ markPassings.put(competitor, data); } - public Double[] getRaceData(CompetitorDTO competitor){ + public List getRaceData(CompetitorDTO competitor){ return raceData.get(competitor); } - public Double[] getMarkPassings(CompetitorDTO competitor){ + public List getMarkPassings(CompetitorDTO competitor){ return markPassings.get(competitor); } + + /** + * Adds dataToAdd to the race data.
+ * Doesn't check, if the new data is already contained. + */ + public void addRaceData(CompetitorDTO competitor, List dataToAdd) { + getRaceData(competitor).addAll(dataToAdd); + } + + /** + * Adds markPassingsToAdd to the mark passings. + * Doesn't check, if the new mark passings are already contained. + */ + public void addMarkPassings(CompetitorDTO competitor, List markPassingsToAdd) { + getMarkPassings(competitor).addAll(markPassingsToAdd); + } }