mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-16 09:11:02 +00:00
Merge branch 'master' into bug1562
This commit is contained in:
commit
a550ed4c77
43 files changed
+1147
-297
No files matched your search
+11
-4
@@ -8,19 +8,21 @@ import com.sap.sailing.gwt.autoplay.client.app.AutoPlayAppClientFactory;
|
||||
import com.sap.sailing.gwt.autoplay.client.app.AutoPlayAppHistoryMapper;
|
||||
import com.sap.sailing.gwt.common.client.SharedResources;
|
||||
import com.sap.sailing.gwt.ui.client.RemoteServiceMappingConstants;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sse.gwt.client.EntryPointHelper;
|
||||
import com.sap.sse.gwt.client.mvp.AbstractEntryPoint;
|
||||
import com.sap.sse.gwt.client.mvp.AbstractMvpEntryPoint;
|
||||
|
||||
public class AutoPlayEntryPoint extends AbstractEntryPoint {
|
||||
public class AutoPlayEntryPoint extends AbstractMvpEntryPoint<StringMessages> {
|
||||
|
||||
public void onModuleLoad() {
|
||||
@Override
|
||||
public void doOnModuleLoad() {
|
||||
AutoPlayAppClientFactory clientFactory = GWT.create(AutoPlayAppClientFactory.class);
|
||||
|
||||
EntryPointHelper.registerASyncService((ServiceDefTarget) clientFactory.getSailingService(), RemoteServiceMappingConstants.sailingServiceRemotePath);
|
||||
EntryPointHelper.registerASyncService((ServiceDefTarget) clientFactory.getMediaService(), RemoteServiceMappingConstants.mediaServiceRemotePath);
|
||||
|
||||
AutoPlayAppHistoryMapper applicationHistoryMapper = GWT.create(AutoPlayAppHistoryMapper.class);
|
||||
onModuleLoad(clientFactory, applicationHistoryMapper, new AutoPlayAppActivityMapper(clientFactory));
|
||||
initMvp(clientFactory, applicationHistoryMapper, new AutoPlayAppActivityMapper(clientFactory));
|
||||
|
||||
SharedResources.INSTANCE.mediaCss().ensureInjected();
|
||||
SharedResources.INSTANCE.mainCss().ensureInjected();
|
||||
@@ -28,4 +30,9 @@ public class AutoPlayEntryPoint extends AbstractEntryPoint {
|
||||
StyleInjector.injectAtEnd("@media (min-width: 25em) { "+SharedResources.INSTANCE.mediumCss().getText()+"}");
|
||||
StyleInjector.injectAtEnd("@media (min-width: 50em) { "+SharedResources.INSTANCE.largeCss().getText()+"}");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected StringMessages createStringMessages() {
|
||||
return GWT.create(StringMessages.class);
|
||||
}
|
||||
}
|
||||
+2
-25
@@ -3,25 +3,17 @@ package com.sap.sailing.gwt.autoplay.client.app;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.place.shared.Place;
|
||||
import com.google.gwt.place.shared.PlaceController;
|
||||
import com.google.gwt.user.client.rpc.ServiceDefTarget;
|
||||
import com.google.web.bindery.event.shared.EventBus;
|
||||
import com.sap.sailing.gwt.autoplay.client.place.start.StartPlace;
|
||||
import com.sap.sailing.gwt.ui.client.MediaService;
|
||||
import com.sap.sailing.gwt.ui.client.MediaServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.SailingService;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sse.gwt.client.EntryPointHelper;
|
||||
import com.sap.sse.gwt.client.mvp.ClientFactoryImpl;
|
||||
import com.sap.sse.security.ui.client.UserManagementService;
|
||||
import com.sap.sse.security.ui.client.UserManagementServiceAsync;
|
||||
import com.sap.sse.security.ui.client.UserService;
|
||||
import com.sap.sse.security.ui.client.SecureClientFactoryImpl;
|
||||
|
||||
|
||||
public abstract class AbstractApplicationClientFactory extends ClientFactoryImpl implements AutoPlayAppClientFactory {
|
||||
public abstract class AbstractApplicationClientFactory extends SecureClientFactoryImpl implements AutoPlayAppClientFactory {
|
||||
private final SailingServiceAsync sailingService;
|
||||
private final MediaServiceAsync mediaService;
|
||||
private final UserManagementServiceAsync userManagementService;
|
||||
private final UserService userService;
|
||||
private final PlaceNavigator navigator;
|
||||
|
||||
public AbstractApplicationClientFactory(ApplicationTopLevelView root, EventBus eventBus, PlaceController placeController) {
|
||||
@@ -29,10 +21,6 @@ public abstract class AbstractApplicationClientFactory extends ClientFactoryImpl
|
||||
navigator = new PlaceNavigatorImpl(placeController);
|
||||
sailingService = GWT.create(SailingService.class);
|
||||
mediaService = GWT.create(MediaService.class);
|
||||
userManagementService = GWT.create(UserManagementService.class);
|
||||
EntryPointHelper.registerASyncService((ServiceDefTarget) getUserManagementService(),
|
||||
com.sap.sse.security.ui.client.RemoteServiceMappingConstants.userManagementServiceRemotePath);
|
||||
userService = new UserService(userManagementService);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -54,15 +42,4 @@ public abstract class AbstractApplicationClientFactory extends ClientFactoryImpl
|
||||
public PlaceNavigator getPlaceNavigator() {
|
||||
return navigator;
|
||||
}
|
||||
|
||||
@Override
|
||||
public UserManagementServiceAsync getUserManagementService() {
|
||||
return userManagementService;
|
||||
}
|
||||
|
||||
@Override
|
||||
public UserService getUserService() {
|
||||
return userService;
|
||||
}
|
||||
|
||||
}
|
||||
+10
@@ -7,6 +7,9 @@ import com.google.gwt.user.client.ui.AcceptsOneWidget;
|
||||
import com.google.gwt.user.client.ui.Composite;
|
||||
import com.google.gwt.user.client.ui.SimplePanel;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sse.gwt.client.DefaultErrorReporter;
|
||||
import com.sap.sse.gwt.client.ErrorReporter;
|
||||
|
||||
/**
|
||||
* This is the top-level view of the autoplay application. Every time another presenter wants to reveal itself,
|
||||
@@ -18,6 +21,8 @@ public class DesktopApplicationView extends Composite implements ApplicationTopL
|
||||
|
||||
private static DesktopApplicationViewUiBinder uiBinder = GWT.create(DesktopApplicationViewUiBinder.class);
|
||||
|
||||
private static ErrorReporter errorReporter = new DefaultErrorReporter<StringMessages>(StringMessages.INSTANCE);
|
||||
|
||||
@UiField
|
||||
SimplePanel mainContentPanel;
|
||||
|
||||
@@ -33,4 +38,9 @@ public class DesktopApplicationView extends Composite implements ApplicationTopL
|
||||
@Override
|
||||
public void showLoading(boolean visible) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ErrorReporter getErrorReporter() {
|
||||
return errorReporter;
|
||||
}
|
||||
}
|
||||
+2
-23
@@ -10,12 +10,11 @@ import com.google.gwt.user.client.ui.AcceptsOneWidget;
|
||||
import com.google.gwt.user.client.ui.RootLayoutPanel;
|
||||
import com.sap.sailing.gwt.ui.raceboard.RaceBoardViewConfiguration;
|
||||
import com.sap.sailing.gwt.ui.shared.EventDTO;
|
||||
import com.sap.sse.gwt.client.ErrorReporter;
|
||||
import com.sap.sse.gwt.client.mvp.ErrorView;
|
||||
import com.sap.sse.gwt.client.useragent.UserAgentDetails;
|
||||
import com.sap.sse.gwt.shared.GwtHttpRequestUtils;
|
||||
|
||||
public class PlayerActivity extends AbstractActivity implements ErrorReporter {
|
||||
public class PlayerActivity extends AbstractActivity {
|
||||
private final PlayerClientFactory clientFactory;
|
||||
private final PlayerPlace playerPlace;
|
||||
private AutoPlayController autoPlayController;
|
||||
@@ -47,7 +46,7 @@ public class PlayerActivity extends AbstractActivity implements ErrorReporter {
|
||||
RootLayoutPanel.get().add(view.asWidget());
|
||||
|
||||
autoPlayController = new AutoPlayController(clientFactory.getSailingService(), clientFactory
|
||||
.getMediaService(), clientFactory.getUserService(), PlayerActivity.this, playerPlace
|
||||
.getMediaService(), clientFactory.getUserService(), clientFactory.getErrorReporter(), playerPlace
|
||||
.isFullscreen(), /* leaderboardGroupName */"", playerPlace.getLeaderboardIdAsNameString(),
|
||||
playerPlace.getLeaderboardZoom(), userAgent, delayToLiveMillis, showRaceDetails,
|
||||
readRaceboardConfiguration, view);
|
||||
@@ -85,24 +84,4 @@ public class PlayerActivity extends AbstractActivity implements ErrorReporter {
|
||||
ErrorView view = clientFactory.createErrorView(errorMessage, errorReason);
|
||||
panel.setWidget(view.asWidget());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reportError(String message) {
|
||||
Window.alert(message);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reportError(String message, boolean silentMode) {
|
||||
if (silentMode) {
|
||||
Window.setStatus(message);
|
||||
} else {
|
||||
reportError(message);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reportPersistentInformation(String message) {
|
||||
Window.setStatus(message);
|
||||
}
|
||||
|
||||
}
|
||||
+1
@@ -83,6 +83,7 @@ public class DesktopStartView extends Composite implements StartView {
|
||||
}
|
||||
|
||||
initWidget(uiBinder.createAndBindUi(this));
|
||||
this.ensureDebugId("AutoPlayStartView");
|
||||
|
||||
leaderboardAutoZoomBox.setValue(true);
|
||||
leaderboardZoomBox.setEnabled(false);
|
||||
|
||||
+6
-2
@@ -9,32 +9,36 @@ import com.google.gwt.user.client.Window;
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
import com.google.gwt.user.client.ui.AcceptsOneWidget;
|
||||
import com.sap.sailing.gwt.ui.shared.EventDTO;
|
||||
import com.sap.sse.gwt.client.async.MarkedAsyncCallback;
|
||||
import com.sap.sse.gwt.client.event.LocaleChangeEvent;
|
||||
import com.sap.sse.gwt.client.event.LocaleChangeEventHandler;
|
||||
|
||||
public class StartActivity extends AbstractActivity {
|
||||
private final StartClientFactory clientFactory;
|
||||
|
||||
public static final String LOAD_EVENTS_DATA_CATEGORY = "loadEventsData";
|
||||
|
||||
public StartActivity(StartPlace place, StartClientFactory clientFactory) {
|
||||
this.clientFactory = clientFactory;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void start(final AcceptsOneWidget panel, EventBus eventBus) {
|
||||
clientFactory.getSailingService().getEvents(new AsyncCallback<List<EventDTO>>() {
|
||||
clientFactory.getSailingService().getEvents(new MarkedAsyncCallback<List<EventDTO>>(new AsyncCallback<List<EventDTO>>() {
|
||||
|
||||
@Override
|
||||
public void onSuccess(List<EventDTO> result) {
|
||||
final StartView view = clientFactory.createStartView();
|
||||
panel.setWidget(view.asWidget());
|
||||
|
||||
view.asWidget().ensureDebugId("AutoPlayStartView");
|
||||
view.setEvents(result);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
}
|
||||
});
|
||||
}, LOAD_EVENTS_DATA_CATEGORY));
|
||||
|
||||
eventBus.addHandler(LocaleChangeEvent.TYPE, new LocaleChangeEventHandler() {
|
||||
@Override
|
||||
|
||||
+11
-5
@@ -8,16 +8,17 @@ import com.sap.sailing.gwt.home.client.app.ApplicationActivityMapper;
|
||||
import com.sap.sailing.gwt.home.client.app.ApplicationClientFactory;
|
||||
import com.sap.sailing.gwt.home.client.app.ApplicationHistoryMapper;
|
||||
import com.sap.sailing.gwt.ui.client.RemoteServiceMappingConstants;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sse.gwt.client.EntryPointHelper;
|
||||
import com.sap.sse.gwt.client.mvp.AbstractEntryPoint;
|
||||
import com.sap.sse.gwt.client.mvp.AbstractMvpEntryPoint;
|
||||
|
||||
public class HomeEntryPoint extends AbstractEntryPoint {
|
||||
|
||||
public void onModuleLoad() {
|
||||
public class HomeEntryPoint extends AbstractMvpEntryPoint<StringMessages> {
|
||||
@Override
|
||||
public void doOnModuleLoad() {
|
||||
ApplicationClientFactory clientFactory = GWT.create(ApplicationClientFactory.class);
|
||||
EntryPointHelper.registerASyncService((ServiceDefTarget) clientFactory.getSailingService(), RemoteServiceMappingConstants.sailingServiceRemotePath);
|
||||
ApplicationHistoryMapper applicationHistoryMapper = GWT.create(ApplicationHistoryMapper.class);
|
||||
onModuleLoad(clientFactory, applicationHistoryMapper, new ApplicationActivityMapper(clientFactory));
|
||||
initMvp(clientFactory, applicationHistoryMapper, new ApplicationActivityMapper(clientFactory));
|
||||
|
||||
SharedResources.INSTANCE.mediaCss().ensureInjected();
|
||||
SharedResources.INSTANCE.mainCss().ensureInjected();
|
||||
@@ -25,4 +26,9 @@ public class HomeEntryPoint extends AbstractEntryPoint {
|
||||
StyleInjector.injectAtEnd("@media (min-width: 25em) { "+SharedResources.INSTANCE.mediumCss().getText()+"}");
|
||||
StyleInjector.injectAtEnd("@media (min-width: 50em) { "+SharedResources.INSTANCE.largeCss().getText()+"}");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected StringMessages createStringMessages() {
|
||||
return GWT.create(StringMessages.class);
|
||||
}
|
||||
}
|
||||
+2
-23
@@ -3,36 +3,25 @@ package com.sap.sailing.gwt.home.client.app;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.place.shared.Place;
|
||||
import com.google.gwt.place.shared.PlaceController;
|
||||
import com.google.gwt.user.client.rpc.ServiceDefTarget;
|
||||
import com.google.web.bindery.event.shared.EventBus;
|
||||
import com.sap.sailing.gwt.home.client.place.start.StartPlace;
|
||||
import com.sap.sailing.gwt.ui.client.MediaService;
|
||||
import com.sap.sailing.gwt.ui.client.MediaServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.SailingService;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sse.gwt.client.EntryPointHelper;
|
||||
import com.sap.sse.gwt.client.mvp.ClientFactoryImpl;
|
||||
import com.sap.sse.security.ui.client.UserManagementService;
|
||||
import com.sap.sse.security.ui.client.UserManagementServiceAsync;
|
||||
import com.sap.sse.security.ui.client.UserService;
|
||||
import com.sap.sse.security.ui.client.SecureClientFactoryImpl;
|
||||
|
||||
|
||||
public abstract class AbstractApplicationClientFactory extends ClientFactoryImpl implements ApplicationClientFactory {
|
||||
public abstract class AbstractApplicationClientFactory extends SecureClientFactoryImpl implements ApplicationClientFactory {
|
||||
private final SailingServiceAsync sailingService;
|
||||
private final MediaServiceAsync mediaService;
|
||||
private final HomePlacesNavigator navigator;
|
||||
private final UserManagementServiceAsync userManagementService;
|
||||
private final UserService userService;
|
||||
|
||||
public AbstractApplicationClientFactory(ApplicationTopLevelView root, EventBus eventBus, PlaceController placeController) {
|
||||
super(root, eventBus, placeController);
|
||||
navigator = new HomePlacesNavigator(placeController);
|
||||
sailingService = GWT.create(SailingService.class);
|
||||
mediaService = GWT.create(MediaService.class);
|
||||
userManagementService = GWT.create(UserManagementService.class);
|
||||
EntryPointHelper.registerASyncService((ServiceDefTarget) getUserManagementService(),
|
||||
com.sap.sse.security.ui.client.RemoteServiceMappingConstants.userManagementServiceRemotePath);
|
||||
userService = new UserService(userManagementService);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -54,14 +43,4 @@ public abstract class AbstractApplicationClientFactory extends ClientFactoryImpl
|
||||
public HomePlacesNavigator getHomePlacesNavigator() {
|
||||
return navigator;
|
||||
}
|
||||
|
||||
@Override
|
||||
public UserManagementServiceAsync getUserManagementService() {
|
||||
return userManagementService;
|
||||
}
|
||||
|
||||
@Override
|
||||
public UserService getUserService() {
|
||||
return userService;
|
||||
}
|
||||
}
|
||||
+10
@@ -11,6 +11,9 @@ import com.google.gwt.user.client.ui.SimplePanel;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.gwt.home.client.shared.footer.Footer;
|
||||
import com.sap.sailing.gwt.home.client.shared.header.Header;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sse.gwt.client.DefaultErrorReporter;
|
||||
import com.sap.sse.gwt.client.ErrorReporter;
|
||||
|
||||
/**
|
||||
* This is the top-level view of the application. Every time another presenter wants to reveal itself,
|
||||
@@ -22,6 +25,8 @@ public class SmartphoneApplicationView extends Composite implements ApplicationT
|
||||
|
||||
private static ApplicationMobileViewUiBinder uiBinder = GWT.create(ApplicationMobileViewUiBinder.class);
|
||||
|
||||
private static ErrorReporter errorReporter = new DefaultErrorReporter<StringMessages>(StringMessages.INSTANCE);
|
||||
|
||||
@UiField(provided=true)
|
||||
Header headerPanel;
|
||||
|
||||
@@ -47,4 +52,9 @@ public class SmartphoneApplicationView extends Composite implements ApplicationT
|
||||
public void showLoading(boolean visibile) {
|
||||
loadingMessage.getStyle().setVisibility(visibile ? Visibility.VISIBLE : Visibility.HIDDEN);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ErrorReporter getErrorReporter() {
|
||||
return errorReporter;
|
||||
}
|
||||
}
|
||||
+11
@@ -9,6 +9,9 @@ import com.google.gwt.user.client.ui.SimplePanel;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.gwt.home.client.shared.footer.Footer;
|
||||
import com.sap.sailing.gwt.home.client.shared.header.Header;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sse.gwt.client.DefaultErrorReporter;
|
||||
import com.sap.sse.gwt.client.ErrorReporter;
|
||||
|
||||
/**
|
||||
* This is the top-level view of the application. Every time another presenter wants to reveal itself,
|
||||
@@ -20,6 +23,8 @@ public class TabletAndDesktopApplicationView extends Composite implements Applic
|
||||
|
||||
private static TabletAndDesktopApplicationViewUiBinder uiBinder = GWT.create(TabletAndDesktopApplicationViewUiBinder.class);
|
||||
|
||||
private static ErrorReporter errorReporter = new DefaultErrorReporter<StringMessages>(StringMessages.INSTANCE);
|
||||
|
||||
@UiField(provided=true)
|
||||
Header headerPanel;
|
||||
|
||||
@@ -43,4 +48,10 @@ public class TabletAndDesktopApplicationView extends Composite implements Applic
|
||||
@Override
|
||||
public void showLoading(boolean visible) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ErrorReporter getErrorReporter() {
|
||||
return errorReporter;
|
||||
}
|
||||
|
||||
}
|
||||
+19
-11
@@ -52,18 +52,26 @@ public class EventActivity extends AbstractActivity {
|
||||
panel.setWidget(new Placeholder());
|
||||
|
||||
final long clientTimeWhenRequestWasSent = System.currentTimeMillis();
|
||||
UUID eventUUID = UUID.fromString(eventPlace.getEventUuidAsString());
|
||||
clientFactory.getSailingService().getEventById(eventUUID, true, new AsyncCallback<EventDTO>() {
|
||||
@Override
|
||||
public void onSuccess(final EventDTO event) {
|
||||
loadRegattaStructureAndCreateEventView(panel, clientTimeWhenRequestWasSent, event);
|
||||
}
|
||||
try {
|
||||
final UUID eventUUID = UUID.fromString(eventPlace.getEventUuidAsString());
|
||||
clientFactory.getSailingService().getEventById(eventUUID, true, new AsyncCallback<EventDTO>() {
|
||||
@Override
|
||||
public void onSuccess(final EventDTO event) {
|
||||
if(event != null) {
|
||||
loadRegattaStructureAndCreateEventView(panel, clientTimeWhenRequestWasSent, event);
|
||||
} else {
|
||||
createErrorView("No such event with UUID " + eventUUID, null, panel);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
createErrorView("Error while loading the event with service getEventById()", caught, panel);
|
||||
}
|
||||
});
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
createErrorView("Error while loading the event with service getEventById()", caught, panel);
|
||||
}
|
||||
});
|
||||
} catch (IllegalArgumentException e) {
|
||||
createErrorView("Could not parse a valid UUID from the parameter 'eventID'.", null, panel);
|
||||
}
|
||||
}
|
||||
|
||||
private void loadRegattaStructureAndCreateEventView(final AcceptsOneWidget panel, final long clientTimeWhenRequestWasSent, final EventDTO event) {
|
||||
|
||||
+2
-23
@@ -23,7 +23,6 @@ import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettingsFactory;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardUrlSettings;
|
||||
import com.sap.sailing.gwt.ui.shared.EventDTO;
|
||||
import com.sap.sse.common.Util;
|
||||
import com.sap.sse.gwt.client.ErrorReporter;
|
||||
import com.sap.sse.gwt.client.async.AsyncActionsExecutor;
|
||||
import com.sap.sse.gwt.client.async.MarkedAsyncCallback;
|
||||
import com.sap.sse.gwt.client.mvp.ErrorView;
|
||||
@@ -33,7 +32,7 @@ import com.sap.sse.gwt.client.player.Timer.PlayStates;
|
||||
import com.sap.sse.gwt.client.useragent.UserAgentDetails;
|
||||
import com.sap.sse.gwt.shared.GwtHttpRequestUtils;
|
||||
|
||||
public class RegattaActivity extends AbstractActivity implements ErrorReporter {
|
||||
public class RegattaActivity extends AbstractActivity {
|
||||
private final RegattaClientFactory clientFactory;
|
||||
private final RegattaPlace regattaPlace;
|
||||
private final Timer timerForClientServerOffset;
|
||||
@@ -112,7 +111,7 @@ public class RegattaActivity extends AbstractActivity implements ErrorReporter {
|
||||
Window.setTitle(regattaPlace.getTitle(event.getName(), leaderboardDisplayName));
|
||||
|
||||
analyticsView.createRegattaAnalyticsViewer(clientFactory.getSailingService(), new AsyncActionsExecutor(),
|
||||
timer, leaderboardSettings, preselectedRace, "leaderboardGroupName", leaderboardName, this,
|
||||
timer, leaderboardSettings, preselectedRace, "leaderboardGroupName", leaderboardName, clientFactory.getErrorReporter(),
|
||||
userAgent, showRaceDetails, autoExpandLastRaceColumn, showOverallLeaderboard);
|
||||
|
||||
panel.setWidget(analyticsView.asWidget());
|
||||
@@ -213,24 +212,4 @@ public class RegattaActivity extends AbstractActivity implements ErrorReporter {
|
||||
int width = Window.getClientWidth();
|
||||
return width <= 720;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reportError(String message) {
|
||||
Window.alert(message);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reportError(String message, boolean silentMode) {
|
||||
if (silentMode) {
|
||||
Window.setStatus(message);
|
||||
} else {
|
||||
reportError(message);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reportPersistentInformation(String message) {
|
||||
Window.setStatus(message);
|
||||
}
|
||||
|
||||
}
|
||||
+2
-23
@@ -23,7 +23,6 @@ import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettingsFactory;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardUrlSettings;
|
||||
import com.sap.sailing.gwt.ui.shared.EventDTO;
|
||||
import com.sap.sse.common.Util;
|
||||
import com.sap.sse.gwt.client.ErrorReporter;
|
||||
import com.sap.sse.gwt.client.async.AsyncActionsExecutor;
|
||||
import com.sap.sse.gwt.client.async.MarkedAsyncCallback;
|
||||
import com.sap.sse.gwt.client.mvp.ErrorView;
|
||||
@@ -33,7 +32,7 @@ import com.sap.sse.gwt.client.player.Timer.PlayStates;
|
||||
import com.sap.sse.gwt.client.useragent.UserAgentDetails;
|
||||
import com.sap.sse.gwt.shared.GwtHttpRequestUtils;
|
||||
|
||||
public class SeriesActivity extends AbstractActivity implements ErrorReporter {
|
||||
public class SeriesActivity extends AbstractActivity {
|
||||
private final SeriesClientFactory clientFactory;
|
||||
private final SeriesPlace seriesPlace;
|
||||
private final Timer timerForClientServerOffset;
|
||||
@@ -113,7 +112,7 @@ public class SeriesActivity extends AbstractActivity implements ErrorReporter {
|
||||
Window.setTitle(seriesPlace.getTitle(event.getName(), leaderboardDisplayName));
|
||||
|
||||
analyticsView.createSeriesAnalyticsViewer(clientFactory.getSailingService(), new AsyncActionsExecutor(),
|
||||
timer, leaderboardSettings, null, preselectedRace, "leaderboardGroupName", leaderboardName, this,
|
||||
timer, leaderboardSettings, null, preselectedRace, "leaderboardGroupName", leaderboardName, clientFactory.getErrorReporter(),
|
||||
userAgent, showRaceDetails, autoExpandLastRaceColumn, showSeriesLeaderboards);
|
||||
|
||||
panel.setWidget(analyticsView.asWidget());
|
||||
@@ -214,24 +213,4 @@ public class SeriesActivity extends AbstractActivity implements ErrorReporter {
|
||||
int width = Window.getClientWidth();
|
||||
return width <= 720;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reportError(String message) {
|
||||
Window.alert(message);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reportError(String message, boolean silentMode) {
|
||||
if (silentMode) {
|
||||
Window.setStatus(message);
|
||||
} else {
|
||||
reportError(message);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reportPersistentInformation(String message) {
|
||||
Window.setStatus(message);
|
||||
}
|
||||
|
||||
}
|
||||
+1
-5
@@ -19,8 +19,6 @@ import com.sap.sailing.gwt.ui.client.MediaServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.RegattaRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.RegattasDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.RemoteServiceMappingConstants;
|
||||
import com.sap.sailing.gwt.ui.client.SailingService;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.masterdataimport.MasterDataImportPanel;
|
||||
import com.sap.sailing.gwt.ui.shared.BetterDateTimeBox;
|
||||
import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO;
|
||||
@@ -40,19 +38,17 @@ public class AdminConsoleEntryPoint extends AbstractSailingEntryPoint implements
|
||||
private Set<LeaderboardsDisplayer> leaderboardsDisplayers;
|
||||
private Set<LeaderboardGroupsDisplayer> leaderboardGroupsDisplayers;
|
||||
|
||||
private final SailingServiceAsync sailingService = GWT.create(SailingService.class);
|
||||
private final MediaServiceAsync mediaService = GWT.create(MediaService.class);
|
||||
|
||||
@Override
|
||||
protected void doOnModuleLoad() {
|
||||
super.doOnModuleLoad();
|
||||
EntryPointHelper.registerASyncService((ServiceDefTarget) sailingService, RemoteServiceMappingConstants.sailingServiceRemotePath);
|
||||
EntryPointHelper.registerASyncService((ServiceDefTarget) mediaService, RemoteServiceMappingConstants.mediaServiceRemotePath);
|
||||
createUI();
|
||||
}
|
||||
|
||||
private void createUI() {
|
||||
AdminConsolePanel panel = new AdminConsolePanel(getUserService(), sailingService, persistentAlertLabel,
|
||||
AdminConsolePanel panel = new AdminConsolePanel(getUserService(), sailingService,
|
||||
getStringMessages().releaseNotes(), "/release_notes_admin.html", /* error reporter */ this, SecurityStylesheetResources.INSTANCE.css());
|
||||
BetterDateTimeBox.initialize();
|
||||
regattasDisplayers = new HashSet<>();
|
||||
|
||||
+11
@@ -1,9 +1,20 @@
|
||||
package com.sap.sailing.gwt.ui.client;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.user.client.rpc.ServiceDefTarget;
|
||||
import com.sap.sse.gwt.client.EntryPointHelper;
|
||||
import com.sap.sse.security.ui.client.AbstractSecureEntryPoint;
|
||||
|
||||
public abstract class AbstractSailingEntryPoint extends AbstractSecureEntryPoint<StringMessages> {
|
||||
protected final SailingServiceAsync sailingService = GWT.create(SailingService.class);
|
||||
|
||||
@Override
|
||||
protected void doOnModuleLoad() {
|
||||
super.doOnModuleLoad();
|
||||
|
||||
EntryPointHelper.registerASyncService((ServiceDefTarget) sailingService, RemoteServiceMappingConstants.sailingServiceRemotePath);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected StringMessages createStringMessages() {
|
||||
return GWT.create(StringMessages.class);
|
||||
|
||||
-5
@@ -18,8 +18,6 @@ import com.sap.sailing.gwt.ui.client.AbstractSailingEntryPoint;
|
||||
import com.sap.sailing.gwt.ui.client.GlobalNavigationPanel;
|
||||
import com.sap.sailing.gwt.ui.client.LogoAndTitlePanel;
|
||||
import com.sap.sailing.gwt.ui.client.RemoteServiceMappingConstants;
|
||||
import com.sap.sailing.gwt.ui.client.SailingService;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialog;
|
||||
import com.sap.sailing.gwt.ui.datamining.execution.SimpleQueryRunner;
|
||||
import com.sap.sailing.gwt.ui.datamining.presentation.BenchmarkResultsPanel;
|
||||
@@ -30,8 +28,6 @@ import com.sap.sse.gwt.client.EntryPointHelper;
|
||||
import com.sap.sse.gwt.shared.GwtHttpRequestUtils;
|
||||
|
||||
public class DataMiningEntryPoint extends AbstractSailingEntryPoint {
|
||||
private final SailingServiceAsync sailingService = GWT.create(SailingService.class);
|
||||
|
||||
private static DataMiningResources resources = GWT.create(DataMiningResources.class);
|
||||
|
||||
private final DataMiningServiceAsync dataMiningService = GWT.create(DataMiningService.class);
|
||||
@@ -40,7 +36,6 @@ public class DataMiningEntryPoint extends AbstractSailingEntryPoint {
|
||||
protected void doOnModuleLoad() {
|
||||
super.doOnModuleLoad();
|
||||
|
||||
EntryPointHelper.registerASyncService((ServiceDefTarget) sailingService, RemoteServiceMappingConstants.sailingServiceRemotePath);
|
||||
EntryPointHelper.registerASyncService((ServiceDefTarget) dataMiningService, RemoteServiceMappingConstants.dataMiningServiceRemotePath);
|
||||
|
||||
RootLayoutPanel rootPanel = RootLayoutPanel.get();
|
||||
|
||||
-9
@@ -7,11 +7,9 @@ import java.util.Map;
|
||||
import java.util.UUID;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.dom.client.Style.Unit;
|
||||
import com.google.gwt.user.client.Window;
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
import com.google.gwt.user.client.rpc.ServiceDefTarget;
|
||||
import com.google.gwt.user.client.ui.DockLayoutPanel;
|
||||
import com.google.gwt.user.client.ui.Label;
|
||||
import com.google.gwt.user.client.ui.RootLayoutPanel;
|
||||
@@ -26,14 +24,10 @@ import com.sap.sailing.domain.common.dto.AbstractLeaderboardDTO;
|
||||
import com.sap.sailing.gwt.ui.client.AbstractSailingEntryPoint;
|
||||
import com.sap.sailing.gwt.ui.client.GlobalNavigationPanel;
|
||||
import com.sap.sailing.gwt.ui.client.LogoAndTitlePanel;
|
||||
import com.sap.sailing.gwt.ui.client.RemoteServiceMappingConstants;
|
||||
import com.sap.sailing.gwt.ui.client.SailingService;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings.RaceColumnSelectionStrategies;
|
||||
import com.sap.sailing.gwt.ui.shared.EventDTO;
|
||||
import com.sap.sse.common.Util;
|
||||
import com.sap.sse.gwt.client.EntryPointHelper;
|
||||
import com.sap.sse.gwt.client.async.AsyncActionsExecutor;
|
||||
import com.sap.sse.gwt.client.async.MarkedAsyncCallback;
|
||||
import com.sap.sse.gwt.client.dialog.DataEntryDialog;
|
||||
@@ -52,12 +46,9 @@ public class LeaderboardEntryPoint extends AbstractSailingEntryPoint {
|
||||
private GlobalNavigationPanel globalNavigationPanel;
|
||||
private EventDTO event;
|
||||
|
||||
private final SailingServiceAsync sailingService = GWT.create(SailingService.class);
|
||||
|
||||
@Override
|
||||
protected void doOnModuleLoad() {
|
||||
super.doOnModuleLoad();
|
||||
EntryPointHelper.registerASyncService((ServiceDefTarget) sailingService, RemoteServiceMappingConstants.sailingServiceRemotePath);
|
||||
final boolean showRaceDetails = GwtHttpRequestUtils.getBooleanParameter(LeaderboardUrlSettings.PARAM_SHOW_RACE_DETAILS, false /* default*/);
|
||||
final boolean embedded = GwtHttpRequestUtils.getBooleanParameter(LeaderboardUrlSettings.PARAM_EMBEDDED, false /* default*/);
|
||||
final boolean hideToolbar = GwtHttpRequestUtils.getBooleanParameter(LeaderboardUrlSettings.PARAM_HIDE_TOOLBAR, false /* default*/);
|
||||
|
||||
-10
@@ -2,30 +2,20 @@ package com.sap.sailing.gwt.ui.leaderboardedit;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.user.client.Window;
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
import com.google.gwt.user.client.rpc.ServiceDefTarget;
|
||||
import com.google.gwt.user.client.ui.Label;
|
||||
import com.google.gwt.user.client.ui.RootPanel;
|
||||
import com.sap.sailing.gwt.ui.client.AbstractSailingEntryPoint;
|
||||
import com.sap.sailing.gwt.ui.client.LogoAndTitlePanel;
|
||||
import com.sap.sailing.gwt.ui.client.RemoteServiceMappingConstants;
|
||||
import com.sap.sailing.gwt.ui.client.SailingService;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sse.gwt.client.EntryPointHelper;
|
||||
import com.sap.sse.gwt.client.async.AsyncActionsExecutor;
|
||||
import com.sap.sse.gwt.client.async.MarkedAsyncCallback;
|
||||
|
||||
public class LeaderboardEditPage extends AbstractSailingEntryPoint {
|
||||
private final SailingServiceAsync sailingService = GWT.create(SailingService.class);
|
||||
|
||||
@Override
|
||||
protected void doOnModuleLoad() {
|
||||
super.doOnModuleLoad();
|
||||
|
||||
EntryPointHelper.registerASyncService((ServiceDefTarget) sailingService, RemoteServiceMappingConstants.sailingServiceRemotePath);
|
||||
|
||||
sailingService.getLeaderboardNames(new MarkedAsyncCallback<List<String>>(
|
||||
new AsyncCallback<List<String>>() {
|
||||
@Override
|
||||
|
||||
-10
@@ -4,31 +4,21 @@ import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
import com.google.gwt.user.client.rpc.ServiceDefTarget;
|
||||
import com.google.gwt.user.client.ui.RootLayoutPanel;
|
||||
import com.sap.sailing.gwt.ui.client.AbstractSailingEntryPoint;
|
||||
import com.sap.sailing.gwt.ui.client.RegattaRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.RegattasDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.RemoteServiceMappingConstants;
|
||||
import com.sap.sailing.gwt.ui.client.SailingService;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
||||
import com.sap.sse.gwt.client.EntryPointHelper;
|
||||
|
||||
public class PolarSheetsEntryPoint extends AbstractSailingEntryPoint implements RegattaRefresher {
|
||||
|
||||
private Set<RegattasDisplayer> regattaDisplayers;
|
||||
|
||||
private final SailingServiceAsync sailingService = GWT.create(SailingService.class);
|
||||
|
||||
@Override
|
||||
protected void doOnModuleLoad() {
|
||||
super.doOnModuleLoad();
|
||||
|
||||
EntryPointHelper.registerASyncService((ServiceDefTarget) sailingService, RemoteServiceMappingConstants.sailingServiceRemotePath);
|
||||
|
||||
regattaDisplayers = new HashSet<RegattasDisplayer>();
|
||||
createUI();
|
||||
fillRegattas();
|
||||
|
||||
-4
@@ -29,8 +29,6 @@ import com.sap.sailing.gwt.ui.client.ParallelExecutionHolder;
|
||||
import com.sap.sailing.gwt.ui.client.RaceSelectionModel;
|
||||
import com.sap.sailing.gwt.ui.client.RaceTimesInfoProvider;
|
||||
import com.sap.sailing.gwt.ui.client.RemoteServiceMappingConstants;
|
||||
import com.sap.sailing.gwt.ui.client.SailingService;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.shared.EventDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
||||
@@ -57,14 +55,12 @@ public class RaceBoardEntryPoint extends AbstractSailingEntryPoint {
|
||||
private UUID eventId;
|
||||
private RaceBoardViewConfiguration raceboardViewConfig;
|
||||
|
||||
private final SailingServiceAsync sailingService = GWT.create(SailingService.class);
|
||||
private final MediaServiceAsync mediaService = GWT.create(MediaService.class);
|
||||
|
||||
@Override
|
||||
protected void doOnModuleLoad() {
|
||||
super.doOnModuleLoad();
|
||||
|
||||
EntryPointHelper.registerASyncService((ServiceDefTarget) sailingService, RemoteServiceMappingConstants.sailingServiceRemotePath);
|
||||
EntryPointHelper.registerASyncService((ServiceDefTarget) mediaService, RemoteServiceMappingConstants.mediaServiceRemotePath);
|
||||
|
||||
// read mandatory parameters
|
||||
|
||||
-10
@@ -4,12 +4,10 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.dom.client.Style.Unit;
|
||||
import com.google.gwt.event.dom.client.ClickEvent;
|
||||
import com.google.gwt.event.dom.client.ClickHandler;
|
||||
import com.google.gwt.user.client.Window;
|
||||
import com.google.gwt.user.client.rpc.ServiceDefTarget;
|
||||
import com.google.gwt.user.client.ui.DockLayoutPanel;
|
||||
import com.google.gwt.user.client.ui.FlowPanel;
|
||||
import com.google.gwt.user.client.ui.Panel;
|
||||
@@ -18,12 +16,8 @@ import com.google.gwt.user.client.ui.RootPanel;
|
||||
import com.google.gwt.user.client.ui.ScrollPanel;
|
||||
import com.sap.sailing.gwt.ui.client.AbstractSailingEntryPoint;
|
||||
import com.sap.sailing.gwt.ui.client.LogoAndTitlePanel;
|
||||
import com.sap.sailing.gwt.ui.client.RemoteServiceMappingConstants;
|
||||
import com.sap.sailing.gwt.ui.client.SailingService;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.regattaoverview.RegattaRaceStatesComponent.EntryHandler;
|
||||
import com.sap.sailing.gwt.ui.shared.RegattaOverviewEntryDTO;
|
||||
import com.sap.sse.gwt.client.EntryPointHelper;
|
||||
import com.sap.sse.gwt.client.URLEncoder;
|
||||
|
||||
public class RegattaOverviewEntryPoint extends AbstractSailingEntryPoint {
|
||||
@@ -38,14 +32,10 @@ public class RegattaOverviewEntryPoint extends AbstractSailingEntryPoint {
|
||||
private RaceDetailPanel detailPanel;
|
||||
private RegattaOverviewPanel regattaPanel;
|
||||
|
||||
private final SailingServiceAsync sailingService = GWT.create(SailingService.class);
|
||||
|
||||
@Override
|
||||
public void doOnModuleLoad() {
|
||||
super.doOnModuleLoad();
|
||||
|
||||
EntryPointHelper.registerASyncService((ServiceDefTarget) sailingService, RemoteServiceMappingConstants.sailingServiceRemotePath);
|
||||
|
||||
RootLayoutPanel rootPanel = RootLayoutPanel.get();
|
||||
containerPanel = new DockLayoutPanel(Unit.PX);
|
||||
rootPanel.add(containerPanel);
|
||||
|
||||
-9
@@ -1,11 +1,9 @@
|
||||
package com.sap.sailing.gwt.ui.spectator;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.dom.client.Style.Unit;
|
||||
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
|
||||
import com.google.gwt.user.client.Window;
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
import com.google.gwt.user.client.rpc.ServiceDefTarget;
|
||||
import com.google.gwt.user.client.ui.Anchor;
|
||||
import com.google.gwt.user.client.ui.FlowPanel;
|
||||
import com.google.gwt.user.client.ui.RootPanel;
|
||||
@@ -14,13 +12,9 @@ import com.sap.sailing.gwt.ui.client.AbstractSailingEntryPoint;
|
||||
import com.sap.sailing.gwt.ui.client.GlobalNavigationPanel;
|
||||
import com.sap.sailing.gwt.ui.client.LogoAndTitlePanel;
|
||||
import com.sap.sailing.gwt.ui.client.RegattaRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.RemoteServiceMappingConstants;
|
||||
import com.sap.sailing.gwt.ui.client.SailingService;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.shared.panels.SimpleWelcomeWidget;
|
||||
import com.sap.sailing.gwt.ui.raceboard.RaceBoardViewConfiguration;
|
||||
import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO;
|
||||
import com.sap.sse.gwt.client.EntryPointHelper;
|
||||
import com.sap.sse.gwt.shared.GwtHttpRequestUtils;
|
||||
|
||||
/**
|
||||
@@ -29,14 +23,11 @@ import com.sap.sse.gwt.shared.GwtHttpRequestUtils;
|
||||
*
|
||||
*/
|
||||
public class SpectatorEntryPoint extends AbstractSailingEntryPoint implements RegattaRefresher {
|
||||
private final SailingServiceAsync sailingService = GWT.create(SailingService.class);
|
||||
|
||||
@Override
|
||||
protected void doOnModuleLoad() {
|
||||
super.doOnModuleLoad();
|
||||
|
||||
EntryPointHelper.registerASyncService((ServiceDefTarget) sailingService, RemoteServiceMappingConstants.sailingServiceRemotePath);
|
||||
|
||||
String groupParamValue = Window.Location.getParameter("leaderboardGroupName");
|
||||
String viewModeParamValue = Window.Location.getParameter("viewMode");
|
||||
final boolean canReplayDuringLiveRaces = GwtHttpRequestUtils.getBooleanParameter(
|
||||
|
||||
+67
@@ -0,0 +1,67 @@
|
||||
package com.sap.sailing.selenium.pages.autoplay;
|
||||
|
||||
import java.io.UnsupportedEncodingException;
|
||||
|
||||
import org.openqa.selenium.WebDriver;
|
||||
import org.openqa.selenium.WebElement;
|
||||
|
||||
import com.sap.sailing.selenium.core.BySeleniumId;
|
||||
import com.sap.sailing.selenium.core.FindBy;
|
||||
import com.sap.sailing.selenium.pages.HostPage;
|
||||
import com.sap.sailing.selenium.test.autoplay.AutoPlayConfiguration;
|
||||
|
||||
/**
|
||||
* <p>The page object representing the autoplay startpage.</p>
|
||||
*
|
||||
* @author
|
||||
* C5163874
|
||||
*/
|
||||
public class AutoPlayPage extends HostPage {
|
||||
private static final String PAGE_TITLE = "SAP Sailing Analytics AutoPlay"; //$NON-NLS-1$
|
||||
|
||||
@FindBy(how = BySeleniumId.class, using = "AutoPlayStartView")
|
||||
private WebElement autoPlayStartView;
|
||||
|
||||
/**
|
||||
* <p>Goes to the autoplay page and returns the representing page object.</p>
|
||||
*
|
||||
* @param driver
|
||||
* The web driver to use.
|
||||
* @param root
|
||||
* The context root of the application.
|
||||
* @return
|
||||
* The page object for the administration console.
|
||||
* @throws UnsupportedEncodingException
|
||||
*/
|
||||
public static AutoPlayPage goToPage(WebDriver driver, String root) {
|
||||
driver.get(root + "gwt/AutoPlay.html?" + getGWTCodeServer()); //$NON-NLS-1$
|
||||
|
||||
return new AutoPlayPage(driver);
|
||||
}
|
||||
|
||||
private AutoPlayPage(WebDriver driver) {
|
||||
super(driver);
|
||||
}
|
||||
|
||||
public AutoPlayConfiguration getAutoPlayConfiguration() {
|
||||
return new AutoPlayConfiguration(this.driver, autoPlayStartView);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initElements() {
|
||||
super.initElements();
|
||||
|
||||
// Wait for the initial loading of the data
|
||||
waitForAjaxRequestsExecuted("loadEventsData", 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>Verifies that the current page is the autoplay page by checking the title of the page.</p>
|
||||
*/
|
||||
@Override
|
||||
protected void verify() {
|
||||
if (!PAGE_TITLE.equals(this.driver.getTitle())) {
|
||||
throw new IllegalStateException("This is not the autoplay page: " + this.driver.getTitle()); //$NON-NLS-1$
|
||||
}
|
||||
}
|
||||
}
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
package com.sap.sailing.selenium.test.autoplay;
|
||||
|
||||
import org.openqa.selenium.WebDriver;
|
||||
import org.openqa.selenium.WebElement;
|
||||
|
||||
import com.sap.sailing.selenium.pages.PageArea;
|
||||
|
||||
public class AutoPlayConfiguration extends PageArea {
|
||||
|
||||
public AutoPlayConfiguration(WebDriver driver, WebElement element) {
|
||||
super(driver, element);
|
||||
}
|
||||
|
||||
}
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
package com.sap.sailing.selenium.test.autoplay;
|
||||
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import com.sap.sailing.selenium.pages.autoplay.AutoPlayPage;
|
||||
import com.sap.sailing.selenium.test.AbstractSeleniumTest;
|
||||
|
||||
public class TestAutoPlay extends AbstractSeleniumTest {
|
||||
|
||||
@Override
|
||||
@Before
|
||||
public void setUp() {
|
||||
clearState(getContextRoot());
|
||||
super.setUp();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAutoPlayStartup() {
|
||||
AutoPlayPage page = AutoPlayPage.goToPage(getWebDriver(), getContextRoot());
|
||||
AutoPlayConfiguration autoPlayConfiguration = page.getAutoPlayConfiguration();
|
||||
assertNotNull(autoPlayConfiguration);
|
||||
}
|
||||
|
||||
}
|
||||
+2
-3
@@ -12,7 +12,6 @@ import com.google.gwt.user.client.ui.Anchor;
|
||||
import com.google.gwt.user.client.ui.DockLayoutPanel;
|
||||
import com.google.gwt.user.client.ui.DockPanel;
|
||||
import com.google.gwt.user.client.ui.HasHorizontalAlignment;
|
||||
import com.google.gwt.user.client.ui.Label;
|
||||
import com.google.gwt.user.client.ui.ScrollPanel;
|
||||
import com.google.gwt.user.client.ui.TabLayoutPanel;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
@@ -132,7 +131,7 @@ public class AdminConsolePanel extends DockLayoutPanel {
|
||||
}
|
||||
|
||||
public AdminConsolePanel(UserService userService, BuildVersionRetriever buildVersionRetriever,
|
||||
Label persistentAlertLabel, String releaseNotesAnchorLabel, String releaseNotesURL,
|
||||
String releaseNotesAnchorLabel, String releaseNotesURL,
|
||||
ErrorReporter errorReporter, LoginPanelCss loginPanelCss) {
|
||||
super(Unit.EM);
|
||||
this.userService = userService;
|
||||
@@ -164,7 +163,7 @@ public class AdminConsolePanel extends DockLayoutPanel {
|
||||
informationPanel.setSize("100%", "95%");
|
||||
informationPanel.setSpacing(10);
|
||||
informationPanel.add(new LoginPanel(loginPanelCss, getUserService()), DockPanel.WEST);
|
||||
informationPanel.add(persistentAlertLabel, DockPanel.CENTER);
|
||||
informationPanel.add(errorReporter.getPersistentInformationWidget(), DockPanel.CENTER);
|
||||
SystemInformationPanel sysinfoPanel = new SystemInformationPanel(buildVersionRetriever, errorReporter);
|
||||
sysinfoPanel.ensureDebugId("SystemInformation");
|
||||
final Anchor releaseNotesLink = new Anchor(new SafeHtmlBuilder().appendEscaped(releaseNotesAnchorLabel).toSafeHtml(), releaseNotesURL);
|
||||
|
||||
@@ -3,18 +3,12 @@ package com.sap.sse.gwt.client;
|
||||
import com.google.gwt.core.client.EntryPoint;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.debug.client.DebugInfo;
|
||||
import com.google.gwt.event.dom.client.ClickEvent;
|
||||
import com.google.gwt.event.dom.client.ClickHandler;
|
||||
import com.google.gwt.event.logical.shared.AttachEvent;
|
||||
import com.google.gwt.event.logical.shared.AttachEvent.Handler;
|
||||
import com.google.gwt.resources.client.TextResource;
|
||||
import com.google.gwt.user.client.Window;
|
||||
import com.google.gwt.user.client.ui.Button;
|
||||
import com.google.gwt.user.client.ui.DialogBox;
|
||||
import com.google.gwt.user.client.ui.HTML;
|
||||
import com.google.gwt.user.client.ui.Label;
|
||||
import com.google.gwt.user.client.ui.TabLayoutPanel;
|
||||
import com.google.gwt.user.client.ui.VerticalPanel;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sse.gwt.client.async.MarkedAsyncCallback;
|
||||
import com.sap.sse.gwt.client.async.PendingAjaxCallMarker;
|
||||
import com.sap.sse.gwt.client.useragent.UserAgentDetails;
|
||||
@@ -22,15 +16,15 @@ import com.sap.sse.gwt.shared.DebugConstants;
|
||||
|
||||
public abstract class AbstractEntryPoint<S extends StringMessages> implements EntryPoint, ErrorReporter, WindowSizeDetector {
|
||||
protected UserAgentDetails userAgent;
|
||||
private DialogBox errorDialogBox;
|
||||
private HTML serverResponseLabel;
|
||||
private Button dialogCloseButton;
|
||||
private S stringMessages;
|
||||
protected Label persistentAlertLabel;
|
||||
private ErrorReporter errorReporter;
|
||||
|
||||
@Override
|
||||
public final void onModuleLoad() {
|
||||
this.stringMessages = createStringMessages();
|
||||
this.errorReporter = new DefaultErrorReporter<StringMessages>(stringMessages);
|
||||
this.userAgent = new UserAgentDetails(Window.Navigator.getUserAgent());
|
||||
|
||||
if (DebugInfo.isDebugIdEnabled()) {
|
||||
PendingAjaxCallBundle bundle = GWT.create(PendingAjaxCallBundle.class);
|
||||
TextResource script = bundle.ajaxSemaphoreJS();
|
||||
@@ -50,12 +44,7 @@ public abstract class AbstractEntryPoint<S extends StringMessages> implements En
|
||||
*/
|
||||
protected abstract S createStringMessages();
|
||||
|
||||
protected void doOnModuleLoad() {
|
||||
userAgent = new UserAgentDetails(Window.Navigator.getUserAgent());
|
||||
errorDialogBox = createErrorDialog(); /* TODO: Make this more generic (e.g. make it support all kinds of messages) */
|
||||
persistentAlertLabel = new Label("");
|
||||
persistentAlertLabel.setStyleName("global-alert-message");
|
||||
}
|
||||
protected abstract void doOnModuleLoad();
|
||||
|
||||
/**
|
||||
* Sets the size of the tab panel when the tab panel is attached to the DOM
|
||||
@@ -72,25 +61,22 @@ public abstract class AbstractEntryPoint<S extends StringMessages> implements En
|
||||
|
||||
@Override
|
||||
public void reportError(String message) {
|
||||
errorDialogBox.setText(message);
|
||||
serverResponseLabel.addStyleName("serverResponseLabelError"); //$NON-NLS-1$
|
||||
serverResponseLabel.setHTML(getStringMessages().serverError());
|
||||
errorDialogBox.center();
|
||||
dialogCloseButton.setFocus(true);
|
||||
errorReporter.reportError(message);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reportError(String message, boolean silentMode) {
|
||||
if (silentMode) {
|
||||
Window.setStatus(message);
|
||||
} else {
|
||||
reportError(message);
|
||||
}
|
||||
errorReporter.reportError(message, silentMode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reportPersistentInformation(String message) {
|
||||
persistentAlertLabel.setText(message);
|
||||
errorReporter.reportPersistentInformation(message);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Widget getPersistentInformationWidget() {
|
||||
return errorReporter.getPersistentInformationWidget();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -99,33 +85,6 @@ public abstract class AbstractEntryPoint<S extends StringMessages> implements En
|
||||
return width <= 720;
|
||||
}
|
||||
|
||||
private DialogBox createErrorDialog() {
|
||||
// Create the popup dialog box
|
||||
final DialogBox myErrorDialogBox = new DialogBox();
|
||||
myErrorDialogBox.setText(getStringMessages().remoteProcedureCall());
|
||||
myErrorDialogBox.setAnimationEnabled(true);
|
||||
dialogCloseButton = new Button(getStringMessages().close());
|
||||
// We can set the id of a widget by accessing its Element
|
||||
dialogCloseButton.getElement().setId("closeButton"); //$NON-NLS-1$
|
||||
final Label textToServerLabel = new Label();
|
||||
serverResponseLabel = new HTML();
|
||||
VerticalPanel dialogVPanel = new VerticalPanel();
|
||||
dialogVPanel.add(new HTML("<b>"+stringMessages.errorCommunicatingWithServer()+"</b>")); //$NON-NLS-1$
|
||||
dialogVPanel.add(textToServerLabel);
|
||||
dialogVPanel.add(new HTML("<br><b>"+stringMessages.serverReplies()+"</b>")); //$NON-NLS-1$
|
||||
dialogVPanel.add(serverResponseLabel);
|
||||
dialogVPanel.setHorizontalAlignment(VerticalPanel.ALIGN_RIGHT);
|
||||
dialogVPanel.add(dialogCloseButton);
|
||||
myErrorDialogBox.setWidget(dialogVPanel);
|
||||
// Add a handler to close the DialogBox
|
||||
dialogCloseButton.addClickHandler(new ClickHandler() {
|
||||
public void onClick(ClickEvent event) {
|
||||
myErrorDialogBox.hide();
|
||||
}
|
||||
});
|
||||
return myErrorDialogBox;
|
||||
}
|
||||
|
||||
protected S getStringMessages() {
|
||||
return stringMessages;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,84 @@
|
||||
package com.sap.sse.gwt.client;
|
||||
|
||||
import com.google.gwt.event.dom.client.ClickEvent;
|
||||
import com.google.gwt.event.dom.client.ClickHandler;
|
||||
import com.google.gwt.user.client.Window;
|
||||
import com.google.gwt.user.client.ui.Button;
|
||||
import com.google.gwt.user.client.ui.DialogBox;
|
||||
import com.google.gwt.user.client.ui.HTML;
|
||||
import com.google.gwt.user.client.ui.Label;
|
||||
import com.google.gwt.user.client.ui.VerticalPanel;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
|
||||
public class DefaultErrorReporter<S extends StringMessages> implements ErrorReporter {
|
||||
private DialogBox errorDialogBox;
|
||||
private HTML serverResponseLabel;
|
||||
private Button dialogCloseButton;
|
||||
private S stringMessages;
|
||||
protected Label persistentAlertLabel;
|
||||
|
||||
public DefaultErrorReporter(S stringMessages) {
|
||||
this.stringMessages = stringMessages;
|
||||
|
||||
/* TODO: Make this more generic (e.g. make it support all kinds of messages) */
|
||||
errorDialogBox = createErrorDialog();
|
||||
persistentAlertLabel = new Label("");
|
||||
persistentAlertLabel.setStyleName("global-alert-message");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reportError(String message) {
|
||||
errorDialogBox.setText(message);
|
||||
serverResponseLabel.addStyleName("serverResponseLabelError"); //$NON-NLS-1$
|
||||
serverResponseLabel.setHTML(stringMessages.serverError());
|
||||
errorDialogBox.center();
|
||||
dialogCloseButton.setFocus(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reportError(String message, boolean silentMode) {
|
||||
if (silentMode) {
|
||||
Window.setStatus(message);
|
||||
} else {
|
||||
reportError(message);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reportPersistentInformation(String message) {
|
||||
persistentAlertLabel.setText(message);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Widget getPersistentInformationWidget() {
|
||||
return persistentAlertLabel;
|
||||
}
|
||||
|
||||
private DialogBox createErrorDialog() {
|
||||
// Create the popup dialog box
|
||||
final DialogBox myErrorDialogBox = new DialogBox();
|
||||
myErrorDialogBox.setText(stringMessages.remoteProcedureCall());
|
||||
myErrorDialogBox.setAnimationEnabled(true);
|
||||
dialogCloseButton = new Button(stringMessages.close());
|
||||
// We can set the id of a widget by accessing its Element
|
||||
dialogCloseButton.getElement().setId("closeButton"); //$NON-NLS-1$
|
||||
final Label textToServerLabel = new Label();
|
||||
serverResponseLabel = new HTML();
|
||||
VerticalPanel dialogVPanel = new VerticalPanel();
|
||||
dialogVPanel.add(new HTML("<b>"+stringMessages.errorCommunicatingWithServer()+"</b>")); //$NON-NLS-1$
|
||||
dialogVPanel.add(textToServerLabel);
|
||||
dialogVPanel.add(new HTML("<br><b>"+stringMessages.serverReplies()+"</b>")); //$NON-NLS-1$
|
||||
dialogVPanel.add(serverResponseLabel);
|
||||
dialogVPanel.setHorizontalAlignment(VerticalPanel.ALIGN_RIGHT);
|
||||
dialogVPanel.add(dialogCloseButton);
|
||||
myErrorDialogBox.setWidget(dialogVPanel);
|
||||
// Add a handler to close the DialogBox
|
||||
dialogCloseButton.addClickHandler(new ClickHandler() {
|
||||
public void onClick(ClickEvent event) {
|
||||
myErrorDialogBox.hide();
|
||||
}
|
||||
});
|
||||
return myErrorDialogBox;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,7 +1,11 @@
|
||||
package com.sap.sse.gwt.client;
|
||||
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
|
||||
public interface ErrorReporter {
|
||||
void reportError(String message);
|
||||
void reportError(String message, boolean silentMode);
|
||||
void reportPersistentInformation(String message);
|
||||
|
||||
Widget getPersistentInformationWidget();
|
||||
}
|
||||
@@ -3,28 +3,19 @@ package com.sap.sse.gwt.client;
|
||||
import com.google.gwt.i18n.client.Messages;
|
||||
|
||||
/**
|
||||
* Defines the text strings for i18n that are used by the SSE GWT bundle. This bundle
|
||||
* Defines the text strings for i18n that are used by the SSE GWT bundle.
|
||||
* @author Axel Uhl (D043530)
|
||||
*
|
||||
*/
|
||||
public interface StringMessages extends Messages {
|
||||
String save();
|
||||
|
||||
String remove();
|
||||
|
||||
String cancel();
|
||||
|
||||
String add();
|
||||
|
||||
String edit();
|
||||
|
||||
String serverError();
|
||||
|
||||
String serverError();
|
||||
String close();
|
||||
|
||||
String remoteProcedureCall();
|
||||
|
||||
String serverReplies();
|
||||
|
||||
String errorCommunicatingWithServer();
|
||||
}
|
||||
+5
-2
@@ -8,6 +8,8 @@ import com.google.gwt.place.shared.PlaceHistoryHandler;
|
||||
import com.google.gwt.place.shared.PlaceHistoryMapper;
|
||||
import com.google.gwt.user.client.ui.RootPanel;
|
||||
import com.google.web.bindery.event.shared.EventBus;
|
||||
import com.sap.sse.gwt.client.AbstractEntryPoint;
|
||||
import com.sap.sse.gwt.client.StringMessages;
|
||||
import com.sap.sse.gwt.client.mvp.impl.ActivityMapperRegistry;
|
||||
|
||||
/**
|
||||
@@ -18,8 +20,9 @@ import com.sap.sse.gwt.client.mvp.impl.ActivityMapperRegistry;
|
||||
* @author Axel Uhl (d043530)
|
||||
*
|
||||
*/
|
||||
public abstract class AbstractEntryPoint implements EntryPoint {
|
||||
public abstract class AbstractMvpEntryPoint<S extends StringMessages> extends AbstractEntryPoint<S> {
|
||||
|
||||
|
||||
/**
|
||||
* Initializes the application with a {@link PlaceHistoryHandler} using as a {@link PlaceHistoryMapper} what it gets
|
||||
* by passing <code>placeHistoryMapperClass</code> to a {@link GWT#create(Class)} call. An {@link ActivityManager}
|
||||
@@ -36,7 +39,7 @@ public abstract class AbstractEntryPoint implements EntryPoint {
|
||||
* @param activityMappers
|
||||
* used for a composite activity mapper; the first mapper to provide an activity for a place gets its way
|
||||
*/
|
||||
public void onModuleLoad(ClientFactory clientFactory, PlaceHistoryMapper historyMapper, ActivityMapper... activityMappers) {
|
||||
public void initMvp(ClientFactory clientFactory, PlaceHistoryMapper historyMapper, ActivityMapper... activityMappers) {
|
||||
// Start ActivityManager for the main widget with our ActivityMapper
|
||||
ActivityMapperRegistry activityMapperRegistry = new ActivityMapperRegistry();
|
||||
for (ActivityMapper activityMapper : activityMappers) {
|
||||
@@ -5,6 +5,7 @@ import com.google.gwt.place.shared.PlaceController;
|
||||
import com.google.gwt.user.client.ui.AcceptsOneWidget;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.google.web.bindery.event.shared.EventBus;
|
||||
import com.sap.sse.gwt.client.ErrorReporter;
|
||||
|
||||
/**
|
||||
* Provides GWT modules a way to bind specific configurations for which event bus
|
||||
@@ -24,6 +25,8 @@ import com.google.web.bindery.event.shared.EventBus;
|
||||
*
|
||||
*/
|
||||
public interface ClientFactory {
|
||||
ErrorReporter getErrorReporter();
|
||||
|
||||
EventBus getEventBus();
|
||||
|
||||
PlaceController getPlaceController();
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.google.gwt.place.shared.PlaceController;
|
||||
import com.google.gwt.user.client.ui.AcceptsOneWidget;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.google.web.bindery.event.shared.EventBus;
|
||||
import com.sap.sse.gwt.client.ErrorReporter;
|
||||
|
||||
/**
|
||||
* Applications can use this as a default implementation of the {@link ClientFactory} interface
|
||||
@@ -32,6 +33,11 @@ public abstract class ClientFactoryImpl implements ClientFactory {
|
||||
this.placeController = placeController;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ErrorReporter getErrorReporter() {
|
||||
return root.getErrorReporter();
|
||||
}
|
||||
|
||||
@Override
|
||||
public EventBus getEventBus() {
|
||||
return eventBus;
|
||||
|
||||
@@ -2,9 +2,12 @@ package com.sap.sse.gwt.client.mvp;
|
||||
|
||||
import com.google.gwt.user.client.ui.AcceptsOneWidget;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sse.gwt.client.ErrorReporter;
|
||||
|
||||
public interface TopLevelView {
|
||||
AcceptsOneWidget getContent();
|
||||
|
||||
Widget asWidget();
|
||||
|
||||
ErrorReporter getErrorReporter();
|
||||
}
|
||||
+8
-1
@@ -4,6 +4,8 @@ import com.google.gwt.place.shared.Place;
|
||||
import com.google.gwt.user.client.ui.AcceptsOneWidget;
|
||||
import com.google.gwt.user.client.ui.SimplePanel;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sse.gwt.client.DefaultErrorReporter;
|
||||
import com.sap.sse.gwt.client.ErrorReporter;
|
||||
import com.sap.sse.gwt.client.mvp.ClientFactoryImpl;
|
||||
import com.sap.sse.gwt.client.mvp.TopLevelView;
|
||||
import com.sap.sse.gwt.client.mvp.example.goodbye.GoodbyeView;
|
||||
@@ -29,7 +31,12 @@ public class AppClientFactoryImpl extends ClientFactoryImpl implements AppClient
|
||||
public Widget asWidget() {
|
||||
return root;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public ErrorReporter getErrorReporter() {
|
||||
return new DefaultErrorReporter<TextMessages>(TextMessages.INSTANCE);
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -1,18 +1,20 @@
|
||||
package com.sap.sse.gwt.client.mvp.example;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.sap.sse.gwt.client.mvp.AbstractEntryPoint;
|
||||
import com.sap.sse.gwt.client.StringMessages;
|
||||
import com.sap.sse.gwt.client.mvp.AbstractMvpEntryPoint;
|
||||
|
||||
/**
|
||||
* Entry point classes define <code>onModuleLoad()</code>.
|
||||
* 1. Call <code>AbstractMvpEntryPoint.doOnModuleLoad()</code>.
|
||||
* 1. Call <code>AbstractMvpEntryPoint.onModuleLoad()</code>.
|
||||
*
|
||||
* @author Axel Uhl (d043530)
|
||||
*/
|
||||
public class ExampleEntryPoint extends AbstractEntryPoint {
|
||||
/**
|
||||
* This is the entry point method.
|
||||
*/
|
||||
public void onModuleLoad() {
|
||||
public class ExampleEntryPoint<S extends StringMessages> extends AbstractMvpEntryPoint<S> {
|
||||
|
||||
@Override
|
||||
protected void doOnModuleLoad() {
|
||||
|
||||
// There are two typical ways in which to tell the concrete views to use, based on a responsive pattern:
|
||||
// 1) Use deferred binding in the GWT module's .gwt.xml flie, as in:
|
||||
//
|
||||
@@ -29,6 +31,12 @@ public class ExampleEntryPoint extends AbstractEntryPoint {
|
||||
// clientFactory = new MyThisAndThatClientFactory();
|
||||
// }
|
||||
AppPlaceHistoryMapper historyMapper = GWT.create(AppPlaceHistoryMapper.class);
|
||||
onModuleLoad(clientFactory, historyMapper, new AppActivityMapper(clientFactory));
|
||||
|
||||
initMvp(clientFactory, historyMapper, new AppActivityMapper(clientFactory));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected S createStringMessages() {
|
||||
return GWT.create(StringMessages.class);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.sap.sse.gwt.client.mvp.example;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.sap.sse.gwt.client.StringMessages;
|
||||
|
||||
/**
|
||||
* String messages for the MVP sample app
|
||||
* @author Frank
|
||||
*
|
||||
*/
|
||||
public interface TextMessages extends StringMessages {
|
||||
public static final TextMessages INSTANCE = GWT.create(TextMessages.class);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
save=Save
|
||||
remove=Remove
|
||||
cancel=Cancel
|
||||
add=Add
|
||||
edit=Edit
|
||||
close=Close
|
||||
serverError=An error occurred while attempting to contact the server. Please check your network connection and try again.
|
||||
remoteProcedureCall=Remote Procedure Call
|
||||
serverReplies=Server replies
|
||||
errorCommunicatingWithServer=Error communicating with server
|
||||
+11
-16
@@ -1,9 +1,6 @@
|
||||
package com.sap.sse.security.ui.client;
|
||||
|
||||
import com.google.gwt.core.client.EntryPoint;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.user.client.rpc.ServiceDefTarget;
|
||||
import com.sap.sse.gwt.client.EntryPointHelper;
|
||||
import com.sap.sse.gwt.client.StringMessages;
|
||||
|
||||
/**
|
||||
@@ -15,23 +12,21 @@ import com.sap.sse.gwt.client.StringMessages;
|
||||
* @author Axel Uhl (D043530)
|
||||
*
|
||||
*/
|
||||
public abstract class AbstractSecureEntryPoint<S extends StringMessages> extends com.sap.sse.gwt.client.AbstractEntryPoint<S> {
|
||||
private UserService userService;
|
||||
private UserManagementServiceAsync userManagementService;
|
||||
public abstract class AbstractSecureEntryPoint<S extends StringMessages> extends com.sap.sse.gwt.client.AbstractEntryPoint<S> implements WithSecurity {
|
||||
private WithSecurity securityProvider;
|
||||
|
||||
protected void doOnModuleLoad() {
|
||||
super.doOnModuleLoad();
|
||||
userManagementService = GWT.create(UserManagementService.class);
|
||||
EntryPointHelper.registerASyncService((ServiceDefTarget) userManagementService, com.sap.sse.security.ui.client.RemoteServiceMappingConstants.userManagementServiceRemotePath);
|
||||
userService = new UserService(userManagementService);
|
||||
securityProvider = new DefaultWithSecurityImpl();
|
||||
}
|
||||
|
||||
@Override
|
||||
public UserManagementServiceAsync getUserManagementService() {
|
||||
return securityProvider.getUserManagementService();
|
||||
}
|
||||
|
||||
protected UserManagementServiceAsync getUserManagementService() {
|
||||
return userManagementService;
|
||||
}
|
||||
|
||||
protected UserService getUserService() {
|
||||
return userService;
|
||||
@Override
|
||||
public UserService getUserService() {
|
||||
return securityProvider.getUserService();
|
||||
}
|
||||
|
||||
}
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
package com.sap.sse.security.ui.client;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.user.client.rpc.ServiceDefTarget;
|
||||
import com.sap.sse.gwt.client.EntryPointHelper;
|
||||
|
||||
/**
|
||||
* The default implementation for the WithSecurity interface
|
||||
* Adds user management service and user service for security management.
|
||||
*
|
||||
* @author Axel Uhl (D043530)
|
||||
*
|
||||
*/
|
||||
public class DefaultWithSecurityImpl implements WithSecurity {
|
||||
private UserService userService;
|
||||
private UserManagementServiceAsync userManagementService;
|
||||
|
||||
public DefaultWithSecurityImpl() {
|
||||
userManagementService = GWT.create(UserManagementService.class);
|
||||
EntryPointHelper.registerASyncService((ServiceDefTarget) userManagementService, com.sap.sse.security.ui.client.RemoteServiceMappingConstants.userManagementServiceRemotePath);
|
||||
userService = new UserService(userManagementService);
|
||||
}
|
||||
|
||||
public UserManagementServiceAsync getUserManagementService() {
|
||||
return userManagementService;
|
||||
}
|
||||
|
||||
public UserService getUserService() {
|
||||
return userService;
|
||||
}
|
||||
|
||||
}
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
package com.sap.sse.security.ui.client;
|
||||
|
||||
import com.google.gwt.event.shared.SimpleEventBus;
|
||||
import com.google.gwt.place.shared.PlaceController;
|
||||
import com.google.web.bindery.event.shared.EventBus;
|
||||
import com.sap.sse.gwt.client.mvp.ClientFactoryImpl;
|
||||
import com.sap.sse.gwt.client.mvp.TopLevelView;
|
||||
|
||||
/**
|
||||
* An implementation of a ClientFactory providing security services
|
||||
* @author Frank
|
||||
*
|
||||
*/
|
||||
public abstract class SecureClientFactoryImpl extends ClientFactoryImpl implements WithSecurity {
|
||||
private WithSecurity securityProvider;
|
||||
|
||||
public SecureClientFactoryImpl(TopLevelView root) {
|
||||
this(root, new SimpleEventBus());
|
||||
}
|
||||
|
||||
protected SecureClientFactoryImpl(TopLevelView root, EventBus eventBus) {
|
||||
this(root, eventBus, new PlaceController(eventBus));
|
||||
}
|
||||
|
||||
protected SecureClientFactoryImpl(TopLevelView root, EventBus eventBus, PlaceController placeController) {
|
||||
super(root, eventBus, placeController);
|
||||
|
||||
securityProvider = new DefaultWithSecurityImpl();
|
||||
}
|
||||
|
||||
@Override
|
||||
public UserManagementServiceAsync getUserManagementService() {
|
||||
return securityProvider.getUserManagementService();
|
||||
}
|
||||
|
||||
@Override
|
||||
public UserService getUserService() {
|
||||
return securityProvider.getUserService();
|
||||
}
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
package com.sap.sse.security.ui.client;
|
||||
|
||||
/**
|
||||
* A marker interface indicating that usermanagement and security services are needed
|
||||
* @author Frank
|
||||
*
|
||||
*/
|
||||
public interface WithSecurity {
|
||||
public UserManagementServiceAsync getUserManagementService();
|
||||
|
||||
public UserService getUserService();
|
||||
}
|
||||
Reference in new issue
Block a user