diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/DetailType.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/DetailType.java index 0bdddf7ba23..7e234972b41 100755 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/DetailType.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/DetailType.java @@ -10,8 +10,8 @@ import java.io.Serializable; * */ public enum DetailType implements Serializable { - DISTANCE_TRAVELED(0), AVERAGE_SPEED_OVER_GROUND_IN_KNOTS(2), RANK_GAIN(0), NUMBER_OF_MANEUVERS(0), CURRENT_SPEED_OVER_GROUND_IN_KNOTS(2), - ESTIMATED_TIME_TO_NEXT_WAYPOINT_IN_SECONDS(1), VELOCITY_MADE_GOOD_IN_KNOTS(2), GAP_TO_LEADER_IN_SECONDS(0), + DISTANCE_TRAVELED(0), AVERAGE_SPEED_OVER_GROUND_IN_KNOTS(2), RACE_RANK(0), RANK_GAIN(0), NUMBER_OF_MANEUVERS(0), + CURRENT_SPEED_OVER_GROUND_IN_KNOTS(2), ESTIMATED_TIME_TO_NEXT_WAYPOINT_IN_SECONDS(1), VELOCITY_MADE_GOOD_IN_KNOTS(2), GAP_TO_LEADER_IN_SECONDS(0), WINDWARD_DISTANCE_TO_GO_IN_METERS(0), RACE_DISTANCE_TRAVELED(0), RACE_AVERAGE_SPEED_OVER_GROUND_IN_KNOTS(2), RACE_GAP_TO_LEADER_IN_SECONDS(0), RACE_DISTANCE_TO_LEADER_IN_METERS(0), WINDWARD_DISTANCE_TO_OVERALL_LEADER(0), HEAD_UP(0), BEAR_AWAY(0), TACK(0), JIBE(0), PENALTY_CIRCLE(0), MARK_PASSING(0), CURRENT_LEG(0), diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/DetailTypeFormatter.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/DetailTypeFormatter.java index 43a5ccaae2d..8bface250d2 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/DetailTypeFormatter.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/DetailTypeFormatter.java @@ -11,6 +11,8 @@ public class DetailTypeFormatter { return stringMessages.averageSpeedInKnots(); case RANK_GAIN: return stringMessages.rankGain(); + case RACE_RANK: + return stringMessages.rank(); case NUMBER_OF_MANEUVERS: return stringMessages.numberOfManeuvers(); case CURRENT_SPEED_OVER_GROUND_IN_KNOTS: 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 74eec08bbeb..863f76f1401 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 @@ -73,27 +73,27 @@ import com.sap.sailing.gwt.ui.shared.panels.SimpleBusyIndicator; */ public abstract class AbstractChartPanel extends SimpleChartPanel implements CompetitorSelectionChangeListener, RaceSelectionChangeListener, TimeListener, RequiresResize { - protected static final int LINE_WIDTH = 1; - protected MultiCompetitorRaceDataDTO chartData; - protected final SailingServiceAsync sailingService; - protected final AsyncActionsExecutor asyncActionsExecutor; - protected final ErrorReporter errorReporter; - protected Chart chart; + private static final int LINE_WIDTH = 1; + private MultiCompetitorRaceDataDTO chartData; + private final SailingServiceAsync sailingService; + private final AsyncActionsExecutor asyncActionsExecutor; + private final ErrorReporter errorReporter; + private Chart chart; private boolean compactChart; - protected final AbsolutePanel busyIndicatorPanel; - protected final Label noCompetitorsSelectedLabel; - protected final Map dataSeriesByCompetitor; - protected final Map markPassingSeriesByCompetitor; + private final AbsolutePanel busyIndicatorPanel; + private final Label noCompetitorsSelectedLabel; + private final Map dataSeriesByCompetitor; + private final Map markPassingSeriesByCompetitor; private Series timeLineSeries; private boolean timeLineNeedsUpdate = true; private final boolean allowTimeAdjust; private boolean ignoreTimeAdjustOnce; - protected final RaceSelectionProvider raceSelectionProvider; - protected long stepSize = 5000; + private final RaceSelectionProvider raceSelectionProvider; + private long stepSize = 5000; protected final StringMessages stringMessages; - protected final DateTimeFormat dateFormat = DateTimeFormat.getFormat("HH:mm:ss"); - protected DetailType dataToShow; - protected final CompetitorSelectionProvider competitorSelectionProvider; + private final DateTimeFormat dateFormat = DateTimeFormat.getFormat("HH:mm:ss"); + private DetailType dataToShow; + private final CompetitorSelectionProvider competitorSelectionProvider; public AbstractChartPanel(SailingServiceAsync sailingService, AsyncActionsExecutor asyncActionsExecutor, CompetitorSelectionProvider competitorSelectionProvider, RaceSelectionProvider raceSelectionProvider, diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/MultiChartPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/MultiChartPanel.java index ad868ea931a..db300a64bc6 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/MultiChartPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/MultiChartPanel.java @@ -24,9 +24,10 @@ import com.sap.sailing.gwt.ui.shared.components.SettingsDialogComponent; * */ public class MultiChartPanel extends AbstractChartPanel implements Component { - public MultiChartPanel(SailingServiceAsync sailingService, AsyncActionsExecutor asyncActionsExecutor, CompetitorSelectionProvider competitorSelectionProvider, - RaceSelectionProvider raceSelectionProvider, Timer timer, final StringMessages stringMessages, - ErrorReporter errorReporter, boolean compactChart, boolean allowTimeAdjust) { + public MultiChartPanel(SailingServiceAsync sailingService, AsyncActionsExecutor asyncActionsExecutor, + CompetitorSelectionProvider competitorSelectionProvider, RaceSelectionProvider raceSelectionProvider, + Timer timer, final StringMessages stringMessages, ErrorReporter errorReporter, boolean compactChart, + boolean allowTimeAdjust) { super(sailingService, asyncActionsExecutor, competitorSelectionProvider, raceSelectionProvider, timer, stringMessages, errorReporter, /*show initially*/ DetailType.WINDWARD_DISTANCE_TO_OVERALL_LEADER, compactChart, allowTimeAdjust); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/MultiChartSettingsComponent.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/MultiChartSettingsComponent.java index c3817728ff5..35ff4dcec64 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/MultiChartSettingsComponent.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/MultiChartSettingsComponent.java @@ -28,7 +28,8 @@ public class MultiChartSettingsComponent extends AbstractChartSettingsComponent< dataSelection = dialog.createListBox(/* isMultiSelect */ false); int i=0; for (DetailType detailType : new DetailType[] { DetailType.WINDWARD_DISTANCE_TO_OVERALL_LEADER, DetailType.DISTANCE_TRAVELED, - DetailType.VELOCITY_MADE_GOOD_IN_KNOTS, DetailType.GAP_TO_LEADER_IN_SECONDS, DetailType.CURRENT_SPEED_OVER_GROUND_IN_KNOTS }) { + DetailType.VELOCITY_MADE_GOOD_IN_KNOTS, DetailType.GAP_TO_LEADER_IN_SECONDS, DetailType.CURRENT_SPEED_OVER_GROUND_IN_KNOTS, + DetailType.RACE_RANK }) { dataSelection.addItem(DetailTypeFormatter.format(detailType, getStringMessages()), detailType.toString()); if (detailType == initialDataToShow) { dataSelection.setSelectedIndex(i); 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 8990460e6cf..1b536d2c8e7 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 @@ -1564,6 +1564,9 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS Distance distanceToLeader = trackedLeg.getWindwardDistanceToOverallLeader(timePoint); result = (distanceToLeader == null) ? null : distanceToLeader.getMeters(); break; + case RACE_RANK: + result = (double) trackedLeg.getRank(timePoint); + break; } } return result;