mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-04 19:33:52 +00:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
d96b4cac24
6 files changed
+114
-72
No files matched your search
+39
-42
@@ -232,48 +232,8 @@ implements CompetitorSelectionChangeListener, RaceSelectionChangeListener, TimeL
|
|||||||
|
|
||||||
protected void loadData() {
|
protected void loadData() {
|
||||||
chartAndBusyIndicatorPanel.showWidget(0);
|
chartAndBusyIndicatorPanel.showWidget(0);
|
||||||
final Runnable loadData = new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
final List<CompetitorDTO> competitorsToLoad = new ArrayList<CompetitorDTO>();
|
|
||||||
for (CompetitorDTO competitor : competitorSelectionProvider.getAllCompetitors()) {
|
|
||||||
if (isCompetitorVisible(competitor) && !seriesByCompetitor.keySet().contains(competitor)) {
|
|
||||||
competitorsToLoad.add(competitor);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
final CompetitorsAndTimePointsDTO competitorsAndTimePointsToLoad = new CompetitorsAndTimePointsDTO(
|
|
||||||
getStepsToLoad());
|
|
||||||
competitorsAndTimePointsToLoad.setStartTime(getCompetitorsAndTimePointsDTO().getStartTime());
|
|
||||||
competitorsAndTimePointsToLoad.setTimePointOfNewestEvent(getCompetitorsAndTimePointsDTO()
|
|
||||||
.getTimePointOfNewestEvent());
|
|
||||||
for (CompetitorDTO competitor : competitorsToLoad) {
|
|
||||||
competitorsAndTimePointsToLoad.setMarkPassings(competitor,
|
|
||||||
getCompetitorsAndTimePointsDTO().getMarkPassings(competitor));
|
|
||||||
}
|
|
||||||
competitorsAndTimePointsToLoad.setCompetitors(competitorsToLoad.toArray(new CompetitorDTO[0]));
|
|
||||||
AbstractChartPanel.this.sailingService.getCompetitorRaceData(getSelectedRace(),
|
|
||||||
competitorsAndTimePointsToLoad, getDataToShow(), new AsyncCallback<CompetitorInRaceDTO>() {
|
|
||||||
@Override
|
|
||||||
public void onFailure(Throwable caught) {
|
|
||||||
errorReporter.reportError(getStringMessages().failedToLoadRaceData() + ": "
|
|
||||||
+ caught.toString());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onSuccess(CompetitorInRaceDTO result) {
|
|
||||||
fireEvent(new DataLoadedEvent());
|
|
||||||
for (CompetitorDTO competitor : competitorsToLoad) {
|
|
||||||
chartData.setRaceData(competitor, result.getRaceData(competitor));
|
|
||||||
chartData.setMarkPassingData(competitor, result.getMarkPassings(competitor));
|
|
||||||
}
|
|
||||||
updateTableData(competitorsAndTimePointsToLoad.getCompetitors());
|
|
||||||
chartAndBusyIndicatorPanel.showWidget(1);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
|
||||||
if (getCompetitorsAndTimePointsDTO() != null) {
|
if (getCompetitorsAndTimePointsDTO() != null) {
|
||||||
loadData.run();
|
doLoadData();
|
||||||
} else {
|
} else {
|
||||||
this.sailingService.getCompetitorsAndTimePoints(getSelectedRace(), getStepsToLoad(),
|
this.sailingService.getCompetitorsAndTimePoints(getSelectedRace(), getStepsToLoad(),
|
||||||
new AsyncCallback<CompetitorsAndTimePointsDTO>() {
|
new AsyncCallback<CompetitorsAndTimePointsDTO>() {
|
||||||
@@ -285,12 +245,49 @@ implements CompetitorSelectionChangeListener, RaceSelectionChangeListener, TimeL
|
|||||||
@Override
|
@Override
|
||||||
public void onSuccess(CompetitorsAndTimePointsDTO result) {
|
public void onSuccess(CompetitorsAndTimePointsDTO result) {
|
||||||
setCompetitorsAndTimePointsDTO(result);
|
setCompetitorsAndTimePointsDTO(result);
|
||||||
loadData.run();
|
doLoadData();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void doLoadData() {
|
||||||
|
final List<CompetitorDTO> competitorsToLoad = new ArrayList<CompetitorDTO>();
|
||||||
|
for (CompetitorDTO competitor : competitorSelectionProvider.getAllCompetitors()) {
|
||||||
|
if (isCompetitorVisible(competitor) && !seriesByCompetitor.keySet().contains(competitor)) {
|
||||||
|
competitorsToLoad.add(competitor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
final CompetitorsAndTimePointsDTO competitorsAndTimePointsToLoad = new CompetitorsAndTimePointsDTO(
|
||||||
|
getStepsToLoad());
|
||||||
|
competitorsAndTimePointsToLoad.setStartTime(getCompetitorsAndTimePointsDTO().getStartTime());
|
||||||
|
competitorsAndTimePointsToLoad.setTimePointOfNewestEvent(getCompetitorsAndTimePointsDTO()
|
||||||
|
.getTimePointOfNewestEvent());
|
||||||
|
for (CompetitorDTO competitor : competitorsToLoad) {
|
||||||
|
competitorsAndTimePointsToLoad.setMarkPassings(competitor, getCompetitorsAndTimePointsDTO()
|
||||||
|
.getMarkPassings(competitor));
|
||||||
|
}
|
||||||
|
competitorsAndTimePointsToLoad.setCompetitors(competitorsToLoad.toArray(new CompetitorDTO[0]));
|
||||||
|
AbstractChartPanel.this.sailingService.getCompetitorRaceData(getSelectedRace(), competitorsAndTimePointsToLoad,
|
||||||
|
getDataToShow(), new AsyncCallback<CompetitorInRaceDTO>() {
|
||||||
|
@Override
|
||||||
|
public void onFailure(Throwable caught) {
|
||||||
|
errorReporter.reportError(getStringMessages().failedToLoadRaceData() + ": " + caught.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSuccess(CompetitorInRaceDTO result) {
|
||||||
|
fireEvent(new DataLoadedEvent());
|
||||||
|
for (CompetitorDTO competitor : competitorsToLoad) {
|
||||||
|
chartData.setRaceData(competitor, result.getRaceData(competitor));
|
||||||
|
chartData.setMarkPassingData(competitor, result.getMarkPassings(competitor));
|
||||||
|
}
|
||||||
|
updateTableData(competitorsAndTimePointsToLoad.getCompetitors());
|
||||||
|
chartAndBusyIndicatorPanel.showWidget(1);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
private RaceIdentifier getSelectedRace() {
|
private RaceIdentifier getSelectedRace() {
|
||||||
RaceIdentifier result = null;
|
RaceIdentifier result = null;
|
||||||
List<RaceIdentifier> selectedRaces = raceSelectionProvider.getSelectedRaces();
|
List<RaceIdentifier> selectedRaces = raceSelectionProvider.getSelectedRaces();
|
||||||
|
|||||||
+3
-6
@@ -22,7 +22,6 @@ public class LeaderboardPage extends AbstractEntryPoint {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onModuleLoad() {
|
public void onModuleLoad() {
|
||||||
|
|
||||||
super.onModuleLoad();
|
super.onModuleLoad();
|
||||||
sailingService.getLeaderboardNames(new AsyncCallback<List<String>>() {
|
sailingService.getLeaderboardNames(new AsyncCallback<List<String>>() {
|
||||||
@Override
|
@Override
|
||||||
@@ -43,15 +42,12 @@ public class LeaderboardPage extends AbstractEntryPoint {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createLeaderboardPanel()
|
private void createLeaderboardPanel() {
|
||||||
{
|
|
||||||
LogoAndTitlePanel logoAndTitlePanel = new LogoAndTitlePanel(stringMessages);
|
LogoAndTitlePanel logoAndTitlePanel = new LogoAndTitlePanel(stringMessages);
|
||||||
logoAndTitlePanel.addStyleName("LogoAndTitlePanel");
|
logoAndTitlePanel.addStyleName("LogoAndTitlePanel");
|
||||||
|
|
||||||
// create the breadcrumb navigation
|
// create the breadcrumb navigation
|
||||||
ArrayList<Pair<String, String>> breadcrumbLinksData = new ArrayList<Pair<String, String>>();
|
ArrayList<Pair<String, String>> breadcrumbLinksData = new ArrayList<Pair<String, String>>();
|
||||||
String debugParam = Window.Location.getParameter("gwt.codesvr");
|
String debugParam = Window.Location.getParameter("gwt.codesvr");
|
||||||
|
|
||||||
if(leaderboardGroupName != null) {
|
if(leaderboardGroupName != null) {
|
||||||
String link = "/gwt/Spectator.html?leaderboardGroupName=" + leaderboardGroupName;
|
String link = "/gwt/Spectator.html?leaderboardGroupName=" + leaderboardGroupName;
|
||||||
if(debugParam != null && !debugParam.isEmpty())
|
if(debugParam != null && !debugParam.isEmpty())
|
||||||
@@ -59,7 +55,8 @@ public class LeaderboardPage extends AbstractEntryPoint {
|
|||||||
breadcrumbLinksData.add(new Pair<String, String>(link, leaderboardGroupName));
|
breadcrumbLinksData.add(new Pair<String, String>(link, leaderboardGroupName));
|
||||||
}
|
}
|
||||||
BreadcrumbPanel breadcrumbPanel = new BreadcrumbPanel(breadcrumbLinksData, leaderboardName.toUpperCase());
|
BreadcrumbPanel breadcrumbPanel = new BreadcrumbPanel(breadcrumbLinksData, leaderboardName.toUpperCase());
|
||||||
LeaderboardPanel leaderboardPanel = new LeaderboardPanel(sailingService, LeaderboardSettingsFactory.getInstance().createNewDefaultSettings(true),
|
LeaderboardPanel leaderboardPanel = new LeaderboardPanel(sailingService,
|
||||||
|
LeaderboardSettingsFactory.getInstance().createNewDefaultSettings(/* autoExpandFirstRace */ false),
|
||||||
/* preSelectedRace */ null, new CompetitorSelectionModel(/* hasMultiSelection */ true),
|
/* preSelectedRace */ null, new CompetitorSelectionModel(/* hasMultiSelection */ true),
|
||||||
new Timer(PlayModes.Live, /* delayBetweenAutoAdvancesInMilliseconds */3000l),
|
new Timer(PlayModes.Live, /* delayBetweenAutoAdvancesInMilliseconds */3000l),
|
||||||
leaderboardName, leaderboardGroupName,
|
leaderboardName, leaderboardGroupName,
|
||||||
|
|||||||
+31
-24
@@ -1295,6 +1295,18 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
|
|||||||
Collections.sort(countryCodes);
|
Collections.sort(countryCodes);
|
||||||
return countryCodes.toArray(new String[0]);
|
return countryCodes.toArray(new String[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Finds a competitor in a sequence of competitors that has an {@link Competitor#getId()} equal to <code>id</code>.
|
||||||
|
*/
|
||||||
|
private Competitor getCompetitorById(Iterable<Competitor> competitors, String id) {
|
||||||
|
for (Competitor c : competitors) {
|
||||||
|
if (c.getId().toString().equals(id)) {
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CompetitorInRaceDTO getCompetitorRaceData(RaceIdentifier race,
|
public CompetitorInRaceDTO getCompetitorRaceData(RaceIdentifier race,
|
||||||
@@ -1302,24 +1314,19 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
|
|||||||
CompetitorInRaceDTO competitorData = new CompetitorInRaceDTO();
|
CompetitorInRaceDTO competitorData = new CompetitorInRaceDTO();
|
||||||
TrackedRace trackedRace = getExistingTrackedRace(race);
|
TrackedRace trackedRace = getExistingTrackedRace(race);
|
||||||
if (trackedRace != null) {
|
if (trackedRace != null) {
|
||||||
Iterable<Competitor> competitors = trackedRace.getRace().getCompetitors();
|
List<Competitor> selectedCompetitors = new ArrayList<Competitor>();
|
||||||
List<Competitor> selectedCompetitor = new ArrayList<Competitor>();
|
|
||||||
for (CompetitorDTO cDTO : competitorAndTimePointsDTO.getCompetitors()) {
|
for (CompetitorDTO cDTO : competitorAndTimePointsDTO.getCompetitors()) {
|
||||||
for (Competitor c : competitors) {
|
selectedCompetitors.add(getCompetitorById(trackedRace.getRace().getCompetitors(), cDTO.id));
|
||||||
if (c.getId().toString().equals(cDTO.id)) {
|
|
||||||
selectedCompetitor.add(c);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (dataType) {
|
switch (dataType) {
|
||||||
case CURRENT_SPEED_OVER_GROUND_IN_KNOTS:
|
case CURRENT_SPEED_OVER_GROUND_IN_KNOTS:
|
||||||
for (int c = 0; c < selectedCompetitor.size(); c++) {
|
for (int c = 0; c < selectedCompetitors.size(); c++) {
|
||||||
Double[] entries = new Double[competitorAndTimePointsDTO.getTimePoints().length];
|
Double[] entries = new Double[competitorAndTimePointsDTO.getTimePoints().length];
|
||||||
for (int i = 0; i < competitorAndTimePointsDTO.getTimePoints().length; i++) {
|
for (int i = 0; i < competitorAndTimePointsDTO.getTimePoints().length; i++) {
|
||||||
MillisecondsTimePoint time = new MillisecondsTimePoint(
|
MillisecondsTimePoint time = new MillisecondsTimePoint(
|
||||||
competitorAndTimePointsDTO.getTimePoints()[i]);
|
competitorAndTimePointsDTO.getTimePoints()[i]);
|
||||||
TrackedLegOfCompetitor trackedLeg = trackedRace.getTrackedLeg(selectedCompetitor.get(c), time);
|
TrackedLegOfCompetitor trackedLeg = trackedRace.getTrackedLeg(selectedCompetitors.get(c), time);
|
||||||
if (trackedLeg != null) {
|
if (trackedLeg != null) {
|
||||||
SpeedWithBearing speedOverGround = trackedLeg.getSpeedOverGround(time);
|
SpeedWithBearing speedOverGround = trackedLeg.getSpeedOverGround(time);
|
||||||
entries[i] = (speedOverGround == null) ? null : speedOverGround.getKnots();
|
entries[i] = (speedOverGround == null) ? null : speedOverGround.getKnots();
|
||||||
@@ -1331,7 +1338,7 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
|
|||||||
for (int i = 0; i < competitorAndTimePointsDTO.getMarkPassings(competitor).length; i++) {
|
for (int i = 0; i < competitorAndTimePointsDTO.getMarkPassings(competitor).length; i++) {
|
||||||
MillisecondsTimePoint time = new MillisecondsTimePoint(
|
MillisecondsTimePoint time = new MillisecondsTimePoint(
|
||||||
competitorAndTimePointsDTO.getMarkPassings(competitor)[i].getB());
|
competitorAndTimePointsDTO.getMarkPassings(competitor)[i].getB());
|
||||||
TrackedLegOfCompetitor trackedLeg = trackedRace.getTrackedLeg(selectedCompetitor.get(c), time);
|
TrackedLegOfCompetitor trackedLeg = trackedRace.getTrackedLeg(selectedCompetitors.get(c), time);
|
||||||
if (trackedLeg != null) {
|
if (trackedLeg != null) {
|
||||||
SpeedWithBearing speedOverGround = trackedLeg.getSpeedOverGround(time);
|
SpeedWithBearing speedOverGround = trackedLeg.getSpeedOverGround(time);
|
||||||
entries[i] = (speedOverGround == null) ? null : speedOverGround.getKnots();
|
entries[i] = (speedOverGround == null) ? null : speedOverGround.getKnots();
|
||||||
@@ -1341,12 +1348,12 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case VELOCITY_MADE_GOOD_IN_KNOTS:
|
case VELOCITY_MADE_GOOD_IN_KNOTS:
|
||||||
for (int c = 0; c < selectedCompetitor.size(); c++) {
|
for (int c = 0; c < selectedCompetitors.size(); c++) {
|
||||||
Double[] entries = new Double[competitorAndTimePointsDTO.getTimePoints().length];
|
Double[] entries = new Double[competitorAndTimePointsDTO.getTimePoints().length];
|
||||||
for (int i = 0; i < competitorAndTimePointsDTO.getTimePoints().length; i++) {
|
for (int i = 0; i < competitorAndTimePointsDTO.getTimePoints().length; i++) {
|
||||||
MillisecondsTimePoint time = new MillisecondsTimePoint(
|
MillisecondsTimePoint time = new MillisecondsTimePoint(
|
||||||
competitorAndTimePointsDTO.getTimePoints()[i]);
|
competitorAndTimePointsDTO.getTimePoints()[i]);
|
||||||
TrackedLegOfCompetitor trackedLeg = trackedRace.getTrackedLeg(selectedCompetitor.get(c), time);
|
TrackedLegOfCompetitor trackedLeg = trackedRace.getTrackedLeg(selectedCompetitors.get(c), time);
|
||||||
if (trackedLeg != null) {
|
if (trackedLeg != null) {
|
||||||
Speed velocityMadeGood = trackedLeg.getVelocityMadeGood(time);
|
Speed velocityMadeGood = trackedLeg.getVelocityMadeGood(time);
|
||||||
entries[i] = (velocityMadeGood == null) ? null : velocityMadeGood.getKnots();
|
entries[i] = (velocityMadeGood == null) ? null : velocityMadeGood.getKnots();
|
||||||
@@ -1358,7 +1365,7 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
|
|||||||
for (int i = 0; i < competitorAndTimePointsDTO.getMarkPassings(competitor).length; i++) {
|
for (int i = 0; i < competitorAndTimePointsDTO.getMarkPassings(competitor).length; i++) {
|
||||||
MillisecondsTimePoint time = new MillisecondsTimePoint(
|
MillisecondsTimePoint time = new MillisecondsTimePoint(
|
||||||
competitorAndTimePointsDTO.getMarkPassings(competitor)[i].getB());
|
competitorAndTimePointsDTO.getMarkPassings(competitor)[i].getB());
|
||||||
TrackedLegOfCompetitor trackedLeg = trackedRace.getTrackedLeg(selectedCompetitor.get(c), time);
|
TrackedLegOfCompetitor trackedLeg = trackedRace.getTrackedLeg(selectedCompetitors.get(c), time);
|
||||||
if (trackedLeg != null) {
|
if (trackedLeg != null) {
|
||||||
Speed velocityMadeGood = trackedLeg.getVelocityMadeGood(time);
|
Speed velocityMadeGood = trackedLeg.getVelocityMadeGood(time);
|
||||||
entries[i] = (velocityMadeGood == null) ? null : velocityMadeGood.getKnots();
|
entries[i] = (velocityMadeGood == null) ? null : velocityMadeGood.getKnots();
|
||||||
@@ -1368,14 +1375,14 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case DISTANCE_TRAVELED:
|
case DISTANCE_TRAVELED:
|
||||||
for (int c = 0; c < selectedCompetitor.size(); c++) {
|
for (int c = 0; c < selectedCompetitors.size(); c++) {
|
||||||
Double[] entries = new Double[competitorAndTimePointsDTO.getTimePoints().length];
|
Double[] entries = new Double[competitorAndTimePointsDTO.getTimePoints().length];
|
||||||
double distanceOfPreviousLegs = 0;
|
double distanceOfPreviousLegs = 0;
|
||||||
double lastTraveledDistance = 0;
|
double lastTraveledDistance = 0;
|
||||||
for (int i = 0; i < competitorAndTimePointsDTO.getTimePoints().length; i++) {
|
for (int i = 0; i < competitorAndTimePointsDTO.getTimePoints().length; i++) {
|
||||||
MillisecondsTimePoint time = new MillisecondsTimePoint(
|
MillisecondsTimePoint time = new MillisecondsTimePoint(
|
||||||
competitorAndTimePointsDTO.getTimePoints()[i]);
|
competitorAndTimePointsDTO.getTimePoints()[i]);
|
||||||
TrackedLegOfCompetitor trackedLeg = trackedRace.getTrackedLeg(selectedCompetitor.get(c), time);
|
TrackedLegOfCompetitor trackedLeg = trackedRace.getTrackedLeg(selectedCompetitors.get(c), time);
|
||||||
if (trackedLeg != null) {
|
if (trackedLeg != null) {
|
||||||
Distance distanceTraveled = trackedLeg.getDistanceTraveled(time);
|
Distance distanceTraveled = trackedLeg.getDistanceTraveled(time);
|
||||||
if (distanceTraveled != null) {
|
if (distanceTraveled != null) {
|
||||||
@@ -1394,7 +1401,7 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
|
|||||||
for (int i = 0; i < competitorAndTimePointsDTO.getMarkPassings(competitor).length; i++) {
|
for (int i = 0; i < competitorAndTimePointsDTO.getMarkPassings(competitor).length; i++) {
|
||||||
MillisecondsTimePoint time = new MillisecondsTimePoint(
|
MillisecondsTimePoint time = new MillisecondsTimePoint(
|
||||||
competitorAndTimePointsDTO.getMarkPassings(competitor)[i].getB());
|
competitorAndTimePointsDTO.getMarkPassings(competitor)[i].getB());
|
||||||
TrackedLegOfCompetitor trackedLeg = trackedRace.getTrackedLeg(selectedCompetitor.get(c), time);
|
TrackedLegOfCompetitor trackedLeg = trackedRace.getTrackedLeg(selectedCompetitors.get(c), time);
|
||||||
if (trackedLeg != null) {
|
if (trackedLeg != null) {
|
||||||
Distance distanceTraveled = trackedLeg.getDistanceTraveled(time);
|
Distance distanceTraveled = trackedLeg.getDistanceTraveled(time);
|
||||||
if (distanceTraveled != null) {
|
if (distanceTraveled != null) {
|
||||||
@@ -1411,12 +1418,12 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case GAP_TO_LEADER_IN_SECONDS:
|
case GAP_TO_LEADER_IN_SECONDS:
|
||||||
for (int c = 0; c < selectedCompetitor.size(); c++) {
|
for (int c = 0; c < selectedCompetitors.size(); c++) {
|
||||||
Double[] entries = new Double[competitorAndTimePointsDTO.getTimePoints().length];
|
Double[] entries = new Double[competitorAndTimePointsDTO.getTimePoints().length];
|
||||||
for (int i = 0; i < competitorAndTimePointsDTO.getTimePoints().length; i++) {
|
for (int i = 0; i < competitorAndTimePointsDTO.getTimePoints().length; i++) {
|
||||||
MillisecondsTimePoint time = new MillisecondsTimePoint(
|
MillisecondsTimePoint time = new MillisecondsTimePoint(
|
||||||
competitorAndTimePointsDTO.getTimePoints()[i]);
|
competitorAndTimePointsDTO.getTimePoints()[i]);
|
||||||
TrackedLegOfCompetitor trackedLeg = trackedRace.getTrackedLeg(selectedCompetitor.get(c), time);
|
TrackedLegOfCompetitor trackedLeg = trackedRace.getTrackedLeg(selectedCompetitors.get(c), time);
|
||||||
if (trackedLeg != null) {
|
if (trackedLeg != null) {
|
||||||
entries[i] = trackedLeg.getGapToLeaderInSeconds(time);
|
entries[i] = trackedLeg.getGapToLeaderInSeconds(time);
|
||||||
}
|
}
|
||||||
@@ -1427,7 +1434,7 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
|
|||||||
for (int i = 0; i < competitorAndTimePointsDTO.getMarkPassings(competitor).length; i++) {
|
for (int i = 0; i < competitorAndTimePointsDTO.getMarkPassings(competitor).length; i++) {
|
||||||
MillisecondsTimePoint time = new MillisecondsTimePoint(
|
MillisecondsTimePoint time = new MillisecondsTimePoint(
|
||||||
competitorAndTimePointsDTO.getMarkPassings(competitor)[i].getB());
|
competitorAndTimePointsDTO.getMarkPassings(competitor)[i].getB());
|
||||||
TrackedLegOfCompetitor trackedLeg = trackedRace.getTrackedLeg(selectedCompetitor.get(c), time);
|
TrackedLegOfCompetitor trackedLeg = trackedRace.getTrackedLeg(selectedCompetitors.get(c), time);
|
||||||
if (trackedLeg != null) {
|
if (trackedLeg != null) {
|
||||||
entries[i] = trackedLeg.getGapToLeaderInSeconds(time);
|
entries[i] = trackedLeg.getGapToLeaderInSeconds(time);
|
||||||
}
|
}
|
||||||
@@ -1436,19 +1443,19 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case WINDWARD_DISTANCE_TO_OVERALL_LEADER:
|
case WINDWARD_DISTANCE_TO_OVERALL_LEADER:
|
||||||
for (int c = 0; c < selectedCompetitor.size(); c++) {
|
for (int c = 0; c < selectedCompetitors.size(); c++) {
|
||||||
CompetitorDTO competitor = competitorAndTimePointsDTO.getCompetitors()[c];
|
CompetitorDTO competitor = competitorAndTimePointsDTO.getCompetitors()[c];
|
||||||
Double[] entries = new Double[competitorAndTimePointsDTO.getTimePoints().length];
|
Double[] entries = new Double[competitorAndTimePointsDTO.getTimePoints().length];
|
||||||
Double[] markEntries = new Double[competitorAndTimePointsDTO.getMarkPassings(competitor).length];
|
Double[] markEntries = new Double[competitorAndTimePointsDTO.getMarkPassings(competitor).length];
|
||||||
MillisecondsTimePoint markTime = new MillisecondsTimePoint(
|
MillisecondsTimePoint markTime = new MillisecondsTimePoint(
|
||||||
competitorAndTimePointsDTO.getMarkPassings(competitor)[0].getB());
|
competitorAndTimePointsDTO.getMarkPassings(competitor)[0].getB());
|
||||||
int markEntryCounter = 0;
|
int markEntryCounter = 0;
|
||||||
TrackedLegOfCompetitor trackedLegforMark = trackedRace.getTrackedLeg(selectedCompetitor.get(c),
|
TrackedLegOfCompetitor trackedLegforMark = trackedRace.getTrackedLeg(selectedCompetitors.get(c),
|
||||||
markTime);
|
markTime);
|
||||||
for (int i = 0; i < competitorAndTimePointsDTO.getTimePoints().length; i++) {
|
for (int i = 0; i < competitorAndTimePointsDTO.getTimePoints().length; i++) {
|
||||||
MillisecondsTimePoint time = new MillisecondsTimePoint(
|
MillisecondsTimePoint time = new MillisecondsTimePoint(
|
||||||
competitorAndTimePointsDTO.getTimePoints()[i]);
|
competitorAndTimePointsDTO.getTimePoints()[i]);
|
||||||
TrackedLegOfCompetitor trackedLeg = trackedRace.getTrackedLeg(selectedCompetitor.get(c), time);
|
TrackedLegOfCompetitor trackedLeg = trackedRace.getTrackedLeg(selectedCompetitors.get(c), time);
|
||||||
if (trackedLeg != null) {
|
if (trackedLeg != null) {
|
||||||
Distance distanceToLeader = trackedLeg.getWindwardDistanceToOverallLeader(time);
|
Distance distanceToLeader = trackedLeg.getWindwardDistanceToOverallLeader(time);
|
||||||
entries[i] = (distanceToLeader == null) ? null : distanceToLeader.getMeters();
|
entries[i] = (distanceToLeader == null) ? null : distanceToLeader.getMeters();
|
||||||
@@ -1462,7 +1469,7 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
|
|||||||
if (markEntryCounter < competitorAndTimePointsDTO.getMarkPassings(competitor).length) {
|
if (markEntryCounter < competitorAndTimePointsDTO.getMarkPassings(competitor).length) {
|
||||||
markTime = new MillisecondsTimePoint(
|
markTime = new MillisecondsTimePoint(
|
||||||
competitorAndTimePointsDTO.getMarkPassings(competitor)[markEntryCounter].getB());
|
competitorAndTimePointsDTO.getMarkPassings(competitor)[markEntryCounter].getB());
|
||||||
trackedLegforMark = trackedRace.getTrackedLeg(selectedCompetitor.get(c), markTime);
|
trackedLegforMark = trackedRace.getTrackedLeg(selectedCompetitors.get(c), markTime);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1611,7 +1618,7 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
|
|||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
@Override
|
@Override
|
||||||
public CompetitorsAndTimePointsDTO getCompetitorsAndTimePoints(RaceIdentifier race, int steps) {
|
public CompetitorsAndTimePointsDTO getCompetitorsAndTimePoints(RaceIdentifier race, int steps) {
|
||||||
CompetitorsAndTimePointsDTO competitorAndTimePointsDTO = new CompetitorsAndTimePointsDTO(steps);
|
CompetitorsAndTimePointsDTO competitorAndTimePointsDTO = new CompetitorsAndTimePointsDTO(steps);
|
||||||
TrackedRace trackedRace = getExistingTrackedRace(race);
|
TrackedRace trackedRace = getExistingTrackedRace(race);
|
||||||
|
|||||||
+15
@@ -4,7 +4,22 @@ import java.util.HashMap;
|
|||||||
|
|
||||||
import com.google.gwt.user.client.rpc.IsSerializable;
|
import com.google.gwt.user.client.rpc.IsSerializable;
|
||||||
import com.sap.sailing.domain.common.impl.Util.Pair;
|
import com.sap.sailing.domain.common.impl.Util.Pair;
|
||||||
|
import com.sap.sailing.gwt.ui.client.SailingService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A data transfer object used as argument to
|
||||||
|
* {@link SailingService#getCompetitorRaceData(com.sap.sailing.domain.common.RaceIdentifier, CompetitorsAndTimePointsDTO, com.sap.sailing.domain.common.DetailType)}
|
||||||
|
* and as result in
|
||||||
|
* {@link SailingService#getCompetitorsAndTimePoints(com.sap.sailing.domain.common.RaceIdentifier, int)}. Objects of this class
|
||||||
|
* mainly tell the competitors and the time points for which to load data about a race. The mark passing times are
|
||||||
|
* stored in this object because when mark passings are to be displayed in a chart, the point needs an associated value, and
|
||||||
|
* hence the function to be represented in the chart needs to be evaluated for the time of the mark passing. This is
|
||||||
|
* particularly important if the distance between the other time points is so great that the next time points before and after
|
||||||
|
* the mark passing are too far away and therefore the function values may be too different from that at the mark passing time.
|
||||||
|
*
|
||||||
|
* @author Benjamin Ebling, Axel Uhl (D043530)
|
||||||
|
*
|
||||||
|
*/
|
||||||
public class CompetitorsAndTimePointsDTO implements IsSerializable {
|
public class CompetitorsAndTimePointsDTO implements IsSerializable {
|
||||||
private static final long MILLISECONDS_BEFORE_RACE_TO_INCLUDE = 20000;
|
private static final long MILLISECONDS_BEFORE_RACE_TO_INCLUDE = 20000;
|
||||||
|
|
||||||
|
|||||||
Executable
+11
@@ -0,0 +1,11 @@
|
|||||||
|
target="`dirname \"$0\"`"
|
||||||
|
pwd=`pwd`
|
||||||
|
echo "$target" | grep "^/"
|
||||||
|
if [ "$0" != "0" ]; then
|
||||||
|
# no leading slash, therefore no absolute path; prepend pwd
|
||||||
|
target="$pwd/$target"
|
||||||
|
fi
|
||||||
|
target=c:/cygwin/home/User/git/java/target
|
||||||
|
echo target is $target
|
||||||
|
cd "$target/../com.sap.sailing.feature.p2build/bin/products/raceanalysis.product.id/win32/win32/x86_64"
|
||||||
|
"$JAVA_HOME/bin/java" -Dfile.encoding=cp1252 -Djetty.home="$target/configuration/jetty" -Djava.util.logging.config.file="$target/configuration/logging.properties" -Xmx8192m -jar plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar -console -configuration ./ -clean
|
||||||
Executable
+15
@@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
target="`dirname \"$0\"`"
|
||||||
|
pwd=`pwd`
|
||||||
|
echo "$target" | grep "^/"
|
||||||
|
if [ "$0" != "0" ]; then
|
||||||
|
# no leading slash, therefore no absolute path; prepend pwd
|
||||||
|
target="$pwd/$target"
|
||||||
|
fi
|
||||||
|
target=c:/cygwin/home/User/git/java/target
|
||||||
|
echo target is $target
|
||||||
|
cd "$target/../com.sap.sailing.feature.p2build/bin/products/raceanalysis.product.id/win32/win32/x86_64"
|
||||||
|
echo pwd is now `pwd`
|
||||||
|
jar=`find plugins -name 'com.sap.sailing.expeditionconnector_*.jar' | sort | tail -1`
|
||||||
|
echo Using JAR file $jar
|
||||||
|
"$JAVA_HOME/bin/java" -cp "$jar" -Djava.util.logging.config.file=udpmirrorLog.properties com.sap.sailing.expeditionconnector.UDPMirror $*
|
||||||
Reference in new issue
Block a user