mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-04 11:23:50 +00:00
Merge branch 'gwt' into gwt-mak
Conflicts: java/com.sap.sailing.gwt.ui/.settings/com.google.gdt.eclipse.core.prefs java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/LeaderboardPanel.java java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/AdminConsole.gwt.xml java/pom.xml
This commit is contained in:
commit
4dbdc901af
118 files changed
+2481
-1065
No files matched your search
@@ -266,31 +266,34 @@ public class AdminApp extends Servlet {
|
||||
for (WindSource windSource : WindSource.values()) {
|
||||
JSONArray jsonWindArray = new JSONArray();
|
||||
WindTrack windTrack = trackedRace.getWindTrack(windSource);
|
||||
Iterator<Wind> windIter = windTrack.getFixesIterator(from, /* inclusive */true);
|
||||
while (windIter.hasNext()) {
|
||||
Wind wind = windIter.next();
|
||||
if (wind.getTimePoint().compareTo(to) > 0) {
|
||||
break;
|
||||
synchronized (windTrack) {
|
||||
Iterator<Wind> windIter = windTrack.getFixesIterator(from, /* inclusive */true);
|
||||
while (windIter.hasNext()) {
|
||||
Wind wind = windIter.next();
|
||||
if (wind.getTimePoint().compareTo(to) > 0) {
|
||||
break;
|
||||
}
|
||||
JSONObject jsonWind = new JSONObject();
|
||||
jsonWind.put("truebearingdeg", wind.getBearing().getDegrees());
|
||||
jsonWind.put("knotspeed", wind.getKnots());
|
||||
jsonWind.put("meterspersecondspeed", wind.getMetersPerSecond());
|
||||
if (wind.getTimePoint() != null) {
|
||||
jsonWind.put("timepoint", wind.getTimePoint().asMillis());
|
||||
jsonWind.put("dampenedtruebearingdeg",
|
||||
windTrack.getEstimatedWind(wind.getPosition(), wind.getTimePoint())
|
||||
.getBearing().getDegrees());
|
||||
jsonWind.put("dampenedknotspeed",
|
||||
windTrack.getEstimatedWind(wind.getPosition(), wind.getTimePoint()).getKnots());
|
||||
jsonWind.put("dampenedmeterspersecondspeed",
|
||||
windTrack.getEstimatedWind(wind.getPosition(), wind.getTimePoint())
|
||||
.getMetersPerSecond());
|
||||
}
|
||||
if (wind.getPosition() != null) {
|
||||
jsonWind.put("latdeg", wind.getPosition().getLatDeg());
|
||||
jsonWind.put("lngdeg", wind.getPosition().getLngDeg());
|
||||
}
|
||||
jsonWindArray.add(jsonWind);
|
||||
}
|
||||
JSONObject jsonWind = new JSONObject();
|
||||
jsonWind.put("truebearingdeg", wind.getBearing().getDegrees());
|
||||
jsonWind.put("knotspeed", wind.getKnots());
|
||||
jsonWind.put("meterspersecondspeed", wind.getMetersPerSecond());
|
||||
if (wind.getTimePoint() != null) {
|
||||
jsonWind.put("timepoint", wind.getTimePoint().asMillis());
|
||||
jsonWind.put("dampenedtruebearingdeg",
|
||||
windTrack.getEstimatedWind(wind.getPosition(), wind.getTimePoint()).getBearing()
|
||||
.getDegrees());
|
||||
jsonWind.put("dampenedknotspeed",
|
||||
windTrack.getEstimatedWind(wind.getPosition(), wind.getTimePoint()).getKnots());
|
||||
jsonWind.put("dampenedmeterspersecondspeed",
|
||||
windTrack.getEstimatedWind(wind.getPosition(), wind.getTimePoint()).getMetersPerSecond());
|
||||
}
|
||||
if (wind.getPosition() != null) {
|
||||
jsonWind.put("latdeg", wind.getPosition().getLatDeg());
|
||||
jsonWind.put("lngdeg", wind.getPosition().getLngDeg());
|
||||
}
|
||||
jsonWindArray.add(jsonWind);
|
||||
}
|
||||
jsonWindTracks.put(windSource.toString(), jsonWindArray);
|
||||
}
|
||||
|
||||
@@ -98,26 +98,29 @@ public class ModeratorApp extends Servlet {
|
||||
JSONObject jsonCompetitor = new JSONObject();
|
||||
jsonCompetitor.put("name", competitor.getName());
|
||||
GPSFixTrack<Competitor, GPSFixMoving> track = trackedRace.getTrack(competitor);
|
||||
Iterator<GPSFixMoving> fixIter;
|
||||
if (sinceTimePoint == null) {
|
||||
fixIter = track.getFixes().iterator();
|
||||
} else {
|
||||
fixIter = track.getFixesIterator(sinceTimePoint, /* inclusive */ true);
|
||||
}
|
||||
JSONArray jsonFixes = new JSONArray();
|
||||
while (fixIter.hasNext()) {
|
||||
GPSFixMoving fix = fixIter.next();
|
||||
if (toTimePoint != null && fix.getTimePoint() != null && toTimePoint.compareTo(fix.getTimePoint()) < 0) {
|
||||
break;
|
||||
synchronized (track) {
|
||||
Iterator<GPSFixMoving> fixIter;
|
||||
if (sinceTimePoint == null) {
|
||||
fixIter = track.getFixes().iterator();
|
||||
} else {
|
||||
fixIter = track.getFixesIterator(sinceTimePoint, /* inclusive */true);
|
||||
}
|
||||
while (fixIter.hasNext()) {
|
||||
GPSFixMoving fix = fixIter.next();
|
||||
if (toTimePoint != null && fix.getTimePoint() != null
|
||||
&& toTimePoint.compareTo(fix.getTimePoint()) < 0) {
|
||||
break;
|
||||
}
|
||||
JSONObject jsonFix = new JSONObject();
|
||||
jsonFix.put("timepoint", fix.getTimePoint().asMillis());
|
||||
jsonFix.put("latdeg", fix.getPosition().getLatDeg());
|
||||
jsonFix.put("lngdeg", fix.getPosition().getLngDeg());
|
||||
jsonFix.put("truebearingdeg", fix.getSpeed().getBearing().getDegrees());
|
||||
jsonFix.put("knotspeed", fix.getSpeed().getKnots());
|
||||
jsonFix.put("tack", trackedRace.getTack(competitor, fix.getTimePoint()).name());
|
||||
jsonFixes.add(jsonFix);
|
||||
}
|
||||
JSONObject jsonFix = new JSONObject();
|
||||
jsonFix.put("timepoint", fix.getTimePoint().asMillis());
|
||||
jsonFix.put("latdeg", fix.getPosition().getLatDeg());
|
||||
jsonFix.put("lngdeg", fix.getPosition().getLngDeg());
|
||||
jsonFix.put("truebearingdeg", fix.getSpeed().getBearing().getDegrees());
|
||||
jsonFix.put("knotspeed", fix.getSpeed().getKnots());
|
||||
jsonFix.put("tack", trackedRace.getTack(competitor, fix.getTimePoint()).name());
|
||||
jsonFixes.add(jsonFix);
|
||||
}
|
||||
jsonCompetitor.put("track", jsonFixes);
|
||||
jsonCompetitors.add(jsonCompetitor);
|
||||
|
||||
@@ -184,5 +184,7 @@ public interface RacingEventService extends TrackedEventRegistry {
|
||||
WindStore windStore, long timeoutInMilliseconds) throws InterruptedException, UnknownHostException, IOException, ParseException;
|
||||
|
||||
SwissTimingFactory getSwissTimingFactory();
|
||||
|
||||
public void storeSwissTimingDummyRace(String racMessage, String stlMesssage, String ccgMessage) throws IllegalArgumentException;
|
||||
|
||||
}
|
||||
@@ -36,6 +36,7 @@ import com.sap.sailing.domain.persistence.DomainObjectFactory;
|
||||
import com.sap.sailing.domain.persistence.MongoObjectFactory;
|
||||
import com.sap.sailing.domain.swisstimingadapter.Race;
|
||||
import com.sap.sailing.domain.swisstimingadapter.SailMasterConnector;
|
||||
import com.sap.sailing.domain.swisstimingadapter.SailMasterMessage;
|
||||
import com.sap.sailing.domain.swisstimingadapter.SwissTimingFactory;
|
||||
import com.sap.sailing.domain.swisstimingadapter.persistence.SwissTimingAdapterPersistence;
|
||||
import com.sap.sailing.domain.tracking.DynamicTrackedEvent;
|
||||
@@ -417,6 +418,11 @@ public class RacingEventServiceImpl implements RacingEventService {
|
||||
raceTracker.stop(); // this also removes the TrackedRace from trackedEvent
|
||||
trackerIter.remove();
|
||||
raceTrackersByID.remove(raceTracker.getID());
|
||||
for (RaceDefinition trackerRace : raceTracker.getRaces()) {
|
||||
// remove from default leaderboard
|
||||
Leaderboard defaultLeaderboard = getLeaderboardByName(DEFAULT_LEADERBOARD_NAME);
|
||||
defaultLeaderboard.removeRaceColumn(trackerRace.getName());
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -483,5 +489,20 @@ public class RacingEventServiceImpl implements RacingEventService {
|
||||
public void remove(Event event) {
|
||||
eventTrackingCache.remove(event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void storeSwissTimingDummyRace(String racMessage, String stlMessage, String ccgMessage){
|
||||
SailMasterMessage racSMMessage = swissTimingFactory.createMessage(racMessage, null);
|
||||
SailMasterMessage stlSMMessage = swissTimingFactory.createMessage(stlMessage, null);
|
||||
SailMasterMessage ccgSMMessage = swissTimingFactory.createMessage(ccgMessage, null);
|
||||
if (swissTimingAdapterPersistence.getRace(stlSMMessage.getRaceID()) != null) {
|
||||
throw new IllegalArgumentException("Race with raceID \"" + stlSMMessage.getRaceID() + "\" already exists.");
|
||||
}
|
||||
else {
|
||||
swissTimingAdapterPersistence.storeSailMasterMessage(racSMMessage);
|
||||
swissTimingAdapterPersistence.storeSailMasterMessage(stlSMMessage);
|
||||
swissTimingAdapterPersistence.storeSailMasterMessage(ccgSMMessage);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user