mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-30 17:36:40 +00:00
added new method to the sailingservice to retreive the timepoints of the legs (for the TimePanel)
This commit is contained in:
1 parent
afc8392a75
commit
08e30bef40
10 files changed
+128
-12
No files matched your search
@@ -297,3 +297,10 @@ input.magnifier {
|
|||||||
.gwt-DialogBox {
|
.gwt-DialogBox {
|
||||||
z-index: 20;
|
z-index: 20;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.breadcrumbPanel-ActiveBreadcrumb, .breadcrumbPanel-InactiveBreadcrumb, .breadcrumbPanel-NextArrow {
|
||||||
|
font-size: 20px;
|
||||||
|
text-transform: uppercase;
|
||||||
|
color: #a1a1a1;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
+14
-1
@@ -34,6 +34,7 @@ import com.sap.sailing.gwt.ui.client.TimePanel;
|
|||||||
import com.sap.sailing.gwt.ui.client.Timer;
|
import com.sap.sailing.gwt.ui.client.Timer;
|
||||||
import com.sap.sailing.gwt.ui.client.Timer.PlayModes;
|
import com.sap.sailing.gwt.ui.client.Timer.PlayModes;
|
||||||
import com.sap.sailing.gwt.ui.shared.EventDTO;
|
import com.sap.sailing.gwt.ui.shared.EventDTO;
|
||||||
|
import com.sap.sailing.gwt.ui.shared.LegTimepointDTO;
|
||||||
import com.sap.sailing.gwt.ui.shared.PositionDTO;
|
import com.sap.sailing.gwt.ui.shared.PositionDTO;
|
||||||
import com.sap.sailing.gwt.ui.shared.QuickRankDTO;
|
import com.sap.sailing.gwt.ui.shared.QuickRankDTO;
|
||||||
import com.sap.sailing.gwt.ui.shared.RaceDTO;
|
import com.sap.sailing.gwt.ui.shared.RaceDTO;
|
||||||
@@ -155,7 +156,19 @@ public class RaceMapPanel extends FormPanel implements EventDisplayer, TimeListe
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
timePanel.setLegMarkers();
|
|
||||||
|
sailingService.getLegTimePositions(selectedRace.getRaceIdentifier(),
|
||||||
|
new AsyncCallback<List<LegTimepointDTO>>() {
|
||||||
|
@Override
|
||||||
|
public void onFailure(Throwable caught) {
|
||||||
|
errorReporter.reportError("Error obtaining leg timepoints: " + caught.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSuccess(List<LegTimepointDTO> legTimepoints) {
|
||||||
|
timePanel.setLegMarkers(legTimepoints);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+3
@@ -21,6 +21,7 @@ import com.sap.sailing.gwt.ui.shared.EventDTO;
|
|||||||
import com.sap.sailing.gwt.ui.shared.GPSFixDTO;
|
import com.sap.sailing.gwt.ui.shared.GPSFixDTO;
|
||||||
import com.sap.sailing.gwt.ui.shared.LeaderboardDTO;
|
import com.sap.sailing.gwt.ui.shared.LeaderboardDTO;
|
||||||
import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO;
|
import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO;
|
||||||
|
import com.sap.sailing.gwt.ui.shared.LegTimepointDTO;
|
||||||
import com.sap.sailing.gwt.ui.shared.ManeuverDTO;
|
import com.sap.sailing.gwt.ui.shared.ManeuverDTO;
|
||||||
import com.sap.sailing.gwt.ui.shared.MarkDTO;
|
import com.sap.sailing.gwt.ui.shared.MarkDTO;
|
||||||
import com.sap.sailing.gwt.ui.shared.QuickRankDTO;
|
import com.sap.sailing.gwt.ui.shared.QuickRankDTO;
|
||||||
@@ -61,6 +62,8 @@ public interface SailingService extends RemoteService {
|
|||||||
Map<CompetitorDTO, List<GPSFixDTO>> getBoatPositions(RaceIdentifier raceIdentifier, Map<CompetitorDTO, Date> from,
|
Map<CompetitorDTO, List<GPSFixDTO>> getBoatPositions(RaceIdentifier raceIdentifier, Map<CompetitorDTO, Date> from,
|
||||||
Map<CompetitorDTO, Date> to, boolean extrapolate) throws NoWindException;
|
Map<CompetitorDTO, Date> to, boolean extrapolate) throws NoWindException;
|
||||||
|
|
||||||
|
List<LegTimepointDTO> getLegTimePositions(RaceIdentifier raceIdentifier);
|
||||||
|
|
||||||
List<MarkDTO> getMarkPositions(RaceIdentifier raceIdentifier, Date date);
|
List<MarkDTO> getMarkPositions(RaceIdentifier raceIdentifier, Date date);
|
||||||
|
|
||||||
List<QuickRankDTO> getQuickRanks(RaceIdentifier raceIdentifier, Date date) throws NoWindException;
|
List<QuickRankDTO> getQuickRanks(RaceIdentifier raceIdentifier, Date date) throws NoWindException;
|
||||||
|
|||||||
+3
@@ -20,6 +20,7 @@ import com.sap.sailing.gwt.ui.shared.GPSFixDTO;
|
|||||||
import com.sap.sailing.gwt.ui.shared.LeaderboardDTO;
|
import com.sap.sailing.gwt.ui.shared.LeaderboardDTO;
|
||||||
import com.sap.sailing.gwt.ui.shared.LeaderboardEntryDTO;
|
import com.sap.sailing.gwt.ui.shared.LeaderboardEntryDTO;
|
||||||
import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO;
|
import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO;
|
||||||
|
import com.sap.sailing.gwt.ui.shared.LegTimepointDTO;
|
||||||
import com.sap.sailing.gwt.ui.shared.ManeuverDTO;
|
import com.sap.sailing.gwt.ui.shared.ManeuverDTO;
|
||||||
import com.sap.sailing.gwt.ui.shared.MarkDTO;
|
import com.sap.sailing.gwt.ui.shared.MarkDTO;
|
||||||
import com.sap.sailing.gwt.ui.shared.QuickRankDTO;
|
import com.sap.sailing.gwt.ui.shared.QuickRankDTO;
|
||||||
@@ -107,6 +108,8 @@ public interface SailingServiceAsync {
|
|||||||
Map<CompetitorDTO, Date> from, Map<CompetitorDTO, Date> to,
|
Map<CompetitorDTO, Date> from, Map<CompetitorDTO, Date> to,
|
||||||
boolean extrapolate, AsyncCallback<Map<CompetitorDTO, List<GPSFixDTO>>> callback);
|
boolean extrapolate, AsyncCallback<Map<CompetitorDTO, List<GPSFixDTO>>> callback);
|
||||||
|
|
||||||
|
void getLegTimePositions(RaceIdentifier raceIdentifier, AsyncCallback<List<LegTimepointDTO>> callback);
|
||||||
|
|
||||||
void getMarkPositions(RaceIdentifier raceIdentifier, Date date, AsyncCallback<List<MarkDTO>> asyncCallback);
|
void getMarkPositions(RaceIdentifier raceIdentifier, Date date, AsyncCallback<List<MarkDTO>> asyncCallback);
|
||||||
|
|
||||||
void getQuickRanks(RaceIdentifier raceIdentifier, Date date, AsyncCallback<List<QuickRankDTO>> callback);
|
void getQuickRanks(RaceIdentifier raceIdentifier, Date date, AsyncCallback<List<QuickRankDTO>> callback);
|
||||||
|
|||||||
+16
-7
@@ -1,6 +1,7 @@
|
|||||||
package com.sap.sailing.gwt.ui.client;
|
package com.sap.sailing.gwt.ui.client;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import com.google.gwt.core.client.GWT;
|
import com.google.gwt.core.client.GWT;
|
||||||
import com.google.gwt.dom.client.Style;
|
import com.google.gwt.dom.client.Style;
|
||||||
@@ -23,6 +24,7 @@ import com.google.gwt.user.client.ui.RequiresResize;
|
|||||||
import com.google.gwt.user.client.ui.VerticalPanel;
|
import com.google.gwt.user.client.ui.VerticalPanel;
|
||||||
import com.google.gwt.user.client.ui.Widget;
|
import com.google.gwt.user.client.ui.Widget;
|
||||||
import com.sap.sailing.gwt.ui.client.Timer.PlayModes;
|
import com.sap.sailing.gwt.ui.client.Timer.PlayModes;
|
||||||
|
import com.sap.sailing.gwt.ui.shared.LegTimepointDTO;
|
||||||
import com.sap.sailing.gwt.ui.shared.components.Component;
|
import com.sap.sailing.gwt.ui.shared.components.Component;
|
||||||
import com.sap.sailing.gwt.ui.shared.components.SettingsDialog;
|
import com.sap.sailing.gwt.ui.shared.components.SettingsDialog;
|
||||||
import com.sap.sailing.gwt.ui.shared.components.SettingsDialogComponent;
|
import com.sap.sailing.gwt.ui.shared.components.SettingsDialogComponent;
|
||||||
@@ -220,9 +222,11 @@ public class TimePanel extends FormPanel implements Component<TimePanelSettings>
|
|||||||
case Live:
|
case Live:
|
||||||
playModeLabel.setText(stringMessages.playModeLive());
|
playModeLabel.setText(stringMessages.playModeLive());
|
||||||
timeDelayLabel.setText(((int) timer.getCurrentDelay() / 1000) + " s");
|
timeDelayLabel.setText(((int) timer.getCurrentDelay() / 1000) + " s");
|
||||||
|
sliderBar.setEnabled(false);
|
||||||
break;
|
break;
|
||||||
case Replay:
|
case Replay:
|
||||||
playModeLabel.setText(stringMessages.playModeReplay());
|
playModeLabel.setText(stringMessages.playModeReplay());
|
||||||
|
sliderBar.setEnabled(true);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
playModeLabel.setText(timer.getPlayMode().name());
|
playModeLabel.setText(timer.getPlayMode().name());
|
||||||
@@ -254,16 +258,21 @@ public class TimePanel extends FormPanel implements Component<TimePanelSettings>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setLegMarkers() {
|
public void setLegMarkers(List<LegTimepointDTO> legTimepoints) {
|
||||||
if(sliderBar.isMinMaxInitialized()) {
|
if(sliderBar.isMinMaxInitialized()) {
|
||||||
sliderBar.clearMarkers();
|
sliderBar.clearMarkers();
|
||||||
Double minValue = sliderBar.getMinValue();
|
|
||||||
Double maxValue = sliderBar.getMaxValue();
|
for (LegTimepointDTO legTimepointDTO : legTimepoints) {
|
||||||
int legCount = 5;
|
sliderBar.addMarker(legTimepointDTO.name, new Double(legTimepointDTO.firstPassingDate.getTime()));
|
||||||
double diff = (maxValue - minValue) / (double) legCount;
|
|
||||||
for(int i = 0; i < legCount; i++) {
|
|
||||||
sliderBar.addMarker("L" + (i + 1), minValue + i * diff);
|
|
||||||
}
|
}
|
||||||
|
// Double minValue = sliderBar.getMinValue();
|
||||||
|
// Double maxValue = sliderBar.getMaxValue();
|
||||||
|
// int legCount = 5;
|
||||||
|
// double diff = (maxValue - minValue) / (double) legCount;
|
||||||
|
// for(int i = 0; i < legCount; i++) {
|
||||||
|
// sliderBar.addMarker("L" + (i + 1), minValue + i * diff);
|
||||||
|
// }
|
||||||
sliderBar.redraw();
|
sliderBar.redraw();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -209,5 +209,9 @@ public class Timer {
|
|||||||
public PlayModes getPlayMode() {
|
public PlayModes getPlayMode() {
|
||||||
return playMode;
|
return playMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setPlayMode(PlayModes playMode) {
|
||||||
|
this.playMode = playMode;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
+17
@@ -28,6 +28,7 @@ import com.google.gwt.user.cellview.client.ColumnSortEvent.ListHandler;
|
|||||||
import com.google.gwt.user.cellview.client.ColumnSortList.ColumnSortInfo;
|
import com.google.gwt.user.cellview.client.ColumnSortList.ColumnSortInfo;
|
||||||
import com.google.gwt.user.cellview.client.Header;
|
import com.google.gwt.user.cellview.client.Header;
|
||||||
import com.google.gwt.user.cellview.client.TextHeader;
|
import com.google.gwt.user.cellview.client.TextHeader;
|
||||||
|
import com.google.gwt.user.client.Window;
|
||||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||||
import com.google.gwt.user.client.ui.AbstractImagePrototype;
|
import com.google.gwt.user.client.ui.AbstractImagePrototype;
|
||||||
import com.google.gwt.user.client.ui.Anchor;
|
import com.google.gwt.user.client.ui.Anchor;
|
||||||
@@ -45,6 +46,7 @@ import com.google.gwt.view.client.SelectionChangeEvent;
|
|||||||
import com.google.gwt.view.client.SelectionChangeEvent.Handler;
|
import com.google.gwt.view.client.SelectionChangeEvent.Handler;
|
||||||
import com.sap.sailing.domain.common.DetailType;
|
import com.sap.sailing.domain.common.DetailType;
|
||||||
import com.sap.sailing.domain.common.RaceIdentifier;
|
import com.sap.sailing.domain.common.RaceIdentifier;
|
||||||
|
import com.sap.sailing.domain.common.impl.Util.Pair;
|
||||||
import com.sap.sailing.gwt.ui.client.Collator;
|
import com.sap.sailing.gwt.ui.client.Collator;
|
||||||
import com.sap.sailing.gwt.ui.client.CompetitorSelectionChangeListener;
|
import com.sap.sailing.gwt.ui.client.CompetitorSelectionChangeListener;
|
||||||
import com.sap.sailing.gwt.ui.client.CompetitorSelectionProvider;
|
import com.sap.sailing.gwt.ui.client.CompetitorSelectionProvider;
|
||||||
@@ -66,6 +68,7 @@ import com.sap.sailing.gwt.ui.shared.components.Component;
|
|||||||
import com.sap.sailing.gwt.ui.shared.components.IsEmbeddableComponent;
|
import com.sap.sailing.gwt.ui.shared.components.IsEmbeddableComponent;
|
||||||
import com.sap.sailing.gwt.ui.shared.components.SettingsDialog;
|
import com.sap.sailing.gwt.ui.shared.components.SettingsDialog;
|
||||||
import com.sap.sailing.gwt.ui.shared.components.SettingsDialogComponent;
|
import com.sap.sailing.gwt.ui.shared.components.SettingsDialogComponent;
|
||||||
|
import com.sap.sailing.gwt.ui.shared.panels.BreadcrumbPanel;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A leaderboard essentially consists of a table widget that in its columns displays the entries.
|
* A leaderboard essentially consists of a table widget that in its columns displays the entries.
|
||||||
@@ -848,6 +851,20 @@ public class LeaderboardPanel extends FormPanel implements TimeListener, PlaySta
|
|||||||
getLeaderboardTable().addColumnSortHandler(listHandler);
|
getLeaderboardTable().addColumnSortHandler(listHandler);
|
||||||
loadCompleteLeaderboard(getLeaderboardDisplayDate());
|
loadCompleteLeaderboard(getLeaderboardDisplayDate());
|
||||||
|
|
||||||
|
// create the breadcrumb navigation
|
||||||
|
// ArrayList<Pair<String, String>> breadcrumbLinksData = new ArrayList<Pair<String, String>>();
|
||||||
|
// String debugParam = Window.Location.getParameter("gwt.codesvr");
|
||||||
|
//
|
||||||
|
// if(leaderboardGroup != null) {
|
||||||
|
// String link = "/gwt/Spectator.html?leaderboardGroupName=" + leaderboardGroup.name;
|
||||||
|
// if(debugParam != null && !debugParam.isEmpty())
|
||||||
|
// link += "&gwt.codesvr=" + debugParam;
|
||||||
|
// breadcrumbLinksData.add(new Pair<String, String>(link, leaderboardGroup.name));
|
||||||
|
// }
|
||||||
|
// breadcrumbPanel = new BreadcrumbPanel(breadcrumbLinksData, selectedRaceIdentifier.getRaceName());
|
||||||
|
// mainPanel.add(breadcrumbPanel);
|
||||||
|
|
||||||
|
|
||||||
contentPanel = new VerticalPanel();
|
contentPanel = new VerticalPanel();
|
||||||
headerPanel = new DockPanel();
|
headerPanel = new DockPanel();
|
||||||
DockPanel toolbarPanel = new DockPanel();
|
DockPanel toolbarPanel = new DockPanel();
|
||||||
|
|||||||
+23
-4
@@ -10,6 +10,7 @@ import java.util.Map;
|
|||||||
import com.google.gwt.event.dom.client.ClickEvent;
|
import com.google.gwt.event.dom.client.ClickEvent;
|
||||||
import com.google.gwt.event.dom.client.ClickHandler;
|
import com.google.gwt.event.dom.client.ClickHandler;
|
||||||
import com.google.gwt.user.client.Window;
|
import com.google.gwt.user.client.Window;
|
||||||
|
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||||
import com.google.gwt.user.client.ui.Anchor;
|
import com.google.gwt.user.client.ui.Anchor;
|
||||||
import com.google.gwt.user.client.ui.FlowPanel;
|
import com.google.gwt.user.client.ui.FlowPanel;
|
||||||
import com.google.gwt.user.client.ui.FormPanel;
|
import com.google.gwt.user.client.ui.FormPanel;
|
||||||
@@ -35,6 +36,7 @@ import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
|
|||||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings;
|
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings;
|
||||||
import com.sap.sailing.gwt.ui.shared.EventDTO;
|
import com.sap.sailing.gwt.ui.shared.EventDTO;
|
||||||
import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO;
|
import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO;
|
||||||
|
import com.sap.sailing.gwt.ui.shared.LegTimepointDTO;
|
||||||
import com.sap.sailing.gwt.ui.shared.RaceDTO;
|
import com.sap.sailing.gwt.ui.shared.RaceDTO;
|
||||||
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
||||||
import com.sap.sailing.gwt.ui.shared.components.ComponentViewer;
|
import com.sap.sailing.gwt.ui.shared.components.ComponentViewer;
|
||||||
@@ -83,10 +85,16 @@ public class RaceBoardPanel extends FormPanel implements EventDisplayer, RaceSel
|
|||||||
collapsableViewers = new ArrayList<CollapsableComponentViewer<?>>();
|
collapsableViewers = new ArrayList<CollapsableComponentViewer<?>>();
|
||||||
CompetitorSelectionModel competitorSelectionModel = new CompetitorSelectionModel(/* hasMultiSelection */ true);
|
CompetitorSelectionModel competitorSelectionModel = new CompetitorSelectionModel(/* hasMultiSelection */ true);
|
||||||
|
|
||||||
String debugParam = Window.Location.getParameter("gwt.codesvr");
|
// create the breadcrumb navigation
|
||||||
String link = "/gwt/Spectator.html" + (debugParam != null && !debugParam.isEmpty() ? "?gwt.codesvr=" + debugParam : "");
|
|
||||||
ArrayList<Pair<String, String>> breadcrumbLinksData = new ArrayList<Pair<String, String>>();
|
ArrayList<Pair<String, String>> breadcrumbLinksData = new ArrayList<Pair<String, String>>();
|
||||||
breadcrumbLinksData.add(new Pair<String, String>(link, stringMessages.home()));
|
String debugParam = Window.Location.getParameter("gwt.codesvr");
|
||||||
|
|
||||||
|
if(leaderboardGroup != null) {
|
||||||
|
String link = "/gwt/Spectator.html?leaderboardGroupName=" + leaderboardGroup.name;
|
||||||
|
if(debugParam != null && !debugParam.isEmpty())
|
||||||
|
link += "&gwt.codesvr=" + debugParam;
|
||||||
|
breadcrumbLinksData.add(new Pair<String, String>(link, leaderboardGroup.name));
|
||||||
|
}
|
||||||
breadcrumbPanel = new BreadcrumbPanel(breadcrumbLinksData, selectedRaceIdentifier.getRaceName());
|
breadcrumbPanel = new BreadcrumbPanel(breadcrumbLinksData, selectedRaceIdentifier.getRaceName());
|
||||||
mainPanel.add(breadcrumbPanel);
|
mainPanel.add(breadcrumbPanel);
|
||||||
|
|
||||||
@@ -214,7 +222,18 @@ public class RaceBoardPanel extends FormPanel implements EventDisplayer, RaceSel
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
timePanel.setLegMarkers();
|
sailingService.getLegTimePositions(selectedRace.getRaceIdentifier(),
|
||||||
|
new AsyncCallback<List<LegTimepointDTO>>() {
|
||||||
|
@Override
|
||||||
|
public void onFailure(Throwable caught) {
|
||||||
|
errorReporter.reportError("Error obtaining leg timepoints: " + caught.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSuccess(List<LegTimepointDTO> legTimepoints) {
|
||||||
|
timePanel.setLegMarkers(legTimepoints);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+23
@@ -89,6 +89,7 @@ import com.sap.sailing.domain.tracking.GPSFixTrack;
|
|||||||
import com.sap.sailing.domain.tracking.Maneuver;
|
import com.sap.sailing.domain.tracking.Maneuver;
|
||||||
import com.sap.sailing.domain.tracking.MarkPassing;
|
import com.sap.sailing.domain.tracking.MarkPassing;
|
||||||
import com.sap.sailing.domain.tracking.RacesHandle;
|
import com.sap.sailing.domain.tracking.RacesHandle;
|
||||||
|
import com.sap.sailing.domain.tracking.TrackedLeg;
|
||||||
import com.sap.sailing.domain.tracking.TrackedLegOfCompetitor;
|
import com.sap.sailing.domain.tracking.TrackedLegOfCompetitor;
|
||||||
import com.sap.sailing.domain.tracking.TrackedRace;
|
import com.sap.sailing.domain.tracking.TrackedRace;
|
||||||
import com.sap.sailing.domain.tracking.Wind;
|
import com.sap.sailing.domain.tracking.Wind;
|
||||||
@@ -109,6 +110,7 @@ import com.sap.sailing.gwt.ui.shared.LeaderboardEntryDTO;
|
|||||||
import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO;
|
import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO;
|
||||||
import com.sap.sailing.gwt.ui.shared.LeaderboardRowDTO;
|
import com.sap.sailing.gwt.ui.shared.LeaderboardRowDTO;
|
||||||
import com.sap.sailing.gwt.ui.shared.LegEntryDTO;
|
import com.sap.sailing.gwt.ui.shared.LegEntryDTO;
|
||||||
|
import com.sap.sailing.gwt.ui.shared.LegTimepointDTO;
|
||||||
import com.sap.sailing.gwt.ui.shared.ManeuverDTO;
|
import com.sap.sailing.gwt.ui.shared.ManeuverDTO;
|
||||||
import com.sap.sailing.gwt.ui.shared.MarkDTO;
|
import com.sap.sailing.gwt.ui.shared.MarkDTO;
|
||||||
import com.sap.sailing.gwt.ui.shared.PositionDTO;
|
import com.sap.sailing.gwt.ui.shared.PositionDTO;
|
||||||
@@ -744,6 +746,27 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
|
|||||||
createSpeedWithBearingDTO(speedWithBearing), tack, legType, extrapolated);
|
createSpeedWithBearingDTO(speedWithBearing), tack, legType, extrapolated);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<LegTimepointDTO> getLegTimePositions(RaceIdentifier raceIdentifier) {
|
||||||
|
List<LegTimepointDTO> result = new ArrayList<LegTimepointDTO>();
|
||||||
|
TrackedRace trackedRace = getExistingTrackedRace(raceIdentifier);
|
||||||
|
if (trackedRace != null) {
|
||||||
|
Iterable<TrackedLeg> trackedLegs = trackedRace.getTrackedLegs();
|
||||||
|
int i = 1;
|
||||||
|
for (TrackedLeg trackedLeg : trackedLegs) {
|
||||||
|
Waypoint to = trackedLeg.getLeg().getTo();
|
||||||
|
Iterable<MarkPassing> markPassings = trackedRace.getMarkPassingsInOrder(to);
|
||||||
|
if(markPassings != null) {
|
||||||
|
MarkPassing firstPassing = markPassings.iterator().next();
|
||||||
|
LegTimepointDTO legTimepointDTO = new LegTimepointDTO("L" + i++);
|
||||||
|
legTimepointDTO.firstPassingDate = firstPassing.getTimePoint().asDate();
|
||||||
|
result.add(legTimepointDTO);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<MarkDTO> getMarkPositions(RaceIdentifier raceIdentifier, Date date) {
|
public List<MarkDTO> getMarkPositions(RaceIdentifier raceIdentifier, Date date) {
|
||||||
List<MarkDTO> result = new ArrayList<MarkDTO>();
|
List<MarkDTO> result = new ArrayList<MarkDTO>();
|
||||||
|
|||||||
+18
@@ -0,0 +1,18 @@
|
|||||||
|
package com.sap.sailing.gwt.ui.shared;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
import com.google.gwt.user.client.rpc.IsSerializable;
|
||||||
|
|
||||||
|
public class LegTimepointDTO extends NamedDTO implements IsSerializable {
|
||||||
|
public Date firstPassingDate;
|
||||||
|
|
||||||
|
public Date lastPassingDate;
|
||||||
|
|
||||||
|
public LegTimepointDTO() {}
|
||||||
|
|
||||||
|
public LegTimepointDTO(String name) {
|
||||||
|
super(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Reference in new issue
Block a user