Merge branch 'master' into bug4210

This commit is contained in:
Kai Boernert committed 2017-11-27 11:15:46 +01:00
commit 33d8d55ffb
8 files changed
+212 -27

No files matched your search

@@ -687,7 +687,7 @@ public interface SailingService extends RemoteService, FileStorageManagementGwtS
* Used to determine for a Chart the available Detailtypes. This is for example used to only show the RideHeight as
* an option for charts if it actually recorded for the race.
*/
List<DetailType> determineDetailTypes(String leaderboardGroupName, RegattaAndRaceIdentifier identifier);
List<DetailType> determineDetailTypesForCompetitorChart(String leaderboardGroupName, RegattaAndRaceIdentifier identifier);
List<ExpeditionDeviceConfiguration> getExpeditionDeviceConfigurations();
@@ -862,7 +862,7 @@ public interface SailingServiceAsync extends ServerInfoRetriever, FileStorageMan
* Used to determine for a Chart the available Detailtypes. This is for example used, to only show the RideHeight as
* an option for charts, if it actually recorded for the race.
*/
void determineDetailTypes(String leaderboardGroupName, RegattaAndRaceIdentifier identifier,
void determineDetailTypesForCompetitorChart(String leaderboardGroupName, RegattaAndRaceIdentifier identifier,
AsyncCallback<List<DetailType>> callback);
void getExpeditionDeviceConfigurations(AsyncCallback<List<ExpeditionDeviceConfiguration>> callback);
@@ -106,7 +106,7 @@ public class RaceBoardEntryPoint extends AbstractSailingEntryPoint {
final StoredSettingsLocation storageDefinition = StoredSettingsLocationFactory
.createStoredSettingsLocatorForRaceBoard(raceboardContextDefinition,
finalMode != null ? finalMode.name() : null);
sailingService.determineDetailTypes(raceboardContextDefinition.getLeaderboardGroupName(),
sailingService.determineDetailTypesForCompetitorChart(raceboardContextDefinition.getLeaderboardGroupName(),
raceboardData.getRace().getRaceIdentifier(), new AsyncCallback<List<DetailType>>() {
@Override
@@ -28,16 +28,16 @@ public class RaceBoardPerspectiveLifecycle extends AbstractPerspectiveLifecycle<
public static final String ID = "rb";
//constructor used by Standalone RaceBoard
public RaceBoardPerspectiveLifecycle(StringMessages stringMessages, List<DetailType> allowedDetailTypes) {
this(null, stringMessages, allowedDetailTypes);
public RaceBoardPerspectiveLifecycle(StringMessages stringMessages, List<DetailType> competitorChartAllowedDetailTypes) {
this(null, stringMessages, competitorChartAllowedDetailTypes);
}
public RaceBoardPerspectiveLifecycle(AbstractLeaderboardDTO leaderboard, StringMessages stringMessages, List<DetailType> allowedDetailTypes) {
public RaceBoardPerspectiveLifecycle(AbstractLeaderboardDTO leaderboard, StringMessages stringMessages, List<DetailType> competitorChartAllowedDetailTypes) {
this.stringMessages = stringMessages;
raceMapLifecycle = new RaceMapLifecycle(stringMessages);
windChartLifecycle = new WindChartLifecycle(stringMessages);
leaderboardPanelLifecycle = new SingleRaceLeaderboardPanelLifecycle(stringMessages);
multiCompetitorRaceChartLifecycle = new MultiCompetitorRaceChartLifecycle(stringMessages, allowedDetailTypes);
multiCompetitorRaceChartLifecycle = new MultiCompetitorRaceChartLifecycle(stringMessages, competitorChartAllowedDetailTypes);
mediaPlayerLifecycle = new MediaPlayerLifecycle(stringMessages);
raceTimePanelLifecycle = new RaceTimePanelLifecycle(stringMessages);
@@ -6710,7 +6710,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
}
@Override
public List<DetailType> determineDetailTypes(String leaderboardGroupName, RegattaAndRaceIdentifier identifier) {
public List<DetailType> determineDetailTypesForCompetitorChart(String leaderboardGroupName, RegattaAndRaceIdentifier identifier) {
List<DetailType> availableDetailsTypes = DetailType.getDefaultDetailTypesForChart();
final DynamicTrackedRace trackedRace = getService().getTrackedRace(identifier);
if (trackedRace != null) {
@@ -6725,8 +6725,6 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
}
if (hasBravoTrack) {
availableDetailsTypes.add(DetailType.RACE_CURRENT_RIDE_HEIGHT_IN_METERS);
availableDetailsTypes.add(DetailType.RACE_CURRENT_DURATION_FOILED_IN_SECONDS);
availableDetailsTypes.add(DetailType.RACE_CURRENT_DISTANCE_FOILED_IN_METERS);
availableDetailsTypes.add(DetailType.CURRENT_HEEL_IN_DEGREES);
availableDetailsTypes.add(DetailType.CURRENT_PITCH_IN_DEGREES);
}
@@ -4,11 +4,9 @@ import java.io.BufferedInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -30,7 +28,6 @@ import com.sap.sailing.domain.trackimport.GPSFixImporter;
import com.sap.sailing.domain.trackimport.GPSFixImporter.Callback;
import com.sap.sailing.server.gateway.impl.AbstractFileUploadServlet;
import com.sap.sse.common.NoCorrespondingServiceRegisteredException;
import com.sap.sse.common.TimePoint;
import com.sap.sse.common.Util.Pair;
/**
@@ -86,8 +83,6 @@ public class TrackFilesImportServlet extends AbstractFileUploadServlet {
protected Iterable<TrackFileImportDeviceIdentifier> importFiles(Iterable<Pair<String, FileItem>> files,
GPSFixImporter preferredImporter) throws IOException {
final Set<TrackFileImportDeviceIdentifier> deviceIds = new HashSet<>();
final Map<DeviceIdentifier, TimePoint> from = new HashMap<>();
final Map<DeviceIdentifier, TimePoint> to = new HashMap<>();
for (Pair<String, FileItem> pair : files) {
final String fileName = pair.getA();
final FileItem fileItem = pair.getB();
@@ -120,18 +115,6 @@ public class TrackFilesImportServlet extends AbstractFileUploadServlet {
public void addFix(GPSFix fix, TrackFileImportDeviceIdentifier device) {
deviceIds.add(device);
storeFix(fix, device);
TimePoint earliestFixSoFarFromCurrentDevice = from.get(device);
if (earliestFixSoFarFromCurrentDevice == null
|| earliestFixSoFarFromCurrentDevice.after(fix.getTimePoint())) {
earliestFixSoFarFromCurrentDevice = fix.getTimePoint();
from.put(device, earliestFixSoFarFromCurrentDevice);
}
TimePoint latestFixSoFarFromCurrentDevice = to.get(device);
if (latestFixSoFarFromCurrentDevice == null
|| latestFixSoFarFromCurrentDevice.before(fix.getTimePoint())) {
latestFixSoFarFromCurrentDevice = fix.getTimePoint();
to.put(device, latestFixSoFarFromCurrentDevice);
}
}
}, true, fileName);
succeeded = true;