fixed tests

This commit is contained in:
Kai Boernert committed 2018-02-13 16:34:58 +01:00
1 parent 9346268faf
commit c6220d79a4
23 files changed
+121 -77

No files matched your search

@@ -30,7 +30,7 @@ public enum DetailType implements Serializable {
LEG_CURRENT_SPEED_OVER_GROUND_IN_KNOTS(2, DESCENDING, "CURRENT_SPEED_OVER_GROUND_IN_KNOTS"),
BRAVO_LEG_CURRENT_HEEL_IN_DEGREES(2, DESCENDING, "CURRENT_HEEL_IN_DEGREES"),
BRAVO_LEG_CURRENT_PITCH_IN_DEGREES(2, DESCENDING, "CURRENT_PITCH_IN_DEGREES"),
BRAVOEXTENDED_LEG_CURRENT_RIDE_HEIGHT_IN_METERS(2, DESCENDING, "CURRENT_RIDE_HEIGHT_IN_METERS"),
BRAVO_LEG_CURRENT_RIDE_HEIGHT_IN_METERS(2, DESCENDING, "CURRENT_RIDE_HEIGHT_IN_METERS"),
BRAVOEXTENDED_LEG_CURRENT_DISTANCE_FOILED_IN_METERS(0, DESCENDING, "CURRENT_DISTANCE_FOILED_IN_METERS"),
BRAVOEXTENDED_LEG_CURRENT_DURATION_FOILED_IN_SECONDS(0, DESCENDING, "CURRENT_DURATION_FOILED_IN_SECONDS"),
BRAVOEXTENDED_RACE_CURRENT_PORT_DAGGERBOARD_RAKE(2, DESCENDING, "CURRENT_PORT_DAGGERBOARD_RAKE"),
@@ -277,8 +277,6 @@ public enum DetailType implements Serializable {
ArrayList<DetailType> allowed = new ArrayList<>();
allowed.add(DetailType.BRAVOEXTENDED_LEG_CURRENT_DISTANCE_FOILED_IN_METERS);
allowed.add(DetailType.BRAVOEXTENDED_LEG_CURRENT_DURATION_FOILED_IN_SECONDS);
allowed.add(DetailType.BRAVOEXTENDED_LEG_CURRENT_RIDE_HEIGHT_IN_METERS);
return allowed;
}
@@ -317,6 +315,7 @@ public enum DetailType implements Serializable {
ArrayList<DetailType> allowed = new ArrayList<>();
allowed.add(DetailType.BRAVO_LEG_CURRENT_HEEL_IN_DEGREES);
allowed.add(DetailType.BRAVO_LEG_CURRENT_PITCH_IN_DEGREES);
allowed.add(DetailType.BRAVO_LEG_CURRENT_RIDE_HEIGHT_IN_METERS);
return allowed;
}
@@ -359,7 +358,7 @@ public enum DetailType implements Serializable {
all.removeAll(getRaceExtendedBravoDetailTypes());
all.removeAll(getRaceExpeditionDetailTypes());
all.removeAll(getLegExpeditionDetailColumnTypes());
all.removeAll(getAvailableBravoOverallDetailColumnTypes());
all.removeAll(getOverallBravoDetailTypes());
return all;
}
@@ -372,7 +371,7 @@ public enum DetailType implements Serializable {
TOTAL_TIME_SAILED_REACHING_IN_SECONDS, TOTAL_TIME_SAILED_REACHING_IN_SECONDS });
}
public static List<DetailType> getAvailableBravoOverallDetailColumnTypes() {
public static List<DetailType> getOverallBravoDetailTypes() {
return Arrays.asList(new DetailType[] { DetailType.OVERALL_TOTAL_DISTANCE_FOILED_IN_METERS,
OVERALL_TOTAL_DURATION_FOILED_IN_SECONDS });
}
@@ -388,6 +387,14 @@ public enum DetailType implements Serializable {
DetailType.LEG_CORRECTED_TIME_TRAVELED, DetailType.LEG_AVERAGE_ABSOLUTE_CROSS_TRACK_ERROR_IN_METERS,
DetailType.LEG_AVERAGE_SIGNED_CROSS_TRACK_ERROR_IN_METERS, DetailType.LEG_RANK_GAIN });
}
public static List<DetailType> getRaceStartAnalysisColumnTypes() {
return Arrays.asList(new DetailType[] { DetailType.RACE_DISTANCE_TO_START_FIVE_SECONDS_BEFORE_RACE_START,
DetailType.RACE_SPEED_OVER_GROUND_FIVE_SECONDS_BEFORE_START, DetailType.DISTANCE_TO_START_AT_RACE_START,
DetailType.TIME_BETWEEN_RACE_START_AND_COMPETITOR_START, DetailType.SPEED_OVER_GROUND_AT_RACE_START,
DetailType.SPEED_OVER_GROUND_WHEN_PASSING_START,
DetailType.DISTANCE_TO_STARBOARD_END_OF_STARTLINE_WHEN_PASSING_START_IN_METERS, DetailType.START_TACK });
}
public static List<DetailType> getLegExpeditionDetailColumnTypes() {
return Arrays.asList(new DetailType[] { EXPEDITION_LEG_AWA, EXPEDITION_LEG_AWS, EXPEDITION_LEG_TWA,
@@ -1,7 +1,6 @@
package com.sap.sailing.gwt.autoplay.client.configs.impl;
import java.util.Collection;
import java.util.List;
import java.util.UUID;
import com.google.gwt.user.client.Window;
@@ -37,7 +36,7 @@ public class AutoPlayClassicConfiguration extends AutoPlayConfiguration {
@SuppressWarnings("unchecked")
@Override
public void onSuccess(final EventDTO event) {
cf.getSailingService().getAvailableDetailTypesForLeaderboard(context.getLeaderboardName(), new AsyncCallback<List<DetailType>>() {
cf.getSailingService().getAvailableDetailTypesForLeaderboard(context.getLeaderboardName(), new AsyncCallback<Collection<DetailType>>() {
@Override
public void onFailure(Throwable caught) {
@@ -45,7 +44,7 @@ public class AutoPlayClassicConfiguration extends AutoPlayConfiguration {
}
@Override
public void onSuccess(List<DetailType> result) {
public void onSuccess(Collection<DetailType> result) {
StrippedLeaderboardDTO leaderBoardDTO = AutoplayHelper.getSelectedLeaderboard(event,
context.getLeaderboardName());
AutoplayPerspectiveLifecycle autoplayLifecycle = new AutoplayPerspectiveLifecycle(leaderBoardDTO, cf.getUserService(), result);
@@ -1,6 +1,7 @@
package com.sap.sailing.gwt.autoplay.client.nodes;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import com.google.gwt.core.shared.GWT;
@@ -64,7 +65,7 @@ public class IdleOverallLeaderBoardNode extends FiresPlaceNode {
String overallLeaderboardName = result.get(0);
CompetitorSelectionProvider provider = new CompetitorSelectionModel(true);
cf.getSailingService().getAvailableDetailTypesForLeaderboard(overallLeaderboardName, new AsyncCallback<List<DetailType>>() {
cf.getSailingService().getAvailableDetailTypesForLeaderboard(overallLeaderboardName, new AsyncCallback<Collection<DetailType>>() {
@Override
public void onFailure(Throwable caught) {
@@ -72,7 +73,7 @@ public class IdleOverallLeaderBoardNode extends FiresPlaceNode {
}
@Override
public void onSuccess(List<DetailType> result) {
public void onSuccess(Collection<DetailType> result) {
MultiRaceLeaderboardPanel leaderboardPanel = new MultiRaceLeaderboardPanel(null, null,
cf.getSailingService(), new AsyncActionsExecutor(), leaderboardSettings, false,
provider, timer, null, overallLeaderboardName, cf.getErrorReporter(),
@@ -1,6 +1,7 @@
package com.sap.sailing.gwt.home.desktop.places.event.regatta.analyticstab;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
@@ -78,10 +79,10 @@ public class RegattaCompetitorAnalyticsTabView extends SharedLeaderboardRegattaT
if (regattaId != null && !regattaId.isEmpty()) {
String leaderboardName = regattaId;
RegattaAnalyticsDataManager regattaAnalyticsManager = currentPresenter.getCtx().getRegattaAnalyticsManager();
currentPresenter.getSailingService().getAvailableDetailTypesForLeaderboard(leaderboardName, new AsyncCallback<List<DetailType>>() {
currentPresenter.getSailingService().getAvailableDetailTypesForLeaderboard(leaderboardName, new AsyncCallback<Collection<DetailType>>() {
@Override
public void onSuccess(List<DetailType> result) {
public void onSuccess(Collection<DetailType> result) {
final Runnable callback = new Runnable() {
@Override
public void run() {
@@ -1,6 +1,6 @@
package com.sap.sailing.gwt.home.desktop.places.event.regatta.leaderboardtab;
import java.util.List;
import java.util.Collection;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
@@ -93,10 +93,10 @@ public class RegattaLeaderboardTabView extends SharedLeaderboardRegattaTabView<R
RegattaAnalyticsDataManager regattaAnalyticsManager = currentPresenter.getCtx().getRegattaAnalyticsManager();
String leaderboardName = regattaId;
currentPresenter.getSailingService().getAvailableDetailTypesForLeaderboard(leaderboardName,
new AsyncCallback<List<DetailType>>() {
new AsyncCallback<Collection<DetailType>>() {
@Override
public void onSuccess(List<DetailType> result) {
public void onSuccess(Collection<DetailType> result) {
MultiRaceLeaderboardPanel leaderboardPanel = regattaAnalyticsManager.getLeaderboardPanel();
final Consumer<MultiRaceLeaderboardPanel> leaderboardConsumer = new Consumer<MultiRaceLeaderboardPanel>() {
@Override
@@ -1,6 +1,7 @@
package com.sap.sailing.gwt.home.desktop.places.fakeseries.analyticstab;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
@@ -65,10 +66,10 @@ public class EventSeriesCompetitorAnalyticsTabView extends SharedLeaderboardEven
String leaderboardName = currentPresenter.getSeriesDTO().getLeaderboardId();
if (leaderboardName != null && !leaderboardName.isEmpty()) {
EventSeriesAnalyticsDataManager eventSeriesAnalyticsManager = currentPresenter.getCtx().getAnalyticsManager();
eventSeriesAnalyticsManager.getSailingService().getAvailableDetailTypesForLeaderboard(leaderboardName, new AsyncCallback<List<DetailType>>() {
eventSeriesAnalyticsManager.getSailingService().getAvailableDetailTypesForLeaderboard(leaderboardName, new AsyncCallback<Collection<DetailType>>() {
@Override
public void onSuccess(List<DetailType> result) {
public void onSuccess(Collection<DetailType> result) {
final Runnable callback = new Runnable() {
@Override
public void run() {
@@ -1,7 +1,6 @@
package com.sap.sailing.gwt.home.desktop.places.fakeseries.leaderboardstab;
import java.util.Collection;
import java.util.List;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.logical.shared.AttachEvent;
@@ -80,10 +79,10 @@ public class EventSeriesLeaderboardsTabView extends Composite implements SeriesT
.getAnalyticsManager();
regattaAnalyticsManager.getSailingService().getAvailableDetailTypesForLeaderboard(leaderboardName,
new AsyncCallback<List<DetailType>>() {
new AsyncCallback<Collection<DetailType>>() {
@Override
public void onSuccess(List<DetailType> result) {
public void onSuccess(Collection<DetailType> result) {
final boolean autoExpandLastRaceColumn = GwtHttpRequestUtils.getBooleanParameter(
LeaderboardUrlSettings.PARAM_AUTO_EXPAND_LAST_RACE_COLUMN, false);
@@ -1,6 +1,6 @@
package com.sap.sailing.gwt.home.desktop.places.fakeseries.overallleaderboardtab;
import java.util.List;
import java.util.Collection;
import com.google.gwt.core.client.GWT;
import com.google.gwt.uibinder.client.UiBinder;
@@ -65,10 +65,10 @@ public class EventSeriesOverallLeaderboardTabView extends SharedLeaderboardEvent
contentArea.setWidget(currentPresenter.getErrorAndBusyClientFactory().createBusyView());
String leaderboardName = currentPresenter.getSeriesDTO().getLeaderboardId();
if (leaderboardName != null && !leaderboardName.isEmpty()) {
currentPresenter.getCtx().getAnalyticsManager().getSailingService().getAvailableDetailTypesForLeaderboard(leaderboardName, new AsyncCallback<List<DetailType>>() {
currentPresenter.getCtx().getAnalyticsManager().getSailingService().getAvailableDetailTypesForLeaderboard(leaderboardName, new AsyncCallback<Collection<DetailType>>() {
@Override
public void onSuccess(List<DetailType> result) {
public void onSuccess(Collection<DetailType> result) {
EventSeriesAnalyticsDataManager eventSeriesAnalyticsManager = currentPresenter.getCtx().getAnalyticsManager();
final Consumer<MultiRaceLeaderboardPanel> leaderboardConsumer = new Consumer<MultiRaceLeaderboardPanel>() {
@Override
@@ -20,13 +20,13 @@ import com.sap.sailing.gwt.ui.client.DebugIdHelper;
import com.sap.sailing.gwt.ui.client.DetailTypeFormatter;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardEntryPoint;
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
import com.sap.sailing.gwt.ui.leaderboard.ManeuverCountRaceColumn;
import com.sap.sse.gwt.client.controls.IntegerBox;
import com.sap.sse.gwt.client.dialog.DataEntryDialog;
import com.sap.sse.gwt.client.shared.components.SettingsDialogComponent;
public abstract class LeaderboardSettingsDialogComponent<T extends LeaderboardSettings> implements SettingsDialogComponent<T> {
public static final String CHECK_BOX_DEBUGID_CONSTANT = "CheckBox";
protected final Map<DetailType, CheckBox> maneuverDetailCheckboxes;
protected final Map<DetailType, CheckBox> legDetailCheckboxes;
protected final Map<DetailType, CheckBox> raceDetailCheckboxes;
@@ -143,7 +143,7 @@ public abstract class LeaderboardSettingsDialogComponent<T extends LeaderboardSe
int detailCountInCurrentFlowPanel = 0;
Collection<DetailType> currentRaceDetailSelection = initialSettings.getRaceDetailsToShow();
FlowPanel raceStartAnalysisDialogContent = null;
for (DetailType type : reduceToAvailableTypes(LeaderboardPanel.getAvailableRaceStartAnalysisColumnTypes())) {
for (DetailType type : reduceToAvailableTypes(DetailType.getRaceStartAnalysisColumnTypes())) {
if (detailCountInCurrentFlowPanel % 8 == 0) {
raceStartAnalysisDialogContent = new FlowPanel();
raceStartAnalysisDialogContent.addStyleName("dialogInnerContent");
@@ -224,13 +224,13 @@ public abstract class LeaderboardSettingsDialogComponent<T extends LeaderboardSe
private CheckBox createCheckbox(DataEntryDialog<?> dialog, DetailType detailType, boolean selected) {
CheckBox checkbox = createCheckbox(dialog, DetailTypeFormatter.format(detailType), selected,
DetailTypeFormatter.getTooltip(detailType));
checkbox.ensureDebugId(DebugIdHelper.createDebugId(detailType) + "CheckBox");
checkbox.ensureDebugId(DebugIdHelper.createDebugId(detailType) + CHECK_BOX_DEBUGID_CONSTANT);
return checkbox;
}
protected CheckBox createCheckbox(DataEntryDialog<?> dialog, String label, boolean selected, String tooltip) {
CheckBox checkbox = dialog.createCheckbox(label);
checkbox.ensureDebugId(DebugIdHelper.createDebugId(label) + "CheckBox");
checkbox.ensureDebugId(DebugIdHelper.createDebugId(label) + CHECK_BOX_DEBUGID_CONSTANT);
checkbox.setValue(selected);
dialog.addTooltip(checkbox, tooltip);
return checkbox;
@@ -260,16 +260,14 @@ public abstract class LeaderboardSettingsDialogComponent<T extends LeaderboardSe
}
protected List<DetailType> getSelected(Map<DetailType, CheckBox> checkBoxes, Collection<DetailType> initialValues) {
List<DetailType> selectedDetails = new ArrayList<DetailType>();
ArrayList<DetailType> safeInitialValues = new ArrayList<>(initialValues);
List<DetailType> selectedDetails = new ArrayList<DetailType>(initialValues);
for (Map.Entry<DetailType, CheckBox> entry : checkBoxes.entrySet()) {
safeInitialValues.remove(entry.getKey());
if (entry.getValue().getValue()) {
selectedDetails.add(entry.getKey());
} else {
selectedDetails.remove(entry.getKey());
}
}
//all values that are not currently settable (eg hidden checkboxes) but might be set via defaults ect. Keep them.
selectedDetails.addAll(safeInitialValues);
return selectedDetails;
}
}
@@ -323,7 +323,7 @@ TrackedRaceChangedListener, LeaderboardsDisplayer {
editCompetitorsDialog.show();
} else if (LeaderboardConfigImagesBarCell.ACTION_CONFIGURE_URL.equals(value)) {
sailingService.getAvailableDetailTypesForLeaderboard(leaderboardDTO.name, new AsyncCallback<List<DetailType>>() {
sailingService.getAvailableDetailTypesForLeaderboard(leaderboardDTO.name, new AsyncCallback<Collection<DetailType>>() {
@Override
public void onFailure(Throwable caught) {
@@ -331,7 +331,7 @@ TrackedRaceChangedListener, LeaderboardsDisplayer {
}
@Override
public void onSuccess(List<DetailType> result) {
public void onSuccess(Collection<DetailType> result) {
openLeaderboardUrlConfigDialog(leaderboardDTO, result);
}
});
@@ -38,7 +38,7 @@ public class DetailTypeFormatter {
return stringMessages.currentOrAverageSpeedOverGroundInKnots();
case RACE_CURRENT_SPEED_OVER_GROUND_IN_KNOTS:
return stringMessages.currentSpeedOverGroundInKnots();
case BRAVOEXTENDED_LEG_CURRENT_RIDE_HEIGHT_IN_METERS:
case BRAVO_LEG_CURRENT_RIDE_HEIGHT_IN_METERS:
return stringMessages.currentOrAverageRideHeightInMeters();
case BRAVOEXTENDED_LEG_CURRENT_DISTANCE_FOILED_IN_METERS:
return stringMessages.currentDistanceFoiledInMeters();
@@ -393,7 +393,7 @@ public class DetailTypeFormatter {
case DISTANCE_TO_STARBOARD_END_OF_STARTLINE_WHEN_PASSING_START_IN_METERS:
case RACE_DISTANCE_TO_START_FIVE_SECONDS_BEFORE_RACE_START:
case CHART_DISTANCE_TO_START_LINE:
case BRAVOEXTENDED_LEG_CURRENT_RIDE_HEIGHT_IN_METERS:
case BRAVO_LEG_CURRENT_RIDE_HEIGHT_IN_METERS:
case BRAVO_RACE_CURRENT_RIDE_HEIGHT_IN_METERS:
case RACE_CURRENT_DISTANCE_FOILED_IN_METERS:
case BRAVOEXTENDED_RACE_CURRENT_DEPTH_IN_METERS:
@@ -614,7 +614,7 @@ public class DetailTypeFormatter {
return stringMessages.currentOrAverageSpeedOverGroundInKnotsTooltip();
case RACE_CURRENT_SPEED_OVER_GROUND_IN_KNOTS:
return stringMessages.currentSpeedOverGroundInKnotsTooltip();
case BRAVOEXTENDED_LEG_CURRENT_RIDE_HEIGHT_IN_METERS:
case BRAVO_LEG_CURRENT_RIDE_HEIGHT_IN_METERS:
return stringMessages.currentOrAverageRideHeightInMetersTooltip();
case BRAVOEXTENDED_LEG_CURRENT_DISTANCE_FOILED_IN_METERS:
return stringMessages.currentDistanceFoiledInMetersTooltip();
@@ -710,5 +710,5 @@ public interface SailingService extends RemoteService, FileStorageManagementGwtS
List<String> getRaceDisplayNamesFromLeaderboard(String leaderboardName, List<String> raceColumnNames) throws NotFoundException;
List<DetailType> getAvailableDetailTypesForLeaderboard(String leaderboardName);
Collection<DetailType> getAvailableDetailTypesForLeaderboard(String leaderboardName);
}
@@ -930,5 +930,5 @@ public interface SailingServiceAsync extends ServerInfoRetriever, FileStorageMan
void getRaceDisplayNamesFromLeaderboard(final String leaderboardName,List<String> raceColumnNames, AsyncCallback<List<String>> callback);
void getAvailableDetailTypesForLeaderboard(String leaderboardName,
AsyncCallback<List<DetailType>> asyncCallback);
AsyncCallback<Collection<DetailType>> asyncCallback);
}
@@ -1,6 +1,6 @@
package com.sap.sailing.gwt.ui.leaderboard;
import java.util.List;
import java.util.Collection;
import java.util.UUID;
import com.google.gwt.dom.client.Style.Unit;
@@ -120,7 +120,7 @@ public class LeaderboardEntryPoint extends AbstractSailingEntryPoint {
final StoredSettingsLocation storageDefinition = StoredSettingsLocationFactory
.createStoredSettingsLocatorForLeaderboard(leaderboardContextDefinition);
sailingService.getAvailableDetailTypesForLeaderboard(leaderboardName, new AsyncCallback<List<DetailType>>() {
sailingService.getAvailableDetailTypesForLeaderboard(leaderboardName, new AsyncCallback<Collection<DetailType>>() {
@Override
public void onFailure(Throwable caught) {
@@ -129,7 +129,7 @@ public class LeaderboardEntryPoint extends AbstractSailingEntryPoint {
}
@Override
public void onSuccess(List<DetailType> result) {
public void onSuccess(Collection<DetailType> result) {
if (leaderboardDTO.type.isMetaLeaderboard()) {
// overall
@@ -172,7 +172,7 @@ public class LeaderboardEntryPoint extends AbstractSailingEntryPoint {
public void onSuccess(
PerspectiveCompositeSettings<LeaderboardPerspectiveOwnSettings> defaultSettings) {
sailingService.getAvailableDetailTypesForLeaderboard(leaderboardName,
new AsyncCallback<List<DetailType>>() {
new AsyncCallback<Collection<DetailType>>() {
@Override
public void onFailure(Throwable caught) {
@@ -180,7 +180,7 @@ public class LeaderboardEntryPoint extends AbstractSailingEntryPoint {
}
@Override
public void onSuccess(List<DetailType> result) {
public void onSuccess(Collection<DetailType> result) {
configureWithSettings(defaultSettings, timer);
final MultiRaceLeaderboardViewer leaderboardViewer = new MultiRaceLeaderboardViewer(
null, context, rootComponentLifeCycle, defaultSettings,
@@ -1,7 +1,6 @@
package com.sap.sailing.gwt.ui.leaderboard;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
@@ -767,9 +766,9 @@ public abstract class LeaderboardPanel<LS extends LeaderboardSettings> extends A
if (newSettings.getRaceDetailsToShow() != null) {
List<DetailType> allRaceDetailsTypes = new ArrayList<>();
allRaceDetailsTypes.addAll(DetailType.getAllRaceDetailTypes());
allRaceDetailsTypes.addAll(getAvailableRaceStartAnalysisColumnTypes());
allRaceDetailsTypes.addAll(DetailType.getRaceStartAnalysisColumnTypes());
GWT.log("selected race details " + selectedRaceDetails);
setValuesWithReferenceOrder(reduceToAvailableTypes(newSettings.getRaceDetailsToShow()), DetailType.getAllRaceDetailTypes() , selectedRaceDetails);
setValuesWithReferenceOrder(reduceToAvailableTypes(newSettings.getRaceDetailsToShow()), allRaceDetailsTypes, selectedRaceDetails);
}
}
@@ -1114,14 +1113,6 @@ public abstract class LeaderboardPanel<LS extends LeaderboardSettings> extends A
public abstract boolean renderBoatColorIfNecessary(CompetitorDTO competitor, SafeHtmlBuilder sb);
public static List<DetailType> getAvailableRaceStartAnalysisColumnTypes() {
return Arrays.asList(new DetailType[] { DetailType.RACE_DISTANCE_TO_START_FIVE_SECONDS_BEFORE_RACE_START,
DetailType.RACE_SPEED_OVER_GROUND_FIVE_SECONDS_BEFORE_START, DetailType.DISTANCE_TO_START_AT_RACE_START,
DetailType.TIME_BETWEEN_RACE_START_AND_COMPETITOR_START, DetailType.SPEED_OVER_GROUND_AT_RACE_START,
DetailType.SPEED_OVER_GROUND_WHEN_PASSING_START,
DetailType.DISTANCE_TO_STARBOARD_END_OF_STARTLINE_WHEN_PASSING_START_IN_METERS, DetailType.START_TACK });
}
private class TextRaceColumn extends RaceColumn<String> implements RaceNameProvider {
/**
* Remembers the leg columns; <code>null</code>-padded, if {@link #getLegColumn(int)} asks for a column index
@@ -573,7 +573,7 @@ public class LegColumn extends ExpandableSortableColumn<String> {
result.put(DetailType.BRAVO_LEG_CURRENT_PITCH_IN_DEGREES, new PitchColumn(DetailType.BRAVO_LEG_CURRENT_PITCH_IN_DEGREES,
new CurrentPitchInDegrees(),
detailHeaderStyle, detailColumnStyle, leaderboardPanel));
result.put(DetailType.BRAVOEXTENDED_LEG_CURRENT_RIDE_HEIGHT_IN_METERS, new RideHeightColumn(DetailType.BRAVOEXTENDED_LEG_CURRENT_RIDE_HEIGHT_IN_METERS,
result.put(DetailType.BRAVO_LEG_CURRENT_RIDE_HEIGHT_IN_METERS, new RideHeightColumn(DetailType.BRAVO_LEG_CURRENT_RIDE_HEIGHT_IN_METERS,
new CurrentRideHeightInMeters(), detailHeaderStyle, detailColumnStyle, leaderboardPanel));
result.put(DetailType.BRAVOEXTENDED_LEG_CURRENT_DISTANCE_FOILED_IN_METERS, new FormattedDoubleDetailTypeColumn(DetailType.BRAVOEXTENDED_LEG_CURRENT_DISTANCE_FOILED_IN_METERS,
new CurrentDistanceFoiledInMeters(), detailHeaderStyle, detailColumnStyle, leaderboardPanel));
@@ -1,5 +1,6 @@
package com.sap.sailing.gwt.ui.leaderboardedit;
import java.util.Collection;
import java.util.List;
import com.google.gwt.dom.client.Style.Unit;
@@ -39,7 +40,7 @@ public class LeaderboardEditPage extends AbstractSailingEntryPoint {
.deserializeFromCurrentLocation(new LeaderboardEditContextDefinition());
final String leaderboardName = settings.getLeaderboardName();
if (leaderboardNames.contains(leaderboardName)) {
sailingService.getAvailableDetailTypesForLeaderboard(leaderboardName, new AsyncCallback<List<DetailType>>() {
sailingService.getAvailableDetailTypesForLeaderboard(leaderboardName, new AsyncCallback<Collection<DetailType>>() {
@Override
public void onFailure(Throwable caught) {
@@ -48,7 +49,7 @@ public class LeaderboardEditPage extends AbstractSailingEntryPoint {
}
@Override
public void onSuccess(List<DetailType> result) {
public void onSuccess(Collection<DetailType> result) {
SAPHeaderWithAuthentication header = initHeader();
GenericAuthentication genericSailingAuthentication = new FixedSailingAuthentication(getUserService(), header.getAuthenticationMenuView());
AuthorizedContentDecorator authorizedContentDecorator = new GenericAuthorizedContentDecorator(genericSailingAuthentication);
@@ -119,7 +119,7 @@ public class RaceBoardEntryPoint extends AbstractSailingEntryPoint {
public void onSuccess(List<DetailType> result) {
sailingService.getAvailableDetailTypesForLeaderboard(
raceboardContextDefinition.getLeaderboardName(),
new AsyncCallback<List<DetailType>>() {
new AsyncCallback<Collection<DetailType>>() {
@Override
public void onFailure(Throwable caught) {
@@ -128,7 +128,7 @@ public class RaceBoardEntryPoint extends AbstractSailingEntryPoint {
}
@Override
public void onSuccess(List<DetailType> availableDetailTypes) {
public void onSuccess(Collection<DetailType> availableDetailTypes) {
// TODO Auto-generated method stub
final RaceBoardPerspectiveLifecycle lifeCycle = new RaceBoardPerspectiveLifecycle(
StringMessages.INSTANCE, result, getUserService(), availableDetailTypes);
@@ -6942,14 +6942,14 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
}
@Override
public List<DetailType> getAvailableDetailTypesForLeaderboard(String leaderboardName) {
List<DetailType> allowed = new ArrayList<>();
public Collection<DetailType> getAvailableDetailTypesForLeaderboard(String leaderboardName) {
Set<DetailType> allowed = new HashSet<>();
allowed.addAll(DetailType.getAllNonRestrictedDetailTypes());
Leaderboard leaderboard = getService().getLeaderboardByName(leaderboardName);
if (leaderboard != null) {
boolean hasBravoTrack = false;
boolean hasExtendedBravoFixes = false;
for (RaceColumn race : leaderboard.getRaceColumns()) {
abort: for (RaceColumn race : leaderboard.getRaceColumns()) {
for (Fleet fleet : race.getFleets()) {
TrackedRace trace = race.getTrackedRace(fleet);
if(trace != null){
@@ -6960,24 +6960,22 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
hasBravoTrack = true;
if (track.hasExtendedFixes()) {
hasExtendedBravoFixes = true;
break abort;
}
}
}
}
}
}
System.out.println("Getting available types for " + leaderboardName + " " + hasBravoTrack + " " + hasExtendedBravoFixes);
if(hasBravoTrack){
allowed.addAll(DetailType.getRaceBravoDetailTypes());
allowed.addAll(DetailType.getLegBravoDetailTypes());
allowed.addAll(DetailType.getAvailableBravoOverallDetailColumnTypes());
allowed.addAll(DetailType.getOverallBravoDetailTypes());
}
if(hasExtendedBravoFixes){
allowed.addAll(DetailType.getRaceExpeditionDetailTypes());
allowed.addAll(DetailType.getLegExpeditionDetailColumnTypes());
}
} else {
System.out.println("Returning fallback detailtypes");
}
return allowed;
}
@@ -126,7 +126,7 @@ public class EventConfigurationPanelPO extends PageArea {
createDialog.setEventAndCourseArea(eventToLink, courseAreaToLink);
}
createDialog.pressOk();
return waitForPO(ConfirmDialogPO::new, ID_CREATE_DEFAULT_REGATTA_LEADERBOARD_CONFIRM_DIALOG, 5);
return waitForPO(ConfirmDialogPO::new, ID_CREATE_DEFAULT_REGATTA_LEADERBOARD_CONFIRM_DIALOG, 30);
}
private ConfirmDialogPO createRegatta(String name, String boatClass, Date start, Date end) {
@@ -0,0 +1,45 @@
package com.sap.sailing.selenium.pages.leaderboard;
/**
* <p>Helper class for generating debug identifiers.</p>
*
* @author
* Riccardo Nimser
*/
public class DebugIdHelper {
/**
* <p>Creates a debug identifier for the given enum value. The identifier is the camel cased name of the enum value
* as declared in its enum declaration. The name is split into single words using the underscore.</p>
*
* @param value
* The enum value for which the identfier should be created.
* @return
* A debug identifier for the given enum value.
*/
public static <T extends Enum<?>> String createDebugId(T value) {
return createDebugId(value.name(), "_");
}
/**
* <p>Creates a debug identifier for the given name. The name is splited into single words using all whitespace
* characters.</p>
*
* @param value
* The name for which the identifier should be created.
* @return
* A debug identifier for the given enum value.
*/
public static String createDebugId(String name) {
return createDebugId(name, "\\s");
}
private static String createDebugId(String name, String splitRegex) {
StringBuilder builder = new StringBuilder();
for (String token : name.split(splitRegex)) {
builder.append(token.substring(0, 1).toUpperCase());
builder.append(token.substring(1, token.length()).toLowerCase());
}
return builder.toString();
}
}
@@ -1,27 +1,30 @@
package com.sap.sailing.selenium.pages.leaderboard;
import com.sap.sailing.domain.common.DetailType;
public enum DetailCheckboxInfo {
//Overall details
REGATTA_RANK("RegattaRankCheckBox", "Regatta Rank"), TOTAL_DISTANCE("TotalDistanceTraveledCheckBox", "Total distance"), TOTAL_AVERAGE_SPEED_OVER_GROUND("TotalAverageSpeedOverGroundCheckBox", "∅ SOG"), TOTAL_TIME("TotalTimeSailedInSecondsCheckBox", "Total time"), MAXIMUM_SPEED_OVER_GROUND("MaximumSpeedOverGroundInKnotsCheckBox", "Max SOG"), TIME_ON_TIME_FACTOR("TimeOnTimeFactorCheckBox", "ToT Factor"), TIME_ON_DISTANCE_ALLOWANCE("TimeOnDistanceAllowanceInSecondsPerNauticalMileCheckBox", "ToD Allowance"),
REGATTA_RANK(DetailType.REGATTA_RANK, "Regatta Rank"), TOTAL_DISTANCE(DetailType.OVERALL_TOTAL_DISTANCE_TRAVELED , "Total distance"), TOTAL_AVERAGE_SPEED_OVER_GROUND(DetailType.OVERALL_TOTAL_AVERAGE_SPEED_OVER_GROUND, "∅ SOG"), TOTAL_TIME(DetailType.OVERALL_TOTAL_TIME_SAILED_IN_SECONDS, "Total time"), MAXIMUM_SPEED_OVER_GROUND(DetailType.OVERALL_MAXIMUM_SPEED_OVER_GROUND_IN_KNOTS, "Max SOG"), TIME_ON_TIME_FACTOR(DetailType.OVERALL_TIME_ON_TIME_FACTOR, "ToT Factor"), TIME_ON_DISTANCE_ALLOWANCE(DetailType.OVERALL_TIME_ON_DISTANCE_ALLOWANCE_IN_SECONDS_PER_NAUTICAL_MILE, "ToD Allowance"),
//Race details
RACE_GAP_TO_LEADER("RaceGapToLeaderInSecondsCheckBox", "Gap to leader"), RACE_AVERAGE_SPEED_OVER_GROUND("RaceAverageSpeedOverGroundInKnotsCheckBox", "∅ Speed"), RACE_DISTANCE("RaceDistanceTraveledCheckBox", "Distance"), RACE_DISTANCE_INCLUDING_GATE_START("RaceDistanceTraveledIncludingGateStartCheckBox", "Distance (w/ Gate Start)"), RACE_TIME("RaceTimeTraveledCheckBox", "Time"), RACE_CALCULATED_TIME("RaceCalculatedTimeTraveledCheckBox", "Calculated Time"), RACE_CALCULATED_TIME_AT_ESTIMATED_ARRIVAL_AT_COMPETITOR_FARTHEST_AHEAD("RaceCalculatedTimeAtEstimatedArrivalAtCompetitorFarthestAheadCheckBox", "Calc.Time @ Fastest"), RACE_CURRENT_SPEED_OVER_GROUND("RaceCurrentSpeedOverGroundInKnotsCheckBox", "SOG"), RACE_CURRENT_RIDE_HEIGHT("RaceCurrentRideHeightInMetersCheckBox", "Ride Height"), RACE_DISTANCE_TO_COMPETITOR_FARTHEST_AHEAD("RaceDistanceToCompetitorFarthestAheadInMetersCheckBox", "Gap"), NUMBER_OF_MANEUVERS("NumberOfManeuversCheckBox", "Maneuvers"), DISPLAY_LEGS("DisplayLegsCheckBox", "Legs"), CURRENT_LEG("CurrentLegCheckBox", "On Leg"), RACE_AVERAGE_ABSOLUTE_CROSS_TRACK_ERROR("RaceAverageAbsoluteCrossTrackErrorInMetersCheckBox", "∅ XTE"), RACE_AVERAGE_SIGNED_CROSS_TRACK_ERROR("RaceAverageSignedCrossTrackErrorInMetersCheckBox", "∅ XTE +/-"), RACE_RATIO_BETWEEN_TIME_SINCE_LAST_POSITION_FIX_AND_AVERAGE_SAMPLING_INTERVAL("RaceRatioBetweenTimeSinceLastPositionFixAndAverageSamplingIntervalCheckBox", "GPS Lag"),
RACE_GAP_TO_LEADER(DetailType.RACE_GAP_TO_LEADER_IN_SECONDS, "Gap to leader"), RACE_AVERAGE_SPEED_OVER_GROUND(DetailType.RACE_AVERAGE_SPEED_OVER_GROUND_IN_KNOTS, "∅ Speed"), RACE_DISTANCE(DetailType.RACE_DISTANCE_TRAVELED, "Distance"), RACE_DISTANCE_INCLUDING_GATE_START(DetailType.RACE_DISTANCE_TRAVELED_INCLUDING_GATE_START, "Distance (w/ Gate Start)"), RACE_TIME(DetailType.RACE_TIME_TRAVELED, "Time"), RACE_CALCULATED_TIME(DetailType.RACE_CALCULATED_TIME_TRAVELED, "Calculated Time"), RACE_CALCULATED_TIME_AT_ESTIMATED_ARRIVAL_AT_COMPETITOR_FARTHEST_AHEAD(DetailType.RACE_CALCULATED_TIME_AT_ESTIMATED_ARRIVAL_AT_COMPETITOR_FARTHEST_AHEAD, "Calc.Time @ Fastest"), RACE_CURRENT_SPEED_OVER_GROUND(DetailType.RACE_CURRENT_SPEED_OVER_GROUND_IN_KNOTS, "SOG"), RACE_DISTANCE_TO_COMPETITOR_FARTHEST_AHEAD(DetailType.RACE_DISTANCE_TO_COMPETITOR_FARTHEST_AHEAD_IN_METERS, "Gap"), NUMBER_OF_MANEUVERS(DetailType.NUMBER_OF_MANEUVERS, "Maneuvers"), DISPLAY_LEGS(DetailType.RACE_DISPLAY_LEGS, "Legs"), CURRENT_LEG(DetailType.RACE_CURRENT_LEG, "On Leg"), RACE_AVERAGE_ABSOLUTE_CROSS_TRACK_ERROR(DetailType.RACE_AVERAGE_ABSOLUTE_CROSS_TRACK_ERROR_IN_METERS, "∅ XTE"), RACE_AVERAGE_SIGNED_CROSS_TRACK_ERROR(DetailType.RACE_AVERAGE_SIGNED_CROSS_TRACK_ERROR_IN_METERS, "∅ XTE +/-"), RACE_RATIO_BETWEEN_TIME_SINCE_LAST_POSITION_FIX_AND_AVERAGE_SAMPLING_INTERVAL(DetailType.RACE_RATIO_BETWEEN_TIME_SINCE_LAST_POSITION_FIX_AND_AVERAGE_SAMPLING_INTERVAL, "GPS Lag"),
//Race Start Analysis
RACE_DISTANCE_TO_START_FIVE_SECONDS_BEFORE_START("RaceDistanceToStartFiveSecondsBeforeRaceStartCheckBox", "Distance to line 5s before start"), RACE_SPEED_OVER_GROUND_FIVE_SECONDS_BEFORE_START("RaceSpeedOverGroundFiveSecondsBeforeStartCheckBox", "SOG 5s before start"), DISTANCE_TO_START_AT_RACE_START("DistanceToStartAtRaceStartCheckBox", "Distance to line at Start"), TIME_BETWEEN_RACE_START_AND_COMPETITOR_START("TimeBetweenRaceStartAndCompetitorStartCheckBox", "Start delay"), SPEED_OVER_GROUND_AT_RACE_START("SpeedOverGroundAtRaceStartCheckBox", "SOG at Start"), SPEED_OVER_GROUND_WHEN_STARTING("SpeedOverGroundWhenPassingStartCheckBox", "SOG when Starting"), DISTANCE_TO_STARBOARD_END_OF_STARTLINE_WHEN_STARTING("DistanceToStarboardEndOfStartlineWhenPassingStartInMetersCheckBox", "Dist. Stb-Side of Line when Starting"), START_TACK("StartTackCheckBox", "Start Tack"),
RACE_DISTANCE_TO_START_FIVE_SECONDS_BEFORE_START(DetailType.RACE_DISTANCE_TO_START_FIVE_SECONDS_BEFORE_RACE_START, "Distance to line 5s before start"), RACE_SPEED_OVER_GROUND_FIVE_SECONDS_BEFORE_START(DetailType.RACE_SPEED_OVER_GROUND_FIVE_SECONDS_BEFORE_START, "SOG 5s before start"), DISTANCE_TO_START_AT_RACE_START(DetailType.DISTANCE_TO_START_AT_RACE_START, "Distance to line at Start"), TIME_BETWEEN_RACE_START_AND_COMPETITOR_START(DetailType.TIME_BETWEEN_RACE_START_AND_COMPETITOR_START, "Start delay"), SPEED_OVER_GROUND_AT_RACE_START(DetailType.SPEED_OVER_GROUND_AT_RACE_START, "SOG at Start"), SPEED_OVER_GROUND_WHEN_STARTING(DetailType.SPEED_OVER_GROUND_WHEN_PASSING_START, "SOG when Starting"), DISTANCE_TO_STARBOARD_END_OF_STARTLINE_WHEN_STARTING(DetailType.DISTANCE_TO_STARBOARD_END_OF_STARTLINE_WHEN_PASSING_START_IN_METERS, "Dist. Stb-Side of Line when Starting"), START_TACK(DetailType.START_TACK, "Start Tack"),
//Leg Details
AVERAGE_SPEED_OVER_GROUND("AverageSpeedOverGroundInKnotsCheckBox", "∅ Speed"), DISTANCE("DistanceTraveledCheckBox", "Distance"), DISTANCE_INCLUDING_START("DistanceTraveledIncludingGateStartCheckBox", "Distance (w/ Gate Start)"), GAP_TO_LEADER("GapToLeaderInSecondsCheckBox", "Gap to leader"), GAP_CHANGE_SINCE_LEG_START("GapChangeSinceLegStartInSecondsCheckBox", "Gap Change"), SIDE_TO_WHICH_MARK_AT_LEG_START_WAS_ROUNDED("SideToWhichMarkAtLegStartWasRoundedCheckBox", "Mark rounded to"), CURRENT_SPEED_OVER_GROUND("CurrentSpeedOverGroundInKnotsCheckBox", "SOG (∅ at end)"), CURRENT_RIDE_HEIGHT("CurrentRideHeightInMetersCheckBox", "Ride Height (∅ at end)"), WINDWARD_DISTANCE_TO_GO("WindwardDistanceToGoInMetersCheckBox", "Windward distance to go"), NUMBER_OF_MANEVEURS("NumberOfManeuversCheckBox", "Maneuvers"), ESTIMATED_TIME_TO_NEXT_WAYPOINT("EstimatedTimeToNextWaypointInSecondsCheckBox", "ETA"), VELOCITY_MADE_GOOD("VelocityMadeGoodInKnotsCheckBox", "VMG"), TIME("TimeTraveledCheckBox", "Time"), CORRECTED_TIME("CorrectedTimeTraveledCheckBox", "Calculated Time"), AVERAGE_ABSOLUTE_CROSS_TRACK_ERROR("AverageAbsoluteCrossTrackErrorInMetersCheckBox", "∅ XTE"), AVERAGE_SIGNED_CROSS_TRACK_ERROR("AverageSignedCrossTrackErrorInMetersCheckBox", "∅ XTE +/-"), RANK_GAIN("RankGainCheckBox", "Rank Gain"),
AVERAGE_SPEED_OVER_GROUND(DetailType.LEG_AVERAGE_SPEED_OVER_GROUND_IN_KNOTS, "∅ Speed"), DISTANCE(DetailType.LEG_DISTANCE_TRAVELED, "Distance"), DISTANCE_INCLUDING_START(DetailType.LEG_DISTANCE_TRAVELED_INCLUDING_GATE_START, "Distance (w/ Gate Start)"), GAP_TO_LEADER(DetailType.LEG_GAP_TO_LEADER_IN_SECONDS, "Gap to leader"), GAP_CHANGE_SINCE_LEG_START(DetailType.LEG_GAP_CHANGE_SINCE_LEG_START_IN_SECONDS, "Gap Change"), SIDE_TO_WHICH_MARK_AT_LEG_START_WAS_ROUNDED(DetailType.LEG_SIDE_TO_WHICH_MARK_AT_LEG_START_WAS_ROUNDED, "Mark rounded to"), CURRENT_SPEED_OVER_GROUND(DetailType.LEG_CURRENT_SPEED_OVER_GROUND_IN_KNOTS, "SOG (∅ at end)"), WINDWARD_DISTANCE_TO_GO(DetailType.LEG_WINDWARD_DISTANCE_TO_GO_IN_METERS, "Windward distance to go"), NUMBER_OF_MANEVEURS(DetailType.NUMBER_OF_MANEUVERS, "Maneuvers"), ESTIMATED_TIME_TO_NEXT_WAYPOINT(DetailType.LEG_ESTIMATED_TIME_TO_NEXT_WAYPOINT_IN_SECONDS, "ETA"), VELOCITY_MADE_GOOD(DetailType.LEG_VELOCITY_MADE_GOOD_IN_KNOTS, "VMG"), TIME(DetailType.LEG_TIME_TRAVELED, "Time"), CORRECTED_TIME(DetailType.LEG_CORRECTED_TIME_TRAVELED, "Calculated Time"), AVERAGE_ABSOLUTE_CROSS_TRACK_ERROR(DetailType.LEG_AVERAGE_ABSOLUTE_CROSS_TRACK_ERROR_IN_METERS, "∅ XTE"), AVERAGE_SIGNED_CROSS_TRACK_ERROR(DetailType.LEG_AVERAGE_SIGNED_CROSS_TRACK_ERROR_IN_METERS , "∅ XTE +/-"), RANK_GAIN(DetailType.LEG_RANK_GAIN, "Rank Gain"),
//Maneuvers
TACK("TackCheckBox", "Tack"), AVERAGE_TACK_LOSS("AverageTackLossInMetersCheckBox", "∅ Tack Loss"), JIBE("JibeCheckBox", "Jibe"), AVERAGE_JIBE_LOSS("AverageJibeLossInMetersCheckBox", "∅ Jibe Loss"), PENALTY_CIRCLE("PenaltyCircleCheckBox", "Penalty circle"), AVERAGE_MANEUVER_LOSS("AverageManeuverLossInMetersCheckBox", "∅ Maneuver Loss");
TACK(DetailType.TACK, "Tack"), AVERAGE_TACK_LOSS(DetailType.AVERAGE_TACK_LOSS_IN_METERS, "∅ Tack Loss"), JIBE(DetailType.JIBE, "Jibe"), AVERAGE_JIBE_LOSS(DetailType.AVERAGE_JIBE_LOSS_IN_METERS, "∅ Jibe Loss"), PENALTY_CIRCLE(DetailType.PENALTY_CIRCLE, "Penalty circle"), AVERAGE_MANEUVER_LOSS(DetailType.AVERAGE_MANEUVER_LOSS_IN_METERS, "∅ Maneuver Loss");
public static final String CHECK_BOX_DEBUGID_CONSTANT = "CheckBox";
private final String id;
private final String label;
private DetailCheckboxInfo(String id, String label) {
this.id = id;
private DetailCheckboxInfo(DetailType id, String label) {
this.id = DebugIdHelper.createDebugId(id)+CHECK_BOX_DEBUGID_CONSTANT;
this.label = label;
}
@@ -454,7 +454,7 @@ public class SettingsTest extends AbstractSeleniumTest {
DetailCheckboxInfo.RACE_DISTANCE_INCLUDING_GATE_START, DetailCheckboxInfo.RACE_TIME,
DetailCheckboxInfo.RACE_CALCULATED_TIME,
DetailCheckboxInfo.RACE_CALCULATED_TIME_AT_ESTIMATED_ARRIVAL_AT_COMPETITOR_FARTHEST_AHEAD,
DetailCheckboxInfo.RACE_CURRENT_SPEED_OVER_GROUND, DetailCheckboxInfo.RACE_CURRENT_RIDE_HEIGHT,
DetailCheckboxInfo.RACE_CURRENT_SPEED_OVER_GROUND,
DetailCheckboxInfo.RACE_DISTANCE_TO_COMPETITOR_FARTHEST_AHEAD, DetailCheckboxInfo.NUMBER_OF_MANEUVERS,
DetailCheckboxInfo.DISPLAY_LEGS, DetailCheckboxInfo.CURRENT_LEG,
DetailCheckboxInfo.RACE_AVERAGE_ABSOLUTE_CROSS_TRACK_ERROR,
@@ -472,7 +472,7 @@ public class SettingsTest extends AbstractSeleniumTest {
DetailCheckboxInfo.DISTANCE_INCLUDING_START, DetailCheckboxInfo.GAP_TO_LEADER,
DetailCheckboxInfo.GAP_CHANGE_SINCE_LEG_START,
DetailCheckboxInfo.SIDE_TO_WHICH_MARK_AT_LEG_START_WAS_ROUNDED,
DetailCheckboxInfo.CURRENT_SPEED_OVER_GROUND, DetailCheckboxInfo.CURRENT_RIDE_HEIGHT,
DetailCheckboxInfo.CURRENT_SPEED_OVER_GROUND,
DetailCheckboxInfo.WINDWARD_DISTANCE_TO_GO, DetailCheckboxInfo.NUMBER_OF_MANEVEURS,
DetailCheckboxInfo.ESTIMATED_TIME_TO_NEXT_WAYPOINT, DetailCheckboxInfo.VELOCITY_MADE_GOOD,
DetailCheckboxInfo.TIME, DetailCheckboxInfo.CORRECTED_TIME,