split usage of sailing service into read and write, add write instances where needed into object creation

bug5221
This commit is contained in:
Georg Herdt committed 2020-04-27 16:44:36 +02:00
1 parent fa356d94fd
commit 181fcde65a
23 files changed
+81 -75

No files matched your search

@@ -9,12 +9,6 @@ import java.util.logging.Level;
import java.util.logging.Logger;
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
import com.sap.sailing.domain.tracking.DynamicTrackedRace;
import com.sap.sailing.domain.tracking.DynamicTrackedRegatta;
import com.sap.sailing.domain.tracking.RaceListener;
import com.sap.sailing.domain.tracking.TrackedRace;
import com.sap.sailing.domain.tracking.TrackedRegatta;
import com.sap.sailing.domain.tracking.TrackedRegattaListener;
/**
* This listener is informed about every {@link TrackedRegatta} by its implemented {@link TrackedRegattaListener}. To
@@ -1,9 +1,10 @@
package com.sap.sailing.gwt.autoplay.client.app;
import com.sap.sailing.gwt.home.communication.SailingDispatchSystem;
import com.sap.sailing.gwt.home.desktop.places.user.profile.WithSailingServiceWrite;
import com.sap.sailing.gwt.ui.client.SailingClientFactory;
public interface AutoPlayClientFactory extends SailingClientFactory {
public interface AutoPlayClientFactory extends SailingClientFactory, WithSailingServiceWrite {
AutoPlayPlaceNavigator getPlaceNavigator();
void setAutoPlayContext(AutoPlayContext configurationSixtyInch);
@@ -16,12 +16,14 @@ import com.sap.sailing.gwt.ui.client.MediaServiceAsync;
import com.sap.sailing.gwt.ui.client.RemoteServiceMappingConstants;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.SailingServiceHelper;
import com.sap.sailing.gwt.ui.client.SailingServiceWriteAsync;
import com.sap.sse.gwt.client.EntryPointHelper;
import com.sap.sse.security.ui.client.SecureClientFactoryImpl;
public abstract class AutoPlayClientFactoryBase
extends SecureClientFactoryImpl<ApplicationTopLevelView> implements AutoPlayClientFactory {
private final SailingServiceAsync sailingService;
private final SailingServiceWriteAsync sailingServiceWrite;
private final MediaServiceAsync mediaService;
private final AutoPlayPlaceNavigator navigator;
@@ -32,6 +34,7 @@ public abstract class AutoPlayClientFactoryBase
super(root, eventBus, placeController);
this.navigator = navigator;
sailingService = SailingServiceHelper.createSailingServiceInstance();
sailingServiceWrite = SailingServiceHelper.createSailingServiceWriteInstance();
mediaService = GWT.create(MediaService.class);
EntryPointHelper.registerASyncService((ServiceDefTarget) sailingService,
RemoteServiceMappingConstants.sailingServiceRemotePath);
@@ -66,6 +69,11 @@ public abstract class AutoPlayClientFactoryBase
return sailingServiceAsync;
}
}
@Override
public SailingServiceWriteAsync getSailingServiceWrite() {
return sailingServiceWrite;
}
@Override
public MediaServiceAsync getMediaService() {
@@ -77,7 +77,7 @@ public class LiveRaceBoardNode extends FiresPlaceNode implements RaceTimesInfoPr
/** leaderboardGroupName */
null, /** eventId */
null, cf.getErrorReporter(), StringMessages.INSTANCE, null, raceTimesInfoProvider, true, false,
Arrays.asList(DetailType.values()), result.getLeaderboard(), result.getRace(), result.getTrackingConnectorInfo());
Arrays.asList(DetailType.values()), result.getLeaderboard(), result.getRace(), result.getTrackingConnectorInfo(), cf.getSailingServiceWrite());
setPlaceToGo(new LiveRaceWithRaceboardPlace(raceboardPerspective));
firePlaceChangeAndStartTimer();
getBus().fireEvent(new AutoPlayHeaderEvent(cf.getAutoPlayCtxSignalError().getLifeOrPreLiveRace().getRegattaName(),
@@ -0,0 +1,8 @@
package com.sap.sailing.gwt.home.desktop.places.user.profile;
import com.sap.sailing.gwt.ui.client.SailingServiceWriteAsync;
public interface WithSailingServiceWrite {
SailingServiceWriteAsync getSailingServiceWrite();
}
@@ -45,7 +45,6 @@ import com.sap.sailing.domain.common.dto.RaceDTO;
import com.sap.sailing.domain.common.security.SecuredDomainType;
import com.sap.sailing.gwt.ui.client.RegattaRefresher;
import com.sap.sailing.gwt.ui.client.RegattasDisplayer;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.SailingServiceWriteAsync;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.common.client.DateAndTimeFormatterUtil;
@@ -29,7 +29,6 @@ import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.view.client.ListDataProvider;
import com.google.gwt.view.client.SelectionChangeEvent;
import com.google.gwt.view.client.SingleSelectionModel;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.SailingServiceWriteAsync;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.common.client.DateAndTimeFormatterUtil;
@@ -59,7 +59,6 @@ import com.sap.sailing.domain.common.security.SecuredDomainType;
import com.sap.sailing.gwt.ui.adminconsole.WindImportResult.RaceEntry;
import com.sap.sailing.gwt.ui.client.RegattaRefresher;
import com.sap.sailing.gwt.ui.client.RegattasDisplayer;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.SailingServiceWriteAsync;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.common.client.DateAndTimeFormatterUtil;
@@ -32,7 +32,6 @@ import com.google.gwt.view.client.DefaultSelectionEventManager;
import com.google.gwt.view.client.DefaultSelectionEventManager.SelectAction;
import com.google.gwt.view.client.ListDataProvider;
import com.sap.sailing.domain.common.security.SecuredDomainType;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.SailingServiceWriteAsync;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.shared.courseCreation.CourseTemplateDTO;
@@ -31,7 +31,7 @@ import com.sap.sailing.domain.common.security.SecuredDomainType;
import com.sap.sailing.gwt.ui.adminconsole.FileStorageServiceConnectionTestObservable;
import com.sap.sailing.gwt.ui.client.MediaServiceAsync;
import com.sap.sailing.gwt.ui.client.RaceTimesInfoProvider;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.SailingServiceWriteAsync;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.client.media.popup.PopoutWindowPlayer;
import com.sap.sailing.gwt.ui.client.media.popup.PopoutWindowPlayer.PlayerCloseListener;
@@ -94,7 +94,7 @@ public class MediaPlayerManagerComponent extends AbstractComponent<MediaPlayerSe
private List<PlayerChangeListener> playerChangeListener = new ArrayList<>();
public MediaPlayerManagerComponent(Component<?> parent, ComponentContext<?> context,
MediaPlayerLifecycle mediaPlayerLifecycle, SailingServiceAsync sailingService,
MediaPlayerLifecycle mediaPlayerLifecycle, SailingServiceWriteAsync sailingServiceWrite,
RegattaAndRaceIdentifier selectedRaceIdentifier,
RaceTimesInfoProvider raceTimesInfoProvider, Timer raceTimer, MediaServiceAsync mediaService,
UserService userService, StringMessages stringMessages, ErrorReporter errorReporter,
@@ -118,7 +118,7 @@ public class MediaPlayerManagerComponent extends AbstractComponent<MediaPlayerSe
this.userAgent = userAgent;
this.popupPositionProvider = popupPositionProvider;
this.settings = settings;
this.storageServiceAvailable = new FileStorageServiceConnectionTestObservable(sailingService);
this.storageServiceAvailable = new FileStorageServiceConnectionTestObservable(sailingServiceWrite);
Window.addCloseHandler(this);
Window.addWindowClosingHandler(this);
@@ -82,6 +82,7 @@ import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
import com.sap.sailing.domain.common.dto.LeaderboardDTO;
import com.sap.sailing.domain.common.impl.DegreePosition;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.SailingServiceWriteAsync;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.client.shared.charts.MarkPositionService.MarkTrackDTO;
import com.sap.sailing.gwt.ui.client.shared.racemap.BoundsUtil;
@@ -140,10 +141,10 @@ public class EditMarkPositionPanel extends AbstractRaceChart<AbstractSettings> i
final SingleRaceLeaderboardPanel leaderboardPanel,
RegattaAndRaceIdentifier selectedRaceIdentifier, String leaderboardName, final StringMessages stringMessages,
SailingServiceAsync sailingService, Timer timer, TimeRangeWithZoomProvider timeRangeWithZoomProvider,
AsyncActionsExecutor asyncActionsExecutor, ErrorReporter errorReporter) {
AsyncActionsExecutor asyncActionsExecutor, ErrorReporter errorReporter, SailingServiceWriteAsync sailingServiceWrite) {
super(parent, context, sailingService, selectedRaceIdentifier, timer, timeRangeWithZoomProvider, stringMessages,
asyncActionsExecutor, errorReporter);
this.markPositionService = new MarkPositionServiceForSailingService(sailingService);
this.markPositionService = new MarkPositionServiceForSailingService(sailingServiceWrite);
this.raceIdentifierToLeaderboardRaceColumnAndFleetMapper = new RaceIdentifierToLeaderboardRaceColumnAndFleetMapper();
this.raceMap = raceMap;
this.leaderboardPanel = leaderboardPanel;
@@ -2,49 +2,49 @@ package com.sap.sailing.gwt.ui.client.shared.charts;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.sap.sailing.domain.common.Position;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.SailingServiceWriteAsync;
import com.sap.sailing.gwt.ui.client.shared.charts.RaceIdentifierToLeaderboardRaceColumnAndFleetMapper.LeaderboardNameRaceColumnNameAndFleetName;
import com.sap.sailing.gwt.ui.shared.GPSFixDTO;
import com.sap.sailing.gwt.ui.shared.MarkDTO;
public class MarkPositionServiceForSailingService implements MarkPositionService {
private final SailingServiceAsync sailingService;
private final SailingServiceWriteAsync sailingServiceWrite;
public MarkPositionServiceForSailingService(SailingServiceAsync sailingService) {
public MarkPositionServiceForSailingService(SailingServiceWriteAsync sailingServiceWrite) {
super();
this.sailingService = sailingService;
this.sailingServiceWrite = sailingServiceWrite;
}
@Override
public void getMarksInTrackedRace(LeaderboardNameRaceColumnNameAndFleetName raceIdentifier, AsyncCallback<Iterable<MarkDTO>> callback) {
sailingService.getMarksInTrackedRace(raceIdentifier.getLeaderboardName(), raceIdentifier.getRaceColumnName(), raceIdentifier.getFleetName(), callback);
sailingServiceWrite.getMarksInTrackedRace(raceIdentifier.getLeaderboardName(), raceIdentifier.getRaceColumnName(), raceIdentifier.getFleetName(), callback);
}
@Override
public void getMarkTrack(LeaderboardNameRaceColumnNameAndFleetName raceIdentifier, String markIdAsString,
AsyncCallback<MarkTrackDTO> callback) {
sailingService.getMarkTrack(raceIdentifier.getLeaderboardName(), raceIdentifier.getRaceColumnName(), raceIdentifier.getFleetName(), markIdAsString, callback);
sailingServiceWrite.getMarkTrack(raceIdentifier.getLeaderboardName(), raceIdentifier.getRaceColumnName(), raceIdentifier.getFleetName(), markIdAsString, callback);
}
@Override
public void canRemoveMarkFix(LeaderboardNameRaceColumnNameAndFleetName raceIdentifier, MarkDTO mark,
GPSFixDTO fix, AsyncCallback<Boolean> callback) {
sailingService.canRemoveMarkFix(raceIdentifier.getLeaderboardName(), raceIdentifier.getRaceColumnName(), raceIdentifier.getFleetName(), mark.getIdAsString(), fix, callback);
sailingServiceWrite.canRemoveMarkFix(raceIdentifier.getLeaderboardName(), raceIdentifier.getRaceColumnName(), raceIdentifier.getFleetName(), mark.getIdAsString(), fix, callback);
}
@Override
public void removeMarkFix(LeaderboardNameRaceColumnNameAndFleetName raceIdentifier, MarkDTO mark, GPSFixDTO fix, AsyncCallback<Void> callback) {
sailingService.removeMarkFix(raceIdentifier.getLeaderboardName(), raceIdentifier.getRaceColumnName(), raceIdentifier.getFleetName(), mark.getIdAsString(), fix, callback);
sailingServiceWrite.removeMarkFix(raceIdentifier.getLeaderboardName(), raceIdentifier.getRaceColumnName(), raceIdentifier.getFleetName(), mark.getIdAsString(), fix, callback);
}
@Override
public void addMarkFix(LeaderboardNameRaceColumnNameAndFleetName raceIdentifier, MarkDTO mark, GPSFixDTO newFix, AsyncCallback<Void> callback) {
sailingService.addMarkFix(raceIdentifier.getLeaderboardName(), raceIdentifier.getRaceColumnName(), raceIdentifier.getFleetName(), mark.getIdAsString(), newFix, callback);
sailingServiceWrite.addMarkFix(raceIdentifier.getLeaderboardName(), raceIdentifier.getRaceColumnName(), raceIdentifier.getFleetName(), mark.getIdAsString(), newFix, callback);
}
@Override
public void editMarkFix(LeaderboardNameRaceColumnNameAndFleetName raceIdentifier, MarkDTO mark, GPSFixDTO oldFix,
Position newPosition, AsyncCallback<Void> callback) {
sailingService.editMarkFix(raceIdentifier.getLeaderboardName(), raceIdentifier.getRaceColumnName(), raceIdentifier.getFleetName(), mark.getIdAsString(), oldFix, newPosition, callback);
sailingServiceWrite.editMarkFix(raceIdentifier.getLeaderboardName(), raceIdentifier.getRaceColumnName(), raceIdentifier.getFleetName(), mark.getIdAsString(), oldFix, newPosition, callback);
}
}
@@ -86,7 +86,6 @@ import com.sap.sailing.gwt.ui.client.LeaderboardUpdateProvider;
import com.sap.sailing.gwt.ui.client.RaceTimesInfoProvider;
import com.sap.sailing.gwt.ui.client.RaceTimesInfoProviderListener;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.SailingServiceWriteAsync;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.client.shared.filter.FilterWithUI;
import com.sap.sailing.gwt.ui.client.shared.filter.LeaderboardFetcher;
@@ -28,7 +28,7 @@ import com.sap.sailing.domain.common.dto.LeaderboardEntryDTO;
import com.sap.sailing.domain.common.dto.LeaderboardRowDTO;
import com.sap.sailing.domain.common.dto.RaceColumnDTO;
import com.sap.sailing.gwt.ui.client.SailNumberCanonicalizerAndMatcher;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.SailingServiceWriteAsync;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.shared.BulkScoreCorrectionDTO;
import com.sap.sailing.gwt.ui.shared.RegattaScoreCorrectionDTO;
@@ -54,10 +54,10 @@ public class MatchAndApplyScoreCorrectionsDialog extends DataEntryDialog<BulkSco
private final CheckBox allAllCheckbox;
public MatchAndApplyScoreCorrectionsDialog(EditableLeaderboardPanel leaderboardPanel, StringMessages stringMessages,
SailingServiceAsync sailingService, ErrorReporter errorReporter, RegattaScoreCorrectionDTO result) {
SailingServiceWriteAsync sailingServiceWrite, ErrorReporter errorReporter, RegattaScoreCorrectionDTO result) {
super(stringMessages.assignRaceNumbersToRaceColumns(), stringMessages.assignRaceNumbersToRaceColumns(),
stringMessages.ok(), stringMessages.cancel(), new Validator(), new Callback(leaderboardPanel,
sailingService, stringMessages, errorReporter));
sailingServiceWrite, stringMessages, errorReporter));
this.regattaScoreCorrection = result;
this.leaderboard = leaderboardPanel.getLeaderboard();
this.allOfficialSailIDs = new TreeSet<>();
@@ -338,15 +338,15 @@ public class MatchAndApplyScoreCorrectionsDialog extends DataEntryDialog<BulkSco
}
private static class Callback implements DialogCallback<BulkScoreCorrectionDTO> {
private final SailingServiceAsync sailingService;
private final SailingServiceWriteAsync sailingServiceWrite;
private final StringMessages stringMessages;
private final ErrorReporter errorReporter;
private final EditableLeaderboardPanel leaderboardPanel;
public Callback(EditableLeaderboardPanel leaderboardPanel, SailingServiceAsync sailingService, StringMessages stringMessages, ErrorReporter errorReporter) {
public Callback(EditableLeaderboardPanel leaderboardPanel, SailingServiceWriteAsync sailingServiceWrite, StringMessages stringMessages, ErrorReporter errorReporter) {
super();
this.leaderboardPanel = leaderboardPanel;
this.sailingService = sailingService;
this.sailingServiceWrite = sailingServiceWrite;
this.stringMessages = stringMessages;
this.errorReporter = errorReporter;
}
@@ -359,7 +359,7 @@ public class MatchAndApplyScoreCorrectionsDialog extends DataEntryDialog<BulkSco
@Override
public void ok(final BulkScoreCorrectionDTO result) {
leaderboardPanel.addBusyTask();
sailingService.updateLeaderboardScoreCorrectionsAndMaxPointsReasons(result, new AsyncCallback<Void>() {
sailingServiceWrite.updateLeaderboardScoreCorrectionsAndMaxPointsReasons(result, new AsyncCallback<Void>() {
@Override
public void onFailure(Throwable caught) {
leaderboardPanel.removeBusyTask();
@@ -19,6 +19,7 @@ import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
import com.sap.sailing.domain.common.dto.BoatClassDTO;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.SailingServiceWriteAsync;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.shared.RegattaScoreCorrectionDTO;
import com.sap.sailing.gwt.ui.shared.ScoreCorrectionProviderDTO;
@@ -44,10 +45,10 @@ public class ResultSelectionAndApplyDialog extends DataEntryDialog<Util.Triple<S
private final BoatClassDTO boatClass;
public ResultSelectionAndApplyDialog(EditableLeaderboardPanel leaderboardPanel, Iterable<String> scoreCorrectionProviderNames,
SailingServiceAsync sailingService, StringMessages stringMessages, ErrorReporter errorReporter) {
SailingServiceWriteAsync sailingServiceWrite, StringMessages stringMessages, ErrorReporter errorReporter) {
super(stringMessages.importOfficialResults(), null, stringMessages.ok(), stringMessages.cancel(), new Validator(stringMessages),
new Callback(sailingService, leaderboardPanel, errorReporter, stringMessages));
this.sailingService = sailingService;
new Callback(sailingServiceWrite, leaderboardPanel, errorReporter, stringMessages));
this.sailingService = sailingServiceWrite;
this.stringMessages = stringMessages;
this.errorReporter = errorReporter;
boatClass = leaderboardPanel.getLeaderboard().getBoatClass();
@@ -194,13 +195,13 @@ public class ResultSelectionAndApplyDialog extends DataEntryDialog<Util.Triple<S
private static class Callback implements DialogCallback<Util.Triple<String, String, Util.Pair<String, Date>>> {
private final EditableLeaderboardPanel leaderboardPanel;
private final SailingServiceAsync sailingService;
private final SailingServiceWriteAsync sailingServiceWrite;
private final StringMessages stringMessages;
private final ErrorReporter errorReporter;
public Callback(SailingServiceAsync sailingService, EditableLeaderboardPanel leaderboardPanel, ErrorReporter errorReporter,
public Callback(SailingServiceWriteAsync sailingServiceWrite, EditableLeaderboardPanel leaderboardPanel, ErrorReporter errorReporter,
StringMessages stringMessages) {
this.sailingService = sailingService;
this.sailingServiceWrite = sailingServiceWrite;
this.leaderboardPanel = leaderboardPanel;
this.stringMessages = stringMessages;
this.errorReporter = errorReporter;
@@ -218,7 +219,7 @@ public class ResultSelectionAndApplyDialog extends DataEntryDialog<Util.Triple<S
final String boatClassName = providerNameAndEventNameBoatClassNameCapturedWhen.getC().getA();
final Date timePointWhenResultPublished = providerNameAndEventNameBoatClassNameCapturedWhen.getC().getB();
leaderboardPanel.addBusyTask();
sailingService.getScoreCorrections(scoreCorrectionProviderName, eventName, boatClassName, timePointWhenResultPublished,
sailingServiceWrite.getScoreCorrections(scoreCorrectionProviderName, eventName, boatClassName, timePointWhenResultPublished,
new AsyncCallback<RegattaScoreCorrectionDTO>() {
@Override
public void onFailure(Throwable caught) {
@@ -230,8 +231,8 @@ public class ResultSelectionAndApplyDialog extends DataEntryDialog<Util.Triple<S
@Override
public void onSuccess(RegattaScoreCorrectionDTO result) {
leaderboardPanel.removeBusyTask();
new MatchAndApplyScoreCorrectionsDialog(leaderboardPanel, stringMessages, sailingService,
errorReporter, result).show();
new MatchAndApplyScoreCorrectionsDialog(leaderboardPanel, stringMessages,
sailingServiceWrite, errorReporter, result).show();
}
});
}
@@ -1,6 +1,8 @@
package com.sap.sailing.gwt.ui.raceboard;
import static com.sap.sailing.gwt.ui.client.SailingServiceHelper.createSailingServiceWriteInstance;
import java.util.Collections;
import com.google.gwt.core.client.GWT;
@@ -154,7 +156,7 @@ public class RaceBoardEntryPoint extends AbstractSailingReadEntryPoint implement
raceboardContextDefinition.getLeaderboardName(), raceboardContextDefinition.getLeaderboardGroupName(),
raceboardContextDefinition.getEventId(), RaceBoardEntryPoint.this, getStringMessages(), userAgent,
raceTimesInfoProvider, showChartMarkEditMediaButtonsAndVideo, true, availableDetailTypes,
raceboardData.getLeaderboard(), selectedRace, raceboardData.getTrackingConnectorInfo());
raceboardData.getLeaderboard(), selectedRace, raceboardData.getTrackingConnectorInfo(), createSailingServiceWriteInstance() /* create write instance for later admin usage*/);
RootLayoutPanel.get().add(raceBoardPerspective.getEntryWidget());
if (raceBoardMode != null) {
@@ -62,6 +62,7 @@ import com.sap.sailing.gwt.ui.client.RaceTimePanelLifecycle;
import com.sap.sailing.gwt.ui.client.RaceTimePanelSettings;
import com.sap.sailing.gwt.ui.client.RaceTimesInfoProvider;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.SailingServiceWriteAsync;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.client.media.MediaPlayerLifecycle;
import com.sap.sailing.gwt.ui.client.media.MediaPlayerManager.PlayerChangeListener;
@@ -136,6 +137,7 @@ public class RaceBoardPanel
extends AbstractPerspectiveComposite<RaceBoardPerspectiveLifecycle, RaceBoardPerspectiveOwnSettings>
implements LeaderboardUpdateListener, PopupPositionProvider, RequiresResize {
private final SailingServiceAsync sailingService;
private SailingServiceWriteAsync sailingServiceWrite;
private final MediaServiceAsync mediaService;
private final UUID eventId;
private final StringMessages stringMessages;
@@ -186,7 +188,7 @@ public class RaceBoardPanel
private static final RaceMapResources raceMapResources = GWT.create(RaceMapResources.class);
private TrackingConnectorInfoDTO trackingConnectorInfo;
/**
* @param eventId
* an optional event that can be used for "back"-navigation in case the race board shows a race in the
@@ -216,9 +218,10 @@ public class RaceBoardPanel
UserAgentDetails userAgent, RaceTimesInfoProvider raceTimesInfoProvider,
boolean showChartMarkEditMediaButtonsAndVideo, boolean showHeaderPanel,
Iterable<DetailType> availableDetailTypes, StrippedLeaderboardDTOWithSecurity leaderboardDTO,
final RaceWithCompetitorsAndBoatsDTO raceDTO, TrackingConnectorInfoDTO trackingConnectorInfo) {
final RaceWithCompetitorsAndBoatsDTO raceDTO, TrackingConnectorInfoDTO trackingConnectorInfo, SailingServiceWriteAsync sailingServiceWrite) {
super(parent, componentContext, lifecycle, settings);
this.sailingService = sailingService;
this.sailingServiceWrite = sailingServiceWrite;
this.mediaService = mediaService;
this.stringMessages = stringMessages;
this.raceTimesInfoProvider = raceTimesInfoProvider;
@@ -331,7 +334,7 @@ public class RaceBoardPanel
}
}
taggingPanel = new TaggingPanel(parent, componentContext, stringMessages, sailingService, userService, timer,
raceTimesInfoProvider, sharedTagTimePoint, sharedTagTitle, leaderboardDTO);
raceTimesInfoProvider, sharedTagTimePoint, sharedTagTitle, leaderboardDTO, sailingServiceWrite);
addChildComponent(taggingPanel);
taggingPanel.setVisible(showTaggingPanel);
// Determine if the screen is large enough to initially display the leaderboard panel on the left side of the
@@ -417,7 +420,7 @@ public class RaceBoardPanel
errorReporter, true, true, leaderboardGroupName, leaderboardName);
competitorChart.setVisible(false);
competitorChart.updateSettings(multiCompetitorRaceChartSettings);
new SliceRaceHandler(sailingService, userService, errorReporter, competitorChart, selectedRaceIdentifier,
new SliceRaceHandler(sailingServiceWrite, userService, errorReporter, competitorChart, selectedRaceIdentifier,
leaderboardGroupName, leaderboardName, event, leaderboard, raceDTO);
componentsForSideBySideViewer.add(competitorChart);
windChart = new WindChart(this, getComponentContext(), windChartLifecycle, sailingService,
@@ -436,7 +439,7 @@ public class RaceBoardPanel
if (showChartMarkEditMediaButtonsAndVideo) {
componentsForSideBySideViewer.add(maneuverTablePanel);
}
editMarkPassingPanel = new EditMarkPassingsPanel(this, getComponentContext(), sailingService,
editMarkPassingPanel = new EditMarkPassingsPanel(this, getComponentContext(), sailingServiceWrite,
selectedRaceIdentifier,
stringMessages,
competitorSelectionProvider, errorReporter, timer);
@@ -448,13 +451,13 @@ public class RaceBoardPanel
editMarkPositionPanel = new EditMarkPositionPanel(this, getComponentContext(), raceMap, leaderboardPanel,
selectedRaceIdentifier,
leaderboardName, stringMessages, sailingService, timer, timeRangeWithZoomModel,
asyncActionsExecutor, errorReporter);
asyncActionsExecutor, errorReporter, sailingServiceWrite);
if (showChartMarkEditMediaButtonsAndVideo) {
editMarkPositionPanel.setLeaderboard(leaderboardPanel.getLeaderboard());
componentsForSideBySideViewer.add(editMarkPositionPanel);
}
mediaPlayerManagerComponent = new MediaPlayerManagerComponent(this, getComponentContext(), mediaPlayerLifecycle,
sailingService, selectedRaceIdentifier, raceTimesInfoProvider, timer, mediaService, userService,
sailingServiceWrite, selectedRaceIdentifier, raceTimesInfoProvider, timer, mediaService, userService,
stringMessages, errorReporter, userAgent, this, mediaPlayerSettings, raceDTO);
final LeaderboardWithSecurityFetcher asyncFetcher = new LeaderboardWithSecurityFetcher() {
@@ -13,7 +13,7 @@ import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.Widget;
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.SailingServiceWriteAsync;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.client.shared.charts.ChartZoomChangedEvent;
import com.sap.sailing.gwt.ui.client.shared.charts.MultiCompetitorRaceChart;
@@ -59,7 +59,7 @@ public class SliceRaceHandler {
private final UUID eventId;
private final SailingServiceAsync sailingService;
private final SailingServiceWriteAsync sailingServiceWrite;
private final UserService userService;
@@ -76,11 +76,11 @@ public class SliceRaceHandler {
/**
* Registers this handler as a zoom event handler on the {@code competitorRaceChart}.
*/
public SliceRaceHandler(SailingServiceAsync sailingService, UserService userService, final ErrorReporter errorReporter,
public SliceRaceHandler(SailingServiceWriteAsync sailingServiceWrite, UserService userService, final ErrorReporter errorReporter,
MultiCompetitorRaceChart competitorRaceChart, RegattaAndRaceIdentifier selectedRaceIdentifier,
final String leaderboardGroupName, String leaderboardName, UUID eventId,
StrippedLeaderboardDTOWithSecurity leaderboardDTO, RaceWithCompetitorsAndBoatsDTO raceDTO) {
this.sailingService = sailingService;
this.sailingServiceWrite = sailingServiceWrite;
this.userService = userService;
this.errorReporter = errorReporter;
this.selectedRaceIdentifier = selectedRaceIdentifier;
@@ -101,7 +101,7 @@ public class SliceRaceHandler {
updateVisibility();
});
sliceButtonUi.addClickHandler((e) -> doSlice());
sailingService.canSliceRace(selectedRaceIdentifier, new AsyncCallback<Boolean>() {
sailingServiceWrite.canSliceRace(selectedRaceIdentifier, new AsyncCallback<Boolean>() {
@Override
public void onSuccess(Boolean result) {
canSlice = Boolean.TRUE.equals(result);
@@ -137,7 +137,7 @@ public class SliceRaceHandler {
private void doSlice() {
if (visibleRange != null) {
sailingService.prepareForSlicingOfRace(selectedRaceIdentifier,
sailingServiceWrite.prepareForSlicingOfRace(selectedRaceIdentifier,
new AsyncCallback<SliceRacePreperationDTO>() {
@Override
public void onFailure(Throwable caught) {
@@ -147,7 +147,7 @@ public class SliceRaceHandler {
@Override
public void onSuccess(SliceRacePreperationDTO sliceRacePreperatioData) {
new SlicedRaceNameDialog(sliceRacePreperatioData, slicedRaceName -> {
sailingService.sliceRace(selectedRaceIdentifier, slicedRaceName, visibleRange.from(),
sailingServiceWrite.sliceRace(selectedRaceIdentifier, slicedRaceName, visibleRange.from(),
visibleRange.to(), new AsyncCallback<RegattaAndRaceIdentifier>() {
@Override
@@ -34,6 +34,7 @@ import com.sap.sailing.domain.common.dto.TagDTO;
import com.sap.sailing.gwt.ui.client.RaceTimesInfoProvider;
import com.sap.sailing.gwt.ui.client.RaceTimesInfoProviderListener;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.SailingServiceWriteAsync;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.raceboard.tagging.TaggingPanelResources.TagPanelStyle;
import com.sap.sailing.gwt.ui.shared.RaceTimesInfoDTO;
@@ -128,6 +129,7 @@ public class TaggingPanel extends ComponentWithoutSettings
// misc. elements
private final StringMessages stringMessages;
private final SailingServiceAsync sailingService;
private final SailingServiceWriteAsync sailingServiceWrite;
private final UserService userService;
private final Timer timer;
private final RaceTimesInfoProvider raceTimesInfoProvider;
@@ -168,11 +170,12 @@ public class TaggingPanel extends ComponentWithoutSettings
public TaggingPanel(Component<?> parent, ComponentContext<?> context, StringMessages stringMessages,
SailingServiceAsync sailingService, UserService userService, Timer timer,
RaceTimesInfoProvider raceTimesInfoProvider, TimePoint timePointToHighlight, String tagToHighlight,
StrippedLeaderboardDTOWithSecurity leaderboardDTO) {
StrippedLeaderboardDTOWithSecurity leaderboardDTO, SailingServiceWriteAsync sailingServiceWrite) {
super(parent, context);
this.stringMessages = stringMessages;
this.sailingService = sailingService;
this.sailingServiceWrite = sailingServiceWrite;
this.userService = userService;
this.timer = timer;
this.raceTimesInfoProvider = raceTimesInfoProvider;
@@ -392,7 +395,7 @@ public class TaggingPanel extends ComponentWithoutSettings
|| imageHeight > MediaTagConstants.TAGGING_IMAGE.getMaxHeight()) {
ArrayList<MediaTagConstants> tags = new ArrayList<MediaTagConstants>();
tags.add(MediaTagConstants.TAGGING_IMAGE);
sailingService.resizeImage(new ImageResizingTaskDTO(imageURL, new Date(), tags),
sailingServiceWrite.resizeImage(new ImageResizingTaskDTO(imageURL, new Date(), tags),
new AsyncCallback<Set<ImageDTO>>() {
@Override
public void onFailure(Throwable caught) {
@@ -445,7 +448,7 @@ public class TaggingPanel extends ComponentWithoutSettings
final String saveComment = (comment == null ? "" : comment);
final TimePoint saveRaceTimePoint = (raceTimePoint == null ? new MillisecondsTimePoint(getTimerTime())
: raceTimePoint);
sailingService.addTag(leaderboardName, raceColumn.getName(), fleet.getName(), tag, saveComment, imageURL,
sailingServiceWrite.addTag(leaderboardName, raceColumn.getName(), fleet.getName(), tag, saveComment, imageURL,
resizedImageURL, visibleForPublic, saveRaceTimePoint, new AsyncCallback<SuccessInfo>() {
@Override
public void onFailure(Throwable caught) {
@@ -492,7 +495,7 @@ public class TaggingPanel extends ComponentWithoutSettings
* when set to <code>true</code>, only error messages will get displayed to user
*/
protected void removeTag(TagDTO tag, boolean silent) {
sailingService.removeTag(leaderboardName, raceColumn.getName(), fleet.getName(), tag,
sailingServiceWrite.removeTag(leaderboardName, raceColumn.getName(), fleet.getName(), tag,
new AsyncCallback<SuccessInfo>() {
@Override
public void onFailure(Throwable caught) {
@@ -535,7 +538,7 @@ public class TaggingPanel extends ComponentWithoutSettings
@Override
public void onSuccess(String resizedImageURL) {
sailingService.updateTag(leaderboardName, raceColumn.getName(), fleet.getName(), tagToUpdate, tag,
sailingServiceWrite.updateTag(leaderboardName, raceColumn.getName(), fleet.getName(), tagToUpdate, tag,
comment, imageURL, resizedImageURL, visibleForPublic, new AsyncCallback<SuccessInfo>() {
@Override
public void onFailure(Throwable caught) {
@@ -591,7 +594,7 @@ public class TaggingPanel extends ComponentWithoutSettings
private void reloadPrivateTags() {
tagListProvider.removePrivateTags();
if (userService.getCurrentUser() != null) {
sailingService.getPrivateTags(leaderboardName, raceColumn.getName(), fleet.getName(),
sailingServiceWrite.getPrivateTags(leaderboardName, raceColumn.getName(), fleet.getName(),
new AsyncCallback<List<TagDTO>>() {
@Override
public void onFailure(Throwable caught) {
@@ -4,8 +4,6 @@ import static org.junit.Assert.assertEquals;
import org.junit.Test;
import com.sap.sailing.windestimation.aggregator.hmm.IntersectedWindRange;
import com.sap.sailing.windestimation.aggregator.hmm.WindCourseRange;
import com.sap.sailing.windestimation.aggregator.hmm.WindCourseRange.CombinationModeOnViolation;
/**
@@ -8,11 +8,6 @@ import org.junit.Before;
import org.junit.Test;
import com.sap.sse.datamining.data.Cluster;
import com.sap.sse.datamining.impl.data.ClusterWithLowerAndUpperBoundaries;
import com.sap.sse.datamining.impl.data.ClusterWithSingleBoundary;
import com.sap.sse.datamining.impl.data.ComparableClusterBoundary;
import com.sap.sse.datamining.impl.data.ComparisonStrategy;
import com.sap.sse.datamining.impl.data.LinearDoubleClusterGroup;
public class TestLinearDoubleClusterGroup {
@@ -8,8 +8,6 @@ import org.junit.Test;
import com.sap.sse.datamining.data.Cluster;
import com.sap.sse.datamining.data.ClusterGroup;
import com.sap.sse.datamining.impl.data.LinearDoubleClusterGroup;
import com.sap.sse.datamining.impl.data.PercentageClusterFormatter;
public class TestPercentageClusterFormatter {
@@ -10,7 +10,6 @@ import org.junit.Before;
import org.junit.Test;
import com.sap.sse.common.CacheableRPCResult;
import com.sap.sse.gwt.server.CacheKey;
/**
* The {@link CacheKey} class uses weak references that may be cleared. This test is to ensure that handling