mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-20 19:20:04 +00:00
using Map instead of LinkedHashMap for quick ranks; they are not sorted anymore
Change-Id: I50776034a659d7363c564ba43db7ceae87e2102c
This commit is contained in:
1 parent
7d2feff5bf
commit
314b178202
4 files changed
+22
-15
No files matched your search
+4
-4
@@ -1,16 +1,16 @@
|
||||
package com.sap.sailing.gwt.ui.client.shared.racemap;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import com.sap.sailing.gwt.ui.raceboard.AbstractQuickRanksDTOProvider;
|
||||
import com.sap.sailing.gwt.ui.shared.QuickRankDTO;
|
||||
|
||||
public class DefaultQuickRanksDTOProvider extends AbstractQuickRanksDTOProvider {
|
||||
private LinkedHashMap<String, QuickRankDTO> quickRanksFromServer;
|
||||
private Map<String, QuickRankDTO> quickRanksFromServer;
|
||||
|
||||
@Override
|
||||
public void quickRanksReceivedFromServer(LinkedHashMap<String, QuickRankDTO> quickRanksFromServer) {
|
||||
public void quickRanksReceivedFromServer(Map<String, QuickRankDTO> quickRanksFromServer) {
|
||||
this.quickRanksFromServer = quickRanksFromServer;
|
||||
for (final Entry<String, QuickRankDTO> e : quickRanksFromServer.entrySet()) {
|
||||
notifyListeners(e.getKey(), e.getValue());
|
||||
@@ -18,7 +18,7 @@ public class DefaultQuickRanksDTOProvider extends AbstractQuickRanksDTOProvider
|
||||
}
|
||||
|
||||
@Override
|
||||
public LinkedHashMap<String, QuickRankDTO> getQuickRanks() {
|
||||
public Map<String, QuickRankDTO> getQuickRanks() {
|
||||
return quickRanksFromServer;
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -1,6 +1,6 @@
|
||||
package com.sap.sailing.gwt.ui.client.shared.racemap;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import com.sap.sailing.domain.common.dto.CompetitorDTO;
|
||||
import com.sap.sailing.domain.common.dto.LeaderboardDTO;
|
||||
@@ -40,11 +40,11 @@ public interface QuickRanksDTOProvider {
|
||||
*
|
||||
* @param quickRanksFromServer keys are the competitor IDs as strings
|
||||
*/
|
||||
void quickRanksReceivedFromServer(LinkedHashMap<String, QuickRankDTO> quickRanksFromServer);
|
||||
void quickRanksReceivedFromServer(Map<String, QuickRankDTO> quickRanksFromServer);
|
||||
|
||||
/**
|
||||
* @return keys are the {@link CompetitorDTO#getIdAsString() competitor IDs are string}, values are the quick ranks
|
||||
* pertaining to the competitors whose IDs are provided as keys
|
||||
*/
|
||||
LinkedHashMap<String, QuickRankDTO> getQuickRanks();
|
||||
Map<String, QuickRankDTO> getQuickRanks();
|
||||
}
|
||||
+9
-4
@@ -1360,16 +1360,21 @@ public class RaceMap extends AbstractCompositeComponent<RaceMapSettings> impleme
|
||||
Iterable<CompetitorDTO> competitorsToShow) {
|
||||
CompetitorDTO leadingCompetitorDTO = null;
|
||||
int legOfLeaderCompetitor = -1;
|
||||
// this only works because the quickRanks are sorted
|
||||
int bestOneBasedRank = Integer.MAX_VALUE;
|
||||
for (QuickRankDTO competitorFromBestToWorstAndOneBasedLegNumber : quickRanksDTOProvider.getQuickRanks().values()) {
|
||||
if (Util.contains(competitorsToShow, competitorFromBestToWorstAndOneBasedLegNumber.competitor) &&
|
||||
competitorFromBestToWorstAndOneBasedLegNumber.legNumberOneBased != 0) {
|
||||
competitorFromBestToWorstAndOneBasedLegNumber.legNumberOneBased != 0 &&
|
||||
competitorFromBestToWorstAndOneBasedLegNumber.oneBasedRank < bestOneBasedRank) {
|
||||
leadingCompetitorDTO = competitorFromBestToWorstAndOneBasedLegNumber.competitor;
|
||||
legOfLeaderCompetitor = competitorFromBestToWorstAndOneBasedLegNumber.legNumberOneBased;
|
||||
return new com.sap.sse.common.Util.Pair<Integer, CompetitorDTO>(legOfLeaderCompetitor, leadingCompetitorDTO);
|
||||
bestOneBasedRank = competitorFromBestToWorstAndOneBasedLegNumber.legNumberOneBased;
|
||||
if (bestOneBasedRank == 1) {
|
||||
break; // as good as it gets
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
return leadingCompetitorDTO == null ? null :
|
||||
new com.sap.sse.common.Util.Pair<Integer, CompetitorDTO>(legOfLeaderCompetitor, leadingCompetitorDTO);
|
||||
}
|
||||
|
||||
final static Distance advantageLineLength = new MeterDistance(1000); // TODO this should probably rather scale with the visible area of the map; bug 616
|
||||
|
||||
+6
-4
@@ -1,7 +1,9 @@
|
||||
package com.sap.sailing.gwt.ui.raceboard;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import com.sap.sailing.domain.common.RaceIdentifier;
|
||||
@@ -25,7 +27,7 @@ import com.sap.sse.common.Util;
|
||||
*
|
||||
*/
|
||||
public class QuickRanksDTOFromLeaderboardDTOProvider extends AbstractQuickRanksDTOProvider {
|
||||
private LinkedHashMap<String, QuickRankDTO> quickRanks;
|
||||
private Map<String, QuickRankDTO> quickRanks;
|
||||
private final RaceCompetitorSet raceCompetitorSet;
|
||||
private final RaceIdentifier selectedRace;
|
||||
private boolean lastLeaderboardProvidedLegNumbers;
|
||||
@@ -37,9 +39,9 @@ public class QuickRanksDTOFromLeaderboardDTOProvider extends AbstractQuickRanksD
|
||||
}
|
||||
|
||||
@Override
|
||||
public void quickRanksReceivedFromServer(LinkedHashMap<String, QuickRankDTO> quickRanksFromServer) {
|
||||
public void quickRanksReceivedFromServer(Map<String, QuickRankDTO> quickRanksFromServer) {
|
||||
if (quickRanks == null) {
|
||||
quickRanks = new LinkedHashMap<>();
|
||||
quickRanks = new HashMap<>();
|
||||
for (final Entry<String, QuickRankDTO> e : quickRanksFromServer.entrySet()) {
|
||||
quickRanks.put(e.getKey(), e.getValue());
|
||||
notifyListeners(e.getKey(), e.getValue());
|
||||
@@ -118,7 +120,7 @@ public class QuickRanksDTOFromLeaderboardDTOProvider extends AbstractQuickRanksD
|
||||
}
|
||||
|
||||
@Override
|
||||
public LinkedHashMap<String, QuickRankDTO> getQuickRanks() {
|
||||
public Map<String, QuickRankDTO> getQuickRanks() {
|
||||
return quickRanks;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user