Merge branch 'master' of /home/trac/git

This commit is contained in:
Generic Wiki User
2018-03-12 13:20:02 +00:00
7 changed files with 40 additions and 3 deletions
@@ -49,8 +49,8 @@ import com.sap.sailing.domain.common.racelog.tracking.DoesNotHaveRegattaLogExcep
import com.sap.sailing.domain.common.racelog.tracking.NotDenotedForRaceLogTrackingException;
import com.sap.sailing.domain.common.racelog.tracking.TransformationException;
import com.sap.sailing.domain.common.tracking.impl.PreciseCompactGPSFixMovingImpl.PreciseCompactPosition;
import com.sap.sailing.domain.leaderboard.RegattaLeaderboard;
import com.sap.sailing.domain.common.windfinder.SpotDTO;
import com.sap.sailing.domain.leaderboard.RegattaLeaderboard;
import com.sap.sailing.domain.racelog.tracking.GPSFixStore;
import com.sap.sailing.domain.racelogtracking.RaceLogTrackingAdapter;
import com.sap.sailing.domain.tracking.TrackedRace;
@@ -733,4 +733,6 @@ public interface SailingService extends RemoteService, FileStorageManagementGwtS
* Returns specific data needed for the slicing UI.
*/
SliceRacePreperationDTO prepareForSlicingOfRace(RegattaAndRaceIdentifier raceIdentifier);
Boolean checkIfRaceIsTracked(RegattaAndRaceIdentifier race);
}
@@ -106,6 +106,7 @@ import com.sap.sse.gwt.client.filestorage.FileStorageManagementGwtServiceAsync;
import com.sap.sse.gwt.client.media.ImageDTO;
import com.sap.sse.gwt.client.media.VideoDTO;
import com.sap.sse.gwt.client.replication.RemoteReplicationServiceAsync;
import com.sap.sse.pairinglist.PairingList;
import com.sap.sse.pairinglist.PairingListTemplate;
/**
@@ -947,4 +948,6 @@ public interface SailingServiceAsync extends ServerInfoRetriever, FileStorageMan
* of the scopes above.
*/
void getWindFinderSpot(String spotId, AsyncCallback<SpotDTO> callback);
void checkIfRaceIsTracked(RegattaAndRaceIdentifier raceIdentifier, AsyncCallback<Boolean> asyncCallback);
}
@@ -2066,4 +2066,5 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages,
String enterTagsForTheImage();
String unableToResolveWindFinderSpotId(String id, String message);
String windFinderWeatherData();
String positionEditOnNonTrackingRace();
}
@@ -2053,4 +2053,5 @@ enterTagsForTheVideo=Enter tags for the video
enterIdOfWindfinderReviewedSpotCollection=Enter ID of a reviewed WindFinder spot collection, e.g., "schilksee"
enterTagsForTheImage=Enter tags for the image
unableToResolveWindFinderSpotId=Unable to resolve WindFinder spot with ID {0}: {1}
windFinderWeatherData=Weather Data
windFinderWeatherData=Weather Data
positionEditOnNonTrackingRace=This race is currently not tracked, fix updates are no longer received by the TrackedRace! Is is necessary to reload the race, to see the changes.
@@ -2050,4 +2050,5 @@ enterTagsForTheVideo=Tags zum Video erfassen
enterIdOfWindfinderReviewedSpotCollection=ID einer geprüften WindFinder Messstellen-Sammlung eingeben, z.B. "schilksee"
enterTagsForTheImage=Tags zum Bild erfassen
unableToResolveWindFinderSpotId=WindFinder-Station mit Kennung {0} wurde nicht gefunden: {1}
windFinderWeatherData=Wetter&#8203;daten
windFinderWeatherData=Wetter&#8203;daten
positionEditOnNonTrackingRace=Dieses Rennen wird derzeit nicht getracked, Fixänderungen werden nicht vom TrackedRace empfangen. Es ist notwendig das Rennen neu zu laden, um die Änderungen zu sehen.
@@ -64,6 +64,7 @@ import com.google.gwt.maps.client.events.rightclick.RightClickMapHandler;
import com.google.gwt.maps.client.mvc.MVCArray;
import com.google.gwt.maps.client.overlays.Polyline;
import com.google.gwt.maps.client.overlays.PolylineOptions;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.HTMLPanel;
@@ -709,6 +710,20 @@ public class EditMarkPositionPanel extends AbstractRaceChart<AbstractSettings> i
public void setVisible(boolean visible) {
this.visible = visible;
if(visible && !isVisible()){
sailingService.checkIfRaceIsTracked(selectedRaceIdentifier, new AsyncCallback<Boolean>() {
@Override
public void onFailure(Throwable caught) {
Window.alert(stringMessages.serverError());
}
@Override
public void onSuccess(Boolean result) {
if (Boolean.FALSE.equals(result)) {
Window.alert(stringMessages.positionEditOnNonTrackingRace());
}
}
});
}
if (map == null) {
map = raceMap.getMap();
if (map != null) {
@@ -223,6 +223,7 @@ import com.sap.sailing.domain.common.ScoringSchemeType;
import com.sap.sailing.domain.common.Speed;
import com.sap.sailing.domain.common.SpeedWithBearing;
import com.sap.sailing.domain.common.Tack;
import com.sap.sailing.domain.common.TrackedRaceStatusEnum;
import com.sap.sailing.domain.common.UnableToCloseDeviceMappingException;
import com.sap.sailing.domain.common.Wind;
import com.sap.sailing.domain.common.WindSource;
@@ -7351,4 +7352,17 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
throw new RuntimeException("Error while slicing race", e);
}
}
@Override
public Boolean checkIfRaceIsTracked(RegattaAndRaceIdentifier race) {
boolean result = false;
DynamicTrackedRace trace = getService().getTrackedRace(race);
if (trace != null) {
final TrackedRaceStatusEnum status = trace.getStatus().getStatus();
if (status == TrackedRaceStatusEnum.LOADING || status == TrackedRaceStatusEnum.TRACKING) {
result = true;
}
}
return result;
}
}