mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-13 22:15:26 +00:00
bug5264: adding unit (knots) to speed Double value
This commit is contained in:
1 parent
50f68d4b68
commit
373c48c2c4
6 files changed
+45
-50
No files matched your search
+2
-2
@@ -180,9 +180,9 @@ public class CompetitorInfoOverlays implements QuickFlagDataListener {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void speedChanged(CompetitorDTO competitorDTO, Double quickSpeed) {
|
||||
public void speedInKnotsChanged(CompetitorDTO competitorDTO, Double quickSpeedInKnots) {
|
||||
String competitorId = competitorDTO.getIdAsString();
|
||||
lastPositions.put(competitorId, quickSpeed);
|
||||
lastPositions.put(competitorId, quickSpeedInKnots);
|
||||
final CompetitorInfoOverlay competitorInfoOverlay = competitorInfoOverlays.get(competitorId);
|
||||
if (competitorInfoOverlay != null) {
|
||||
competitorInfoOverlay.setInfoText(createInfoText(competitorDTO));
|
||||
|
||||
+10
-10
@@ -11,7 +11,7 @@ import com.sap.sse.common.Util;
|
||||
|
||||
public class DefaultQuickFlagDataProvider extends AbstractQuickFlagDataProvider {
|
||||
private Map<String, QuickRankDTO> currentQuickRanksFromServer = Collections.emptyMap();
|
||||
private Map<CompetitorDTO, Double> currentQuickSpeedsFromServer = Collections.emptyMap();
|
||||
private Map<CompetitorDTO, Double> currentQuickSpeedsInKnotsFromServer = Collections.emptyMap();
|
||||
|
||||
@Override
|
||||
public void quickRanksReceivedFromServer(Map<String, QuickRankDTO> receivedQuickRanksFromServer) {
|
||||
@@ -31,21 +31,21 @@ public class DefaultQuickFlagDataProvider extends AbstractQuickFlagDataProvider
|
||||
}
|
||||
|
||||
@Override
|
||||
public void quickSpeedsReceivedFromServer(Map<CompetitorDTO, Double> quickSpeedsFromServer) {
|
||||
final Map<CompetitorDTO, Double> oldQuickSpeedsFromServer = this.currentQuickSpeedsFromServer;
|
||||
this.currentQuickSpeedsFromServer = Util.nullToEmptyMap(quickSpeedsFromServer);
|
||||
for (final Entry<CompetitorDTO, Double> e : currentQuickSpeedsFromServer.entrySet()) {
|
||||
final Double oldQuickSpeed = oldQuickSpeedsFromServer.get(e.getKey());
|
||||
if (Util.equalsWithNull(oldQuickSpeed, e.getValue())) {
|
||||
notifyListenersSpeedChanged(e.getKey(), e.getValue());
|
||||
public void quickSpeedsInKnotsReceivedFromServer(Map<CompetitorDTO, Double> quickSpeedsFromServerInKnots) {
|
||||
final Map<CompetitorDTO, Double> oldQuickSpeedsFromServerInKnots = this.currentQuickSpeedsInKnotsFromServer;
|
||||
this.currentQuickSpeedsInKnotsFromServer = Util.nullToEmptyMap(quickSpeedsFromServerInKnots);
|
||||
for (final Entry<CompetitorDTO, Double> e : currentQuickSpeedsInKnotsFromServer.entrySet()) {
|
||||
final Double oldQuickSpeedInKnots = oldQuickSpeedsFromServerInKnots.get(e.getKey());
|
||||
if (Util.equalsWithNull(oldQuickSpeedInKnots, e.getValue())) {
|
||||
notifyListenersSpeedInKnotsChanged(e.getKey(), e.getValue());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<CompetitorDTO, Double> getQuickSpeeds() {
|
||||
return currentQuickSpeedsFromServer;
|
||||
public Map<CompetitorDTO, Double> getQuickSpeedsInKnots() {
|
||||
return currentQuickSpeedsInKnotsFromServer;
|
||||
}
|
||||
|
||||
}
|
||||
+5
-5
@@ -30,7 +30,7 @@ public interface QuickFlagDataProvider {
|
||||
public interface QuickFlagDataListener {
|
||||
void rankChanged(String competitorIdAsString, QuickRankDTO oldQuickRank, QuickRankDTO quickRanks);
|
||||
|
||||
void speedChanged(CompetitorDTO competitor, Double quickSpeed);
|
||||
void speedInKnotsChanged(CompetitorDTO competitor, Double quickSpeedInKnots);
|
||||
}
|
||||
|
||||
void addQuickFlagDataListener(QuickFlagDataListener listener);
|
||||
@@ -63,10 +63,10 @@ public interface QuickFlagDataProvider {
|
||||
* {@link LeaderboardDTO leaderboard} should ignore this call if it already has quick ranks information available
|
||||
* from a leaderboard.
|
||||
*
|
||||
* @param quickSpeedsFromServer
|
||||
* keys are the competitors, values are current speeds of competitors
|
||||
* @param quickSpeedsFromServerInKnots
|
||||
* keys are the competitors, values are current speeds of competitors provided in knots (nautical miles per hour)
|
||||
*/
|
||||
void quickSpeedsReceivedFromServer(Map<CompetitorDTO, Double> quickSpeedsFromServer);
|
||||
void quickSpeedsInKnotsReceivedFromServer(Map<CompetitorDTO, Double> quickSpeedsFromServerInKnots);
|
||||
|
||||
/**
|
||||
* @return keys are the {@link CompetitorWithBoatDTO#getIdAsString() competitor IDs are string}, values are the
|
||||
@@ -77,5 +77,5 @@ public interface QuickFlagDataProvider {
|
||||
/**
|
||||
* @return keys are the {@link CompetitorWithBoatDTO}, values are the quick speeds pertaining to the competitors
|
||||
*/
|
||||
Map<CompetitorDTO, Double> getQuickSpeeds();
|
||||
Map<CompetitorDTO, Double> getQuickSpeedsInKnots();
|
||||
}
|
||||
+13
-18
@@ -546,7 +546,7 @@ public class RaceMap extends AbstractCompositeComponent<RaceMapSettings> impleme
|
||||
}
|
||||
|
||||
@Override
|
||||
public void speedChanged(CompetitorDTO competitor, Double quickSpeed) {
|
||||
public void speedInKnotsChanged(CompetitorDTO competitor, Double quickSpeedInKnots) {
|
||||
// empty body
|
||||
}
|
||||
}
|
||||
@@ -579,11 +579,11 @@ public class RaceMap extends AbstractCompositeComponent<RaceMapSettings> impleme
|
||||
SailingServiceAsync sailingService, AsyncActionsExecutor asyncActionsExecutor,
|
||||
ErrorReporter errorReporter, Timer timer, RaceCompetitorSelectionProvider competitorSelection, RaceCompetitorSet raceCompetitorSet,
|
||||
StringMessages stringMessages, RegattaAndRaceIdentifier raceIdentifier, RaceMapResources raceMapResources, boolean showHeaderPanel,
|
||||
QuickFlagDataProvider quickRanksDTOProvider, Consumer<WindSource> showWindChartForProvider, String leaderboardName, String leaderboardGroupName) {
|
||||
QuickFlagDataProvider quickFlagDataProvider, Consumer<WindSource> showWindChartForProvider, String leaderboardName, String leaderboardGroupName) {
|
||||
super(parent, context);
|
||||
this.maneuverMarkersAndLossIndicators = new ManeuverMarkersAndLossIndicators(this, sailingService, errorReporter, stringMessages);
|
||||
this.showHeaderPanel = showHeaderPanel;
|
||||
this.quickFlagDataProvider = quickRanksDTOProvider;
|
||||
this.quickFlagDataProvider = quickFlagDataProvider;
|
||||
this.raceMapLifecycle = raceMapLifecycle;
|
||||
this.stringMessages = stringMessages;
|
||||
this.sailingService = sailingService;
|
||||
@@ -603,8 +603,8 @@ public class RaceMap extends AbstractCompositeComponent<RaceMapSettings> impleme
|
||||
infoOverlaysForLinesForCourseGeometry = new HashMap<>();
|
||||
boatOverlays = new HashMap<>();
|
||||
competitorInfoOverlays = new CompetitorInfoOverlays(this, stringMessages);
|
||||
quickRanksDTOProvider.addQuickFlagDataListener(competitorInfoOverlays);
|
||||
quickRanksDTOProvider.addQuickFlagDataListener(new AdvantageLineUpdater());
|
||||
quickFlagDataProvider.addQuickFlagDataListener(competitorInfoOverlays);
|
||||
quickFlagDataProvider.addQuickFlagDataListener(new AdvantageLineUpdater());
|
||||
windSensorOverlays = new HashMap<WindSource, WindSensorOverlay>();
|
||||
courseMarkOverlays = new HashMap<String, CourseMarkOverlay>();
|
||||
courseMarkClickHandlers = new HashMap<String, HandlerRegistration>();
|
||||
@@ -1297,8 +1297,8 @@ public class RaceMap extends AbstractCompositeComponent<RaceMapSettings> impleme
|
||||
simulationOverlay.updateLeg(Math.max(lastLegNumber, 1), /* clearCanvas */ false, raceMapDataDTO.simulationResultVersion);
|
||||
}
|
||||
Map<CompetitorDTO, List<GPSFixDTOWithSpeedWindTackAndLegType>> boatData = raceMapDataDTO.boatPositions;
|
||||
Map<CompetitorDTO, Double> quickSpeedsFromServer = getCompetitorsSpeedMap(boatData);
|
||||
quickFlagDataProvider.quickSpeedsReceivedFromServer(quickSpeedsFromServer);
|
||||
Map<CompetitorDTO, Double> quickSpeedsFromServerInKnots = getCompetitorsSpeedInKnotsMap(boatData);
|
||||
quickFlagDataProvider.quickSpeedsInKnotsReceivedFromServer(quickSpeedsFromServerInKnots);
|
||||
// Do boat specific actions
|
||||
updateBoatPositions(newTime, transitionTimeInMillis, hasTailOverlapForCompetitor,
|
||||
competitorsToShow, boatData, /* updateTailsOnly */ false, detailTypeChanged);
|
||||
@@ -1351,20 +1351,20 @@ public class RaceMap extends AbstractCompositeComponent<RaceMapSettings> impleme
|
||||
}
|
||||
}
|
||||
|
||||
private Map<CompetitorDTO, Double> getCompetitorsSpeedMap(
|
||||
private Map<CompetitorDTO, Double> getCompetitorsSpeedInKnotsMap(
|
||||
Map<CompetitorDTO, List<GPSFixDTOWithSpeedWindTackAndLegType>> boatData) {
|
||||
Map<CompetitorDTO, Double> quickSpeedsFromServer = new HashMap<>();
|
||||
Map<CompetitorDTO, Double> quickSpeedsFromServerInKnots = new HashMap<>();
|
||||
for (CompetitorDTO competitor : boatData.keySet()) {
|
||||
List<GPSFixDTOWithSpeedWindTackAndLegType> fixesList = boatData.get(competitor);
|
||||
if (!fixesList.isEmpty()) {
|
||||
SpeedWithBearingDTO speedWithBearing = fixesList.get(fixesList.size() - 1).speedWithBearing;
|
||||
if (speedWithBearing != null) {
|
||||
Double speed = speedWithBearing.speedInKnots;
|
||||
quickSpeedsFromServer.put(competitor, speed);
|
||||
Double speedInKnots = speedWithBearing.speedInKnots;
|
||||
quickSpeedsFromServerInKnots.put(competitor, speedInKnots);
|
||||
}
|
||||
}
|
||||
}
|
||||
return quickSpeedsFromServer;
|
||||
return quickSpeedsFromServerInKnots;
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -3224,12 +3224,7 @@ public class RaceMap extends AbstractCompositeComponent<RaceMapSettings> impleme
|
||||
|
||||
@Override
|
||||
public Double getSpeed(CompetitorDTO competitor) {
|
||||
Double result = null;
|
||||
Double quickSpeed = quickFlagDataProvider.getQuickSpeeds().get(competitor);
|
||||
if (quickSpeed != null) {
|
||||
result = quickSpeed;
|
||||
}
|
||||
return result;
|
||||
return quickFlagDataProvider.getQuickSpeedsInKnots().get(competitor);
|
||||
}
|
||||
|
||||
private Image createSAPLogo() {
|
||||
|
||||
+2
-2
@@ -38,9 +38,9 @@ public abstract class AbstractQuickFlagDataProvider implements QuickFlagDataProv
|
||||
}
|
||||
}
|
||||
|
||||
protected void notifyListenersSpeedChanged(CompetitorDTO competitor, Double newSpeed) {
|
||||
protected void notifyListenersSpeedInKnotsChanged(CompetitorDTO competitor, Double newSpeedInKnots) {
|
||||
for (QuickFlagDataListener listener : listeners) {
|
||||
listener.speedChanged(competitor, newSpeed);
|
||||
listener.speedInKnotsChanged(competitor, newSpeedInKnots);
|
||||
}
|
||||
}
|
||||
}
|
||||
+13
-13
@@ -36,7 +36,7 @@ import com.sap.sse.common.Util;
|
||||
*/
|
||||
public class QuickFlagDataFromLeaderboardDTOProvider extends AbstractQuickFlagDataProvider {
|
||||
private final Map<String, QuickRankDTO> quickRanks = new LinkedHashMap<>();
|
||||
private final Map<CompetitorDTO, Double> quickSpeeds = new LinkedHashMap<>();
|
||||
private final Map<CompetitorDTO, Double> quickSpeedsInKnots = new LinkedHashMap<>();
|
||||
private final RaceCompetitorSet raceCompetitorSet;
|
||||
private final RaceIdentifier selectedRace;
|
||||
private boolean lastLeaderboardProvidedLegNumbers;
|
||||
@@ -153,8 +153,8 @@ public class QuickFlagDataFromLeaderboardDTOProvider extends AbstractQuickFlagDa
|
||||
}
|
||||
}
|
||||
if (speed != null) {
|
||||
quickSpeeds.put(competitor, speed);
|
||||
notifyListenersSpeedChanged(competitor, speed);
|
||||
quickSpeedsInKnots.put(competitor, speed);
|
||||
notifyListenersSpeedInKnotsChanged(competitor, speed);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -169,17 +169,17 @@ public class QuickFlagDataFromLeaderboardDTOProvider extends AbstractQuickFlagDa
|
||||
}
|
||||
|
||||
@Override
|
||||
public void quickSpeedsReceivedFromServer(Map<CompetitorDTO, Double> quickSpeedsFromServer) {
|
||||
if (quickSpeeds.isEmpty() || leaderboardNotCurrentlyUpdating) {
|
||||
for (final Entry<CompetitorDTO, Double> e : quickSpeedsFromServer.entrySet()) {
|
||||
quickSpeeds.put(e.getKey(), e.getValue());
|
||||
notifyListenersSpeedChanged(e.getKey(), e.getValue());
|
||||
public void quickSpeedsInKnotsReceivedFromServer(Map<CompetitorDTO, Double> quickSpeedsFromServerInKnots) {
|
||||
if (quickSpeedsInKnots.isEmpty() || leaderboardNotCurrentlyUpdating) {
|
||||
for (final Entry<CompetitorDTO, Double> e : quickSpeedsFromServerInKnots.entrySet()) {
|
||||
quickSpeedsInKnots.put(e.getKey(), e.getValue());
|
||||
notifyListenersSpeedInKnotsChanged(e.getKey(), e.getValue());
|
||||
}
|
||||
} else {
|
||||
for (final Entry<CompetitorDTO, Double> e : quickSpeeds.entrySet()) {
|
||||
final Double speed = quickSpeedsFromServer.get(e.getKey());
|
||||
for (final Entry<CompetitorDTO, Double> e : quickSpeedsInKnots.entrySet()) {
|
||||
final Double speed = quickSpeedsFromServerInKnots.get(e.getKey());
|
||||
if (speed != null) {
|
||||
quickSpeeds.put(e.getKey(), speed);
|
||||
quickSpeedsInKnots.put(e.getKey(), speed);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -187,8 +187,8 @@ public class QuickFlagDataFromLeaderboardDTOProvider extends AbstractQuickFlagDa
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<CompetitorDTO, Double> getQuickSpeeds() {
|
||||
return quickSpeeds;
|
||||
public Map<CompetitorDTO, Double> getQuickSpeedsInKnots() {
|
||||
return quickSpeedsInKnots;
|
||||
}
|
||||
|
||||
private String getRaceColumnName(LeaderboardDTO leaderboard, RaceIdentifier selectedRace) {
|
||||
|
||||
Reference in new issue
Block a user