From 19bf8a3442c4e2d6ad0b35ac2185467031b371b2 Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Thu, 6 Jul 2017 15:01:49 +0200 Subject: [PATCH 001/290] Bug 4032: Fixed potential ConcurrentModificationException --- .../main/java/com/sap/sse/security/ui/client/UserService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/UserService.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/UserService.java index b4be2d0b1d0..11a4de3babf 100755 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/UserService.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/UserService.java @@ -211,7 +211,7 @@ public class UserService { } private void notifyUserStatusEventHandlers() { - for (UserStatusEventHandler handler : handlers) { + for (UserStatusEventHandler handler : new HashSet<>(handlers)) { handler.onUserStatusChange(getCurrentUser()); } } From 26037b5426ced85fc73c358a45df45adca687071 Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Thu, 6 Jul 2017 15:03:57 +0200 Subject: [PATCH 002/290] Bug 4032: Avoid hard coded locale URL parameter -> using LocalInfo instead. --- .../src/com/sap/sse/gwt/settings/UrlBuilderUtil.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/settings/UrlBuilderUtil.java b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/settings/UrlBuilderUtil.java index a1af33127fe..6355dd7f519 100644 --- a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/settings/UrlBuilderUtil.java +++ b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/settings/UrlBuilderUtil.java @@ -5,6 +5,7 @@ import java.util.logging.Level; import java.util.logging.Logger; import com.google.gwt.http.client.UrlBuilder; +import com.google.gwt.i18n.client.LocaleInfo; import com.google.gwt.user.client.Window; /** @@ -29,7 +30,7 @@ public class UrlBuilderUtil { public static UrlBuilder createUrlBuilderFromCurrentLocationWithCleanParameters() { final UrlBuilder urlBuilder = Window.Location.createUrlBuilder(); for (String parameterName : Window.Location.getParameterMap().keySet()) { - if (!"gwt.codesvr".equals(parameterName) && !"locale".equals(parameterName)) { + if (!"gwt.codesvr".equals(parameterName) && !LocaleInfo.getLocaleQueryParam().equals(parameterName)) { urlBuilder.removeParameter(parameterName); } } From f54a6811cef75e9f70f6ad237715f2cef6456661 Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Thu, 6 Jul 2017 15:07:27 +0200 Subject: [PATCH 003/290] Bug 4032: Users are now redirected to their preferred locale on login or when changing the preferred locale in the user profile. When a user logs in on one browser tab, pages on other tabs will also switch the locale if no locale is already present in the URL. --- .../authentication/AuthenticationManager.java | 6 +- .../AuthenticationManagerImpl.java | 65 ++++++++++++++++++- .../userdetails/UserDetailsPresenter.java | 7 +- 3 files changed, 69 insertions(+), 9 deletions(-) diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/AuthenticationManager.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/AuthenticationManager.java index 0350c924a38..dcf59ea29f2 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/AuthenticationManager.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/AuthenticationManager.java @@ -1,5 +1,6 @@ package com.sap.sse.security.ui.authentication; +import com.google.gwt.user.client.rpc.AsyncCallback; import com.sap.sse.security.ui.authentication.app.AuthenticationContext; import com.sap.sse.security.ui.shared.SuccessInfo; import com.sap.sse.security.ui.shared.UserDTO; @@ -58,10 +59,7 @@ public interface AuthenticationManager { */ void logout(); - /** - * Refresh information of current user. - */ - void refreshUserInfo(); + void updateUserProperties(String fullName, String company, String localeName, AsyncCallback callback); /** * Provide the {@link AuthenticationContext} for the current user diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/AuthenticationManagerImpl.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/AuthenticationManagerImpl.java index 582263e6aed..eba0320c91d 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/AuthenticationManagerImpl.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/AuthenticationManagerImpl.java @@ -3,9 +3,11 @@ package com.sap.sse.security.ui.authentication; import static com.sap.sse.security.shared.UserManagementException.CANNOT_RESET_PASSWORD_WITHOUT_VALIDATED_EMAIL; import static com.sap.sse.security.shared.UserManagementException.USER_ALREADY_EXISTS; +import com.google.gwt.i18n.client.LocaleInfo; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.web.bindery.event.shared.EventBus; +import com.sap.sse.common.Util; import com.sap.sse.security.shared.UserManagementException; import com.sap.sse.security.ui.authentication.app.AuthenticationContext; import com.sap.sse.security.ui.authentication.app.AuthenticationContextImpl; @@ -92,6 +94,12 @@ public class AuthenticationManagerImpl implements AuthenticationManager { logout(); } }); + userService.addUserStatusEventHandler(new UserStatusEventHandler() { + @Override + public void onUserStatusChange(UserDTO user) { + redirectWithLocaleForAuthenticatedUser(); + } + }, true); } @Override @@ -137,6 +145,8 @@ public class AuthenticationManagerImpl implements AuthenticationManager { public void onSuccess(SuccessInfo result) { if (result.isSuccessful()) { callback.onSuccess(result); + // when a user logs in we explicitly switch to the user's locale event if a locale is given by the URL + redirectIfLocaleIsSetAndNotCurrentOne(result.getUserDTO().getLocale()); } else { if (SuccessInfo.FAILED_TO_LOGIN.equals(result.getMessage())) { view.setErrorMessage(StringMessages.INSTANCE.failedToSignIn()); @@ -159,11 +169,64 @@ public class AuthenticationManagerImpl implements AuthenticationManager { eventBus.fireEvent(new AuthenticationRequestEvent()); } - @Override + /** + * Refresh information of current user. + */ public void refreshUserInfo() { userService.updateUser(true); } + @Override + public void updateUserProperties(String fullName, String company, String localeName, final AsyncCallback callback) { + final UserDTO currentUser = getAuthenticationContext().getCurrentUser(); + final String username = currentUser.getName(); + final String locale = currentUser.getLocale(); + userManagementService.updateUserProperties(username, fullName, company, localeName, new AsyncCallback() { + + @Override + public void onFailure(Throwable caught) { + callback.onFailure(caught); + } + + @Override + public void onSuccess(Void result) { + refreshUserInfo(); + callback.onSuccess(result); + + if(!Util.equalsWithNull(locale, localeName)) { + redirectIfLocaleIsSetAndNotCurrentOne(localeName); + } + } + }); + } + + /** + * Switches to the locale to the current user's locale if no locale is explicitly given by the URL. + */ + private void redirectWithLocaleForAuthenticatedUser() { + final String localeParam = Window.Location.getParameter(LocaleInfo.getLocaleQueryParam()); + final AuthenticationContext authenticationContext = getAuthenticationContext(); + if(authenticationContext.isLoggedIn() && (localeParam == null || localeParam.isEmpty())) { + redirectIfLocaleIsSetAndNotCurrentOne(authenticationContext.getCurrentUser().getLocale()); + } + } + + private void redirectIfLocaleIsSetAndNotCurrentOne(String locale) { + if(!isCurrentLocale(locale)) { + Window.Location.assign(Window.Location.createUrlBuilder() + .setParameter(LocaleInfo.getLocaleQueryParam(), locale).buildString()); + } + } + + private boolean isCurrentLocale(String locale) { + if(locale == null || locale.isEmpty()) { + return true; + } + final String currentLocale = LocaleInfo.getCurrentLocale().getLocaleName(); + final String localeParam = Window.Location.getParameter(LocaleInfo.getLocaleQueryParam()); + return currentLocale.equals(locale) || locale.equals(localeParam); + } + @Override public AuthenticationContext getAuthenticationContext() { return new AuthenticationContextImpl(userService.getCurrentUser()); diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/userprofile/shared/userdetails/UserDetailsPresenter.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/userprofile/shared/userdetails/UserDetailsPresenter.java index ae42fe54269..0ae2c0a4356 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/userprofile/shared/userdetails/UserDetailsPresenter.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/userprofile/shared/userdetails/UserDetailsPresenter.java @@ -43,13 +43,12 @@ public class UserDetailsPresenter implements AbstractUserDetails.Presenter { @Override public void handleSaveChangesRequest(String fullName, String company, String locale) { - final String username = authenticationManager.getAuthenticationContext().getCurrentUser().getName(); - userManagementService.updateUserProperties(username, fullName, company, locale, + authenticationManager.updateUserProperties(fullName, company, locale, new AsyncCallback() { @Override public void onSuccess(Void result) { - authenticationManager.refreshUserInfo(); - Window.alert(i18n_sec.successfullyUpdatedUserProperties(username)); + Window.alert(i18n_sec.successfullyUpdatedUserProperties( + authenticationManager.getAuthenticationContext().getCurrentUser().getName())); } @Override From c60a4b34112ff4ec2d355a61aec215320d3ec96b Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Thu, 6 Jul 2017 15:27:50 +0200 Subject: [PATCH 004/290] Bug 4032: Added release notes --- .../places/whatsnew/resources/SailingAnalyticsNotes.html | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/places/whatsnew/resources/SailingAnalyticsNotes.html b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/places/whatsnew/resources/SailingAnalyticsNotes.html index 9fb6551ef22..3f8cc5a0c65 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/places/whatsnew/resources/SailingAnalyticsNotes.html +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/places/whatsnew/resources/SailingAnalyticsNotes.html @@ -4,6 +4,13 @@

What's New - SAP Sailing Analytics

+
July 2017
+
    +
  • When logging in, the page will now switch to the user's preferred language if one is configured in the user profile. + In addition, when the user changes the preferred language in the user profile, the page will switch to this language on save. +
  • +
+
June 2017
  • Several improvements were implemented regarding user settings: From 76c2876a2f92b989e34763a239015d3573188e57 Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Mon, 10 Jul 2017 08:23:31 +0200 Subject: [PATCH 005/290] Bug 4032: UserStatusEventHandler is now aware if a user is authenticated when the page is open or if a user was already authenticated when loading the page --- .../sap/sailing/gwt/ui/client/RaceTimePanel.java | 5 ++--- .../ui/raceboard/SideBySideComponentViewer.java | 5 ++--- .../sse/gwt/adminconsole/AdminConsolePanel.java | 2 +- .../authentication/AuthenticationManagerImpl.java | 4 ++-- .../sap/sse/security/ui/client/UserService.java | 14 +++++++++----- .../security/ui/client/UserStatusEventHandler.java | 12 ++++++++---- .../ui/editprofile/EditProfileEntryPoint.java | 2 +- .../sap/sse/security/ui/loginpanel/LoginPanel.java | 2 +- .../ui/settings/UserSettingsStorageManager.java | 2 +- .../usermanagement/UserManagementEntryPoint.java | 2 +- 10 files changed, 28 insertions(+), 22 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/RaceTimePanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/RaceTimePanel.java index 7749285f8ae..5cc3260e3d5 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/RaceTimePanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/RaceTimePanel.java @@ -59,7 +59,7 @@ public class RaceTimePanel extends TimePanel implements R private final UserStatusEventHandler userStatusEventHandler = new UserStatusEventHandler() { @Override - public void onUserStatusChange(UserDTO user) { + public void onUserStatusChange(UserDTO user, boolean preAuthenticated) { RaceTimePanel.this.hasCanReplayDuringLiveRacesPermission = user != null && user.hasPermission( Permission.CAN_REPLAY_DURING_LIVE_RACES.getStringPermission(), SailingPermissionsForRoleProvider.INSTANCE); } @@ -97,8 +97,7 @@ public class RaceTimePanel extends TimePanel implements R @Override protected void onLoad() { super.onLoad(); - userService.addUserStatusEventHandler(userStatusEventHandler); - userStatusEventHandler.onUserStatusChange(userService.getCurrentUser()); + userService.addUserStatusEventHandler(userStatusEventHandler, true); } @Override diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/SideBySideComponentViewer.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/SideBySideComponentViewer.java index f4ecf68154f..4b12c0d4ff0 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/SideBySideComponentViewer.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/SideBySideComponentViewer.java @@ -92,7 +92,6 @@ public class SideBySideComponentViewer implements UserStatusEventHandler { this.markPassingsPanel = markPassingsPanel; this.markPositionPanel = markPositionPanel; markPositionPanel.setComponentViewer(this); - userService.addUserStatusEventHandler(this); mediaPlayerManagerComponent.setPlayerChangeListener(new PlayerChangeListener() { public void notifyStateChange() { String caption; @@ -169,7 +168,7 @@ public class SideBySideComponentViewer implements UserStatusEventHandler { mediaPlayerManagerComponent.getDependentCssClassName())); additionalVerticalButtons.add(new Pair(mediaManagementButton, "managemedia")); - onUserStatusChange(userService.getCurrentUser()); + userService.addUserStatusEventHandler(this, true); // ensure that toggle buttons are positioned right splitLayoutPanel.lastComponentHasBeenAdded(this, panelForMapAndHorizontalToggleButtons, additionalVerticalButtons); @@ -305,7 +304,7 @@ public class SideBySideComponentViewer implements UserStatusEventHandler { } @Override - public void onUserStatusChange(UserDTO user) { + public void onUserStatusChange(UserDTO user, boolean preAuthenticated) { final Splitter markPassingsSplitter = splitLayoutPanel.getAssociatedSplitter(markPassingsPanel); final Splitter markPositionSplitter = splitLayoutPanel.getAssociatedSplitter(markPositionPanel); boolean forceLayout = false; diff --git a/java/com.sap.sse.gwt.adminconsole/src/com/sap/sse/gwt/adminconsole/AdminConsolePanel.java b/java/com.sap.sse.gwt.adminconsole/src/com/sap/sse/gwt/adminconsole/AdminConsolePanel.java index 1c706bf363e..2468fcd099a 100755 --- a/java/com.sap.sse.gwt.adminconsole/src/com/sap/sse/gwt/adminconsole/AdminConsolePanel.java +++ b/java/com.sap.sse.gwt.adminconsole/src/com/sap/sse/gwt/adminconsole/AdminConsolePanel.java @@ -161,7 +161,7 @@ public class AdminConsolePanel extends DockLayoutPanel implements HandleTabSelec this.panelsByWidget = new HashMap<>(); getUserService().addUserStatusEventHandler(new UserStatusEventHandler() { @Override - public void onUserStatusChange(UserDTO user) { + public void onUserStatusChange(UserDTO user, boolean preAuthenticated) { updateTabDisplayForCurrentUser(user); } }); diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/AuthenticationManagerImpl.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/AuthenticationManagerImpl.java index eba0320c91d..9d1c1a9f7ef 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/AuthenticationManagerImpl.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/AuthenticationManagerImpl.java @@ -84,7 +84,7 @@ public class AuthenticationManagerImpl implements AuthenticationManager { this.passwordResetUrl = passwordResetUrl; userService.addUserStatusEventHandler(new UserStatusEventHandler() { @Override - public void onUserStatusChange(UserDTO user) { + public void onUserStatusChange(UserDTO user, boolean preAuthenticated) { eventBus.fireEvent(new AuthenticationContextEvent(new AuthenticationContextImpl(user))); } }); @@ -96,7 +96,7 @@ public class AuthenticationManagerImpl implements AuthenticationManager { }); userService.addUserStatusEventHandler(new UserStatusEventHandler() { @Override - public void onUserStatusChange(UserDTO user) { + public void onUserStatusChange(UserDTO user, boolean preAuthenticated) { redirectWithLocaleForAuthenticatedUser(); } }, true); diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/UserService.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/UserService.java index 11a4de3babf..f6e635b06e3 100755 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/UserService.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/UserService.java @@ -55,6 +55,8 @@ public class UserService { private boolean userInitiallyLoaded = false; + private boolean preAuthenticated = false; + private UserDTO currentUser; private final String id; @@ -170,7 +172,8 @@ public class UserService { @Override public void onSuccess(SuccessInfo result) { currentUser = null; - notifyUserStatusEventHandlers(); + preAuthenticated = false; + notifyUserStatusEventHandlers(false); fireUserUpdateEvent(); } }); @@ -186,10 +189,11 @@ public class UserService { private void setCurrentUser(UserDTO result, final boolean notifyOtherInstances) { currentUser = result; + preAuthenticated = (!userInitiallyLoaded && result != null); userInitiallyLoaded = true; logger.info("User changed to " + (result == null ? "No User" : (result.getName() + " roles: " + result.getRoles()))); - notifyUserStatusEventHandlers(); + notifyUserStatusEventHandlers(preAuthenticated); if (notifyOtherInstances) { fireUserUpdateEvent(); } @@ -202,7 +206,7 @@ public class UserService { public void addUserStatusEventHandler(UserStatusEventHandler handler, boolean fireIfUserIsAlreadyAvailable) { handlers.add(handler); if (userInitiallyLoaded && fireIfUserIsAlreadyAvailable) { - handler.onUserStatusChange(currentUser); + handler.onUserStatusChange(currentUser, preAuthenticated); } } @@ -210,9 +214,9 @@ public class UserService { handlers.remove(handler); } - private void notifyUserStatusEventHandlers() { + private void notifyUserStatusEventHandlers(boolean preAuthenticated) { for (UserStatusEventHandler handler : new HashSet<>(handlers)) { - handler.onUserStatusChange(getCurrentUser()); + handler.onUserStatusChange(getCurrentUser(), preAuthenticated); } } diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/UserStatusEventHandler.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/UserStatusEventHandler.java index 1444eed4108..0c5191ff4f5 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/UserStatusEventHandler.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/UserStatusEventHandler.java @@ -4,10 +4,14 @@ import com.sap.sse.security.ui.shared.UserDTO; public interface UserStatusEventHandler { /** - * Called when something about the currently signed-in user changes. This could be that user now has - * a different set of {@link UserDTO#getRoles() roles}. + * Called when something about the currently signed-in user changes. This could be that user now has a different set + * of {@link UserDTO#getRoles() roles}. * - * @param user if null, a user is not currently signed-in + * @param user + * if null, a user is not currently signed-in + * @param preAuthenticated + * true, when the authenticated user is determined on page load. false when + * logging in/out while the page is already open. */ - void onUserStatusChange(UserDTO user); + void onUserStatusChange(UserDTO user, boolean preAuthenticated); } diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/editprofile/EditProfileEntryPoint.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/editprofile/EditProfileEntryPoint.java index 9223af6eda9..e0fe774b1d1 100755 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/editprofile/EditProfileEntryPoint.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/editprofile/EditProfileEntryPoint.java @@ -109,7 +109,7 @@ public class EditProfileEntryPoint implements EntryPoint { if (usernameFromURL == null) { userService.addUserStatusEventHandler(new UserStatusEventHandler() { @Override - public void onUserStatusChange(UserDTO user) { + public void onUserStatusChange(UserDTO user, boolean preAuthenticated) { if (user == null) { nameText.setText(""); emailText.setText(""); diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/loginpanel/LoginPanel.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/loginpanel/LoginPanel.java index 98efb04ac7f..9e56b7c415a 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/loginpanel/LoginPanel.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/loginpanel/LoginPanel.java @@ -163,7 +163,7 @@ public class LoginPanel extends HorizontalPanel implements UserStatusEventHandle } @Override - public void onUserStatusChange(UserDTO user) { + public void onUserStatusChange(UserDTO user, boolean preAuthenticated) { updateStatus(); } } diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/settings/UserSettingsStorageManager.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/settings/UserSettingsStorageManager.java index 5d2f851ba61..7ca9e3d7427 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/settings/UserSettingsStorageManager.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/settings/UserSettingsStorageManager.java @@ -219,7 +219,7 @@ public class UserSettingsStorageManager implements SettingsStorageManager { // call this method always on user status change event in order to cause sync between local storage // and server @Override - public void onUserStatusChange(UserDTO user) { + public void onUserStatusChange(UserDTO user, boolean preAuthenticated) { // trigger settings retrievement whether on the first userStatusEventHandler call, or when a user // has been logged in for the first time in order to initial local storage and server // synchronisation diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/usermanagement/UserManagementEntryPoint.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/usermanagement/UserManagementEntryPoint.java index dab822ddd6d..b1b15e60b3d 100755 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/usermanagement/UserManagementEntryPoint.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/usermanagement/UserManagementEntryPoint.java @@ -26,7 +26,7 @@ public class UserManagementEntryPoint extends AbstractSecurityEntryPoint { center = new TabLayoutPanel(2.5, Unit.EM); getUserService().addUserStatusEventHandler(new UserStatusEventHandler() { @Override - public void onUserStatusChange(UserDTO user) { + public void onUserStatusChange(UserDTO user, boolean preAuthenticated) { if (!hasRequiredRole(user) && hasRequiredRole(UserManagementEntryPoint.this.user)) { Window.Location.reload(); // user signed out or lost required role; reload to take the user to the log-in screen } From 7759621e9676e3599275c2545107dec462688148 Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Mon, 10 Jul 2017 09:45:07 +0200 Subject: [PATCH 006/290] Bug 4032: When a user logs in or switch the preferred locale this will now always lead on other tabs to a redirect with the user's preferred locale (if one is set). When a page is loaded with a locale given by the URL, this won't lead to a redirect to respect a user's preference. This behavior ensures that in a multi-user environment, a users always see the UI in their preferred locale no matter what another user did before. --- .../authentication/AuthenticationManagerImpl.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/AuthenticationManagerImpl.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/AuthenticationManagerImpl.java index 9d1c1a9f7ef..f035b17e659 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/AuthenticationManagerImpl.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/AuthenticationManagerImpl.java @@ -97,7 +97,11 @@ public class AuthenticationManagerImpl implements AuthenticationManager { userService.addUserStatusEventHandler(new UserStatusEventHandler() { @Override public void onUserStatusChange(UserDTO user, boolean preAuthenticated) { - redirectWithLocaleForAuthenticatedUser(); + final String localeParam = Window.Location.getParameter(LocaleInfo.getLocaleQueryParam()); + // If a user is already authenticated while opening the page, we only trigger a reload if no locale is given by the URL + if (!preAuthenticated || localeParam == null || localeParam.isEmpty()) { + redirectWithLocaleForAuthenticatedUser(); + } } }, true); } @@ -145,8 +149,6 @@ public class AuthenticationManagerImpl implements AuthenticationManager { public void onSuccess(SuccessInfo result) { if (result.isSuccessful()) { callback.onSuccess(result); - // when a user logs in we explicitly switch to the user's locale event if a locale is given by the URL - redirectIfLocaleIsSetAndNotCurrentOne(result.getUserDTO().getLocale()); } else { if (SuccessInfo.FAILED_TO_LOGIN.equals(result.getMessage())) { view.setErrorMessage(StringMessages.INSTANCE.failedToSignIn()); @@ -201,12 +203,11 @@ public class AuthenticationManagerImpl implements AuthenticationManager { } /** - * Switches to the locale to the current user's locale if no locale is explicitly given by the URL. + * Switches to the locale to the current user's locale when a user logs in. */ private void redirectWithLocaleForAuthenticatedUser() { - final String localeParam = Window.Location.getParameter(LocaleInfo.getLocaleQueryParam()); final AuthenticationContext authenticationContext = getAuthenticationContext(); - if(authenticationContext.isLoggedIn() && (localeParam == null || localeParam.isEmpty())) { + if(authenticationContext.isLoggedIn()) { redirectIfLocaleIsSetAndNotCurrentOne(authenticationContext.getCurrentUser().getLocale()); } } From 145f62ef9f2666b8a7ad7de3710b9c8f7fac5e57 Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Mon, 10 Jul 2017 15:24:53 +0200 Subject: [PATCH 007/290] Bug 4032: Adjustments to not refresh pages that potentially have state that would get lost --- .../security/ui/authentication/AuthenticationManagerImpl.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/AuthenticationManagerImpl.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/AuthenticationManagerImpl.java index f035b17e659..6f1e651e7e0 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/AuthenticationManagerImpl.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/AuthenticationManagerImpl.java @@ -99,7 +99,7 @@ public class AuthenticationManagerImpl implements AuthenticationManager { public void onUserStatusChange(UserDTO user, boolean preAuthenticated) { final String localeParam = Window.Location.getParameter(LocaleInfo.getLocaleQueryParam()); // If a user is already authenticated while opening the page, we only trigger a reload if no locale is given by the URL - if (!preAuthenticated || localeParam == null || localeParam.isEmpty()) { + if (preAuthenticated && (localeParam == null || localeParam.isEmpty())) { redirectWithLocaleForAuthenticatedUser(); } } @@ -149,6 +149,8 @@ public class AuthenticationManagerImpl implements AuthenticationManager { public void onSuccess(SuccessInfo result) { if (result.isSuccessful()) { callback.onSuccess(result); + // when a user logs in we explicitly switch to the user's locale event if a locale is given by the URL + redirectIfLocaleIsSetAndNotCurrentOne(result.getUserDTO().getLocale()); } else { if (SuccessInfo.FAILED_TO_LOGIN.equals(result.getMessage())) { view.setErrorMessage(StringMessages.INSTANCE.failedToSignIn()); From 9876eabc00be8581b19f4bdd6d132750dc393b57 Mon Sep 17 00:00:00 2001 From: Kai Boernert Date: Thu, 14 Sep 2017 16:53:32 +0200 Subject: [PATCH 008/290] Added new html5 based progressbar, removed unused Structure Import Progress Bar --- .../gwt/ui/adminconsole/HTML5ProgressBar.java | 26 +++++++++++++++++++ .../StructureImportProgressBar.java | 26 ------------------- .../MasterDataImportPanel.java | 11 ++++---- 3 files changed, 31 insertions(+), 32 deletions(-) create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/HTML5ProgressBar.java delete mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/StructureImportProgressBar.java diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/HTML5ProgressBar.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/HTML5ProgressBar.java new file mode 100644 index 00000000000..d3c6251e367 --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/HTML5ProgressBar.java @@ -0,0 +1,26 @@ +package com.sap.sailing.gwt.ui.adminconsole; + +import com.google.gwt.dom.client.Element; +import com.google.gwt.dom.client.Style.Unit; +import com.google.gwt.i18n.client.NumberFormat; +import com.google.gwt.user.client.DOM; +import com.google.gwt.user.client.ui.Widget; + +public class HTML5ProgressBar extends Widget { + private static final NumberFormat FORMAT = NumberFormat.getFormat("#,##0%"); + + private Element progress; + + public HTML5ProgressBar() { + progress = DOM.createElement("progress"); + progress.getStyle().setWidth(100, Unit.PCT); + progress.getStyle().setHeight(2, Unit.EM); + setElement(progress); + setPercent(0); + } + + public void setPercent(int percent) { + progress.setAttribute("data-label", FORMAT.format(percent/100f)); + progress.setAttribute("value", Double.toString(percent/100f)); + } +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/StructureImportProgressBar.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/StructureImportProgressBar.java deleted file mode 100644 index fe41288bc0f..00000000000 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/StructureImportProgressBar.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.sap.sailing.gwt.ui.adminconsole; - -import com.github.gwtbootstrap.client.ui.ProgressBar; - -public class StructureImportProgressBar extends ProgressBar{ - double percent; - - public StructureImportProgressBar(int amountOfRegattas){ - this(amountOfRegattas, Style.DEFAULT); - - } - public StructureImportProgressBar(int amountOfRegattas, Style style){ - super(style); - percent = 100.0/amountOfRegattas; - setPercent(0); - } - - public void setPercent(int parsed) { - super.setPercent((int)(percent*parsed)); - } - - - - -} - diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/masterdataimport/MasterDataImportPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/masterdataimport/MasterDataImportPanel.java index bf3cb4dbad1..f960652e5ac 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/masterdataimport/MasterDataImportPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/masterdataimport/MasterDataImportPanel.java @@ -7,8 +7,6 @@ import java.util.List; import java.util.Set; import java.util.UUID; -import com.github.gwtbootstrap.client.ui.ProgressBar; -import com.github.gwtbootstrap.client.ui.base.ProgressBarBase.Style; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.dom.client.KeyCodes; @@ -29,6 +27,7 @@ import com.google.gwt.user.client.ui.TextBox; import com.google.gwt.user.client.ui.VerticalPanel; import com.sap.sailing.domain.common.DataImportProgress; import com.sap.sailing.domain.common.MasterDataImportObjectCreationCount; +import com.sap.sailing.gwt.ui.adminconsole.HTML5ProgressBar; import com.sap.sailing.gwt.ui.client.EventsRefresher; import com.sap.sailing.gwt.ui.client.LeaderboardGroupsRefresher; import com.sap.sailing.gwt.ui.client.LeaderboardsRefresher; @@ -125,12 +124,12 @@ public class MasterDataImportPanel extends VerticalPanel { String[] groupNames = createLeaderBoardGroupNamesFromListBox(); final Label overallName = new Label(stringMessages.overallProgress() + ":"); this.add(overallName); - final ProgressBar overallProgressBar = new ProgressBar(Style.ANIMATED); + final HTML5ProgressBar overallProgressBar = new HTML5ProgressBar(); overallProgressBar.ensureDebugId("overallProgressBar"); this.add(overallProgressBar); final Label subProgressName = new Label(); this.add(subProgressName); - final ProgressBar subProgressBar = new ProgressBar(Style.ANIMATED); + final HTML5ProgressBar subProgressBar = new HTML5ProgressBar(); this.add(subProgressBar); if (groupNames.length >= 1) { disableAllButtons(); @@ -415,8 +414,8 @@ public class MasterDataImportPanel extends VerticalPanel { changeButtonStateAccordingToApplicationState(); } - private void deleteProgressIndication(final Label overallName, final ProgressBar overallProgressBar, - final Label subProgressName, final ProgressBar subProgressBar) { + private void deleteProgressIndication(final Label overallName, final HTML5ProgressBar overallProgressBar, + final Label subProgressName, final HTML5ProgressBar subProgressBar) { this.remove(overallProgressBar); this.remove(subProgressBar); this.remove(subProgressName); From 9bbc5a97e919fb249bd28bc0556d4b40fa19b2f4 Mon Sep 17 00:00:00 2001 From: Kai Boernert Date: Thu, 14 Sep 2017 17:03:42 +0200 Subject: [PATCH 009/290] cleanup --- .../com/sap/sailing/gwt/ui/adminconsole/HTML5ProgressBar.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/HTML5ProgressBar.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/HTML5ProgressBar.java index d3c6251e367..88708a6a079 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/HTML5ProgressBar.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/HTML5ProgressBar.java @@ -2,13 +2,10 @@ package com.sap.sailing.gwt.ui.adminconsole; import com.google.gwt.dom.client.Element; import com.google.gwt.dom.client.Style.Unit; -import com.google.gwt.i18n.client.NumberFormat; import com.google.gwt.user.client.DOM; import com.google.gwt.user.client.ui.Widget; public class HTML5ProgressBar extends Widget { - private static final NumberFormat FORMAT = NumberFormat.getFormat("#,##0%"); - private Element progress; public HTML5ProgressBar() { @@ -20,7 +17,6 @@ public class HTML5ProgressBar extends Widget { } public void setPercent(int percent) { - progress.setAttribute("data-label", FORMAT.format(percent/100f)); progress.setAttribute("value", Double.toString(percent/100f)); } } From c56fcf277662f0d1a939755eb7f515eef0407254 Mon Sep 17 00:00:00 2001 From: Kai Boernert Date: Tue, 19 Sep 2017 16:54:25 +0200 Subject: [PATCH 010/290] replaced BootStrap DateTimeBox with a HTML5 based one --- ...tractRegattaWithSeriesAndFleetsDialog.java | 12 +- .../adminconsole/AdminConsoleEntryPoint.java | 2 - .../ui/adminconsole/EventCreateDialog.java | 7 +- .../gwt/ui/adminconsole/EventDialog.java | 6 +- .../gwt/ui/adminconsole/EventEditDialog.java | 7 +- .../ui/adminconsole/PositionEntryDialog.java | 10 +- .../RegattaLogAddDeviceMappingDialog.java | 10 +- .../ui/adminconsole/SetStartTimeDialog.java | 7 +- .../SetStartTimeReceivedDialog.java | 6 +- .../ui/adminconsole/SetTimePointDialog.java | 6 +- .../adminconsole/SetTrackingTimesDialog.java | 16 ++- .../client/DataEntryDialogWithBootstrap.java | 21 +--- .../gwt/ui/shared/HTML5DateTimeBox.java | 110 ++++++++++++++++++ 13 files changed, 155 insertions(+), 65 deletions(-) create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/HTML5DateTimeBox.java diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractRegattaWithSeriesAndFleetsDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractRegattaWithSeriesAndFleetsDialog.java index 4857f3c0e6f..de9ebf46fa7 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractRegattaWithSeriesAndFleetsDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractRegattaWithSeriesAndFleetsDialog.java @@ -22,9 +22,9 @@ import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.common.client.DateAndTimeFormatterUtil; import com.sap.sailing.gwt.ui.leaderboard.RankingMetricTypeFormatter; import com.sap.sailing.gwt.ui.leaderboard.ScoringSchemeTypeFormatter; -import com.sap.sailing.gwt.ui.shared.BetterDateTimeBox; import com.sap.sailing.gwt.ui.shared.CourseAreaDTO; import com.sap.sailing.gwt.ui.shared.EventDTO; +import com.sap.sailing.gwt.ui.shared.HTML5DateTimeBox; import com.sap.sailing.gwt.ui.shared.RegattaDTO; import com.sap.sailing.gwt.ui.shared.SeriesDTO; import com.sap.sse.common.Util; @@ -44,8 +44,8 @@ public abstract class AbstractRegattaWithSeriesAndFleetsDialog extends DataEn protected StringMessages stringMessages; private final RegattaDTO regatta; - protected final BetterDateTimeBox startDateBox; - protected final BetterDateTimeBox endDateBox; + protected final HTML5DateTimeBox startDateBox; + protected final HTML5DateTimeBox endDateBox; protected final ListBox scoringSchemeListBox; protected final ListBox courseAreaListBox; protected final ListBox sailingEventsListBox; @@ -72,11 +72,9 @@ public abstract class AbstractRegattaWithSeriesAndFleetsDialog extends DataEn final NodeList options = selectElement.getOptions(); options.getItem(options.getLength()-1).setTitle(RankingMetricTypeFormatter.getDescription(rankingMetricType, stringMessages)); } - startDateBox = createDateTimeBox(regatta.startDate); - startDateBox.setFormat("dd/mm/yyyy hh:ii"); + startDateBox = createDateTimeBox(regatta.startDate,HTML5DateTimeBox.Format.YEAR_TO_MINUTE); startDateBox.ensureDebugId("StartDateTimeBox"); - endDateBox = createDateTimeBox(regatta.endDate); - endDateBox.setFormat("dd/mm/yyyy hh:ii"); + endDateBox = createDateTimeBox(regatta.endDate,HTML5DateTimeBox.Format.YEAR_TO_MINUTE); endDateBox.ensureDebugId("EndDateTimeBox"); scoringSchemeListBox = createListBox(false); scoringSchemeListBox.ensureDebugId("ScoringSchemeListBox"); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AdminConsoleEntryPoint.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AdminConsoleEntryPoint.java index 3896f5a2cc0..6973ba249e1 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AdminConsoleEntryPoint.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AdminConsoleEntryPoint.java @@ -28,7 +28,6 @@ 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.masterdataimport.MasterDataImportPanel; -import com.sap.sailing.gwt.ui.shared.BetterDateTimeBox; import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO; import com.sap.sailing.gwt.ui.shared.RegattaDTO; import com.sap.sailing.gwt.ui.shared.SecurityStylesheetResources; @@ -87,7 +86,6 @@ public class AdminConsoleEntryPoint extends AbstractSailingEntryPoint implements sailingService, getStringMessages().releaseNotes(), "/release_notes_admin.html", /* error reporter */ this, SecurityStylesheetResources.INSTANCE.css(), getStringMessages()); panel.addStyleName("adminConsolePanel"); - BetterDateTimeBox.initialize(); regattasDisplayers = new HashSet<>(); leaderboardsDisplayers = new HashSet<>(); leaderboardGroupsDisplayers = new HashSet<>(); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventCreateDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventCreateDialog.java index 8e138f7d385..61108f67681 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventCreateDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventCreateDialog.java @@ -9,6 +9,7 @@ import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.CourseAreaDTO; import com.sap.sailing.gwt.ui.shared.EventDTO; +import com.sap.sailing.gwt.ui.shared.HTML5DateTimeBox; import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO; import com.sap.sse.gwt.client.media.ImageDTO; import com.sap.sse.gwt.client.media.VideoDTO; @@ -31,11 +32,9 @@ public class EventCreateDialog extends EventDialog { venueEntryField.setVisibleLength(35); venueEntryField.ensureDebugId("VenueTextBox"); final Date now = new Date(); - startDateBox = createDateTimeBox(now); - startDateBox.setFormat("dd/mm/yyyy hh:ii"); + startDateBox = createDateTimeBox(now, HTML5DateTimeBox.Format.YEAR_TO_MINUTE); startDateBox.ensureDebugId("StartDateTimeBox"); - endDateBox = createDateTimeBox(now); - endDateBox.setFormat("dd/mm/yyyy hh:ii"); + endDateBox = createDateTimeBox(now, HTML5DateTimeBox.Format.YEAR_TO_MINUTE); endDateBox.ensureDebugId("EndDateTimeBox"); isPublicCheckBox = createCheckbox(""); isPublicCheckBox.setValue(false); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventDialog.java index ec1c91846e7..eff5fe3461e 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventDialog.java @@ -26,7 +26,7 @@ import com.sap.sailing.gwt.ui.client.DataEntryDialogWithBootstrap; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.common.client.DateAndTimeFormatterUtil; -import com.sap.sailing.gwt.ui.shared.BetterDateTimeBox; +import com.sap.sailing.gwt.ui.shared.HTML5DateTimeBox; import com.sap.sailing.gwt.ui.shared.CourseAreaDTO; import com.sap.sailing.gwt.ui.shared.EventDTO; import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO; @@ -42,8 +42,8 @@ public abstract class EventDialog extends DataEntryDialogWithBootstrap protected TextBox nameEntryField; protected TextArea descriptionEntryField; protected TextBox venueEntryField; - protected BetterDateTimeBox startDateBox; - protected BetterDateTimeBox endDateBox; + protected HTML5DateTimeBox startDateBox; + protected HTML5DateTimeBox endDateBox; protected CheckBox isPublicCheckBox; protected UUID id; protected TextBox baseURLEntryField; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventEditDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventEditDialog.java index 26764c52070..a0af84d1097 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventEditDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventEditDialog.java @@ -7,6 +7,7 @@ import java.util.List; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.EventDTO; +import com.sap.sailing.gwt.ui.shared.HTML5DateTimeBox; import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO; public class EventEditDialog extends EventDialog { @@ -21,10 +22,8 @@ public class EventEditDialog extends EventDialog { descriptionEntryField.getElement().getStyle().setProperty("resize", "none"); venueEntryField = createTextBox(event.venue.getName()); venueEntryField.setVisibleLength(35); - startDateBox = createDateTimeBox(event.startDate); - startDateBox.setFormat("dd/mm/yyyy hh:ii"); - endDateBox = createDateTimeBox(event.endDate); - endDateBox.setFormat("dd/mm/yyyy hh:ii"); + startDateBox = createDateTimeBox(event.startDate, HTML5DateTimeBox.Format.YEAR_TO_MINUTE); + endDateBox = createDateTimeBox(event.endDate, HTML5DateTimeBox.Format.YEAR_TO_MINUTE); isPublicCheckBox = createCheckbox(""); isPublicCheckBox.setValue(event.isPublic); baseURLEntryField = createTextBox(event.getBaseURL()); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/PositionEntryDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/PositionEntryDialog.java index c6752b561ce..b5d843edd49 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/PositionEntryDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/PositionEntryDialog.java @@ -5,18 +5,18 @@ import com.google.gwt.user.client.ui.Grid; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.Widget; import com.sap.sailing.domain.common.Position; +import com.sap.sailing.domain.common.impl.DegreePosition; +import com.sap.sailing.gwt.ui.client.StringMessages; +import com.sap.sailing.gwt.ui.shared.HTML5DateTimeBox; import com.sap.sse.common.TimePoint; import com.sap.sse.common.Util.Pair; import com.sap.sse.common.impl.MillisecondsTimePoint; -import com.sap.sailing.domain.common.impl.DegreePosition; -import com.sap.sailing.gwt.ui.client.StringMessages; -import com.sap.sailing.gwt.ui.shared.BetterDateTimeBox; import com.sap.sse.gwt.client.dialog.DataEntryDialog; public class PositionEntryDialog extends DataEntryDialog> { private final DoubleBox lat; private final DoubleBox lng; - private final BetterDateTimeBox timePointBox; + private final HTML5DateTimeBox timePointBox; private final StringMessages stringMessages; private static final double ERROR_VAL = Double.MIN_VALUE; @@ -44,7 +44,7 @@ public class PositionEntryDialog extends DataEntryDialog events; - protected final BetterDateTimeBox from; - protected final BetterDateTimeBox to; + protected final HTML5DateTimeBox from; + protected final HTML5DateTimeBox to; protected final ListBox deviceType; protected final TextBox deviceId; protected final DeviceMappingQRCodeWidget qrWidget; @@ -83,9 +83,9 @@ public class RegattaLogAddDeviceMappingDialog extends DataEntryDialogWithBootstr this.stringMessages = stringMessages; this.sailingService = sailingService; - from = createDateTimeBox(new Date()); + from = createDateTimeBox(new Date(), HTML5DateTimeBox.Format.YEAR_TO_DAY); from.setValue(null); - to = createDateTimeBox(new Date()); + to = createDateTimeBox(new Date(), HTML5DateTimeBox.Format.YEAR_TO_DAY); to.setValue(null); deviceType = createListBox(false); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetStartTimeDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetStartTimeDialog.java index 5635329d783..20c78b9678b 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetStartTimeDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetStartTimeDialog.java @@ -23,7 +23,7 @@ import com.sap.sailing.domain.common.racelog.RacingProcedureType; import com.sap.sailing.gwt.ui.client.DataEntryDialogWithBootstrap; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; -import com.sap.sailing.gwt.ui.shared.BetterDateTimeBox; +import com.sap.sailing.gwt.ui.shared.HTML5DateTimeBox; import com.sap.sailing.gwt.ui.shared.RaceLogSetStartTimeAndProcedureDTO; import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.dialog.DataEntryDialog; @@ -42,7 +42,7 @@ public class SetStartTimeDialog extends DataEntryDialogWithBootstrap { private final StringMessages stringMessages; - private BetterDateTimeBox timeBox; + private HTML5DateTimeBox timeBox; public SetStartTimeReceivedDialog(StringMessages stringMessages, DataEntryDialog.DialogCallback callback) { super(stringMessages.setStartTimeReceived(), stringMessages.setStartTimeReceivedDescription(), stringMessages.ok(), stringMessages.cancel(), new ReceivedStartTimeDialog(stringMessages), callback); @@ -27,7 +27,7 @@ public class SetStartTimeReceivedDialog extends DataEntryDialogWithBootstrap { - private final BetterDateTimeBox time; + private final HTML5DateTimeBox time; private final StringMessages stringMessages; public SetTimePointDialog(final StringMessages stringMessages, String title, DialogCallback callback) { @@ -25,7 +25,7 @@ public class SetTimePointDialog extends DataEntryDialogWithBootstrap { this.stringMessages = stringMessages; - time = createDateTimeBox(new Date()); + time = createDateTimeBox(new Date(), HTML5DateTimeBox.Format.YEAR_TO_SECOND); } @Override diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetTrackingTimesDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetTrackingTimesDialog.java index acab1f2da23..f1cb8b918e2 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetTrackingTimesDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetTrackingTimesDialog.java @@ -25,7 +25,7 @@ import com.sap.sailing.domain.common.abstractlog.TimePointSpecificationFoundInLo import com.sap.sailing.gwt.ui.client.DataEntryDialogWithBootstrap; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; -import com.sap.sailing.gwt.ui.shared.BetterDateTimeBox; +import com.sap.sailing.gwt.ui.shared.HTML5DateTimeBox; import com.sap.sse.common.Util; import com.sap.sse.common.Util.Pair; import com.sap.sse.common.impl.MillisecondsTimePoint; @@ -49,7 +49,7 @@ public class SetTrackingTimesDialog extends DataEntryDialogWithBootstrapstartTimeSetCheckbox.setValue(true)); // when the start time is manipulated, assume the user wants to really set it - startTimeBox.setFormat("dd/mm/yyyy hh:ii:ss"); content.setWidget(0, 0, createLabel(stringMessages.startOfTracking())); content.setWidget(0, 1, startTimeBox); startTimeSetCheckbox = createCheckbox(stringMessages.set()); content.setWidget(0, 2, startTimeSetCheckbox); content.setWidget(0, 3, startNow); - - endTimeBox = createDateTimeBox(null); + + endTimeBox = createDateTimeBox(null, HTML5DateTimeBox.Format.YEAR_TO_SECOND); endTimeBox.addValueChangeHandler(e->endTimeSetCheckbox.setValue(true)); // when the end time is manipulated, assume the user wants to really set it - endTimeBox.setFormat("dd/mm/yyyy hh:ii:ss"); content.setWidget(1, 0, createLabel(stringMessages.endOfTracking())); content.setWidget(1, 1, endTimeBox); endTimeSetCheckbox = createCheckbox(stringMessages.set()); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/DataEntryDialogWithBootstrap.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/DataEntryDialogWithBootstrap.java index effb76ad7ef..7bb744abfd2 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/DataEntryDialogWithBootstrap.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/DataEntryDialogWithBootstrap.java @@ -2,12 +2,10 @@ package com.sap.sailing.gwt.ui.client; import java.util.Date; -import com.github.gwtbootstrap.datetimepicker.client.ui.base.HasViewMode.ViewMode; -import com.google.gwt.event.logical.shared.AttachEvent; -import com.google.gwt.event.logical.shared.AttachEvent.Handler; import com.google.gwt.event.logical.shared.ValueChangeEvent; import com.google.gwt.event.logical.shared.ValueChangeHandler; -import com.sap.sailing.gwt.ui.shared.BetterDateTimeBox; +import com.sap.sailing.gwt.ui.shared.HTML5DateTimeBox; +import com.sap.sailing.gwt.ui.shared.HTML5DateTimeBox.Format; import com.sap.sse.gwt.client.dialog.DataEntryDialog; import com.sap.sse.gwt.client.dialog.DialogUtils; @@ -27,9 +25,10 @@ public abstract class DataEntryDialogWithBootstrap extends DataEntryDialog /** * Call something like setFormat("dd/mm/yyyy hh:ii") on the result to set the date / time entry format. + * @param yearToMinute */ - public BetterDateTimeBox createDateTimeBox(Date initialValue) { - final BetterDateTimeBox result = new BetterDateTimeBox(); + public HTML5DateTimeBox createDateTimeBox(Date initialValue, Format format) { + final HTML5DateTimeBox result = new HTML5DateTimeBox(format); result.setValue(initialValue); result.addValueChangeHandler(new ValueChangeHandler() { @Override @@ -37,16 +36,6 @@ public abstract class DataEntryDialogWithBootstrap extends DataEntryDialog validateAndUpdate(); } }); - result.addAttachHandler(new Handler() { - @Override - public void onAttachOrDetach(AttachEvent event) { - if (event.isAttached()) { - addAutoHidePartner(result.getPicker()); - } - } - }); - result.setAutoClose(true); - result.setStartView(ViewMode.HOUR); DialogUtils.linkEnterToButton(getOkButton(), result.getBox()); DialogUtils.linkEscapeToButton(getCancelButton(), result.getBox()); return result; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/HTML5DateTimeBox.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/HTML5DateTimeBox.java new file mode 100644 index 00000000000..af8cf32e53a --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/HTML5DateTimeBox.java @@ -0,0 +1,110 @@ +package com.sap.sailing.gwt.ui.shared; + +import java.util.Date; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.dom.client.Element; +import com.google.gwt.dom.client.InputElement; +import com.google.gwt.event.logical.shared.HasValueChangeHandlers; +import com.google.gwt.event.logical.shared.ValueChangeEvent; +import com.google.gwt.event.logical.shared.ValueChangeHandler; +import com.google.gwt.event.shared.HandlerRegistration; +import com.google.gwt.i18n.client.DateTimeFormat; +import com.google.gwt.user.client.DOM; +import com.google.gwt.user.client.Event; +import com.google.gwt.user.client.ui.FocusWidget; + +public class HTML5DateTimeBox extends FocusWidget implements HasValueChangeHandlers { + public static enum ViewMode { + HOUR, DAY, MONTH, YEAR, DECADE + }; + + public static enum Format { + YEAR_TO_MINUTE, YEAR_TO_DAY, YEAR_TO_SECOND + }; + + private DateTimeFormat dateFormat; + private InputElement datePart; + private InputElement timePart; + private DateTimeFormat timeFormat; + private DateTimeFormat combiFormat; + + public HTML5DateTimeBox(Format format) { + GWT.log("Format " + format); + dateFormat = DateTimeFormat.getFormat("yyyy-MM-dd"); + + Element div = DOM.createDiv(); + + datePart = DOM.createElement("input").cast(); + datePart.setAttribute("type", "date"); + div.appendChild(datePart); + + if (format != Format.YEAR_TO_DAY) { + timeFormat = DateTimeFormat.getFormat(format == Format.YEAR_TO_MINUTE ? "HH:mm" : "HH:mm:ss"); + timePart = DOM.createElement("input").cast(); + timePart.setAttribute("type", "time"); + if (format == Format.YEAR_TO_SECOND) { + timePart.setAttribute("step", "1"); + } else { + timePart.setAttribute("step", "60"); + } + //used to parse time and date in one pass, to workaround parsing time only formats containing the current day + combiFormat = DateTimeFormat + .getFormat("yyyy-MM-dd " + (format == Format.YEAR_TO_MINUTE ? "HH:mm" : "HH:mm:ss")); + + div.appendChild(timePart); + } + + setElement(div); + + sinkEvents(Event.ONCHANGE | Event.ONBLUR | Event.ONKEYUP); + } + + @Override + public void onBrowserEvent(Event event) { + ValueChangeEvent.fire(HTML5DateTimeBox.this, getValue()); + } + + public void setValue(Date initialValue) { + String dateFormated = dateFormat.format(initialValue); + datePart.setAttribute("value", dateFormated); + if (timeFormat != null) { + String timeFormated = timeFormat.format(initialValue); + com.google.gwt.core.shared.GWT.log(timeFormated); + timePart.setAttribute("value", timeFormated); + } + } + + public FocusWidget getBox() { + return this; + } + + public Element getPicker() { + return datePart; + } + + public Date getValue() { + Date result = null; + try { + + String rawDateValue = datePart.getValue(); + String rawTimeValue = timePart.getValue(); + if (timeFormat != null) { + // it is not possible to parse the timeFormat, as it will add the current day, so we will parse a + // combined format with the correct day and time + result = combiFormat.parse(rawDateValue + " " + rawTimeValue); + } else { + result = dateFormat.parse(rawDateValue); + } + } catch (IllegalArgumentException e) { + e.printStackTrace(); + } + return result; + } + + @Override + public HandlerRegistration addValueChangeHandler(ValueChangeHandler handler) { + return addHandler(handler, ValueChangeEvent.getType()); + } + +} From f5e9c40c9d418d28cb07d7c476103bfcd879228b Mon Sep 17 00:00:00 2001 From: Kai Boernert Date: Tue, 19 Sep 2017 17:35:03 +0200 Subject: [PATCH 011/290] Removed Focuswidget dependency, added DateBox so that older browsers have a fallback --- .../client/DataEntryDialogWithBootstrap.java | 4 +- .../gwt/ui/shared/HTML5DateTimeBox.java | 49 +++++++++---------- .../sse/gwt/client/dialog/DialogUtils.java | 9 ++-- 3 files changed, 31 insertions(+), 31 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/DataEntryDialogWithBootstrap.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/DataEntryDialogWithBootstrap.java index 7bb744abfd2..7284aced0f4 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/DataEntryDialogWithBootstrap.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/DataEntryDialogWithBootstrap.java @@ -36,8 +36,8 @@ public abstract class DataEntryDialogWithBootstrap extends DataEntryDialog validateAndUpdate(); } }); - DialogUtils.linkEnterToButton(getOkButton(), result.getBox()); - DialogUtils.linkEscapeToButton(getCancelButton(), result.getBox()); + DialogUtils.linkEnterToButton(getOkButton(), result); + DialogUtils.linkEscapeToButton(getCancelButton(), result); return result; } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/HTML5DateTimeBox.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/HTML5DateTimeBox.java index af8cf32e53a..58b4eb4ba3f 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/HTML5DateTimeBox.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/HTML5DateTimeBox.java @@ -2,9 +2,9 @@ package com.sap.sailing.gwt.ui.shared; import java.util.Date; -import com.google.gwt.core.client.GWT; import com.google.gwt.dom.client.Element; import com.google.gwt.dom.client.InputElement; +import com.google.gwt.event.dom.client.HasAllKeyHandlers; import com.google.gwt.event.logical.shared.HasValueChangeHandlers; import com.google.gwt.event.logical.shared.ValueChangeEvent; import com.google.gwt.event.logical.shared.ValueChangeHandler; @@ -12,9 +12,12 @@ import com.google.gwt.event.shared.HandlerRegistration; import com.google.gwt.i18n.client.DateTimeFormat; import com.google.gwt.user.client.DOM; import com.google.gwt.user.client.Event; -import com.google.gwt.user.client.ui.FocusWidget; +import com.google.gwt.user.client.ui.FlowPanel; +import com.google.gwt.user.client.ui.FocusPanel; +import com.google.gwt.user.datepicker.client.DateBox; +import com.google.gwt.user.datepicker.client.DateBox.DefaultFormat; -public class HTML5DateTimeBox extends FocusWidget implements HasValueChangeHandlers { +public class HTML5DateTimeBox extends FocusPanel implements HasAllKeyHandlers, HasValueChangeHandlers { public static enum ViewMode { HOUR, DAY, MONTH, YEAR, DECADE }; @@ -24,20 +27,19 @@ public class HTML5DateTimeBox extends FocusWidget implements HasValueChangeHandl }; private DateTimeFormat dateFormat; - private InputElement datePart; + private DateBox datePart; private InputElement timePart; private DateTimeFormat timeFormat; private DateTimeFormat combiFormat; public HTML5DateTimeBox(Format format) { - GWT.log("Format " + format); + //parser for low level, RFC compatible format dateFormat = DateTimeFormat.getFormat("yyyy-MM-dd"); - Element div = DOM.createDiv(); - - datePart = DOM.createElement("input").cast(); - datePart.setAttribute("type", "date"); - div.appendChild(datePart); + FlowPanel div = new FlowPanel(); + datePart = new DateBox(); + datePart.setFormat(new DefaultFormat(dateFormat)); + div.add(datePart); if (format != Format.YEAR_TO_DAY) { timeFormat = DateTimeFormat.getFormat(format == Format.YEAR_TO_MINUTE ? "HH:mm" : "HH:mm:ss"); @@ -48,16 +50,16 @@ public class HTML5DateTimeBox extends FocusWidget implements HasValueChangeHandl } else { timePart.setAttribute("step", "60"); } - //used to parse time and date in one pass, to workaround parsing time only formats containing the current day + // used to parse time and date in one pass, to workaround parsing time only formats containing the current + // day combiFormat = DateTimeFormat .getFormat("yyyy-MM-dd " + (format == Format.YEAR_TO_MINUTE ? "HH:mm" : "HH:mm:ss")); - - div.appendChild(timePart); + div.getElement().appendChild(timePart); } - setElement(div); - sinkEvents(Event.ONCHANGE | Event.ONBLUR | Event.ONKEYUP); + + setWidget(div); } @Override @@ -66,8 +68,9 @@ public class HTML5DateTimeBox extends FocusWidget implements HasValueChangeHandl } public void setValue(Date initialValue) { - String dateFormated = dateFormat.format(initialValue); - datePart.setAttribute("value", dateFormated); + // remove the time part from the datepart, to reduce issus with browser compability + Date dateFormated = dateFormat.parse(dateFormat.format(initialValue)); + datePart.setValue(dateFormated); if (timeFormat != null) { String timeFormated = timeFormat.format(initialValue); com.google.gwt.core.shared.GWT.log(timeFormated); @@ -75,24 +78,20 @@ public class HTML5DateTimeBox extends FocusWidget implements HasValueChangeHandl } } - public FocusWidget getBox() { - return this; - } - public Element getPicker() { - return datePart; + return datePart.getElement(); } public Date getValue() { Date result = null; try { - - String rawDateValue = datePart.getValue(); + + String rawDateValue = dateFormat.format(datePart.getValue()); String rawTimeValue = timePart.getValue(); if (timeFormat != null) { // it is not possible to parse the timeFormat, as it will add the current day, so we will parse a // combined format with the correct day and time - result = combiFormat.parse(rawDateValue + " " + rawTimeValue); + result = combiFormat.parse(rawDateValue + " " + rawTimeValue); } else { result = dateFormat.parse(rawDateValue); } diff --git a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/dialog/DialogUtils.java b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/dialog/DialogUtils.java index 4948f2b254b..ce5d1dac36e 100644 --- a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/dialog/DialogUtils.java +++ b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/dialog/DialogUtils.java @@ -1,5 +1,6 @@ package com.sap.sse.gwt.client.dialog; +import com.google.gwt.event.dom.client.HasAllKeyHandlers; import com.google.gwt.event.dom.client.KeyCodes; import com.google.gwt.event.dom.client.KeyPressEvent; import com.google.gwt.event.dom.client.KeyPressHandler; @@ -9,8 +10,8 @@ import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.FocusWidget; public abstract class DialogUtils { - public static void linkEnterToButton(final Button button, FocusWidget... widgets) { - for (FocusWidget widget : widgets) { + public static void linkEnterToButton(final Button button, HasAllKeyHandlers... widgets) { + for (HasAllKeyHandlers widget : widgets) { widget.addKeyPressHandler(new KeyPressHandler() { @Override public void onKeyPress(KeyPressEvent event) { @@ -22,8 +23,8 @@ public abstract class DialogUtils { } } - public static void linkEscapeToButton(final Button button, FocusWidget... widgets) { - for (FocusWidget widget : widgets) { + public static void linkEscapeToButton(final Button button, HasAllKeyHandlers... widgets) { + for (HasAllKeyHandlers widget : widgets) { widget.addKeyPressHandler(new KeyPressHandler() { @Override public void onKeyPress(KeyPressEvent event) { From c4269a185ece08e884f2f54f54660cc22fa4598a Mon Sep 17 00:00:00 2001 From: Kai Boernert Date: Thu, 21 Sep 2017 14:25:21 +0200 Subject: [PATCH 012/290] Added strategy pattern based on future browser support, unified styling --- .../shared/DateTimeBoxFallbackStrategie.java | 91 +++++++++++++++++ .../DateTimeBoxFallbackStrategie.ui.xml | 33 +++++++ .../gwt/ui/shared/DateTimeLocalStrategy.java | 76 ++++++++++++++ .../gwt/ui/shared/HTML5DateTimeBox.java | 98 +++++++++---------- 4 files changed, 245 insertions(+), 53 deletions(-) create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DateTimeBoxFallbackStrategie.java create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DateTimeBoxFallbackStrategie.ui.xml create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DateTimeLocalStrategy.java diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DateTimeBoxFallbackStrategie.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DateTimeBoxFallbackStrategie.java new file mode 100644 index 00000000000..ba7a10236e3 --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DateTimeBoxFallbackStrategie.java @@ -0,0 +1,91 @@ +package com.sap.sailing.gwt.ui.shared; + +import java.util.Date; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.dom.client.InputElement; +import com.google.gwt.i18n.client.DateTimeFormat; +import com.google.gwt.uibinder.client.UiBinder; +import com.google.gwt.uibinder.client.UiField; +import com.google.gwt.user.client.ui.Composite; +import com.google.gwt.user.client.ui.Widget; +import com.google.gwt.user.datepicker.client.DateBox; +import com.google.gwt.user.datepicker.client.DateBox.DefaultFormat; +import com.sap.sailing.gwt.ui.shared.HTML5DateTimeBox.DateTimeBoxStrategy; +import com.sap.sailing.gwt.ui.shared.HTML5DateTimeBox.Format; + +public class DateTimeBoxFallbackStrategie extends Composite implements DateTimeBoxStrategy { + + private static DateTimeBoxFallbackUiBinder uiBinder = GWT.create(DateTimeBoxFallbackUiBinder.class); + + interface DateTimeBoxFallbackUiBinder extends UiBinder { + } + + private final DateTimeFormat dateFormat; + private final DateTimeFormat timeFormat; + private final DateTimeFormat combiFormat; + + @UiField + InputElement timebox; + @UiField + DateBox datebox; + + public DateTimeBoxFallbackStrategie(Format format) { + initWidget(uiBinder.createAndBindUi(this)); + // parser for low level, RFC compatible format + dateFormat = DateTimeFormat.getFormat("yyyy-MM-dd"); + + datebox.setFormat(new DefaultFormat(dateFormat)); + + if (format != Format.YEAR_TO_DAY) { + timeFormat = DateTimeFormat.getFormat(format == Format.YEAR_TO_MINUTE ? "HH:mm" : "HH:mm:ss"); + if (format == Format.YEAR_TO_SECOND) { + timebox.setAttribute("step", "1"); + } else { + timebox.setAttribute("step", "60"); + } + // used to parse time and date in one pass, to workaround parsing time only formats containing the current + // day + combiFormat = DateTimeFormat + .getFormat("yyyy-MM-dd " + (format == Format.YEAR_TO_MINUTE ? "HH:mm" : "HH:mm:ss")); + } else { + timeFormat = null; + combiFormat = null; + } + + } + + public Widget getWidget() { + return this; + } + + public Date getValue() { + Date result = null; + try { + String rawDateValue = dateFormat.format(datebox.getValue()); + String rawTimeValue = timebox.getValue(); + if (timeFormat != null) { + // it is not possible to parse the timeFormat, as it will add the current day, so we will parse a + // combined format with the correct day and time + result = combiFormat.parse(rawDateValue + " " + rawTimeValue); + } else { + result = dateFormat.parse(rawDateValue); + } + } catch (IllegalArgumentException e) { + e.printStackTrace(); + } + return result; + } + + public void setValue(Date newValue) { + // remove the time part from the datepart, to reduce issus with browser compability + Date dateFormated = dateFormat.parse(dateFormat.format(newValue)); + datebox.setValue(dateFormated); + if (timeFormat != null) { + String timeFormated = timeFormat.format(newValue); + com.google.gwt.core.shared.GWT.log(timeFormated); + timebox.setValue(timeFormated); + } + } + +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DateTimeBoxFallbackStrategie.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DateTimeBoxFallbackStrategie.ui.xml new file mode 100644 index 00000000000..56241a7af77 --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DateTimeBoxFallbackStrategie.ui.xml @@ -0,0 +1,33 @@ + + + + .datebox { + height: 2em; + line-height: 2em; + box-sizing: border-box; + padding: 1px; + font-size: 14px; + border: 1px solid #ccc; + border-top: 1px solid #999; + vertical-align: baseline; + font: 14px 'Open Sans', Arial, Verdana, sans-serif; + } + + .timebox { + height: 2em; + line-height: 2em; + box-sizing: border-box; + padding: 1px; + font-size: 14px; + border: 1px solid #ccc; + border-top: 1px solid #999; + vertical-align: baseline; + font: 14px 'Open Sans', Arial, Verdana, sans-serif; + } + + + + + + \ No newline at end of file diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DateTimeLocalStrategy.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DateTimeLocalStrategy.java new file mode 100644 index 00000000000..d79f92cb0cc --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DateTimeLocalStrategy.java @@ -0,0 +1,76 @@ +package com.sap.sailing.gwt.ui.shared; + +import java.util.Date; + +import com.google.gwt.core.shared.GWT; +import com.google.gwt.dom.client.InputElement; +import com.google.gwt.dom.client.Style.BorderStyle; +import com.google.gwt.dom.client.Style.Unit; +import com.google.gwt.i18n.client.DateTimeFormat; +import com.google.gwt.user.client.DOM; +import com.google.gwt.user.client.ui.FlowPanel; +import com.google.gwt.user.client.ui.Widget; +import com.sap.sailing.gwt.ui.shared.HTML5DateTimeBox.DateTimeBoxStrategy; +import com.sap.sailing.gwt.ui.shared.HTML5DateTimeBox.Format; + +public class DateTimeLocalStrategy implements DateTimeBoxStrategy { + + private FlowPanel div; + private InputElement input; + private DateTimeFormat combiFormat; + + public DateTimeLocalStrategy(Format format) { + // if (format == Format.YEAR_TO_DAY) { + // combiFormat = DateTimeFormat.getFormat("yyyy-MM-dd"); + // } else if (format == Format.YEAR_TO_MINUTE) { + // combiFormat = DateTimeFormat.getFormat("yyyy-MM-dd'T'HH:mm"); + // } else { + combiFormat = DateTimeFormat.getFormat("yyyy-MM-dd'T'HH:mm:ss"); + // } + div = new FlowPanel(); + input = DOM.createElement("input").cast(); + input.setAttribute("type", "datetime-local"); + // use a style that looks similar to the DateBox + input.getStyle().setPadding(3, Unit.PX); + input.getStyle().setPaddingBottom(2, Unit.PX); + input.getStyle().setBorderColor("#ccc"); + input.getStyle().setBorderWidth(1, Unit.PX); + input.getStyle().setBorderStyle(BorderStyle.SOLID); + input.getStyle().setFontSize(100, Unit.PCT); + + if (format == Format.YEAR_TO_SECOND) { + input.setAttribute("step", "1"); + } else { + input.setAttribute("step", "60"); + } + // used to parse time and date in one pass, to workaround parsing time only formats containing the current + // day + div.getElement().appendChild(input); + } + + @Override + public Widget getWidget() { + return div; + } + + @Override + public void setValue(Date newValue) { + String stringNewValue = combiFormat.format(newValue); + GWT.log("Raw value " + stringNewValue); + input.setValue(stringNewValue); + } + + @Override + public Date getValue() { + Date result = null; + try { + String stringValue = input.getValue(); + GWT.log("DateTime is " + stringValue); + result = combiFormat.parse(stringValue); + } catch (IllegalArgumentException e) { + e.printStackTrace(); + } + return result; + } + +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/HTML5DateTimeBox.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/HTML5DateTimeBox.java index 58b4eb4ba3f..9b9969bbc87 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/HTML5DateTimeBox.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/HTML5DateTimeBox.java @@ -2,6 +2,7 @@ package com.sap.sailing.gwt.ui.shared; import java.util.Date; +import com.google.gwt.core.shared.GWT; import com.google.gwt.dom.client.Element; import com.google.gwt.dom.client.InputElement; import com.google.gwt.event.dom.client.HasAllKeyHandlers; @@ -10,12 +11,10 @@ import com.google.gwt.event.logical.shared.ValueChangeEvent; import com.google.gwt.event.logical.shared.ValueChangeHandler; import com.google.gwt.event.shared.HandlerRegistration; import com.google.gwt.i18n.client.DateTimeFormat; -import com.google.gwt.user.client.DOM; import com.google.gwt.user.client.Event; -import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.FocusPanel; +import com.google.gwt.user.client.ui.Widget; import com.google.gwt.user.datepicker.client.DateBox; -import com.google.gwt.user.datepicker.client.DateBox.DefaultFormat; public class HTML5DateTimeBox extends FocusPanel implements HasAllKeyHandlers, HasValueChangeHandlers { public static enum ViewMode { @@ -26,6 +25,17 @@ public class HTML5DateTimeBox extends FocusPanel implements HasAllKeyHandlers, H YEAR_TO_MINUTE, YEAR_TO_DAY, YEAR_TO_SECOND }; + interface DateTimeBoxStrategy { + + Widget getWidget(); + + void setValue(Date newValue); + + Date getValue(); + + } + + private final DateTimeBoxStrategy delegate; private DateTimeFormat dateFormat; private DateBox datePart; private InputElement timePart; @@ -33,33 +43,19 @@ public class HTML5DateTimeBox extends FocusPanel implements HasAllKeyHandlers, H private DateTimeFormat combiFormat; public HTML5DateTimeBox(Format format) { - //parser for low level, RFC compatible format - dateFormat = DateTimeFormat.getFormat("yyyy-MM-dd"); - - FlowPanel div = new FlowPanel(); - datePart = new DateBox(); - datePart.setFormat(new DefaultFormat(dateFormat)); - div.add(datePart); - - if (format != Format.YEAR_TO_DAY) { - timeFormat = DateTimeFormat.getFormat(format == Format.YEAR_TO_MINUTE ? "HH:mm" : "HH:mm:ss"); - timePart = DOM.createElement("input").cast(); - timePart.setAttribute("type", "time"); - if (format == Format.YEAR_TO_SECOND) { - timePart.setAttribute("step", "1"); - } else { - timePart.setAttribute("step", "60"); - } - // used to parse time and date in one pass, to workaround parsing time only formats containing the current - // day - combiFormat = DateTimeFormat - .getFormat("yyyy-MM-dd " + (format == Format.YEAR_TO_MINUTE ? "HH:mm" : "HH:mm:ss")); - div.getElement().appendChild(timePart); - } + boolean supportsDateTime = supportsType("datetime-locale"); + GWT.log("datetime-local " + supportsDateTime); + // TODO deactivated, because currently the detection is not reliable in different browsers and a format cannot + // be set yet + // if (supportsDateTime) { + // delegate = new DateTimeLocalStrategy(format); + // setWidget(delegate.getWidget()); + // } else { + delegate = new DateTimeBoxFallbackStrategie(format); + setWidget(delegate.getWidget()); + // } sinkEvents(Event.ONCHANGE | Event.ONBLUR | Event.ONKEYUP); - - setWidget(div); } @Override @@ -67,15 +63,8 @@ public class HTML5DateTimeBox extends FocusPanel implements HasAllKeyHandlers, H ValueChangeEvent.fire(HTML5DateTimeBox.this, getValue()); } - public void setValue(Date initialValue) { - // remove the time part from the datepart, to reduce issus with browser compability - Date dateFormated = dateFormat.parse(dateFormat.format(initialValue)); - datePart.setValue(dateFormated); - if (timeFormat != null) { - String timeFormated = timeFormat.format(initialValue); - com.google.gwt.core.shared.GWT.log(timeFormated); - timePart.setAttribute("value", timeFormated); - } + public void setValue(Date newValue) { + delegate.setValue(newValue); } public Element getPicker() { @@ -83,22 +72,7 @@ public class HTML5DateTimeBox extends FocusPanel implements HasAllKeyHandlers, H } public Date getValue() { - Date result = null; - try { - - String rawDateValue = dateFormat.format(datePart.getValue()); - String rawTimeValue = timePart.getValue(); - if (timeFormat != null) { - // it is not possible to parse the timeFormat, as it will add the current day, so we will parse a - // combined format with the correct day and time - result = combiFormat.parse(rawDateValue + " " + rawTimeValue); - } else { - result = dateFormat.parse(rawDateValue); - } - } catch (IllegalArgumentException e) { - e.printStackTrace(); - } - return result; + return delegate.getValue(); } @Override @@ -106,4 +80,22 @@ public class HTML5DateTimeBox extends FocusPanel implements HasAllKeyHandlers, H return addHandler(handler, ValueChangeEvent.getType()); } + public native boolean supportsType(String type) /*-{ + var input = document.createElement("input"); + input.setAttribute("type", type); + var desiredType = input.getAttribute('type'); + console.log("desiredtype " + desiredType + " actual " + input.type); + var supported = false; + if (input.type === desiredType) { + supported = true; + } + input.value = 'Hello world'; + console.log("invalue" + input.value); + var helloWorldAccepted = (input.value === 'Hello world'); + if (helloWorldAccepted) { + supported = false; + } + input.value = ''; + return supported; + }-*/; } From e792b1fa5dac05497e5b4d1d70fc4bfc6fe9259b Mon Sep 17 00:00:00 2001 From: Kai Boernert Date: Thu, 21 Sep 2017 15:47:43 +0200 Subject: [PATCH 013/290] deletion of bootstrap --- configuration/RunFortifyBuild | 4 +- java/com.sap.sailing.dashboards.gwt/pom.xml | 6 - java/com.sap.sailing.gwt.ui/.classpath | 1 - .../AdminConsoleDateTimePicker.css | 88 ------- .../AdminConsoleProgressBar.css | 226 ------------------ .../META-INF/MANIFEST.MF | 3 +- java/com.sap.sailing.gwt.ui/imprint.json | 10 - java/com.sap.sailing.gwt.ui/pom.xml | 6 - .../sap/sailing/gwt/autoplay/AutoPlay.gwt.xml | 4 - .../com/sap/sailing/gwt/home/HomeBase.gwt.xml | 4 - .../regattaoverview/RegattaOverview.gwt.xml | 4 - .../sap/sailing/gwt/ui/AdminConsole.gwt.xml | 5 - ...tractRegattaWithSeriesAndFleetsDialog.java | 4 +- .../gwt/ui/adminconsole/EventDialog.java | 4 +- .../RegattaLogAddDeviceMappingDialog.java | 4 +- .../ui/adminconsole/SetStartTimeDialog.java | 4 +- .../SetStartTimeReceivedDialog.java | 4 +- .../ui/adminconsole/SetTimePointDialog.java | 4 +- .../adminconsole/SetTrackingTimesDialog.java | 4 +- ...va => DataEntryDialogWithDateTimeBox.java} | 8 +- .../gwt/ui/shared/BetterDateTimeBox.java | 33 --- .../com/sap/sailing/gwt/ui/DataMining.gwt.xml | 3 - .../gwt/ui/EmbeddedMapAndWindChart.gwt.xml | 4 - .../sap/sailing/gwt/ui/Leaderboard.gwt.xml | 5 - .../sailing/gwt/ui/LeaderboardEditing.gwt.xml | 4 - .../com/sap/sailing/gwt/ui/NoUI.gwt.xml | 5 - .../com/sap/sailing/gwt/ui/RaceBoard.gwt.xml | 4 - .../com/sap/sailing/gwt/ui/Simulator.gwt.xml | 4 - .../com/sap/sailing/gwt/ui/Spectator.gwt.xml | 4 - .../com/sap/sailing/gwt/ui/VideoPopup.gwt.xml | 4 - .../sap/sailing/gwt/ui/YoutubePopup.gwt.xml | 4 - 31 files changed, 21 insertions(+), 450 deletions(-) delete mode 100644 java/com.sap.sailing.gwt.ui/AdminConsoleDateTimePicker.css delete mode 100644 java/com.sap.sailing.gwt.ui/AdminConsoleProgressBar.css rename java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/{DataEntryDialogWithBootstrap.java => DataEntryDialogWithDateTimeBox.java} (78%) delete mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/BetterDateTimeBox.java diff --git a/configuration/RunFortifyBuild b/configuration/RunFortifyBuild index b63a0122a6b..5bc1d23e132 100755 --- a/configuration/RunFortifyBuild +++ b/configuration/RunFortifyBuild @@ -1,3 +1,3 @@ #!/bin/bash -sourceanalyzer -b com.sap.sailing.domain -Xmx4000m -debug -logfile FortifyScan.log -extdirs /home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins -cp "/home/sailing/code/java/com.google.gwt.osgi/lib/gwt-user.jar:/home/sailing/gwt-2.7.0/validation-api-1.0.0.GA.jar:/home/sailing/gwt-2.7.0/gwt-codeserver.jar:/home/sailing/gwt-2.7.0/validation-api-1.0.0.GA-sources.jar:/home/sailing/gwt-2.7.0/gwt-user.jar:/home/sailing/gwt-2.7.0/gwt-dev.jar:/home/sailing/code/java/com.google.gwt.dev/lib/gwt-dev.jar:/home/sailing/code/java/com.tractrac.clientmodule/lib/TracAPI.jar:/home/sailing/code/java/com.sap.sailing.dashboards.gwt/WEB-INF/lib/gwt-ajaxloader.jar:/home/sailing/code/java/com.sap.sailing.dashboards.gwt/WEB-INF/lib/gwt-maps-api-3.9.0-build-17.jar:/home/sailing/code/java/com.googlecode.mgwt/lib/mgwt-2.0.0.jar:/home/sailing/code/java/com.sap.sailing.gwt.ui/WEB-INF/lib/gwt-bootstrap-2.3.2.0.jar:/home/sailing/code/java/com.sap.sailing.gwt.ui/WEB-INF/lib/gwt-maps-api-3.9.0-build-17.jar:/home/sailing/code/java/com.sap.sailing.gwt.ui/WEB-INF/lib/gwt-ajaxloader.jar" -source 1.8 "/home/sailing/code/java/com.sap.sailing.ess40.resultimport" "/home/sailing/code/java/com.sap.sailing.manage2sail" "/home/sailing/code/java/com.sap.sailing.manage2sail.resultimport" "/home/sailing/code/java/com.tractrac.clientmodule" "/home/sailing/code/java/com.sap.sse.filestorage" "/home/sailing/code/java/com.sap.sailing.domain.swisstimingreplayadapter" "/home/sailing/code/java/com.sap.sse.mongodb" "/home/sailing/code/java/com.sap.sailing.udpconnector" "/home/sailing/code/java/com.sap.sailing.server.gateway" "/home/sailing/code/java/com.sap.sse" "/home/sailing/code/java/com.sap.sse.datamining" "/home/sailing/code/java/com.sap.sailing.domain.racelogtrackingadapter" "/home/sailing/code/java/com.sap.sailing.datamining.shared" "/home/sailing/code/java/com.sap.sailing.domain.igtimiadapter.persistence" "/home/sailing/code/java/com.sap.sailing.monitoring" "/home/sailing/code/java/com.sap.sailing.domain" "/home/sailing/code/java/com.sap.sse.datamining.annotations" "/home/sailing/code/java/com.sap.sailing.domain.swisstimingadapter.persistence" "/home/sailing/code/java/com.sap.sse.threadmanager" "/home/sailing/code/java/com.sap.sailing.xrr.structureimport" "/home/sailing/code/java/com.sap.sailing.freg.resultimport" "/home/sailing/code/java/com.sap.sailing.domain.igtimiadapter" "/home/sailing/code/java/com.sap.sailing.server.gateway.ess40" "/home/sailing/code/java/com.sap.sailing.xrr.schema" "/home/sailing/code/java/com.sap.sse.common" "/home/sailing/code/java/com.sap.sailing.expeditionconnector" "/home/sailing/code/java/com.sap.sailing.declination" "/home/sailing/code/java/com.sap.sailing.geocoding" "/home/sailing/code/java/com.sap.sailing.server.gateway.serialization" "/home/sailing/code/java/com.sap.sailing.kiworesultimport" "/home/sailing/code/java/com.sap.sailing.polars.datamining" "/home/sailing/code/java/com.sap.sailing.simulator" "/home/sailing/code/java/com.sap.sse.replication" "/home/sailing/code/java/com.sap.sailing.www" "/home/sailing/code/java/com.sap.sse.gwt.adminconsole" "/home/sailing/code/java/com.sap.sailing.dashboards.gwt" "/home/sailing/code/java/com.sap.sailing.news" "/home/sailing/code/java/com.sap.sailing.polars.datamining.shared" "/home/sailing/code/java/com.sap.sailing.barbados.resultimport" "/home/sailing/code/java/com.sap.sse.security.common" "/home/sailing/code/java/com.sap.sse.security.ui" "/home/sailing/code/java/com.sap.sse.shared.android" "/home/sailing/code/java/org.json.simple" "/home/sailing/code/java/com.sap.sailing.resultimport" "/home/sailing/code/java/com.sap.sse.security" "/home/sailing/code/java/com.sap.sailing.gwt.ui" "/home/sailing/code/java/com.sap.sailing.domain.tractracadapter" "/home/sailing/code/java/com.sap.sailing.server.trackfiles" "/home/sailing/code/java/com.googlecode.java-diff-utils" "/home/sailing/code/java/com.sap.sse.operationaltransformation" "/home/sailing/code/java/com.sap.sailing.domain.swisstimingadapter" "/home/sailing/code/java/com.sap.sse.gwt.theme" "/home/sailing/code/java/com.sap.sailing.domain.persistence" "/home/sailing/code/java/com.sap.sailing.sailwave.resultimport" "/home/sailing/code/java/com.sap.sailing.xmlexport" "/home/sailing/code/java/com.sap.sse.mail" "/home/sailing/code/java/com.sap.sailing.velum.resultimport" "/home/sailing/code/java/com.sap.sse.security.userstore.mongodb" "/home/sailing/code/java/com.sap.sailing.server.gateway.serialization.shared.android" "/home/sailing/code/java/com.sap.sse.datamining.shared" "/home/sailing/code/java/org.moxieapps.gwt.highcharts" "/home/sailing/code/java/com.sap.sailing.autoload" "/home/sailing/code/java/com.googlecode.mgwt" "/home/sailing/code/java/com.sap.sailing.datamining" "/home/sailing/code/java/com.sap.sailing.polars" "/home/sailing/code/java/com.sap.sailing.www.events" "/home/sailing/code/java/com.sap.sailing.domain.common" "/home/sailing/code/java/com.sap.sailing.domain.shared.android" "/home/sailing/code/java/com.sap.sailing.domain.deckmanadapter" "/home/sailing/code/java/com.sap.sailing.server" "/home/sailing/code/java/com.sap.sse.gwt" "/home/sailing/code/java/com.sap.sailing.xrr.resultimport" "/home/sailing/code/java/com.sap.sailing.domain.tractracadapter.persistence" -#sourceanalyzer -b com.sap.sailing -Xmx10g -debug -logfile FortifyScan.log "-show-build-warnings" "-machine-output" "-cp" "/home/sailing/code/java/com.sap.sse.gwt.theme/WEB-INF/classes:/home/sailing/code/java/com.sap.sailing.dashboards.gwt/WEB-INF/classes:/home/sailing/code/java/com.sap.sailing.gwt.ui/WEB-INF/classes:/home/sailing/code/java/com.sap.sse.security.ui/WEB-INF/classes:/home/sailing/code/java/com.sap.sailing.www.events/WEB-INF/classes:/home/sailing/code/java/com.google.gwt.osgi/lib/gwt-user.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.eclipse.osgi_3.10.2.v20150203-1939.jar:/home/sailing/gwt-2.7.0/validation-api-1.0.0.GA.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.eclipse.jetty.osgi.npn.fragment_9.2.2.v20140723.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/javax.servlet_3.1.0.v20140303-1611.jar:/home/sailing/gwt-2.7.0/gwt-codeserver.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.apache.servicemix.bundles.zxing_3.1.0.1.jar:/home/sailing/gwt-2.7.0/validation-api-1.0.0.GA-sources.jar:/home/sailing/gwt-2.7.0/gwt-user.jar:/home/sailing/gwt-2.7.0/gwt-dev.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.apache.commons.math_2.1.0.v201105210652.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/com.fasterxml.jackson.core.jackson-databind_2.5.0.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.hamcrest.core_1.1.0.v20090501071000.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.junit4_4.8.2.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/com.fasterxml.jackson.core.jackson-annotations_2.5.0.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/com.rabbitmq.client_2.8.4.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/lz4-java_1.3.0.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.apache.servicemix.bundles.aws-java-sdk_1.9.8.1.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.apache.commons.logging_1.1.3.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/javax.validation_1.0.0.GA_v201205091237.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.eclipse.jetty.webapp_9.2.2.v20140723.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/com.fasterxml.jackson.core.jackson-core_2.5.0.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.eclipse.jetty.server_9.2.2.v20140723.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.mongodb.mongo-java-driver_2.13.0.RELEASE.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.apache.httpcomponents.httpclient_4.2.6.v201311072007.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.apache.commons.io_2.2.0.v201405211200.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/com.sun.mail.javax.mail_1.4.5.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.eclipse.jetty.io_9.2.2.v20140723.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/javax.ws.rs_1.1.1.v20130318-1750.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.jvnet.mimepull_1.9.4.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.apache.shiro.ehcache_1.2.3.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.apache.commons.lang_2.6.0.v201404270220.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.apache.shiro.core_1.2.2.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.eclipse.jetty.websocket.servlet_9.2.2.v20140723.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.apache.commons.beanutils_1.9.0.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/com.sun.jersey.contribs.jersey-multipart_1.17.0.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.eclipse.jetty.websocket.client_9.2.2.v20140723.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.objectweb.asm_5.0.1.v201404251740.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.jdom_1.1.1.v201101151400.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/routeconverter_2.12.2.201406032322.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/jackson-jaxrs_1.9.13.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.apache.httpcomponents.httpcore_4.2.5.v201311072007.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.apache.shiro.web_1.2.2.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.apache.commons.fileupload_1.2.2.v20111214-1400.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.apache.servicemix.bundles.ehcache_2.6.9.1.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.eclipse.jetty.util_9.2.2.v20140723.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.apache.servicemix.bundles.scribe_1.3.3.1.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.eclipse.jetty.websocket.server_9.2.2.v20140723.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/slf4j.api_1.6.4.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/com.sun.jersey_1.17.0.v20130314-2020.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.eclipse.jetty.websocket.api_9.2.2.v20140723.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.eclipse.jetty.websocket.common_9.2.2.v20140723.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.hyperic.sigar_1.6.4.1.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/jcl.over.slf4j_1.6.4.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.apache.poi_3.9.0.v201405241750.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.dom4j_1.6.1.v201312101416.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.apache.xmlbeans_2.3.0.v201405241900.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.apache.poi.ooxml.schemas_3.9.0.v201405241750.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.apache.poi.ooxml_3.9.0.v201405241905.jar:/home/sailing/code/java/com.google.gwt.dev/lib/gwt-dev.jar:/home/sailing/code/java/com.tractrac.clientmodule/lib/TracAPI.jar:/home/sailing/code/java/com.sap.sailing.dashboards.gwt/WEB-INF/lib/gwt-ajaxloader.jar:/home/sailing/code/java/com.sap.sailing.dashboards.gwt/WEB-INF/lib/gwt-maps-api-3.9.0-build-17.jar:/home/sailing/code/java/com.googlecode.mgwt/lib/mgwt-2.0.0.jar:/home/sailing/code/java/com.sap.sailing.gwt.ui/WEB-INF/lib/gwt-bootstrap-2.3.2.0.jar:/home/sailing/code/java/com.sap.sailing.gwt.ui/WEB-INF/lib/gwt-maps-api-3.9.0-build-17.jar:/home/sailing/code/java/com.sap.sailing.gwt.ui/WEB-INF/lib/gwt-ajaxloader.jar" "-source" "1.8" "/home/sailing/code/java/com.sap.sailing.ess40.resultimport" "/home/sailing/code/java/com.sap.sailing.manage2sail" "/home/sailing/code/java/com.sap.sailing.manage2sail.resultimport" "/home/sailing/code/java/com.tractrac.clientmodule" "/home/sailing/code/java/com.sap.sse.filestorage" "/home/sailing/code/java/com.sap.sailing.domain.swisstimingreplayadapter" "/home/sailing/code/java/com.sap.sse.mongodb" "/home/sailing/code/java/com.sap.sailing.udpconnector" "/home/sailing/code/java/com.sap.sailing.server.gateway" "/home/sailing/code/java/com.sap.sse" "/home/sailing/code/java/com.sap.sse.datamining" "/home/sailing/code/java/com.sap.sailing.domain.racelogtrackingadapter" "/home/sailing/code/java/com.sap.sailing.datamining.shared" "/home/sailing/code/java/com.sap.sailing.domain.igtimiadapter.persistence" "/home/sailing/code/java/com.sap.sailing.monitoring" "/home/sailing/code/java/com.sap.sailing.domain" "/home/sailing/code/java/com.sap.sse.datamining.annotations" "/home/sailing/code/java/com.sap.sailing.domain.swisstimingadapter.persistence" "/home/sailing/code/java/com.sap.sse.threadmanager" "/home/sailing/code/java/com.sap.sailing.xrr.structureimport" "/home/sailing/code/java/com.sap.sailing.freg.resultimport" "/home/sailing/code/java/com.sap.sailing.domain.igtimiadapter" "/home/sailing/code/java/com.sap.sailing.server.gateway.ess40" "/home/sailing/code/java/com.sap.sailing.xrr.schema" "/home/sailing/code/java/com.sap.sse.common" "/home/sailing/code/java/com.sap.sailing.expeditionconnector" "/home/sailing/code/java/com.sap.sailing.declination" "/home/sailing/code/java/com.sap.sailing.geocoding" "/home/sailing/code/java/com.sap.sailing.server.gateway.serialization" "/home/sailing/code/java/com.sap.sailing.kiworesultimport" "/home/sailing/code/java/com.sap.sailing.polars.datamining" "/home/sailing/code/java/com.sap.sailing.simulator" "/home/sailing/code/java/com.sap.sse.replication" "/home/sailing/code/java/com.sap.sailing.www" "/home/sailing/code/java/com.sap.sse.gwt.adminconsole" "/home/sailing/code/java/com.sap.sailing.dashboards.gwt" "/home/sailing/code/java/com.sap.sailing.news" "/home/sailing/code/java/com.sap.sailing.polars.datamining.shared" "/home/sailing/code/java/com.sap.sailing.barbados.resultimport" "/home/sailing/code/java/com.sap.sse.security.common" "/home/sailing/code/java/com.sap.sse.security.ui" "/home/sailing/code/java/com.sap.sse.shared.android" "/home/sailing/code/java/org.json.simple" "/home/sailing/code/java/com.sap.sailing.resultimport" "/home/sailing/code/java/com.sap.sse.security" "/home/sailing/code/java/com.sap.sailing.gwt.ui" "/home/sailing/code/java/com.sap.sailing.domain.tractracadapter" "/home/sailing/code/java/com.sap.sailing.server.trackfiles" "/home/sailing/code/java/com.googlecode.java-diff-utils" "/home/sailing/code/java/com.sap.sse.operationaltransformation" "/home/sailing/code/java/com.sap.sailing.domain.swisstimingadapter" "/home/sailing/code/java/com.sap.sse.gwt.theme" "/home/sailing/code/java/com.sap.sailing.domain.persistence" "/home/sailing/code/java/com.sap.sailing.sailwave.resultimport" "/home/sailing/code/java/com.sap.sailing.xmlexport" "/home/sailing/code/java/com.sap.sse.mail" "/home/sailing/code/java/com.sap.sailing.velum.resultimport" "/home/sailing/code/java/com.sap.sse.security.userstore.mongodb" "/home/sailing/code/java/com.sap.sailing.server.gateway.serialization.shared.android" "/home/sailing/code/java/com.sap.sse.datamining.shared" "/home/sailing/code/java/org.moxieapps.gwt.highcharts" "/home/sailing/code/java/com.sap.sailing.autoload" "/home/sailing/code/java/com.googlecode.mgwt" "/home/sailing/code/java/com.sap.sailing.datamining" "/home/sailing/code/java/com.sap.sailing.polars" "/home/sailing/code/java/com.sap.sailing.www.events" "/home/sailing/code/java/com.sap.sailing.domain.common" "/home/sailing/code/java/com.sap.sailing.domain.shared.android" "/home/sailing/code/java/com.sap.sailing.domain.deckmanadapter" "/home/sailing/code/java/com.sap.sailing.server" "/home/sailing/code/java/com.sap.sse.gwt" "/home/sailing/code/java/com.sap.sailing.xrr.resultimport" "/home/sailing/code/java/com.sap.sailing.domain.tractracadapter.persistence" +sourceanalyzer -b com.sap.sailing.domain -Xmx4000m -debug -logfile FortifyScan.log -extdirs /home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins -cp "/home/sailing/code/java/com.google.gwt.osgi/lib/gwt-user.jar:/home/sailing/gwt-2.7.0/validation-api-1.0.0.GA.jar:/home/sailing/gwt-2.7.0/gwt-codeserver.jar:/home/sailing/gwt-2.7.0/validation-api-1.0.0.GA-sources.jar:/home/sailing/gwt-2.7.0/gwt-user.jar:/home/sailing/gwt-2.7.0/gwt-dev.jar:/home/sailing/code/java/com.google.gwt.dev/lib/gwt-dev.jar:/home/sailing/code/java/com.tractrac.clientmodule/lib/TracAPI.jar:/home/sailing/code/java/com.sap.sailing.dashboards.gwt/WEB-INF/lib/gwt-ajaxloader.jar:/home/sailing/code/java/com.sap.sailing.dashboards.gwt/WEB-INF/lib/gwt-maps-api-3.9.0-build-17.jar:/home/sailing/code/java/com.googlecode.mgwt/lib/mgwt-2.0.0.jar:/home/sailing/code/java/com.sap.sailing.gwt.ui/WEB-INF/lib/gwt-maps-api-3.9.0-build-17.jar:/home/sailing/code/java/com.sap.sailing.gwt.ui/WEB-INF/lib/gwt-ajaxloader.jar" -source 1.8 "/home/sailing/code/java/com.sap.sailing.ess40.resultimport" "/home/sailing/code/java/com.sap.sailing.manage2sail" "/home/sailing/code/java/com.sap.sailing.manage2sail.resultimport" "/home/sailing/code/java/com.tractrac.clientmodule" "/home/sailing/code/java/com.sap.sse.filestorage" "/home/sailing/code/java/com.sap.sailing.domain.swisstimingreplayadapter" "/home/sailing/code/java/com.sap.sse.mongodb" "/home/sailing/code/java/com.sap.sailing.udpconnector" "/home/sailing/code/java/com.sap.sailing.server.gateway" "/home/sailing/code/java/com.sap.sse" "/home/sailing/code/java/com.sap.sse.datamining" "/home/sailing/code/java/com.sap.sailing.domain.racelogtrackingadapter" "/home/sailing/code/java/com.sap.sailing.datamining.shared" "/home/sailing/code/java/com.sap.sailing.domain.igtimiadapter.persistence" "/home/sailing/code/java/com.sap.sailing.monitoring" "/home/sailing/code/java/com.sap.sailing.domain" "/home/sailing/code/java/com.sap.sse.datamining.annotations" "/home/sailing/code/java/com.sap.sailing.domain.swisstimingadapter.persistence" "/home/sailing/code/java/com.sap.sse.threadmanager" "/home/sailing/code/java/com.sap.sailing.xrr.structureimport" "/home/sailing/code/java/com.sap.sailing.freg.resultimport" "/home/sailing/code/java/com.sap.sailing.domain.igtimiadapter" "/home/sailing/code/java/com.sap.sailing.server.gateway.ess40" "/home/sailing/code/java/com.sap.sailing.xrr.schema" "/home/sailing/code/java/com.sap.sse.common" "/home/sailing/code/java/com.sap.sailing.expeditionconnector" "/home/sailing/code/java/com.sap.sailing.declination" "/home/sailing/code/java/com.sap.sailing.geocoding" "/home/sailing/code/java/com.sap.sailing.server.gateway.serialization" "/home/sailing/code/java/com.sap.sailing.kiworesultimport" "/home/sailing/code/java/com.sap.sailing.polars.datamining" "/home/sailing/code/java/com.sap.sailing.simulator" "/home/sailing/code/java/com.sap.sse.replication" "/home/sailing/code/java/com.sap.sailing.www" "/home/sailing/code/java/com.sap.sse.gwt.adminconsole" "/home/sailing/code/java/com.sap.sailing.dashboards.gwt" "/home/sailing/code/java/com.sap.sailing.news" "/home/sailing/code/java/com.sap.sailing.polars.datamining.shared" "/home/sailing/code/java/com.sap.sailing.barbados.resultimport" "/home/sailing/code/java/com.sap.sse.security.common" "/home/sailing/code/java/com.sap.sse.security.ui" "/home/sailing/code/java/com.sap.sse.shared.android" "/home/sailing/code/java/org.json.simple" "/home/sailing/code/java/com.sap.sailing.resultimport" "/home/sailing/code/java/com.sap.sse.security" "/home/sailing/code/java/com.sap.sailing.gwt.ui" "/home/sailing/code/java/com.sap.sailing.domain.tractracadapter" "/home/sailing/code/java/com.sap.sailing.server.trackfiles" "/home/sailing/code/java/com.googlecode.java-diff-utils" "/home/sailing/code/java/com.sap.sse.operationaltransformation" "/home/sailing/code/java/com.sap.sailing.domain.swisstimingadapter" "/home/sailing/code/java/com.sap.sse.gwt.theme" "/home/sailing/code/java/com.sap.sailing.domain.persistence" "/home/sailing/code/java/com.sap.sailing.sailwave.resultimport" "/home/sailing/code/java/com.sap.sailing.xmlexport" "/home/sailing/code/java/com.sap.sse.mail" "/home/sailing/code/java/com.sap.sailing.velum.resultimport" "/home/sailing/code/java/com.sap.sse.security.userstore.mongodb" "/home/sailing/code/java/com.sap.sailing.server.gateway.serialization.shared.android" "/home/sailing/code/java/com.sap.sse.datamining.shared" "/home/sailing/code/java/org.moxieapps.gwt.highcharts" "/home/sailing/code/java/com.sap.sailing.autoload" "/home/sailing/code/java/com.googlecode.mgwt" "/home/sailing/code/java/com.sap.sailing.datamining" "/home/sailing/code/java/com.sap.sailing.polars" "/home/sailing/code/java/com.sap.sailing.www.events" "/home/sailing/code/java/com.sap.sailing.domain.common" "/home/sailing/code/java/com.sap.sailing.domain.shared.android" "/home/sailing/code/java/com.sap.sailing.domain.deckmanadapter" "/home/sailing/code/java/com.sap.sailing.server" "/home/sailing/code/java/com.sap.sse.gwt" "/home/sailing/code/java/com.sap.sailing.xrr.resultimport" "/home/sailing/code/java/com.sap.sailing.domain.tractracadapter.persistence" +#sourceanalyzer -b com.sap.sailing -Xmx10g -debug -logfile FortifyScan.log "-show-build-warnings" "-machine-output" "-cp" "/home/sailing/code/java/com.sap.sse.gwt.theme/WEB-INF/classes:/home/sailing/code/java/com.sap.sailing.dashboards.gwt/WEB-INF/classes:/home/sailing/code/java/com.sap.sailing.gwt.ui/WEB-INF/classes:/home/sailing/code/java/com.sap.sse.security.ui/WEB-INF/classes:/home/sailing/code/java/com.sap.sailing.www.events/WEB-INF/classes:/home/sailing/code/java/com.google.gwt.osgi/lib/gwt-user.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.eclipse.osgi_3.10.2.v20150203-1939.jar:/home/sailing/gwt-2.7.0/validation-api-1.0.0.GA.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.eclipse.jetty.osgi.npn.fragment_9.2.2.v20140723.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/javax.servlet_3.1.0.v20140303-1611.jar:/home/sailing/gwt-2.7.0/gwt-codeserver.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.apache.servicemix.bundles.zxing_3.1.0.1.jar:/home/sailing/gwt-2.7.0/validation-api-1.0.0.GA-sources.jar:/home/sailing/gwt-2.7.0/gwt-user.jar:/home/sailing/gwt-2.7.0/gwt-dev.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.apache.commons.math_2.1.0.v201105210652.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/com.fasterxml.jackson.core.jackson-databind_2.5.0.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.hamcrest.core_1.1.0.v20090501071000.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.junit4_4.8.2.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/com.fasterxml.jackson.core.jackson-annotations_2.5.0.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/com.rabbitmq.client_2.8.4.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/lz4-java_1.3.0.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.apache.servicemix.bundles.aws-java-sdk_1.9.8.1.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.apache.commons.logging_1.1.3.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/javax.validation_1.0.0.GA_v201205091237.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.eclipse.jetty.webapp_9.2.2.v20140723.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/com.fasterxml.jackson.core.jackson-core_2.5.0.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.eclipse.jetty.server_9.2.2.v20140723.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.mongodb.mongo-java-driver_2.13.0.RELEASE.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.apache.httpcomponents.httpclient_4.2.6.v201311072007.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.apache.commons.io_2.2.0.v201405211200.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/com.sun.mail.javax.mail_1.4.5.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.eclipse.jetty.io_9.2.2.v20140723.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/javax.ws.rs_1.1.1.v20130318-1750.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.jvnet.mimepull_1.9.4.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.apache.shiro.ehcache_1.2.3.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.apache.commons.lang_2.6.0.v201404270220.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.apache.shiro.core_1.2.2.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.eclipse.jetty.websocket.servlet_9.2.2.v20140723.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.apache.commons.beanutils_1.9.0.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/com.sun.jersey.contribs.jersey-multipart_1.17.0.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.eclipse.jetty.websocket.client_9.2.2.v20140723.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.objectweb.asm_5.0.1.v201404251740.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.jdom_1.1.1.v201101151400.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/routeconverter_2.12.2.201406032322.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/jackson-jaxrs_1.9.13.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.apache.httpcomponents.httpcore_4.2.5.v201311072007.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.apache.shiro.web_1.2.2.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.apache.commons.fileupload_1.2.2.v20111214-1400.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.apache.servicemix.bundles.ehcache_2.6.9.1.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.eclipse.jetty.util_9.2.2.v20140723.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.apache.servicemix.bundles.scribe_1.3.3.1.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.eclipse.jetty.websocket.server_9.2.2.v20140723.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/slf4j.api_1.6.4.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/com.sun.jersey_1.17.0.v20130314-2020.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.eclipse.jetty.websocket.api_9.2.2.v20140723.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.eclipse.jetty.websocket.common_9.2.2.v20140723.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.hyperic.sigar_1.6.4.1.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/jcl.over.slf4j_1.6.4.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.apache.poi_3.9.0.v201405241750.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.dom4j_1.6.1.v201312101416.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.apache.xmlbeans_2.3.0.v201405241900.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.apache.poi.ooxml.schemas_3.9.0.v201405241750.jar:/home/sailing/workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.apache.poi.ooxml_3.9.0.v201405241905.jar:/home/sailing/code/java/com.google.gwt.dev/lib/gwt-dev.jar:/home/sailing/code/java/com.tractrac.clientmodule/lib/TracAPI.jar:/home/sailing/code/java/com.sap.sailing.dashboards.gwt/WEB-INF/lib/gwt-ajaxloader.jar:/home/sailing/code/java/com.sap.sailing.dashboards.gwt/WEB-INF/lib/gwt-maps-api-3.9.0-build-17.jar:/home/sailing/code/java/com.googlecode.mgwt/lib/mgwt-2.0.0.jar:/home/sailing/code/java/com.sap.sailing.gwt.ui/WEB-INF/lib/gwt-maps-api-3.9.0-build-17.jar:/home/sailing/code/java/com.sap.sailing.gwt.ui/WEB-INF/lib/gwt-ajaxloader.jar" "-source" "1.8" "/home/sailing/code/java/com.sap.sailing.ess40.resultimport" "/home/sailing/code/java/com.sap.sailing.manage2sail" "/home/sailing/code/java/com.sap.sailing.manage2sail.resultimport" "/home/sailing/code/java/com.tractrac.clientmodule" "/home/sailing/code/java/com.sap.sse.filestorage" "/home/sailing/code/java/com.sap.sailing.domain.swisstimingreplayadapter" "/home/sailing/code/java/com.sap.sse.mongodb" "/home/sailing/code/java/com.sap.sailing.udpconnector" "/home/sailing/code/java/com.sap.sailing.server.gateway" "/home/sailing/code/java/com.sap.sse" "/home/sailing/code/java/com.sap.sse.datamining" "/home/sailing/code/java/com.sap.sailing.domain.racelogtrackingadapter" "/home/sailing/code/java/com.sap.sailing.datamining.shared" "/home/sailing/code/java/com.sap.sailing.domain.igtimiadapter.persistence" "/home/sailing/code/java/com.sap.sailing.monitoring" "/home/sailing/code/java/com.sap.sailing.domain" "/home/sailing/code/java/com.sap.sse.datamining.annotations" "/home/sailing/code/java/com.sap.sailing.domain.swisstimingadapter.persistence" "/home/sailing/code/java/com.sap.sse.threadmanager" "/home/sailing/code/java/com.sap.sailing.xrr.structureimport" "/home/sailing/code/java/com.sap.sailing.freg.resultimport" "/home/sailing/code/java/com.sap.sailing.domain.igtimiadapter" "/home/sailing/code/java/com.sap.sailing.server.gateway.ess40" "/home/sailing/code/java/com.sap.sailing.xrr.schema" "/home/sailing/code/java/com.sap.sse.common" "/home/sailing/code/java/com.sap.sailing.expeditionconnector" "/home/sailing/code/java/com.sap.sailing.declination" "/home/sailing/code/java/com.sap.sailing.geocoding" "/home/sailing/code/java/com.sap.sailing.server.gateway.serialization" "/home/sailing/code/java/com.sap.sailing.kiworesultimport" "/home/sailing/code/java/com.sap.sailing.polars.datamining" "/home/sailing/code/java/com.sap.sailing.simulator" "/home/sailing/code/java/com.sap.sse.replication" "/home/sailing/code/java/com.sap.sailing.www" "/home/sailing/code/java/com.sap.sse.gwt.adminconsole" "/home/sailing/code/java/com.sap.sailing.dashboards.gwt" "/home/sailing/code/java/com.sap.sailing.news" "/home/sailing/code/java/com.sap.sailing.polars.datamining.shared" "/home/sailing/code/java/com.sap.sailing.barbados.resultimport" "/home/sailing/code/java/com.sap.sse.security.common" "/home/sailing/code/java/com.sap.sse.security.ui" "/home/sailing/code/java/com.sap.sse.shared.android" "/home/sailing/code/java/org.json.simple" "/home/sailing/code/java/com.sap.sailing.resultimport" "/home/sailing/code/java/com.sap.sse.security" "/home/sailing/code/java/com.sap.sailing.gwt.ui" "/home/sailing/code/java/com.sap.sailing.domain.tractracadapter" "/home/sailing/code/java/com.sap.sailing.server.trackfiles" "/home/sailing/code/java/com.googlecode.java-diff-utils" "/home/sailing/code/java/com.sap.sse.operationaltransformation" "/home/sailing/code/java/com.sap.sailing.domain.swisstimingadapter" "/home/sailing/code/java/com.sap.sse.gwt.theme" "/home/sailing/code/java/com.sap.sailing.domain.persistence" "/home/sailing/code/java/com.sap.sailing.sailwave.resultimport" "/home/sailing/code/java/com.sap.sailing.xmlexport" "/home/sailing/code/java/com.sap.sse.mail" "/home/sailing/code/java/com.sap.sailing.velum.resultimport" "/home/sailing/code/java/com.sap.sse.security.userstore.mongodb" "/home/sailing/code/java/com.sap.sailing.server.gateway.serialization.shared.android" "/home/sailing/code/java/com.sap.sse.datamining.shared" "/home/sailing/code/java/org.moxieapps.gwt.highcharts" "/home/sailing/code/java/com.sap.sailing.autoload" "/home/sailing/code/java/com.googlecode.mgwt" "/home/sailing/code/java/com.sap.sailing.datamining" "/home/sailing/code/java/com.sap.sailing.polars" "/home/sailing/code/java/com.sap.sailing.www.events" "/home/sailing/code/java/com.sap.sailing.domain.common" "/home/sailing/code/java/com.sap.sailing.domain.shared.android" "/home/sailing/code/java/com.sap.sailing.domain.deckmanadapter" "/home/sailing/code/java/com.sap.sailing.server" "/home/sailing/code/java/com.sap.sse.gwt" "/home/sailing/code/java/com.sap.sailing.xrr.resultimport" "/home/sailing/code/java/com.sap.sailing.domain.tractracadapter.persistence" diff --git a/java/com.sap.sailing.dashboards.gwt/pom.xml b/java/com.sap.sailing.dashboards.gwt/pom.xml index 5dc9221991a..879b2042b3b 100644 --- a/java/com.sap.sailing.dashboards.gwt/pom.xml +++ b/java/com.sap.sailing.dashboards.gwt/pom.xml @@ -23,12 +23,6 @@ 1.0.0.GA sources - - com.github.gwtbootstrap - gwt-bootstrap - 2.3.2.0 - provided - diff --git a/java/com.sap.sailing.gwt.ui/.classpath b/java/com.sap.sailing.gwt.ui/.classpath index 25492d6c805..0c0806e47ed 100644 --- a/java/com.sap.sailing.gwt.ui/.classpath +++ b/java/com.sap.sailing.gwt.ui/.classpath @@ -5,7 +5,6 @@ - diff --git a/java/com.sap.sailing.gwt.ui/AdminConsoleDateTimePicker.css b/java/com.sap.sailing.gwt.ui/AdminConsoleDateTimePicker.css deleted file mode 100644 index f93eb68fa0b..00000000000 --- a/java/com.sap.sailing.gwt.ui/AdminConsoleDateTimePicker.css +++ /dev/null @@ -1,88 +0,0 @@ -/*! - * Extracted from Bootstrap v3.0.2 by @fat and @mdo - * Copyright 2013 Twitter, Inc. - * Licensed under http://www.apache.org/licenses/LICENSE-2.0 - */ - -.table-condensed > thead > tr > th, -.table-condensed > tbody > tr > th, -.table-condensed > tfoot > tr > th, -.table-condensed > thead > tr > td, -.table-condensed > tbody > tr > td, -.table-condensed > tfoot > tr > td { - padding: 5px; -} - -.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - display: none; - float: left; - min-width: 160px; - padding: 5px 0; - margin: 2px 0 0; - font-size: 14px; - list-style: none; - background-color: #ffffff; - border: 1px solid #cccccc; - border: 1px solid rgba(0, 0, 0, 0.15); - border-radius: 4px; - -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - background-clip: padding-box; -} - -.dropdown-menu.pull-right { - right: 0; - left: auto; -} - -.dropdown-menu .divider { - height: 1px; - margin: 9px 0; - overflow: hidden; - background-color: #e5e5e5; -} - -.dropdown-menu > li > a { - display: block; - padding: 3px 20px; - clear: both; - font-weight: normal; - line-height: 1.428571429; - color: #333333; - white-space: nowrap; -} - -.dropdown-menu > li > a:hover, -.dropdown-menu > li > a:focus { - color: #262626; - text-decoration: none; - background-color: #f5f5f5; -} - -.dropdown-menu > .active > a, -.dropdown-menu > .active > a:hover, -.dropdown-menu > .active > a:focus { - color: #ffffff; - text-decoration: none; - background-color: #428bca; - outline: 0; -} - -.dropdown-menu > .disabled > a, -.dropdown-menu > .disabled > a:hover, -.dropdown-menu > .disabled > a:focus { - color: #999999; -} - -.dropdown-menu > .disabled > a:hover, -.dropdown-menu > .disabled > a:focus { - text-decoration: none; - cursor: not-allowed; - background-color: transparent; - background-image: none; - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); -} \ No newline at end of file diff --git a/java/com.sap.sailing.gwt.ui/AdminConsoleProgressBar.css b/java/com.sap.sailing.gwt.ui/AdminConsoleProgressBar.css deleted file mode 100644 index 334d55d5173..00000000000 --- a/java/com.sap.sailing.gwt.ui/AdminConsoleProgressBar.css +++ /dev/null @@ -1,226 +0,0 @@ -/*! - * Bootstrap v2.3.2 - * - * Copyright 2013 Twitter, Inc - * Licensed under the Apache License v2.0 - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Designed and built with all the love in the world @twitter by @mdo and @fat. - */ -.clearfix { - *zoom: 1; -} -.clearfix:before, -.clearfix:after { - display: table; - content: ""; - line-height: 0; -} -.clearfix:after { - clear: both; -} -.hide-text { - font: 0/0 a; - color: transparent; - text-shadow: none; - background-color: transparent; - border: 0; -} -.input-block-level { - display: block; - width: 100%; - min-height: 30px; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -@-webkit-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} -@-moz-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} -@-ms-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} -@-o-keyframes progress-bar-stripes { - from { - background-position: 0 0; - } - to { - background-position: 40px 0; - } -} -@keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} -.progress { - overflow: hidden; - height: 20px; - margin-bottom: 20px; - background-color: #f7f7f7; - background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9)); - background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9); - background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9); - background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0); - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); - -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} -.progress .bar { - width: 0%; - height: 100%; - color: #ffffff; - float: left; - font-size: 12px; - text-align: center; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #0e90d2; - background-image: -moz-linear-gradient(top, #149bdf, #0480be); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be)); - background-image: -webkit-linear-gradient(top, #149bdf, #0480be); - background-image: -o-linear-gradient(top, #149bdf, #0480be); - background-image: linear-gradient(to bottom, #149bdf, #0480be); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0); - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - -webkit-transition: width 0.6s ease; - -moz-transition: width 0.6s ease; - -o-transition: width 0.6s ease; - transition: width 0.6s ease; -} -.progress .bar + .bar { - -webkit-box-shadow: inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15); - -moz-box-shadow: inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15); - box-shadow: inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15); -} -.progress-striped .bar { - background-color: #149bdf; - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - -webkit-background-size: 40px 40px; - -moz-background-size: 40px 40px; - -o-background-size: 40px 40px; - background-size: 40px 40px; -} -.progress.active .bar { - -webkit-animation: progress-bar-stripes 2s linear infinite; - -moz-animation: progress-bar-stripes 2s linear infinite; - -ms-animation: progress-bar-stripes 2s linear infinite; - -o-animation: progress-bar-stripes 2s linear infinite; - animation: progress-bar-stripes 2s linear infinite; -} -.progress-danger .bar, -.progress .bar-danger { - background-color: #dd514c; - background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35)); - background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); - background-image: -o-linear-gradient(top, #ee5f5b, #c43c35); - background-image: linear-gradient(to bottom, #ee5f5b, #c43c35); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0); -} -.progress-danger.progress-striped .bar, -.progress-striped .bar-danger { - background-color: #ee5f5b; - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} -.progress-success .bar, -.progress .bar-success { - background-color: #5eb95e; - background-image: -moz-linear-gradient(top, #62c462, #57a957); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957)); - background-image: -webkit-linear-gradient(top, #62c462, #57a957); - background-image: -o-linear-gradient(top, #62c462, #57a957); - background-image: linear-gradient(to bottom, #62c462, #57a957); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0); -} -.progress-success.progress-striped .bar, -.progress-striped .bar-success { - background-color: #62c462; - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} -.progress-info .bar, -.progress .bar-info { - background-color: #4bb1cf; - background-image: -moz-linear-gradient(top, #5bc0de, #339bb9); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9)); - background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9); - background-image: -o-linear-gradient(top, #5bc0de, #339bb9); - background-image: linear-gradient(to bottom, #5bc0de, #339bb9); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0); -} -.progress-info.progress-striped .bar, -.progress-striped .bar-info { - background-color: #5bc0de; - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} -.progress-warning .bar, -.progress .bar-warning { - background-color: #faa732; - background-image: -moz-linear-gradient(top, #fbb450, #f89406); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); - background-image: -webkit-linear-gradient(top, #fbb450, #f89406); - background-image: -o-linear-gradient(top, #fbb450, #f89406); - background-image: linear-gradient(to bottom, #fbb450, #f89406); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0); -} -.progress-warning.progress-striped .bar, -.progress-striped .bar-warning { - background-color: #fbb450; - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} diff --git a/java/com.sap.sailing.gwt.ui/META-INF/MANIFEST.MF b/java/com.sap.sailing.gwt.ui/META-INF/MANIFEST.MF index 2f95c07d959..77df6edffa8 100644 --- a/java/com.sap.sailing.gwt.ui/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.gwt.ui/META-INF/MANIFEST.MF @@ -67,8 +67,7 @@ Import-Package: javax.servlet;version="3.1.0", Web-ContextPath: /gwt Bundle-ClassPath: WEB-INF/classes/, WEB-INF/lib/gwt-maps-api-3.9.0-build-17.jar, - WEB-INF/lib/gwt-ajaxloader.jar, - WEB-INF/lib/gwt-bootstrap-2.3.2.0.jar + WEB-INF/lib/gwt-ajaxloader.jar TrackLifecycle: true Export-Package: com.google.gwt.user.client.rpc.core.com.sap.sailing.domain.common.confidence.impl, com.google.gwt.user.client.rpc.core.com.sap.sailing.domain.common.impl, diff --git a/java/com.sap.sailing.gwt.ui/imprint.json b/java/com.sap.sailing.gwt.ui/imprint.json index fd013e42c97..d2d6b2ff763 100644 --- a/java/com.sap.sailing.gwt.ui/imprint.json +++ b/java/com.sap.sailing.gwt.ui/imprint.json @@ -333,16 +333,6 @@ ], "key": "ASL2.0" }, - { - "name": "GWT-Bootstrap", - "version": "2.3.2.0", - "owner": "GWT-Bootstrap", - "homepage": "http://gwtbootstrap.github.com/", - "acknowledgements": [ - "Copyright ${year} GWT-Bootstrap" - ], - "key": "ASL2.0" - }, { "name": "gwt-google-apis", "version": "ajaxloader-svn", diff --git a/java/com.sap.sailing.gwt.ui/pom.xml b/java/com.sap.sailing.gwt.ui/pom.xml index 820d5ab5f18..ed09d058bb9 100755 --- a/java/com.sap.sailing.gwt.ui/pom.xml +++ b/java/com.sap.sailing.gwt.ui/pom.xml @@ -98,12 +98,6 @@ ${project.version} sources - - com.github.gwtbootstrap - gwt-bootstrap - 2.3.2.0 - provided - com.sap.sailing com.sap.sse.security.common diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/AutoPlay.gwt.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/AutoPlay.gwt.xml index f073808c231..9f476194374 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/AutoPlay.gwt.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/AutoPlay.gwt.xml @@ -17,10 +17,6 @@ - - - - diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/HomeBase.gwt.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/HomeBase.gwt.xml index 8bdd972094f..1a0cc7ac6f7 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/HomeBase.gwt.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/HomeBase.gwt.xml @@ -22,10 +22,6 @@ - - - - diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/regattaoverview/RegattaOverview.gwt.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/regattaoverview/RegattaOverview.gwt.xml index 11fbb97b740..1377d0b05bd 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/regattaoverview/RegattaOverview.gwt.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/regattaoverview/RegattaOverview.gwt.xml @@ -19,10 +19,6 @@ - - - - diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/AdminConsole.gwt.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/AdminConsole.gwt.xml index 02eec3fb39a..9af554bfce7 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/AdminConsole.gwt.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/AdminConsole.gwt.xml @@ -28,11 +28,6 @@ - - - - - diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractRegattaWithSeriesAndFleetsDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractRegattaWithSeriesAndFleetsDialog.java index de9ebf46fa7..d11282867bc 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractRegattaWithSeriesAndFleetsDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractRegattaWithSeriesAndFleetsDialog.java @@ -17,7 +17,7 @@ import com.google.gwt.user.client.ui.VerticalPanel; import com.google.gwt.user.client.ui.Widget; import com.sap.sailing.domain.common.RankingMetrics; import com.sap.sailing.domain.common.ScoringSchemeType; -import com.sap.sailing.gwt.ui.client.DataEntryDialogWithBootstrap; +import com.sap.sailing.gwt.ui.client.DataEntryDialogWithDateTimeBox; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.common.client.DateAndTimeFormatterUtil; import com.sap.sailing.gwt.ui.leaderboard.RankingMetricTypeFormatter; @@ -39,7 +39,7 @@ import com.sap.sse.gwt.client.controls.listedit.ListEditorComposite; * * @param */ -public abstract class AbstractRegattaWithSeriesAndFleetsDialog extends DataEntryDialogWithBootstrap { +public abstract class AbstractRegattaWithSeriesAndFleetsDialog extends DataEntryDialogWithDateTimeBox { protected StringMessages stringMessages; private final RegattaDTO regatta; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventDialog.java index eff5fe3461e..ef484d1ac9c 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventDialog.java @@ -22,7 +22,7 @@ import com.google.gwt.user.client.ui.TextArea; import com.google.gwt.user.client.ui.TextBox; import com.google.gwt.user.client.ui.VerticalPanel; import com.google.gwt.user.client.ui.Widget; -import com.sap.sailing.gwt.ui.client.DataEntryDialogWithBootstrap; +import com.sap.sailing.gwt.ui.client.DataEntryDialogWithDateTimeBox; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.common.client.DateAndTimeFormatterUtil; @@ -37,7 +37,7 @@ import com.sap.sse.gwt.client.controls.listedit.StringConstantsListEditorComposi import com.sap.sse.gwt.client.media.ImageDTO; import com.sap.sse.gwt.client.media.VideoDTO; -public abstract class EventDialog extends DataEntryDialogWithBootstrap { +public abstract class EventDialog extends DataEntryDialogWithDateTimeBox { protected StringMessages stringMessages; protected TextBox nameEntryField; protected TextArea descriptionEntryField; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaLogAddDeviceMappingDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaLogAddDeviceMappingDialog.java index 2c855abf328..bcb41108282 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaLogAddDeviceMappingDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaLogAddDeviceMappingDialog.java @@ -20,7 +20,7 @@ import com.sap.sailing.domain.common.racelog.tracking.DeviceMappingConstants; import com.sap.sailing.domain.common.racelog.tracking.MappableToDevice; import com.sap.sailing.domain.common.racelog.tracking.QRCodeURLCreationException; import com.sap.sailing.gwt.ui.adminconsole.ItemToMapToDeviceSelectionPanel.SelectionChangedHandler; -import com.sap.sailing.gwt.ui.client.DataEntryDialogWithBootstrap; +import com.sap.sailing.gwt.ui.client.DataEntryDialogWithDateTimeBox; import com.sap.sailing.gwt.ui.client.GwtUrlHelper; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; @@ -34,7 +34,7 @@ import com.sap.sse.gwt.client.controls.GenericListBox; import com.sap.sse.gwt.client.controls.GenericListBox.ValueBuilder; import com.sap.sse.gwt.client.dialog.DataEntryDialog; -public class RegattaLogAddDeviceMappingDialog extends DataEntryDialogWithBootstrap { +public class RegattaLogAddDeviceMappingDialog extends DataEntryDialogWithDateTimeBox { private final String leaderboardName; private final GenericListBox events; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetStartTimeDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetStartTimeDialog.java index 20c78b9678b..073a8fe3f6d 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetStartTimeDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetStartTimeDialog.java @@ -20,7 +20,7 @@ import com.google.gwt.user.client.ui.TextBox; import com.google.gwt.user.client.ui.VerticalPanel; import com.google.gwt.user.client.ui.Widget; import com.sap.sailing.domain.common.racelog.RacingProcedureType; -import com.sap.sailing.gwt.ui.client.DataEntryDialogWithBootstrap; +import com.sap.sailing.gwt.ui.client.DataEntryDialogWithDateTimeBox; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.HTML5DateTimeBox; @@ -28,7 +28,7 @@ import com.sap.sailing.gwt.ui.shared.RaceLogSetStartTimeAndProcedureDTO; import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.dialog.DataEntryDialog; -public class SetStartTimeDialog extends DataEntryDialogWithBootstrap { +public class SetStartTimeDialog extends DataEntryDialogWithDateTimeBox { private static AdminConsoleResources resources = GWT.create(AdminConsoleResources.class); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetStartTimeReceivedDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetStartTimeReceivedDialog.java index 5292fe354b8..ea7ef0789ab 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetStartTimeReceivedDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetStartTimeReceivedDialog.java @@ -5,12 +5,12 @@ import java.util.Date; import com.google.gwt.user.client.ui.Grid; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.Widget; -import com.sap.sailing.gwt.ui.client.DataEntryDialogWithBootstrap; +import com.sap.sailing.gwt.ui.client.DataEntryDialogWithDateTimeBox; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.HTML5DateTimeBox; import com.sap.sse.gwt.client.dialog.DataEntryDialog; -public class SetStartTimeReceivedDialog extends DataEntryDialogWithBootstrap { +public class SetStartTimeReceivedDialog extends DataEntryDialogWithDateTimeBox { private final StringMessages stringMessages; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetTimePointDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetTimePointDialog.java index e03e67e4871..0e285868658 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetTimePointDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetTimePointDialog.java @@ -5,12 +5,12 @@ import java.util.Date; import com.google.gwt.user.client.ui.Grid; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.Widget; -import com.sap.sailing.gwt.ui.client.DataEntryDialogWithBootstrap; +import com.sap.sailing.gwt.ui.client.DataEntryDialogWithDateTimeBox; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.HTML5DateTimeBox; import com.sap.sse.gwt.client.dialog.DataEntryDialog; -public class SetTimePointDialog extends DataEntryDialogWithBootstrap { +public class SetTimePointDialog extends DataEntryDialogWithDateTimeBox { private final HTML5DateTimeBox time; private final StringMessages stringMessages; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetTrackingTimesDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetTrackingTimesDialog.java index f1cb8b918e2..0ea1d70dc5b 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetTrackingTimesDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetTrackingTimesDialog.java @@ -22,7 +22,7 @@ import com.google.gwt.user.client.ui.VerticalPanel; import com.google.gwt.user.client.ui.Widget; import com.sap.sailing.domain.common.abstractlog.TimePointSpecificationFoundInLog; import com.sap.sailing.domain.common.abstractlog.TimePointSpecificationFoundInLogImpl; -import com.sap.sailing.gwt.ui.client.DataEntryDialogWithBootstrap; +import com.sap.sailing.gwt.ui.client.DataEntryDialogWithDateTimeBox; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.HTML5DateTimeBox; @@ -32,7 +32,7 @@ import com.sap.sse.common.impl.MillisecondsTimePoint; import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.dialog.DataEntryDialog; -public class SetTrackingTimesDialog extends DataEntryDialogWithBootstrap { +public class SetTrackingTimesDialog extends DataEntryDialogWithDateTimeBox { private static AdminConsoleResources resources = GWT.create(AdminConsoleResources.class); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/DataEntryDialogWithBootstrap.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/DataEntryDialogWithDateTimeBox.java similarity index 78% rename from java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/DataEntryDialogWithBootstrap.java rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/DataEntryDialogWithDateTimeBox.java index 7284aced0f4..478bdbba6e5 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/DataEntryDialogWithBootstrap.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/DataEntryDialogWithDateTimeBox.java @@ -9,22 +9,22 @@ import com.sap.sailing.gwt.ui.shared.HTML5DateTimeBox.Format; import com.sap.sse.gwt.client.dialog.DataEntryDialog; import com.sap.sse.gwt.client.dialog.DialogUtils; -public abstract class DataEntryDialogWithBootstrap extends DataEntryDialog { +public abstract class DataEntryDialogWithDateTimeBox extends DataEntryDialog { - public DataEntryDialogWithBootstrap(String title, String message, String okButtonName, String cancelButtonName, + public DataEntryDialogWithDateTimeBox(String title, String message, String okButtonName, String cancelButtonName, com.sap.sse.gwt.client.dialog.DataEntryDialog.Validator validator, boolean animationEnabled, com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback callback) { super(title, message, okButtonName, cancelButtonName, validator, animationEnabled, callback); } - protected DataEntryDialogWithBootstrap(String title, String message, String okButtonName, String cancelButtonName, + protected DataEntryDialogWithDateTimeBox(String title, String message, String okButtonName, String cancelButtonName, com.sap.sse.gwt.client.dialog.DataEntryDialog.Validator validator, com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback callback) { super(title, message, okButtonName, cancelButtonName, validator, callback); } /** - * Call something like setFormat("dd/mm/yyyy hh:ii") on the result to set the date / time entry format. + * Call the requested format will be honored by the underlying implementation if the native components can support it * @param yearToMinute */ public HTML5DateTimeBox createDateTimeBox(Date initialValue, Format format) { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/BetterDateTimeBox.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/BetterDateTimeBox.java deleted file mode 100644 index a88f545dcac..00000000000 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/BetterDateTimeBox.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.sap.sailing.gwt.ui.shared; - -import com.github.gwtbootstrap.client.ui.resources.ResourceInjector; -import com.github.gwtbootstrap.datetimepicker.client.ui.DateTimeBox; -import com.github.gwtbootstrap.datetimepicker.client.ui.resources.DatetimepickerResourceInjector; -import com.google.gwt.core.client.EntryPoint; -import com.google.gwt.dom.client.Element; - -public class BetterDateTimeBox extends DateTimeBox { - - /** - * Initializes all needed JavaScript and CSS. Should be called once per {@link EntryPoint}. - */ - public static void initialize() { - // We don't want the full bootstrap css... - ResourceInjector.injectResourceCssAsFile("font-awesome.min.css"); - ResourceInjector.configure(); - DatetimepickerResourceInjector.configureWithCssFile(); - } - - public Element getPicker() { - return getNativePickerElement(getBox().getElement()); - } - - private native Element getNativePickerElement(Element boxElement) /*-{ - return $wnd.jQuery(boxElement).data('datetimepicker').picker[0]; - }-*/; - - @Override - public com.github.gwtbootstrap.client.ui.TextBox getBox() { - return super.getBox(); - } -} diff --git a/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/DataMining.gwt.xml b/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/DataMining.gwt.xml index 84e680d2de1..023ecadb37e 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/DataMining.gwt.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/DataMining.gwt.xml @@ -11,9 +11,6 @@ - - - diff --git a/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/EmbeddedMapAndWindChart.gwt.xml b/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/EmbeddedMapAndWindChart.gwt.xml index 5404ece993e..a682a6a26c1 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/EmbeddedMapAndWindChart.gwt.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/EmbeddedMapAndWindChart.gwt.xml @@ -18,10 +18,6 @@ - - - - diff --git a/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/Leaderboard.gwt.xml b/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/Leaderboard.gwt.xml index 720bcba8c32..8b1a99ac6f5 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/Leaderboard.gwt.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/Leaderboard.gwt.xml @@ -12,11 +12,6 @@ - - - - diff --git a/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/LeaderboardEditing.gwt.xml b/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/LeaderboardEditing.gwt.xml index 7619376595a..a60f07a7fd5 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/LeaderboardEditing.gwt.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/LeaderboardEditing.gwt.xml @@ -25,10 +25,6 @@ - - - - diff --git a/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/NoUI.gwt.xml b/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/NoUI.gwt.xml index cc500baf5db..6b777d2eb03 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/NoUI.gwt.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/NoUI.gwt.xml @@ -32,11 +32,6 @@ - - - - - diff --git a/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/RaceBoard.gwt.xml b/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/RaceBoard.gwt.xml index a34b5af51a8..7dae00eebe6 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/RaceBoard.gwt.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/RaceBoard.gwt.xml @@ -18,10 +18,6 @@ - - - - diff --git a/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/Simulator.gwt.xml b/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/Simulator.gwt.xml index f070e2e0337..3b623aecb18 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/Simulator.gwt.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/Simulator.gwt.xml @@ -19,10 +19,6 @@ - - - - diff --git a/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/Spectator.gwt.xml b/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/Spectator.gwt.xml index 5bd167a84ef..3b13cb2e6b6 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/Spectator.gwt.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/Spectator.gwt.xml @@ -18,10 +18,6 @@ - - - - diff --git a/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/VideoPopup.gwt.xml b/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/VideoPopup.gwt.xml index 0fbed254a55..c437e528730 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/VideoPopup.gwt.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/VideoPopup.gwt.xml @@ -8,10 +8,6 @@ - - - - diff --git a/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/YoutubePopup.gwt.xml b/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/YoutubePopup.gwt.xml index e557bc5f76e..058b51e01fe 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/YoutubePopup.gwt.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/YoutubePopup.gwt.xml @@ -12,10 +12,6 @@ - - - - From 489b011b2c06b9b18d2f2145231c30508a38fc6f Mon Sep 17 00:00:00 2001 From: Kai Boernert Date: Thu, 21 Sep 2017 17:04:20 +0200 Subject: [PATCH 014/290] fix for selenium tests --- .../shared/DateTimeBoxFallbackStrategie.java | 6 ++ .../DateTimeBoxFallbackStrategie.ui.xml | 4 +- .../pages/gwt/BetterDateTimeBoxPO.java | 72 ++++++++----------- 3 files changed, 37 insertions(+), 45 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DateTimeBoxFallbackStrategie.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DateTimeBoxFallbackStrategie.java index ba7a10236e3..449f42cb7af 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DateTimeBoxFallbackStrategie.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DateTimeBoxFallbackStrategie.java @@ -4,10 +4,12 @@ import java.util.Date; import com.google.gwt.core.client.GWT; import com.google.gwt.dom.client.InputElement; +import com.google.gwt.dom.client.Style.Display; import com.google.gwt.i18n.client.DateTimeFormat; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; import com.google.gwt.user.client.ui.Composite; +import com.google.gwt.user.client.ui.UIObject; import com.google.gwt.user.client.ui.Widget; import com.google.gwt.user.datepicker.client.DateBox; import com.google.gwt.user.datepicker.client.DateBox.DefaultFormat; @@ -37,6 +39,9 @@ public class DateTimeBoxFallbackStrategie extends Composite implements DateTimeB datebox.setFormat(new DefaultFormat(dateFormat)); + datebox.ensureDebugId("datebox"); + UIObject.ensureDebugId(timebox, "timebox"); + if (format != Format.YEAR_TO_DAY) { timeFormat = DateTimeFormat.getFormat(format == Format.YEAR_TO_MINUTE ? "HH:mm" : "HH:mm:ss"); if (format == Format.YEAR_TO_SECOND) { @@ -49,6 +54,7 @@ public class DateTimeBoxFallbackStrategie extends Composite implements DateTimeB combiFormat = DateTimeFormat .getFormat("yyyy-MM-dd " + (format == Format.YEAR_TO_MINUTE ? "HH:mm" : "HH:mm:ss")); } else { + timebox.getStyle().setDisplay(Display.NONE); timeFormat = null; combiFormat = null; } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DateTimeBoxFallbackStrategie.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DateTimeBoxFallbackStrategie.ui.xml index 56241a7af77..cba6a190733 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DateTimeBoxFallbackStrategie.ui.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DateTimeBoxFallbackStrategie.ui.xml @@ -27,7 +27,7 @@ } - - + + \ No newline at end of file diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/gwt/BetterDateTimeBoxPO.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/gwt/BetterDateTimeBoxPO.java index 6baa9dbfe0a..3b3f9c93b6f 100644 --- a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/gwt/BetterDateTimeBoxPO.java +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/gwt/BetterDateTimeBoxPO.java @@ -7,70 +7,56 @@ import java.util.Date; 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.PageArea; import com.sap.sailing.selenium.pages.PageObject; /** * {@link PageObject} implementation for better date time boxes. */ -public class BetterDateTimeBoxPO extends TextBoxPO { - - private static final DateFormat TIME_FORMAT_HOURS_MINUTES = new SimpleDateFormat("dd/MM/yyyy hh:mm"); - private static final DateFormat TIME_FORMAT_HOURS_MINUTES_SECONDS = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss"); - - private final DateFormat timeFormat; +public class BetterDateTimeBoxPO extends PageArea { + + private static final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + private static final DateFormat timeFormat = new SimpleDateFormat("hh:mm:ss"); + + @FindBy(how = BySeleniumId.class, using = "datebox") + private WebElement datebox; + + @FindBy(how = BySeleniumId.class, using = "timebox") + private WebElement timebox; - /** - * Factory method to create a {@link BetterDateTimeBoxPO} using {@link DateFormat} dd/MM/yyyy hh:mm by - * default. - * - * @param driver the web driver to use - * @param element the element representing the date time box on the page - * @return a new {@link BetterDateTimeBoxPO} instance - */ - public static BetterDateTimeBoxPO create(WebDriver driver, WebElement element) { - return new BetterDateTimeBoxPO(driver, element, TIME_FORMAT_HOURS_MINUTES); - } - /** - * Factory method to create a {@link BetterDateTimeBoxPO}. - * - * @param driver the web driver to use - * @param element the element representing the date time box on the page - * @param includeSeconds true to use the {@link DateFormat} dd/MM/yyyy hh:mm:ss, - * false to use the default {@link DateFormat} dd/MM/yyyy hh:mm - * @return a new {@link BetterDateTimeBoxPO} instance - */ - public static BetterDateTimeBoxPO create(WebDriver driver, WebElement element, boolean includeSeconds) { - DateFormat timeFormat = includeSeconds ? TIME_FORMAT_HOURS_MINUTES_SECONDS : TIME_FORMAT_HOURS_MINUTES; - return new BetterDateTimeBoxPO(driver, element, timeFormat); - } - /** * @see TextBoxPO#TextBoxPO(WebDriver, WebElement) */ protected BetterDateTimeBoxPO(WebDriver driver, WebElement element, DateFormat timeFormat) { super(driver, element); - this.timeFormat = timeFormat; } - + /** * Sets the underlying {@link WebElement}s text by formatting the given {@link Date} using the internal date format * (dd/MM/yyyy hh:mm or dd/MM/yyyy hh:mm:ss). * - * @param date the {@link Date} object to set + * @param date + * the {@link Date} object to set * * @see DateFormat#format(Date) * @see #setText(String) */ public void setDate(Date date) { - this.setText(timeFormat.format(date)); + String datein = dateFormat.format(date); + datebox.clear(); + datebox.sendKeys(datein); + String timein = timeFormat.format(date); + timebox.clear(); + timebox.sendKeys(timein); } - - @Override - public void appendText(String text) { - super.appendText(text); - // Send tabulator key after changing text to ensure the date time boxes datepicker popup is closed. - // Otherwise, the popup potentially overlaps other controls, which can cause unexpected errors. - super.appendText("\t"); + + public static BetterDateTimeBoxPO create(WebDriver driver, WebElement startTimeTimeBox, boolean b) { + return new BetterDateTimeBoxPO(driver, startTimeTimeBox, null); + } + + public static BetterDateTimeBoxPO create(WebDriver driver, WebElement startDateTimeBox) { + return create(driver, startDateTimeBox, true); } - } From 201954447559c7c3314070a3dfc31ff8a4dbe827 Mon Sep 17 00:00:00 2001 From: Kai Boernert Date: Thu, 21 Sep 2017 17:22:29 +0200 Subject: [PATCH 015/290] fix for popup not closing --- .../shared/DateTimeBoxFallbackStrategie.java | 23 ++++++++++++------- .../pages/gwt/BetterDateTimeBoxPO.java | 8 +++++++ 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DateTimeBoxFallbackStrategie.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DateTimeBoxFallbackStrategie.java index 449f42cb7af..3c16e2c3dbd 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DateTimeBoxFallbackStrategie.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DateTimeBoxFallbackStrategie.java @@ -77,20 +77,27 @@ public class DateTimeBoxFallbackStrategie extends Composite implements DateTimeB } else { result = dateFormat.parse(rawDateValue); } - } catch (IllegalArgumentException e) { + } catch (Exception e) { e.printStackTrace(); } return result; } public void setValue(Date newValue) { - // remove the time part from the datepart, to reduce issus with browser compability - Date dateFormated = dateFormat.parse(dateFormat.format(newValue)); - datebox.setValue(dateFormated); - if (timeFormat != null) { - String timeFormated = timeFormat.format(newValue); - com.google.gwt.core.shared.GWT.log(timeFormated); - timebox.setValue(timeFormated); + if(newValue != null){ + // remove the time part from the datepart, to reduce issus with browser compability + Date dateFormated = dateFormat.parse(dateFormat.format(newValue)); + datebox.setValue(dateFormated); + if (timeFormat != null) { + String timeFormated = timeFormat.format(newValue); + com.google.gwt.core.shared.GWT.log(timeFormated); + timebox.setValue(timeFormated); + } + }else{ + datebox.setValue(null); + if(timeFormat != null){ + timebox.setValue(null); + } } } diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/gwt/BetterDateTimeBoxPO.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/gwt/BetterDateTimeBoxPO.java index 3b3f9c93b6f..1a3917d02fa 100644 --- a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/gwt/BetterDateTimeBoxPO.java +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/gwt/BetterDateTimeBoxPO.java @@ -4,6 +4,8 @@ import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; +import org.openqa.selenium.By; +import org.openqa.selenium.Keys; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; @@ -47,9 +49,15 @@ public class BetterDateTimeBoxPO extends PageArea { String datein = dateFormat.format(date); datebox.clear(); datebox.sendKeys(datein); + //ensure popups are closed! + WebElement webElement = driver.findElement(By.xpath("")); + webElement.sendKeys(Keys.TAB); String timein = timeFormat.format(date); timebox.clear(); timebox.sendKeys(timein); + //ensure popups are closed! + webElement.sendKeys(Keys.TAB); + } public static BetterDateTimeBoxPO create(WebDriver driver, WebElement startTimeTimeBox, boolean b) { From 4872aa9450e4c536ab0dc6b6f4a766d367854f76 Mon Sep 17 00:00:00 2001 From: Kai Boernert Date: Thu, 21 Sep 2017 17:46:33 +0200 Subject: [PATCH 016/290] simplified blur --- .../selenium/pages/gwt/BetterDateTimeBoxPO.java | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/gwt/BetterDateTimeBoxPO.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/gwt/BetterDateTimeBoxPO.java index 1a3917d02fa..b2cc0370e25 100644 --- a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/gwt/BetterDateTimeBoxPO.java +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/gwt/BetterDateTimeBoxPO.java @@ -4,8 +4,6 @@ import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; -import org.openqa.selenium.By; -import org.openqa.selenium.Keys; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; @@ -49,15 +47,14 @@ public class BetterDateTimeBoxPO extends PageArea { String datein = dateFormat.format(date); datebox.clear(); datebox.sendKeys(datein); - //ensure popups are closed! - WebElement webElement = driver.findElement(By.xpath("")); - webElement.sendKeys(Keys.TAB); + // ensure popups are closed! + datebox.sendKeys("\t"); String timein = timeFormat.format(date); timebox.clear(); timebox.sendKeys(timein); - //ensure popups are closed! - webElement.sendKeys(Keys.TAB); - + // ensure popups are closed! + timebox.sendKeys("\t"); + } public static BetterDateTimeBoxPO create(WebDriver driver, WebElement startTimeTimeBox, boolean b) { From df3ba41bb6ba935762e48b2fb540f643d6da6cd9 Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Mon, 25 Sep 2017 08:39:49 +0200 Subject: [PATCH 017/290] Bug 4032: reduced method visibility because it is called locally only --- .../security/ui/authentication/AuthenticationManagerImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/AuthenticationManagerImpl.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/AuthenticationManagerImpl.java index abe746f8896..794c461f0f8 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/AuthenticationManagerImpl.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/AuthenticationManagerImpl.java @@ -177,7 +177,7 @@ public class AuthenticationManagerImpl implements AuthenticationManager { /** * Refresh information of current user. */ - public void refreshUserInfo() { + private void refreshUserInfo() { userService.updateUser(true); } From 8f4554ce3ca3131434e46f0140266ce0d77b7aaa Mon Sep 17 00:00:00 2001 From: Kai Boernert Date: Mon, 25 Sep 2017 13:38:39 +0200 Subject: [PATCH 018/290] removed obsolete css links --- java/com.sap.sailing.gwt.ui/build.properties | 2 -- 1 file changed, 2 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/build.properties b/java/com.sap.sailing.gwt.ui/build.properties index af3bac71c6f..fde222c526b 100644 --- a/java/com.sap.sailing.gwt.ui/build.properties +++ b/java/com.sap.sailing.gwt.ui/build.properties @@ -37,10 +37,8 @@ bin.includes = META-INF/,\ com.sap.sailing.gwt.ui.DataMining/,\ DataMining.css,\ DataMining.html,\ - AdminConsoleDateTimePicker.css,\ qrcode/,\ js/,\ - AdminConsoleProgressBar.css,\ AutoPlay.css,\ AutoPlay.html,\ Home.css,\ From 9f01667d5235859e2c5d0b2c2e8521a9f7de63b8 Mon Sep 17 00:00:00 2001 From: Kai Boernert Date: Mon, 16 Oct 2017 16:54:26 +0200 Subject: [PATCH 019/290] initial impl proposal --- .../race/state/impl/RaceStateImpl.java | 25 +- .../adminconsole/AdminConsoleResources.java | 3 + .../adminconsole/LeaderboardConfigPanel.java | 62 +++-- .../LeaderboardRaceConfigImagesBarCell.java | 2 + .../gwt/ui/adminconsole/SetEndTimeDialog.java | 96 ++++++++ .../ui/adminconsole/SetStartTimeDialog.java | 221 ++++++------------ .../gwt/ui/adminconsole/SetTimeDialog.java | 126 ++++++++++ .../sailing/gwt/ui/client/SailingService.java | 5 + .../gwt/ui/client/SailingServiceAsync.java | 19 ++ .../sailing/gwt/ui/client/StringMessages.java | 2 + .../gwt/ui/client/StringMessages.properties | 2 + .../ui/client/StringMessages_de.properties | 2 + .../gwt/ui/server/SailingServiceImpl.java | 19 ++ .../gwt/ui/shared/RaceLogSetEndTimeDTO.java | 26 +++ .../sailing/gwt/ui/client/images/clock2.png | Bin 0 -> 904 bytes .../sailing/server/RacingEventService.java | 21 ++ .../server/impl/RacingEventServiceImpl.java | 35 +++ 17 files changed, 496 insertions(+), 170 deletions(-) create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetEndTimeDialog.java mode change 100755 => 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetStartTimeDialog.java create mode 100755 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetTimeDialog.java create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceLogSetEndTimeDTO.java create mode 100644 java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/client/images/clock2.png diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/race/state/impl/RaceStateImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/race/state/impl/RaceStateImpl.java index 20501c69678..fc1bc43636d 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/race/state/impl/RaceStateImpl.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/race/state/impl/RaceStateImpl.java @@ -8,6 +8,8 @@ import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor; import com.sap.sailing.domain.abstractlog.race.CompetitorResults; import com.sap.sailing.domain.abstractlog.race.RaceLog; import com.sap.sailing.domain.abstractlog.race.RaceLogDependentStartTimeEvent; +import com.sap.sailing.domain.abstractlog.race.RaceLogEvent; +import com.sap.sailing.domain.abstractlog.race.RaceLogRaceStatusEvent; import com.sap.sailing.domain.abstractlog.race.SimpleRaceLogIdentifier; import com.sap.sailing.domain.abstractlog.race.analyzing.impl.AdditionalScoringInformationFinder; import com.sap.sailing.domain.abstractlog.race.analyzing.impl.DependentStartTimeResolver; @@ -158,6 +160,7 @@ public class RaceStateImpl extends ReadonlyRaceStateImpl implements RaceState { public void forceNewDependentStartTime(TimePoint now, final Duration startTimeDifference, final SimpleRaceLogIdentifier dependentOnRace) { raceLog.add(new RaceLogDependentStartTimeEventImpl(now, author, raceLog.getCurrentPassId(), dependentOnRace, startTimeDifference)); } + @Override public void setFinishingTime(TimePoint timePoint) { @@ -166,7 +169,27 @@ public class RaceStateImpl extends ReadonlyRaceStateImpl implements RaceState { @Override public void setFinishedTime(TimePoint timePoint) { - raceLog.add(new RaceLogRaceStatusEventImpl(timePoint, author, raceLog.getCurrentPassId(), RaceLogRaceStatus.FINISHED)); + raceLog.lockForRead(); + try { + for (RaceLogEvent event : raceLog.getRawFixes()) { + if (event instanceof RaceLogRaceStatusEvent) { + RaceLogRaceStatusEvent statusEvent = (RaceLogRaceStatusEvent) event; + if (statusEvent.getNextStatus().equals(RaceLogRaceStatus.FINISHED)) { + try { + raceLog.revokeEvent(author, statusEvent, "Finsihtime Override"); + } catch (NotRevokableException e) { + e.printStackTrace(); + } + } + } + } + } finally { + raceLog.unlockAfterRead(); + } + raceLog.add(new RaceLogRaceStatusEventImpl(timePoint, author, raceLog.getCurrentPassId(), + RaceLogRaceStatus.FINISHED)); + // ensure caches are synched + forceUpdate(); } @Override diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AdminConsoleResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AdminConsoleResources.java index d9e02a41dcf..e773bedf71d 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AdminConsoleResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AdminConsoleResources.java @@ -48,6 +48,9 @@ interface AdminConsoleResources extends ClientBundle { @Source("com/sap/sailing/gwt/ui/client/images/clock.png") ImageResource clockIcon(); + + @Source("com/sap/sailing/gwt/ui/client/images/clock2.png") + ImageResource clock2Icon(); @Source("com/sap/sailing/gwt/ui/client/images/flag_blue.png") ImageResource flagIcon(); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardConfigPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardConfigPanel.java index 909b71372b7..2f46a24672a 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardConfigPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardConfigPanel.java @@ -60,6 +60,7 @@ import com.sap.sailing.gwt.ui.client.shared.controls.SelectionCheckboxColumn; import com.sap.sailing.gwt.ui.leaderboard.LeaderboardEntryPoint; import com.sap.sailing.gwt.ui.leaderboard.ScoringSchemeTypeFormatter; import com.sap.sailing.gwt.ui.shared.EventDTO; +import com.sap.sailing.gwt.ui.shared.RaceLogSetEndTimeDTO; import com.sap.sailing.gwt.ui.shared.RaceLogSetStartTimeAndProcedureDTO; import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO; import com.sap.sse.common.Util; @@ -473,6 +474,8 @@ TrackedRaceChangedListener, LeaderboardsDisplayer { refreshRaceLog(object.getA(), object.getB(), true); } else if (LeaderboardRaceConfigImagesBarCell.ACTION_SET_STARTTIME.equals(value)) { setStartTime(object.getA(), object.getB()); + } else if (LeaderboardRaceConfigImagesBarCell.ACTION_SET_ENDTIME.equals(value)) { + setEndTime(object.getA(), object.getB()); } else if (LeaderboardRaceConfigImagesBarCell.ACTION_SHOW_RACELOG.equals(value)) { showRaceLog(object.getA(), object.getB()); } @@ -594,28 +597,57 @@ TrackedRaceChangedListener, LeaderboardsDisplayer { } private void setStartTime(RaceColumnDTO raceColumnDTO, FleetDTO fleetDTO) { - new SetStartTimeDialog(sailingService, errorReporter, getSelectedLeaderboardName(), raceColumnDTO.getName(), + new SetStartTimeDialog(sailingService, errorReporter, getSelectedLeaderboardName(), raceColumnDTO.getName(), fleetDTO.getName(), stringMessages, new DialogCallback() { - @Override - public void ok(RaceLogSetStartTimeAndProcedureDTO editedObject) { - sailingService.setStartTimeAndProcedure(editedObject, new AsyncCallback() { @Override - public void onFailure(Throwable caught) { - errorReporter.reportError(caught.getMessage()); + public void ok(RaceLogSetStartTimeAndProcedureDTO editedObject) { + sailingService.setStartTimeAndProcedure(editedObject, new AsyncCallback() { + @Override + public void onFailure(Throwable caught) { + errorReporter.reportError(caught.getMessage()); + } + + @Override + public void onSuccess(Boolean result) { + if (!result) { + Window.alert(stringMessages.failedToSetNewStartTime()); + } + } + }); + } @Override - public void onSuccess(Boolean result) { - if (!result) { - Window.alert(stringMessages.failedToSetNewStartTime()); - } + public void cancel() { } - }); - } + }).show(); + } + + private void setEndTime(RaceColumnDTO raceColumnDTO, FleetDTO fleetDTO) { + new SetEndTimeDialog(sailingService, errorReporter, getSelectedLeaderboardName(), raceColumnDTO.getName(), + fleetDTO.getName(), stringMessages, new DialogCallback() { + @Override + public void ok(RaceLogSetEndTimeDTO editedObject) { + Window.alert(editedObject.toString()); + sailingService.setEndTime(editedObject, new AsyncCallback() { + @Override + public void onFailure(Throwable caught) { + errorReporter.reportError(caught.getMessage()); + } - @Override - public void cancel() { } - }).show(); + @Override + public void onSuccess(Boolean result) { + if (!result) { + Window.alert(stringMessages.failedToSetNewStartTime()); + } + } + }); + } + + @Override + public void cancel() { + } + }).show(); } private void removeRaceColumn(final RaceColumnDTO raceColumnDTO) { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardRaceConfigImagesBarCell.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardRaceConfigImagesBarCell.java index bbc0d8b56d4..b8a8ecf0fd4 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardRaceConfigImagesBarCell.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardRaceConfigImagesBarCell.java @@ -15,6 +15,7 @@ public class LeaderboardRaceConfigImagesBarCell extends ImagesBarCell { public final static String ACTION_EDIT = "ACTION_EDIT"; public final static String ACTION_REFRESH_RACELOG = "ACTION_REFRESH_RACE_LOG"; public final static String ACTION_SET_STARTTIME = "ACTION_SET_STARTTIME"; + public final static String ACTION_SET_ENDTIME = "ACTION_SET_ENDTIME"; public final static String ACTION_SHOW_RACELOG = "ACTION_SHOW_RACELOG"; private final StringMessages stringMessages; @@ -39,6 +40,7 @@ public class LeaderboardRaceConfigImagesBarCell extends ImagesBarCell { } result.add(new ImageSpec(ACTION_REFRESH_RACELOG, stringMessages.refreshRaceLog(), makeImagePrototype(resources.reloadIcon()))); result.add(new ImageSpec(ACTION_SET_STARTTIME, stringMessages.setStartTime(), makeImagePrototype(resources.clockIcon()))); + result.add(new ImageSpec(ACTION_SET_ENDTIME, stringMessages.setEndTime(), makeImagePrototype(resources.clock2Icon()))); result.add(new ImageSpec(ACTION_SHOW_RACELOG, stringMessages.raceLog(), makeImagePrototype(resources.flagIcon()))); return result; } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetEndTimeDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetEndTimeDialog.java new file mode 100644 index 00000000000..946f23a3b57 --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetEndTimeDialog.java @@ -0,0 +1,96 @@ +package com.sap.sailing.gwt.ui.adminconsole; + +import java.util.Date; + +import com.google.gwt.i18n.client.DateTimeFormat; +import com.google.gwt.user.client.rpc.AsyncCallback; +import com.google.gwt.user.client.ui.Grid; +import com.sap.sailing.gwt.ui.client.SailingServiceAsync; +import com.sap.sailing.gwt.ui.client.StringMessages; +import com.sap.sailing.gwt.ui.shared.RaceLogSetEndTimeDTO; +import com.sap.sse.gwt.client.ErrorReporter; +import com.sap.sse.gwt.client.dialog.DataEntryDialog; + +public class SetEndTimeDialog extends SetTimeDialog { + public SetEndTimeDialog(SailingServiceAsync service, ErrorReporter errorReporter, String leaderboardName, + String raceColumnName, String fleetName, StringMessages stringMessages, + DataEntryDialog.DialogCallback callback) { + super(service, errorReporter, stringMessages.setEndTime(), stringMessages.setEndTimeDescription(), + stringMessages.setEndTime(), stringMessages.cancel(), leaderboardName, raceColumnName, fleetName, + stringMessages, new EndTimeValidator(stringMessages), callback); + this.ensureDebugId("SetEndTimeDialog"); + } + + @Override + protected RaceLogSetEndTimeDTO getResult() { + RaceLogSetEndTimeDTO dto = new RaceLogSetEndTimeDTO(); + dto.leaderboardName = leaderboardName; + dto.raceColumnName = raceColumnName; + dto.fleetName = fleetName; + dto.authorName = authorNameBox.getValue(); + dto.authorPriority = authorPriorityBox.getValue(); + dto.logicalTimePoint = new Date(); + dto.endTime = timeBox.getValue(); + dto.passId = advancePassIdCheckbox.getValue() ? currentPassId + 1 : currentPassId; + return dto; + } + + @Override + protected void refreshCurrentTime() { + service.getEndTime(leaderboardName, raceColumnName, fleetName, + new AsyncCallback>() { + + @Override + public void onSuccess(com.sap.sse.common.Util.Pair result) { + if (result == null) { + currentStartOrEndTimeLabel.setText(stringMessages.notAvailable()); + currentPassIdBox.setText(stringMessages.notAvailable()); + } else { + Date startTime = result.getA(); + if (startTime == null) { + currentStartOrEndTimeLabel.setText(stringMessages.unknown()); + } else { + currentStartOrEndTimeLabel.setText(DateTimeFormat + .getFormat(DateTimeFormat.PredefinedFormat.DATE_TIME_MEDIUM).format(startTime)); + } + currentPassId = result.getB().intValue(); + currentPassIdBox.setText(result.getB().toString()); + } + } + + @Override + public void onFailure(Throwable caught) { + errorReporter.reportError(caught.getMessage()); + } + }); + } + + private static class EndTimeValidator implements Validator { + + private final StringMessages stringMessages; + + public EndTimeValidator(StringMessages stringMessages) { + this.stringMessages = stringMessages; + } + + @Override + public String getErrorMessage(RaceLogSetEndTimeDTO dto) { + if (dto.authorName == null || dto.authorName.isEmpty() || dto.authorPriority == null + || dto.endTime == null) { + return stringMessages.pleaseEnterAValue(); + } + return null; + } + + } + + @Override + protected String getTimeLabel() { + return stringMessages.setEndTime(); + } + + @Override + protected void addAdditionalInput(Grid content) { + } + +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetStartTimeDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetStartTimeDialog.java old mode 100755 new mode 100644 index 5635329d783..302f405aad7 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetStartTimeDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetStartTimeDialog.java @@ -2,136 +2,28 @@ package com.sap.sailing.gwt.ui.adminconsole; import java.util.Date; -import com.google.gwt.core.client.GWT; -import com.google.gwt.event.dom.client.ClickEvent; -import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.i18n.client.DateTimeFormat; import com.google.gwt.user.client.rpc.AsyncCallback; -import com.google.gwt.user.client.ui.CaptionPanel; -import com.google.gwt.user.client.ui.CheckBox; import com.google.gwt.user.client.ui.Grid; -import com.google.gwt.user.client.ui.HasVerticalAlignment; -import com.google.gwt.user.client.ui.HorizontalPanel; -import com.google.gwt.user.client.ui.Image; -import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.ListBox; -import com.google.gwt.user.client.ui.PushButton; -import com.google.gwt.user.client.ui.TextBox; -import com.google.gwt.user.client.ui.VerticalPanel; -import com.google.gwt.user.client.ui.Widget; import com.sap.sailing.domain.common.racelog.RacingProcedureType; -import com.sap.sailing.gwt.ui.client.DataEntryDialogWithBootstrap; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; -import com.sap.sailing.gwt.ui.shared.BetterDateTimeBox; import com.sap.sailing.gwt.ui.shared.RaceLogSetStartTimeAndProcedureDTO; import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.dialog.DataEntryDialog; -public class SetStartTimeDialog extends DataEntryDialogWithBootstrap { +public class SetStartTimeDialog extends SetTimeDialog { + protected ListBox racingProcedureSelection; - private static AdminConsoleResources resources = GWT.create(AdminConsoleResources.class); - - private final SailingServiceAsync service; - private final ErrorReporter errorReporter; - private final String leaderboardName; - private final String raceColumnName; - private final String fleetName; - private final StringMessages stringMessages; - - private int currentPassId = -1; - private Label currentStartTimeLabel; - private Label currentPassIdBox; - private BetterDateTimeBox timeBox; - private TextBox authorNameBox; - private com.sap.sse.gwt.client.controls.IntegerBox authorPriorityBox; - private ListBox racingProcedureSelection; - private CheckBox advancePassIdCheckbox; - - public SetStartTimeDialog(SailingServiceAsync service, ErrorReporter errorReporter, String leaderboardName, - String raceColumnName, String fleetName, StringMessages stringMessages, + public SetStartTimeDialog(SailingServiceAsync service, ErrorReporter errorReporter, String leaderboardName, + String raceColumnName, String fleetName, StringMessages stringMessages, DataEntryDialog.DialogCallback callback) { - super(stringMessages.setStartTime(), stringMessages.setStartTimeDescription(), stringMessages.setStartTime(), - stringMessages.cancel(), new StartTimeValidator(stringMessages), callback); - this.service = service; - this.errorReporter = errorReporter; - this.stringMessages = stringMessages; - this.leaderboardName = leaderboardName; - this.raceColumnName = raceColumnName; - this.fleetName = fleetName; + super(service, errorReporter, stringMessages.setStartTime(), stringMessages.setStartTimeDescription(), + stringMessages.setStartTime(), stringMessages.cancel(), leaderboardName, raceColumnName, fleetName, + stringMessages, new StartTimeValidator(stringMessages), callback); this.ensureDebugId("SetStartTimeDialog"); } - - @Override - protected Widget getAdditionalWidget() { - VerticalPanel content = new VerticalPanel(); - content.add(createCurrentPanel()); - content.add(createInputPanel()); - refreshCurrentStartTime(); - return content; - } - - private Widget createCurrentPanel() { - CaptionPanel current = new CaptionPanel(stringMessages.liveData()); - HorizontalPanel currentPanel = new HorizontalPanel(); - currentPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE); - Grid grid = new Grid(2,2); - currentStartTimeLabel = new Label(""); - grid.setWidget(0, 0, createLabel(stringMessages.startTime())); - grid.setWidget(0, 1, currentStartTimeLabel); - - currentPassIdBox = new Label(""); - grid.setWidget(1, 0, createLabel(stringMessages.currentPass())); - grid.setWidget(1, 1, currentPassIdBox); - currentPanel.add(grid); - - PushButton refreshButton = new PushButton(new Image(resources.reloadIcon())); - refreshButton.addClickHandler(new ClickHandler() { - @Override - public void onClick(ClickEvent event) { - refreshCurrentStartTime(); - } - }); - currentPanel.add(refreshButton); - - current.add(currentPanel); - return current; - } - - private Widget createInputPanel() { - Grid content = new Grid(5, 2); - timeBox = createDateTimeBox(new Date()); - timeBox.setFormat("dd/mm/yyyy hh:ii:ss"); - timeBox.ensureDebugId("StartTimeTimeBox"); - content.setWidget(0, 0, createLabel(stringMessages.startTime())); - content.setWidget(0, 1, timeBox); - - - authorNameBox = createTextBox("Shore"); - authorNameBox.ensureDebugId("AuthorNameTextBox"); - content.setWidget(1, 0, createLabel(stringMessages.authorName())); - content.setWidget(1, 1, authorNameBox); - authorPriorityBox = createIntegerBox(4, 2); - authorPriorityBox.ensureDebugId("AuthorPriorityIntegerBox"); - content.setWidget(2, 0, createLabel(stringMessages.authorPriority())); - content.setWidget(2, 1, authorPriorityBox); - - racingProcedureSelection = createListBox(false); - ListBoxUtils.setupRacingProcedureTypeListBox(racingProcedureSelection, RacingProcedureType.RRS26, stringMessages.no()); - int racingCounter = 0; - for (RacingProcedureType racingType : RacingProcedureType.values()) { - racingProcedureSelection.setValue(racingCounter++, racingType.name()); - } - racingProcedureSelection.ensureDebugId("RacingProcedureListBox"); - content.setWidget(3, 0, createLabel(stringMessages.racingProcedure())); - content.setWidget(3, 1, racingProcedureSelection); - - advancePassIdCheckbox = createCheckbox(stringMessages.advancePassId()); - advancePassIdCheckbox.setValue(false); - advancePassIdCheckbox.ensureDebugId("AnvancePassIdCheckBox"); - content.setWidget(4, 1, advancePassIdCheckbox); - return content; - } @Override protected RaceLogSetStartTimeAndProcedureDTO getResult() { @@ -143,64 +35,85 @@ public class SetStartTimeDialog extends DataEntryDialogWithBootstrap>() { - - @Override - public void onSuccess(com.sap.sse.common.Util.Triple result) { - if (result == null) { - currentStartTimeLabel.setText(stringMessages.notAvailable()); - currentPassIdBox.setText(stringMessages.notAvailable()); - } else { - Date startTime = result.getA(); - if (startTime == null) { - currentStartTimeLabel.setText(stringMessages.unknown()); - } else { - currentStartTimeLabel.setText(DateTimeFormat.getFormat( - DateTimeFormat.PredefinedFormat.DATE_TIME_MEDIUM).format(startTime)); - } - currentPassId = result.getB().intValue(); - currentPassIdBox.setText(result.getB().toString()); - int racingProcedureIndex = 0; - for (RacingProcedureType racingProcedureSelect : RacingProcedureType.values()) { - if (racingProcedureSelect.equals(result.getC())) { - break; + @Override + protected void refreshCurrentTime() { + service.getStartTimeAndProcedure(leaderboardName, raceColumnName, fleetName, + new AsyncCallback>() { + + @Override + public void onSuccess(com.sap.sse.common.Util.Triple result) { + if (result == null) { + currentStartOrEndTimeLabel.setText(stringMessages.notAvailable()); + currentPassIdBox.setText(stringMessages.notAvailable()); + } else { + Date startTime = result.getA(); + if (startTime == null) { + currentStartOrEndTimeLabel.setText(stringMessages.unknown()); + } else { + currentStartOrEndTimeLabel.setText(DateTimeFormat + .getFormat(DateTimeFormat.PredefinedFormat.DATE_TIME_MEDIUM).format(startTime)); + } + currentPassId = result.getB().intValue(); + currentPassIdBox.setText(result.getB().toString()); + int racingProcedureIndex = 0; + for (RacingProcedureType racingProcedureSelect : RacingProcedureType.values()) { + if (racingProcedureSelect.equals(result.getC())) { + break; + } + racingProcedureIndex++; + } + racingProcedureSelection.setSelectedIndex(racingProcedureIndex); } - racingProcedureIndex++; } - racingProcedureSelection.setSelectedIndex(racingProcedureIndex); - } - } - - @Override - public void onFailure(Throwable caught) { - errorReporter.reportError(caught.getMessage()); - } - }); + + @Override + public void onFailure(Throwable caught) { + errorReporter.reportError(caught.getMessage()); + } + }); } - + private static class StartTimeValidator implements Validator { - + private final StringMessages stringMessages; - + public StartTimeValidator(StringMessages stringMessages) { this.stringMessages = stringMessages; } @Override public String getErrorMessage(RaceLogSetStartTimeAndProcedureDTO dto) { - if (dto.authorName == null || dto.authorName.isEmpty() || - dto.authorPriority == null || dto.startTime == null) { + if (dto.authorName == null || dto.authorName.isEmpty() || dto.authorPriority == null + || dto.startTime == null) { return stringMessages.pleaseEnterAValue(); } return null; } - + + } + + @Override + protected String getTimeLabel() { + return stringMessages.startTime(); + } + + @Override + protected void addAdditionalInput(Grid content) { + racingProcedureSelection = createListBox(false); + ListBoxUtils.setupRacingProcedureTypeListBox(racingProcedureSelection, RacingProcedureType.RRS26, + stringMessages.no()); + int racingCounter = 0; + for (RacingProcedureType racingType : RacingProcedureType.values()) { + racingProcedureSelection.setValue(racingCounter++, racingType.name()); + } + racingProcedureSelection.ensureDebugId("RacingProcedureListBox"); + content.setWidget(3, 0, createLabel(stringMessages.racingProcedure())); + content.setWidget(3, 1, racingProcedureSelection); } } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetTimeDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetTimeDialog.java new file mode 100755 index 00000000000..f0bc70443f4 --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetTimeDialog.java @@ -0,0 +1,126 @@ +package com.sap.sailing.gwt.ui.adminconsole; + +import java.util.Date; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.event.dom.client.ClickHandler; +import com.google.gwt.user.client.ui.CaptionPanel; +import com.google.gwt.user.client.ui.CheckBox; +import com.google.gwt.user.client.ui.Grid; +import com.google.gwt.user.client.ui.HasVerticalAlignment; +import com.google.gwt.user.client.ui.HorizontalPanel; +import com.google.gwt.user.client.ui.Image; +import com.google.gwt.user.client.ui.Label; +import com.google.gwt.user.client.ui.PushButton; +import com.google.gwt.user.client.ui.TextBox; +import com.google.gwt.user.client.ui.VerticalPanel; +import com.google.gwt.user.client.ui.Widget; +import com.sap.sailing.gwt.ui.client.DataEntryDialogWithBootstrap; +import com.sap.sailing.gwt.ui.client.SailingServiceAsync; +import com.sap.sailing.gwt.ui.client.StringMessages; +import com.sap.sailing.gwt.ui.shared.BetterDateTimeBox; +import com.sap.sse.gwt.client.ErrorReporter; +import com.sap.sse.gwt.client.dialog.DataEntryDialog; + +public abstract class SetTimeDialog extends DataEntryDialogWithBootstrap { + + private static AdminConsoleResources resources = GWT.create(AdminConsoleResources.class); + + protected final SailingServiceAsync service; + protected final ErrorReporter errorReporter; + protected final String leaderboardName; + protected final String raceColumnName; + protected final String fleetName; + protected final StringMessages stringMessages; + + protected int currentPassId = -1; + protected Label currentStartOrEndTimeLabel; + protected Label currentPassIdBox; + protected BetterDateTimeBox timeBox; + protected TextBox authorNameBox; + protected com.sap.sse.gwt.client.controls.IntegerBox authorPriorityBox; + protected CheckBox advancePassIdCheckbox; + + public SetTimeDialog(SailingServiceAsync service, ErrorReporter errorReporter, String title, String message, + String okButtonName, String cancelButtonName, String leaderboardName, String raceColumnName, + String fleetName, StringMessages stringMessages, + com.sap.sse.gwt.client.dialog.DataEntryDialog.Validator validator, + DataEntryDialog.DialogCallback callback) { + super(title, message, okButtonName, cancelButtonName, validator, callback); + this.service = service; + this.errorReporter = errorReporter; + this.stringMessages = stringMessages; + this.leaderboardName = leaderboardName; + this.raceColumnName = raceColumnName; + this.fleetName = fleetName; + } + + @Override + protected Widget getAdditionalWidget() { + VerticalPanel content = new VerticalPanel(); + content.add(createCurrentPanel()); + content.add(createInputPanel()); + refreshCurrentTime(); + return content; + } + + private Widget createCurrentPanel() { + CaptionPanel current = new CaptionPanel(stringMessages.liveData()); + HorizontalPanel currentPanel = new HorizontalPanel(); + currentPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE); + Grid grid = new Grid(2, 2); + currentStartOrEndTimeLabel = new Label(""); + grid.setWidget(0, 0, createLabel(getTimeLabel())); + grid.setWidget(0, 1, currentStartOrEndTimeLabel); + + currentPassIdBox = new Label(""); + grid.setWidget(1, 0, createLabel(stringMessages.currentPass())); + grid.setWidget(1, 1, currentPassIdBox); + currentPanel.add(grid); + + PushButton refreshButton = new PushButton(new Image(resources.reloadIcon())); + refreshButton.addClickHandler(new ClickHandler() { + @Override + public void onClick(ClickEvent event) { + refreshCurrentTime(); + } + }); + currentPanel.add(refreshButton); + + current.add(currentPanel); + return current; + } + + protected abstract String getTimeLabel(); + + private Widget createInputPanel() { + Grid content = new Grid(5, 2); + timeBox = createDateTimeBox(new Date()); + timeBox.setFormat("dd/mm/yyyy hh:ii:ss"); + timeBox.ensureDebugId("StartTimeTimeBox"); + content.setWidget(0, 0, createLabel(getTimeLabel())); + content.setWidget(0, 1, timeBox); + + authorNameBox = createTextBox("Shore"); + authorNameBox.ensureDebugId("AuthorNameTextBox"); + content.setWidget(1, 0, createLabel(stringMessages.authorName())); + content.setWidget(1, 1, authorNameBox); + authorPriorityBox = createIntegerBox(4, 2); + authorPriorityBox.ensureDebugId("AuthorPriorityIntegerBox"); + content.setWidget(2, 0, createLabel(stringMessages.authorPriority())); + content.setWidget(2, 1, authorPriorityBox); + + addAdditionalInput(content); + + advancePassIdCheckbox = createCheckbox(stringMessages.advancePassId()); + advancePassIdCheckbox.setValue(false); + advancePassIdCheckbox.ensureDebugId("AnvancePassIdCheckBox"); + content.setWidget(4, 1, advancePassIdCheckbox); + return content; + } + + protected abstract void addAdditionalInput(Grid content); + + protected abstract void refreshCurrentTime(); +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java index 7fc7ad24307..392773ed1bd 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java @@ -73,6 +73,7 @@ import com.sap.sailing.gwt.ui.shared.MarkDTO; import com.sap.sailing.gwt.ui.shared.RaceCourseDTO; import com.sap.sailing.gwt.ui.shared.RaceGroupDTO; import com.sap.sailing.gwt.ui.shared.RaceLogDTO; +import com.sap.sailing.gwt.ui.shared.RaceLogSetEndTimeDTO; import com.sap.sailing.gwt.ui.shared.RaceLogSetStartTimeAndProcedureDTO; import com.sap.sailing.gwt.ui.shared.RaceTimesInfoDTO; import com.sap.sailing.gwt.ui.shared.RaceboardDataDTO; @@ -451,7 +452,11 @@ public interface SailingService extends RemoteService, FileStorageManagementGwtS boolean setStartTimeAndProcedure(RaceLogSetStartTimeAndProcedureDTO dto); + boolean setEndTime(RaceLogSetEndTimeDTO dto); + Util.Triple getStartTimeAndProcedure(String leaderboardName, String raceColumnName, String fleetName); + + Util.Pair getEndTime(String leaderboardName, String raceColumnName, String fleetName); Iterable getAllIgtimiAccountEmailAddresses(); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java index 82957fe5189..4ef3c29f167 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java @@ -62,6 +62,7 @@ import com.sap.sailing.gwt.ui.shared.MarkDTO; import com.sap.sailing.gwt.ui.shared.RaceCourseDTO; import com.sap.sailing.gwt.ui.shared.RaceGroupDTO; import com.sap.sailing.gwt.ui.shared.RaceLogDTO; +import com.sap.sailing.gwt.ui.shared.RaceLogSetEndTimeDTO; import com.sap.sailing.gwt.ui.shared.RaceLogSetStartTimeAndProcedureDTO; import com.sap.sailing.gwt.ui.shared.RaceTimesInfoDTO; import com.sap.sailing.gwt.ui.shared.RaceboardDataDTO; @@ -618,6 +619,15 @@ public interface SailingServiceAsync extends ServerInfoRetriever, FileStorageMan */ void setStartTimeAndProcedure(RaceLogSetStartTimeAndProcedureDTO dto, AsyncCallback callback); + /** + * Sets the a new end time. + * + * @param dto + * {@link RaceLogSetEndTimeDTO} identifying the race to set the end time on and the new + * end time. + */ + void setEndTime(RaceLogSetEndTimeDTO editedObject, AsyncCallback asyncCallback); + /** * Gets the race's current start time, current pass identifier and racing procedure. If no start time is set, the * pass identifier will still be returned, but the start time field will be null. @@ -625,6 +635,13 @@ public interface SailingServiceAsync extends ServerInfoRetriever, FileStorageMan void getStartTimeAndProcedure(String leaderboardName, String raceColumnName, String fleetName, AsyncCallback> callback); + /** + * Gets the race's current end time, current pass identifier. If no end time is set, the + * pass identifier will still be returned, but the start time field will be null. + */ + void getEndTime(String leaderboardName, String raceColumnName, String fleetName, + AsyncCallback> asyncCallback); + void getAllIgtimiAccountEmailAddresses(AsyncCallback> callback); void getIgtimiAuthorizationUrl(String redirectProtocol, String redirectHostname, String redirectPort, AsyncCallback callback); @@ -846,4 +863,6 @@ public interface SailingServiceAsync extends ServerInfoRetriever, FileStorageMan */ void determineDetailTypes(String leaderboardGroupName, RegattaAndRaceIdentifier identifier, AsyncCallback> callback); + + } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java index b9d64d3d057..8ae12fe130d 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java @@ -1021,8 +1021,10 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages, String overwriteRacingProceduresConfigurationHelpText(); String setStartTime(); + String setEndTime(); String currentPass(); String setStartTimeDescription(); + String setEndTimeDescription(); String setTrackingTimesDescription(); String hasAdditionalGolfDownTime(); String additionalGolfDownTimeHelpText(); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties index c9eda542b0a..dc3933aac02 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties @@ -993,8 +993,10 @@ configured=Configured overwriteRacingProceduresConfiguration=Activate regatta configuration overwriteRacingProceduresConfigurationHelpText=Enabling this option will provide a base regatta configuration for all options unconfigured in the regatta-specific configuration. setStartTime=Set start time +setEndTime=Set end time currentPass=Current pass setStartTimeDescription=Select a new start time for the race. If you want to set the start time to a timepoint in the past then you have to enable the checkbox to update the pass count. Please be aware of the fact that changing the pass count will have you loose all information from the previous pass (like flag events). +setEndTimeDescription=Select a new end time for the race. ?Clarify Domain logic here:?If you want to set the end time to a timepoint in the past then you have to enable the checkbox to update the pass count. Please be aware of the fact that changing the pass count will have you loose all information from the previous pass (like flag events). setTrackingTimesDescription=Set the start and end of tracking for the race. hasAdditionalGolfDownTime=Activate additional golf down time additionalGolfDownTimeHelpText=Activate additional golf down time diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties index 432071d2c7c..03351845dad 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties @@ -981,8 +981,10 @@ configured=Konfiguriert overwriteRacingProceduresConfiguration=Aktivere Regattakonfiguration overwriteRacingProceduresConfigurationHelpText=Wenn aktiviert überschreibt jegliche Konfiguration der Rennarten durch eine Regatta. setStartTime=Setze Startzeit +setEndTime=Setze Endzeit currentPass=Aktueller Pass setStartTimeDescription=Wähle eine Startzeit für das Rennen aus +setEndTimeDescription=Wähle eine Endzeit für das Rennen aus hasAdditionalGolfDownTime=Aktiviere Golf-Flaggen Zusatzzeit additionalGolfDownTimeHelpText=Aktiviere Golf-Flaggen Zusatzzeit invalidColor=Ungültige Farbangabe: {0} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java index a6e14b21b92..8e05cf77111 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java @@ -348,6 +348,7 @@ import com.sap.sailing.gwt.ui.shared.RaceInfoDTO.LineStartInfoDTO; import com.sap.sailing.gwt.ui.shared.RaceInfoDTO.RaceInfoExtensionDTO; import com.sap.sailing.gwt.ui.shared.RaceLogDTO; import com.sap.sailing.gwt.ui.shared.RaceLogEventDTO; +import com.sap.sailing.gwt.ui.shared.RaceLogSetEndTimeDTO; import com.sap.sailing.gwt.ui.shared.RaceLogSetStartTimeAndProcedureDTO; import com.sap.sailing.gwt.ui.shared.RaceMapDataDTO; import com.sap.sailing.gwt.ui.shared.RaceTimesInfoDTO; @@ -5106,6 +5107,14 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S dto.racingProcedure); return new MillisecondsTimePoint(dto.startTime).equals(newStartTime); } + + @Override + public boolean setEndTime(RaceLogSetEndTimeDTO dto) { + TimePoint newEndTime = getService().setEndTime(dto.leaderboardName, dto.raceColumnName, + dto.fleetName, dto.authorName, dto.authorPriority, + dto.passId, new MillisecondsTimePoint(dto.logicalTimePoint), new MillisecondsTimePoint(dto.endTime)); + return new MillisecondsTimePoint(dto.endTime).equals(newEndTime); + } @Override public void setTrackingTimes(RaceLogSetTrackingTimesDTO dto) throws NotFoundException { @@ -5183,6 +5192,16 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S } return new com.sap.sse.common.Util.Triple(result.getA() == null ? null : result.getA().asDate(), result.getB(), result.getC()); } + + + @Override + public Pair getEndTime(String leaderboardName, String raceColumnName, String fleetName) { + com.sap.sse.common.Util.Pair result = getService().getEndTime(leaderboardName, raceColumnName, fleetName); + if (result == null || result.getA() == null) { + return null; + } + return new com.sap.sse.common.Util.Pair(result.getA() == null ? null : result.getA().asDate(), result.getB()); + } @Override public Iterable getAllIgtimiAccountEmailAddresses() { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceLogSetEndTimeDTO.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceLogSetEndTimeDTO.java new file mode 100644 index 00000000000..f88a8a3eaf5 --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceLogSetEndTimeDTO.java @@ -0,0 +1,26 @@ +package com.sap.sailing.gwt.ui.shared; + +import java.util.Date; + +import com.google.gwt.user.client.rpc.IsSerializable; + +/** + * DTO holding all information to set a new start time on a specific race. + */ +public class RaceLogSetEndTimeDTO implements IsSerializable { + public String leaderboardName; + public String raceColumnName; + public String fleetName; + public int passId; + public String authorName; + public Integer authorPriority; + public Date logicalTimePoint; + public Date endTime; + + @Override + public String toString() { + return "RaceLogSetEndTimeDTO [leaderboardName=" + leaderboardName + ", raceColumnName=" + raceColumnName + + ", fleetName=" + fleetName + ", passId=" + passId + ", authorName=" + authorName + ", authorPriority=" + + authorPriority + ", logicalTimePoint=" + logicalTimePoint + ", endTime=" + endTime + "]"; + } +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/client/images/clock2.png b/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/client/images/clock2.png new file mode 100644 index 0000000000000000000000000000000000000000..1bdc1ff4cc2ae0d21710bc9dbe6336380f3cea2e GIT binary patch literal 904 zcmV;319$w1P)D#42eq>>c`h4kV!XlYDI18LdT*u-qIon&U`+u50&ozFw#;vo&A)hgnP%n0xe8h06F3BhRUg!0*xJTKC#?E}MR<<6KM1u@$BI`y{tPW~hkqWUSr zB4P~0%aMrbkrt0!qp$u${!+<~_4c^2ZaruJvOH40;O=t%=+`4(2@yFcoYa^)EZk4H z0t^B<06Upy>WR;>JDwzwh#^!HFO1Q#GF5-JbWSsCw}l?neNZKt<0%d3+{9kX4pV&m z9D46C?S2!#WZ~YiNjWuQWDgp?V0wz=1C8RgcoPgW_j(x(^@*;Cpf?41{L;5vJKjqzkrE$Ic{c6%W-O z$M@tAfCdnF5?O2D1rdI8OE2{%_#rfc2w7_oc#{7I+;plnL@eU&O08u&`r@(H?FR7o ziX`49aH=%|Pu^?=_@10{Y#XcYQ@l~84m3g-dF}`b2qQ=v@cWHb0s2(-Oax46ew6+l}uh+!Lk2gp)8Rb%eR0@0HM^wi4To_cIIHd z`@-#wbaGc$8Z(hVk2IQ*q9H=;z$XktQtCl%_TJjr>95}Xvef|K;#)@+GMP+rwX)v) zU}8a^7fCeT03d4C*^zAU-b?$GrggRn_Rs(4(*O#E!Vb%_el!dN>Dsote(xi%GIv#$ zuUoQw-SR4PR~Hu-K3re7+%D4;mSz1~C=~Lo29{-cz*4bT+zUKE^X9jE!6X0000 literal 0 HcmV?d00001 diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java index fd2c8e729d6..adefbf3555e 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java @@ -549,12 +549,33 @@ public interface RacingEventService extends TrackedRegattaRegistry, RegattaFetch */ TimePoint setStartTimeAndProcedure(String leaderboardName, String raceColumnName, String fleetName, String authorName, int authorPriority, int passId, TimePoint logicalTimePoint, TimePoint startTime, RacingProcedureType racingProcedure); + + /** + * Forces a new end time identified by the passed parameters. + * @param leaderboardName name of the RaceLog's leaderboard. + * @param raceColumnName name of the RaceLog's column + * @param fleetName name of the RaceLog's fleet + * @param authorName name of the {@link AbstractLogEventAuthor} the {@link RaceLogStartTimeEvent} will be created with + * @param authorPriority priority of the author. + * @param passId Pass identifier of the new start time event. + * @param logicalTimePoint logical {@link TimePoint} of the new event. + * @param endTime the new End-Time + * @return + */ + TimePoint setEndTime(String leaderboardName, String raceColumnName, String fleetName, String authorName, + int authorPriority, int passId, TimePoint logicalTimePoint, TimePoint endTime); + /** * Gets the start time, pass identifier and racing procedure for the queried race. Start time might be null. */ Util.Triple getStartTimeAndProcedure(String leaderboardName, String raceColumnName, String fleetName); + /** + * Gets the end time and pass identifier for the queried race. End time might be null. + */ + Pair getEndTime(String leaderboardName, String raceColumnName, String fleetName); + MongoObjectFactory getMongoObjectFactory(); DomainObjectFactory getDomainObjectFactory(); diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java index 9f45f355d08..670b758349b 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java @@ -3480,6 +3480,25 @@ public class RacingEventServiceImpl implements RacingEventService, ClearStateTes } return result; } + + @Override + public TimePoint setEndTime(String leaderboardName, String raceColumnName, String fleetName, + String authorName, int authorPriority, int passId, TimePoint logicalTimePoint, TimePoint startTime) { + RaceLog raceLog = getRaceLog(leaderboardName, raceColumnName, fleetName); + Leaderboard leaderboard = getLeaderboardByName(leaderboardName); + final TimePoint result; + if (leaderboard instanceof HasRegattaLike && raceLog != null) { + RaceState state = RaceStateImpl.create(/* race log resolver */ this, raceLog, new LogEventAuthorImpl(authorName, authorPriority)); + if (passId > raceLog.getCurrentPassId()) { + state.setAdvancePass(logicalTimePoint); + } + state.setFinishedTime(startTime); + result = state.getFinishedTime(); + } else { + result = null; + } + return result; + } public RaceLog getRaceLog(String leaderboardName, String raceColumnName, String fleetName) { Leaderboard leaderboard = getLeaderboardByName(leaderboardName); @@ -3508,6 +3527,22 @@ public class RacingEventServiceImpl implements RacingEventService, ClearStateTes } return result; } + + @Override + public com.sap.sse.common.Util.Pair getEndTime( + String leaderboardName, String raceColumnName, String fleetName) { + RaceLog raceLog = getRaceLog(leaderboardName, raceColumnName, fleetName); + Leaderboard leaderboard = getLeaderboardByName(leaderboardName); + final Pair result; + if (leaderboard instanceof HasRegattaLike && raceLog != null) { + ReadonlyRaceState state = ReadonlyRaceStateImpl.create(/* race log resolver */ this, raceLog); + result = new com.sap.sse.common.Util.Pair(state.getFinishedTime(), + raceLog.getCurrentPassId()); + } else { + result = null; + } + return result; + } private Iterable getWindTrackerFactories() { final Set result; From c65070e131ee2e82cc40260d29751afbca66272c Mon Sep 17 00:00:00 2001 From: Kai Boernert Date: Tue, 17 Oct 2017 16:33:12 +0200 Subject: [PATCH 020/290] adjusted format for older firefox version, increased wait time --- .../src/com/sap/sailing/selenium/pages/PageObject.java | 4 ++-- .../sap/sailing/selenium/pages/gwt/BetterDateTimeBoxPO.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/PageObject.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/PageObject.java index 69ed2bd24c2..a4ee5fc5e41 100644 --- a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/PageObject.java +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/PageObject.java @@ -72,9 +72,9 @@ public class PageObject { ".//div[contains(@class, \"gwt-VerticalTabLayoutPanelTabInner\")]/div[text()=\"{0}\"]/../.."); /** - *

    The default timeout of 10 seconds for the lookup of other elements.

    + *

    The default timeout of 15 seconds for the lookup of other elements.

    */ - protected static final int DEFAULT_LOOKUP_TIMEOUT = 5; + protected static final int DEFAULT_LOOKUP_TIMEOUT = 15; /** *

    The web driver to use.

    diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/gwt/BetterDateTimeBoxPO.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/gwt/BetterDateTimeBoxPO.java index b2cc0370e25..5e9bb6af6c5 100644 --- a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/gwt/BetterDateTimeBoxPO.java +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/gwt/BetterDateTimeBoxPO.java @@ -18,7 +18,7 @@ import com.sap.sailing.selenium.pages.PageObject; public class BetterDateTimeBoxPO extends PageArea { private static final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); - private static final DateFormat timeFormat = new SimpleDateFormat("hh:mm:ss"); + private static final DateFormat timeFormat = new SimpleDateFormat("hh:mm"); @FindBy(how = BySeleniumId.class, using = "datebox") private WebElement datebox; From ce2e8bd7c6c7dfb3fa5a026ce75db6efcfb356d2 Mon Sep 17 00:00:00 2001 From: Kai Boernert Date: Tue, 24 Oct 2017 11:34:52 +0200 Subject: [PATCH 021/290] allow tests to use timeformat with and without seconds for html5DateTimeBox, added placeholders for older browsers --- .../gwt/ui/shared/DateTimeBoxFallbackStrategie.java | 3 ++- .../com/sap/sailing/selenium/pages/PageObject.java | 2 +- .../pages/adminconsole/event/EventCreateDialogPO.java | 4 ++-- .../leaderboard/SetStartTimeDialogPO.java | 2 +- .../adminconsole/regatta/RegattaCreateDialogPO.java | 4 ++-- .../selenium/pages/gwt/BetterDateTimeBoxPO.java | 11 +++++++++-- 6 files changed, 17 insertions(+), 9 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DateTimeBoxFallbackStrategie.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DateTimeBoxFallbackStrategie.java index 3c16e2c3dbd..4c95fe7b0b7 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DateTimeBoxFallbackStrategie.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DateTimeBoxFallbackStrategie.java @@ -36,14 +36,15 @@ public class DateTimeBoxFallbackStrategie extends Composite implements DateTimeB initWidget(uiBinder.createAndBindUi(this)); // parser for low level, RFC compatible format dateFormat = DateTimeFormat.getFormat("yyyy-MM-dd"); - datebox.setFormat(new DefaultFormat(dateFormat)); + datebox.getElement().setAttribute("placeholder", dateFormat.getPattern()); datebox.ensureDebugId("datebox"); UIObject.ensureDebugId(timebox, "timebox"); if (format != Format.YEAR_TO_DAY) { timeFormat = DateTimeFormat.getFormat(format == Format.YEAR_TO_MINUTE ? "HH:mm" : "HH:mm:ss"); + timebox.setAttribute("placeholder", timeFormat.getPattern()); if (format == Format.YEAR_TO_SECOND) { timebox.setAttribute("step", "1"); } else { diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/PageObject.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/PageObject.java index a4ee5fc5e41..50828202f50 100644 --- a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/PageObject.java +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/PageObject.java @@ -74,7 +74,7 @@ public class PageObject { /** *

    The default timeout of 15 seconds for the lookup of other elements.

    */ - protected static final int DEFAULT_LOOKUP_TIMEOUT = 15; + protected static final int DEFAULT_LOOKUP_TIMEOUT = 60; /** *

    The web driver to use.

    diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/adminconsole/event/EventCreateDialogPO.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/adminconsole/event/EventCreateDialogPO.java index af22c31ff14..09e8f75952c 100644 --- a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/adminconsole/event/EventCreateDialogPO.java +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/adminconsole/event/EventCreateDialogPO.java @@ -50,8 +50,8 @@ public class EventCreateDialogPO extends DataEntryDialogPO { TextBoxPO.create(driver, nameTextBox).appendText(name); TextAreaPO.create(driver, descriptionTextArea).appendText(description); TextBoxPO.create(driver, venueTextBox).appendText(venue); - BetterDateTimeBoxPO.create(driver, startDateTimeBox).setDate(start); - BetterDateTimeBoxPO.create(driver, endDateTimeBox).setDate(end); + BetterDateTimeBoxPO.create(driver, startDateTimeBox).setDate(start, false); + BetterDateTimeBoxPO.create(driver, endDateTimeBox).setDate(end, false); CheckBoxPO.create(driver, isPublicCheckBox).setSelected(isPublic); } diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/adminconsole/leaderboard/SetStartTimeDialogPO.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/adminconsole/leaderboard/SetStartTimeDialogPO.java index 7150af20da3..32dff2f1b28 100644 --- a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/adminconsole/leaderboard/SetStartTimeDialogPO.java +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/adminconsole/leaderboard/SetStartTimeDialogPO.java @@ -28,7 +28,7 @@ public class SetStartTimeDialogPO extends DataEntryDialogPO { } public void setStartTimeValue(Date startTime) { - BetterDateTimeBoxPO.create(driver, startTimeTimeBox, true).setDate(startTime); + BetterDateTimeBoxPO.create(driver, startTimeTimeBox, true).setDate(startTime,true); } public void pressSetStartTime() { diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/adminconsole/regatta/RegattaCreateDialogPO.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/adminconsole/regatta/RegattaCreateDialogPO.java index faae30a507a..b85528c92f5 100644 --- a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/adminconsole/regatta/RegattaCreateDialogPO.java +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/adminconsole/regatta/RegattaCreateDialogPO.java @@ -56,8 +56,8 @@ public class RegattaCreateDialogPO extends DataEntryDialogPO { public void setValues(String name, String boatClass, Date startDate, Date endDate) { this.setRegattaName(name); this.setBoatClass(boatClass); - BetterDateTimeBoxPO.create(driver, startDateTimeBox).setDate(startDate); - BetterDateTimeBoxPO.create(driver, endDateTimeBox).setDate(endDate); + BetterDateTimeBoxPO.create(driver, startDateTimeBox).setDate(startDate, false); + BetterDateTimeBoxPO.create(driver, endDateTimeBox).setDate(endDate, false); } // TODO: Scoring System, Event and Course Area diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/gwt/BetterDateTimeBoxPO.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/gwt/BetterDateTimeBoxPO.java index 5e9bb6af6c5..9cbbb6071b9 100644 --- a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/gwt/BetterDateTimeBoxPO.java +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/gwt/BetterDateTimeBoxPO.java @@ -19,6 +19,7 @@ public class BetterDateTimeBoxPO extends PageArea { private static final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); private static final DateFormat timeFormat = new SimpleDateFormat("hh:mm"); + private static final DateFormat timeFormatSeconds = new SimpleDateFormat("hh:mm:ss"); @FindBy(how = BySeleniumId.class, using = "datebox") private WebElement datebox; @@ -39,17 +40,23 @@ public class BetterDateTimeBoxPO extends PageArea { * * @param date * the {@link Date} object to set + * @param withSeconds true, if the used TimeBox requires also seconds and not only hours and minutes * * @see DateFormat#format(Date) * @see #setText(String) */ - public void setDate(Date date) { + public void setDate(Date date, boolean withSeconds) { String datein = dateFormat.format(date); datebox.clear(); datebox.sendKeys(datein); // ensure popups are closed! datebox.sendKeys("\t"); - String timein = timeFormat.format(date); + final String timein; + if(withSeconds){ + timein = timeFormatSeconds.format(date); + }else{ + timein = timeFormat.format(date); + } timebox.clear(); timebox.sendKeys(timein); // ensure popups are closed! From 722cf2d8674ff69ea1ae0814ac5cdff42371bb68 Mon Sep 17 00:00:00 2001 From: Kai Boernert Date: Tue, 24 Oct 2017 18:01:51 +0200 Subject: [PATCH 022/290] Merge branch 'master' into bug4210 --- .../adminconsole/LeaderboardConfigPanel.java | 7 +-- .../gwt/ui/adminconsole/SetEndTimeDialog.java | 50 +++++++++++++++++-- .../ui/adminconsole/SetStartTimeDialog.java | 8 ++- .../gwt/ui/adminconsole/SetTimeDialog.java | 19 ++++--- .../sailing/gwt/ui/client/SailingService.java | 4 +- .../gwt/ui/client/SailingServiceAsync.java | 11 ++-- .../sailing/gwt/ui/client/StringMessages.java | 1 + .../gwt/ui/client/StringMessages.properties | 1 + .../ui/client/StringMessages_de.properties | 3 +- .../gwt/ui/server/SailingServiceImpl.java | 22 ++++++-- .../gwt/ui/shared/RaceLogSetEndTimeDTO.java | 6 +-- .../sailing/server/RacingEventService.java | 22 +++++++- .../server/impl/RacingEventServiceImpl.java | 47 ++++++++++++++--- 13 files changed, 163 insertions(+), 38 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardConfigPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardConfigPanel.java index 2f46a24672a..a6531662513 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardConfigPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardConfigPanel.java @@ -64,6 +64,7 @@ import com.sap.sailing.gwt.ui.shared.RaceLogSetEndTimeDTO; import com.sap.sailing.gwt.ui.shared.RaceLogSetStartTimeAndProcedureDTO; import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO; import com.sap.sse.common.Util; +import com.sap.sse.common.Util.Pair; import com.sap.sse.common.util.NaturalComparator; import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.async.MarkedAsyncCallback; @@ -629,15 +630,15 @@ TrackedRaceChangedListener, LeaderboardsDisplayer { @Override public void ok(RaceLogSetEndTimeDTO editedObject) { Window.alert(editedObject.toString()); - sailingService.setEndTime(editedObject, new AsyncCallback() { + sailingService.setEndTime(editedObject, new AsyncCallback>() { @Override public void onFailure(Throwable caught) { errorReporter.reportError(caught.getMessage()); } @Override - public void onSuccess(Boolean result) { - if (!result) { + public void onSuccess(Pair result) { + if (!result.getA() || !result.getB()) { Window.alert(stringMessages.failedToSetNewStartTime()); } } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetEndTimeDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetEndTimeDialog.java index 946f23a3b57..41e3efe67b3 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetEndTimeDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetEndTimeDialog.java @@ -7,11 +7,14 @@ import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.Grid; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; +import com.sap.sailing.gwt.ui.shared.BetterDateTimeBox; import com.sap.sailing.gwt.ui.shared.RaceLogSetEndTimeDTO; import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.dialog.DataEntryDialog; public class SetEndTimeDialog extends SetTimeDialog { + private BetterDateTimeBox finishTimeBox; + public SetEndTimeDialog(SailingServiceAsync service, ErrorReporter errorReporter, String leaderboardName, String raceColumnName, String fleetName, StringMessages stringMessages, DataEntryDialog.DialogCallback callback) { @@ -29,8 +32,8 @@ public class SetEndTimeDialog extends SetTimeDialog { dto.fleetName = fleetName; dto.authorName = authorNameBox.getValue(); dto.authorPriority = authorPriorityBox.getValue(); - dto.logicalTimePoint = new Date(); - dto.endTime = timeBox.getValue(); + dto.finishTime = finishTimeBox.getValue(); + dto.finishingTime = timeBox.getValue(); dto.passId = advancePassIdCheckbox.getValue() ? currentPassId + 1 : currentPassId; return dto; } @@ -50,6 +53,35 @@ public class SetEndTimeDialog extends SetTimeDialog { if (startTime == null) { currentStartOrEndTimeLabel.setText(stringMessages.unknown()); } else { + finishTimeBox.setValue(startTime); + currentStartOrEndTimeLabel.setText(DateTimeFormat + .getFormat(DateTimeFormat.PredefinedFormat.DATE_TIME_MEDIUM).format(startTime)); + } + currentPassId = result.getB().intValue(); + currentPassIdBox.setText(result.getB().toString()); + } + } + + @Override + public void onFailure(Throwable caught) { + errorReporter.reportError(caught.getMessage()); + } + }); + + service.getFinishingTime(leaderboardName, raceColumnName, fleetName, + new AsyncCallback>() { + + @Override + public void onSuccess(com.sap.sse.common.Util.Pair result) { + if (result == null) { + currentStartOrEndTimeLabel.setText(stringMessages.notAvailable()); + currentPassIdBox.setText(stringMessages.notAvailable()); + } else { + Date startTime = result.getA(); + if (startTime == null) { + currentStartOrEndTimeLabel.setText(stringMessages.unknown()); + } else { + timeBox.setValue(startTime); currentStartOrEndTimeLabel.setText(DateTimeFormat .getFormat(DateTimeFormat.PredefinedFormat.DATE_TIME_MEDIUM).format(startTime)); } @@ -75,8 +107,7 @@ public class SetEndTimeDialog extends SetTimeDialog { @Override public String getErrorMessage(RaceLogSetEndTimeDTO dto) { - if (dto.authorName == null || dto.authorName.isEmpty() || dto.authorPriority == null - || dto.endTime == null) { + if (dto.authorName == null || dto.authorName.isEmpty() || dto.authorPriority == null || dto.finishTime == null) { return stringMessages.pleaseEnterAValue(); } return null; @@ -86,11 +117,20 @@ public class SetEndTimeDialog extends SetTimeDialog { @Override protected String getTimeLabel() { - return stringMessages.setEndTime(); + return stringMessages.setFinishingTime(); } @Override protected void addAdditionalInput(Grid content) { } + @Override + protected void additionalInput(Grid content) { + finishTimeBox = createDateTimeBox(new Date()); + finishTimeBox.setFormat("dd/mm/yyyy hh:ii:ss"); + finishTimeBox.ensureDebugId("FinishTimeBox"); + content.setWidget(1, 0, createLabel(stringMessages.setEndTime())); + content.setWidget(1, 1, finishTimeBox); + } + } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetStartTimeDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetStartTimeDialog.java index 302f405aad7..30570fb50cf 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetStartTimeDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetStartTimeDialog.java @@ -112,8 +112,12 @@ public class SetStartTimeDialog extends SetTimeDialog extends DataEntryDialogWithBootstrap { protected abstract String getTimeLabel(); private Widget createInputPanel() { - Grid content = new Grid(5, 2); + Grid content = new Grid(7, 2); timeBox = createDateTimeBox(new Date()); timeBox.setFormat("dd/mm/yyyy hh:ii:ss"); timeBox.ensureDebugId("StartTimeTimeBox"); content.setWidget(0, 0, createLabel(getTimeLabel())); content.setWidget(0, 1, timeBox); + + additionalInput(content); authorNameBox = createTextBox("Shore"); authorNameBox.ensureDebugId("AuthorNameTextBox"); - content.setWidget(1, 0, createLabel(stringMessages.authorName())); - content.setWidget(1, 1, authorNameBox); - authorPriorityBox = createIntegerBox(4, 2); + content.setWidget(2, 0, createLabel(stringMessages.authorName())); + content.setWidget(2, 1, authorNameBox); + content.setWidget(3, 0, createLabel(stringMessages.authorPriority())); + authorPriorityBox = createIntegerBox(5, 1); authorPriorityBox.ensureDebugId("AuthorPriorityIntegerBox"); - content.setWidget(2, 0, createLabel(stringMessages.authorPriority())); - content.setWidget(2, 1, authorPriorityBox); + content.setWidget(3, 1, authorPriorityBox); addAdditionalInput(content); advancePassIdCheckbox = createCheckbox(stringMessages.advancePassId()); advancePassIdCheckbox.setValue(false); advancePassIdCheckbox.ensureDebugId("AnvancePassIdCheckBox"); - content.setWidget(4, 1, advancePassIdCheckbox); + content.setWidget(5, 0, advancePassIdCheckbox); + return content; } + protected abstract void additionalInput(Grid content); + protected abstract void addAdditionalInput(Grid content); protected abstract void refreshCurrentTime(); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java index 392773ed1bd..bfe5b932d72 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java @@ -452,11 +452,13 @@ public interface SailingService extends RemoteService, FileStorageManagementGwtS boolean setStartTimeAndProcedure(RaceLogSetStartTimeAndProcedureDTO dto); - boolean setEndTime(RaceLogSetEndTimeDTO dto); + Pair setEndTime(RaceLogSetEndTimeDTO dto); Util.Triple getStartTimeAndProcedure(String leaderboardName, String raceColumnName, String fleetName); Util.Pair getEndTime(String leaderboardName, String raceColumnName, String fleetName); + + Util.Pair getFinishingTime(String leaderboardName, String raceColumnName, String fleetName); Iterable getAllIgtimiAccountEmailAddresses(); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java index 4ef3c29f167..214d294fa5e 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java @@ -626,7 +626,7 @@ public interface SailingServiceAsync extends ServerInfoRetriever, FileStorageMan * {@link RaceLogSetEndTimeDTO} identifying the race to set the end time on and the new * end time. */ - void setEndTime(RaceLogSetEndTimeDTO editedObject, AsyncCallback asyncCallback); + void setEndTime(RaceLogSetEndTimeDTO editedObject, AsyncCallback> asyncCallback); /** * Gets the race's current start time, current pass identifier and racing procedure. If no start time is set, the @@ -642,6 +642,13 @@ public interface SailingServiceAsync extends ServerInfoRetriever, FileStorageMan void getEndTime(String leaderboardName, String raceColumnName, String fleetName, AsyncCallback> asyncCallback); + /** + * Gets the race's current finishing time, current pass identifier. If no finishing time is set, the + * pass identifier will still be returned, but the start time field will be null. + */ + void getFinishingTime(String leaderboardName, String raceColumnName, String fleetName, + AsyncCallback> asyncCallback); + void getAllIgtimiAccountEmailAddresses(AsyncCallback> callback); void getIgtimiAuthorizationUrl(String redirectProtocol, String redirectHostname, String redirectPort, AsyncCallback callback); @@ -863,6 +870,4 @@ public interface SailingServiceAsync extends ServerInfoRetriever, FileStorageMan */ void determineDetailTypes(String leaderboardGroupName, RegattaAndRaceIdentifier identifier, AsyncCallback> callback); - - } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java index 8ae12fe130d..5bf5a453f35 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java @@ -1933,4 +1933,5 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages, String currentStbdRudderRakeTooltip(); String currentMastRotationInDegree(); String currentMastRotationInDegreeTooltip(); + String setFinishingTime(); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties index dc3933aac02..da0da4cff3d 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties @@ -1918,3 +1918,4 @@ currentStbdRudderRake=Stbd rudder rake currentStbdRudderRakeTooltip=The current starboard rudder rake currentMastRotationInDegree=Mast rotation currentMastRotationInDegreeTooltip=The current mast rotation in degrees +setFinishingTime=Set finishing time \ No newline at end of file diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties index 03351845dad..c9ae7568dda 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties @@ -1910,4 +1910,5 @@ dataMiningErrorMargins=Fehlerintervall elements={0} Elemente chooseDifferentDimensionTitle=Andere Dimension auswählen chooseDifferentDimensionMessage=Zum Gruppieren eine andere Dimension auswählen -pleaseSelectADimension=Bitte eine Dimension auswählen \ No newline at end of file +pleaseSelectADimension=Bitte eine Dimension auswählen +setFinishingTime=Setze Zieleinlaufzeit \ No newline at end of file diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java index 8e05cf77111..4a9a120390a 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java @@ -5109,11 +5109,16 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S } @Override - public boolean setEndTime(RaceLogSetEndTimeDTO dto) { - TimePoint newEndTime = getService().setEndTime(dto.leaderboardName, dto.raceColumnName, + public Pair setEndTime(RaceLogSetEndTimeDTO dto) { + TimePoint newFinishTime = getService().setEndTime(dto.leaderboardName, dto.raceColumnName, dto.fleetName, dto.authorName, dto.authorPriority, - dto.passId, new MillisecondsTimePoint(dto.logicalTimePoint), new MillisecondsTimePoint(dto.endTime)); - return new MillisecondsTimePoint(dto.endTime).equals(newEndTime); + dto.passId, new MillisecondsTimePoint(dto.finishTime)); + + TimePoint newFinsihingTime = getService().setFinishingTime(dto.leaderboardName, dto.raceColumnName, + dto.fleetName, dto.authorName, dto.authorPriority, + dto.passId, new MillisecondsTimePoint(dto.finishingTime)); + + return new Pair(new MillisecondsTimePoint(dto.finishingTime).equals(newFinsihingTime),new MillisecondsTimePoint(dto.finishTime).equals(newFinishTime)); } @Override @@ -5202,6 +5207,15 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S } return new com.sap.sse.common.Util.Pair(result.getA() == null ? null : result.getA().asDate(), result.getB()); } + + @Override + public Pair getFinishingTime(String leaderboardName, String raceColumnName, String fleetName) { + com.sap.sse.common.Util.Pair result = getService().getFinishingTime(leaderboardName, raceColumnName, fleetName); + if (result == null || result.getA() == null) { + return null; + } + return new com.sap.sse.common.Util.Pair(result.getA() == null ? null : result.getA().asDate(), result.getB()); + } @Override public Iterable getAllIgtimiAccountEmailAddresses() { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceLogSetEndTimeDTO.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceLogSetEndTimeDTO.java index f88a8a3eaf5..33896f097f9 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceLogSetEndTimeDTO.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceLogSetEndTimeDTO.java @@ -14,13 +14,13 @@ public class RaceLogSetEndTimeDTO implements IsSerializable { public int passId; public String authorName; public Integer authorPriority; - public Date logicalTimePoint; - public Date endTime; + public Date finishTime; + public Date finishingTime; @Override public String toString() { return "RaceLogSetEndTimeDTO [leaderboardName=" + leaderboardName + ", raceColumnName=" + raceColumnName + ", fleetName=" + fleetName + ", passId=" + passId + ", authorName=" + authorName + ", authorPriority=" - + authorPriority + ", logicalTimePoint=" + logicalTimePoint + ", endTime=" + endTime + "]"; + + authorPriority + ", finishTime=" + finishTime + ", endTime=" + finishingTime + "]"; } } diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java index adefbf3555e..44640197aa4 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java @@ -91,6 +91,7 @@ import com.sap.sse.common.TypeBasedServiceFinderFactory; import com.sap.sse.common.Util; import com.sap.sse.common.Util.Pair; import com.sap.sse.common.Util.Triple; +import com.sap.sse.common.impl.MillisecondsTimePoint; import com.sap.sse.common.search.KeywordQuery; import com.sap.sse.common.search.Result; import com.sap.sse.common.search.Searchable; @@ -559,12 +560,24 @@ public interface RacingEventService extends TrackedRegattaRegistry, RegattaFetch * @param authorPriority priority of the author. * @param passId Pass identifier of the new start time event. * @param logicalTimePoint logical {@link TimePoint} of the new event. - * @param endTime the new End-Time * @return */ TimePoint setEndTime(String leaderboardName, String raceColumnName, String fleetName, String authorName, - int authorPriority, int passId, TimePoint logicalTimePoint, TimePoint endTime); + int authorPriority, int passId, TimePoint logicalTimePoint); + /** + * Forces a new finishing time identified by the passed parameters. + * @param leaderboardName name of the RaceLog's leaderboard. + * @param raceColumnName name of the RaceLog's column + * @param fleetName name of the RaceLog's fleet + * @param authorName name of the {@link AbstractLogEventAuthor} the {@link RaceLogStartTimeEvent} will be created with + * @param authorPriority priority of the author. + * @param passId Pass identifier of the new start time event. + * @param logicalTimePoint logical {@link TimePoint} of the new event. + * @return + */ + TimePoint setFinishingTime(String leaderboardName, String raceColumnName, String fleetName, String authorName, + Integer authorPriority, int passId, MillisecondsTimePoint millisecondsTimePoint); /** * Gets the start time, pass identifier and racing procedure for the queried race. Start time might be null. @@ -576,6 +589,11 @@ public interface RacingEventService extends TrackedRegattaRegistry, RegattaFetch */ Pair getEndTime(String leaderboardName, String raceColumnName, String fleetName); + /** + * Gets the finishing time and pass identifier for the queried race. Finishing time might be null. + */ + Pair getFinishingTime(String leaderboardName, String raceColumnName, String fleetName); + MongoObjectFactory getMongoObjectFactory(); DomainObjectFactory getDomainObjectFactory(); diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java index 670b758349b..30900495751 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java @@ -54,7 +54,10 @@ import com.sap.sailing.domain.abstractlog.race.RaceLog; import com.sap.sailing.domain.abstractlog.race.RaceLogEvent; import com.sap.sailing.domain.abstractlog.race.RaceLogEventVisitor; import com.sap.sailing.domain.abstractlog.race.SimpleRaceLogIdentifier; +import com.sap.sailing.domain.abstractlog.race.analyzing.impl.FinishedTimeFinder; +import com.sap.sailing.domain.abstractlog.race.analyzing.impl.FinishingTimeFinder; import com.sap.sailing.domain.abstractlog.race.analyzing.impl.RaceLogResolver; +import com.sap.sailing.domain.abstractlog.race.impl.RaceLogRaceStatusEventImpl; import com.sap.sailing.domain.abstractlog.race.state.RaceState; import com.sap.sailing.domain.abstractlog.race.state.ReadonlyRaceState; import com.sap.sailing.domain.abstractlog.race.state.impl.RaceStateImpl; @@ -115,6 +118,7 @@ import com.sap.sailing.domain.common.dto.RegattaCreationParametersDTO; import com.sap.sailing.domain.common.dto.SeriesCreationParametersDTO; import com.sap.sailing.domain.common.impl.DataImportProgressImpl; import com.sap.sailing.domain.common.media.MediaTrack; +import com.sap.sailing.domain.common.racelog.RaceLogRaceStatus; import com.sap.sailing.domain.common.racelog.RacingProcedureType; import com.sap.sailing.domain.common.tracking.GPSFix; import com.sap.sailing.domain.common.tracking.GPSFixMoving; @@ -3483,17 +3487,30 @@ public class RacingEventServiceImpl implements RacingEventService, ClearStateTes @Override public TimePoint setEndTime(String leaderboardName, String raceColumnName, String fleetName, - String authorName, int authorPriority, int passId, TimePoint logicalTimePoint, TimePoint startTime) { + String authorName, int authorPriority, int passId, TimePoint logicalTimePoint) { RaceLog raceLog = getRaceLog(leaderboardName, raceColumnName, fleetName); Leaderboard leaderboard = getLeaderboardByName(leaderboardName); final TimePoint result; if (leaderboard instanceof HasRegattaLike && raceLog != null) { - RaceState state = RaceStateImpl.create(/* race log resolver */ this, raceLog, new LogEventAuthorImpl(authorName, authorPriority)); - if (passId > raceLog.getCurrentPassId()) { - state.setAdvancePass(logicalTimePoint); - } - state.setFinishedTime(startTime); - result = state.getFinishedTime(); + LogEventAuthorImpl author = new LogEventAuthorImpl(authorName, authorPriority); + raceLog.add(new RaceLogRaceStatusEventImpl(logicalTimePoint, author, raceLog.getCurrentPassId(), RaceLogRaceStatus.FINISHED)); + result = new FinishedTimeFinder(raceLog).analyze(); + } else { + result = null; + } + return result; + } + + @Override + public TimePoint setFinishingTime(String leaderboardName, String raceColumnName, String fleetName, + String authorName, Integer authorPriority, int passId, MillisecondsTimePoint logicalTimePoint) { + RaceLog raceLog = getRaceLog(leaderboardName, raceColumnName, fleetName); + Leaderboard leaderboard = getLeaderboardByName(leaderboardName); + final TimePoint result; + if (leaderboard instanceof HasRegattaLike && raceLog != null) { + LogEventAuthorImpl author = new LogEventAuthorImpl(authorName, authorPriority); + raceLog.add(new RaceLogRaceStatusEventImpl(logicalTimePoint, author, raceLog.getCurrentPassId(), RaceLogRaceStatus.FINISHING)); + result = new FinishingTimeFinder(raceLog).analyze(); } else { result = null; } @@ -3543,6 +3560,21 @@ public class RacingEventServiceImpl implements RacingEventService, ClearStateTes } return result; } + + @Override + public Pair getFinishingTime(String leaderboardName, String raceColumnName, String fleetName) { + RaceLog raceLog = getRaceLog(leaderboardName, raceColumnName, fleetName); + Leaderboard leaderboard = getLeaderboardByName(leaderboardName); + final Pair result; + if (leaderboard instanceof HasRegattaLike && raceLog != null) { + ReadonlyRaceState state = ReadonlyRaceStateImpl.create(/* race log resolver */ this, raceLog); + result = new com.sap.sse.common.Util.Pair(state.getFinishingTime(), + raceLog.getCurrentPassId()); + } else { + result = null; + } + return result; + } private Iterable getWindTrackerFactories() { final Set result; @@ -4127,4 +4159,5 @@ public class RacingEventServiceImpl implements RacingEventService, ClearStateTes public AnniversaryRaceDeterminator getAnniversaryRaceDeterminator() { return anniversaryRaceDeterminator; } + } From f151694c8fc122ccf07f711c0274ff76d4255f12 Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Thu, 26 Oct 2017 13:37:37 +0200 Subject: [PATCH 023/290] Bug 4032: Initial implementation of a filter that transfers a user's preferred language using a Cookie --- .../WEB-INF/web.xml | 9 +++ java/com.sap.sailing.gwt.ui/WEB-INF/web.xml | 9 +++ java/com.sap.sse.security.ui/WEB-INF/web.xml | 9 +++ .../ui/server/LocaleInjectionFilter.java | 77 +++++++++++++++++++ .../ui/server/UserManagementConstants.java | 9 +++ 5 files changed, 113 insertions(+) create mode 100644 java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/server/LocaleInjectionFilter.java create mode 100644 java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/server/UserManagementConstants.java diff --git a/java/com.sap.sailing.dashboards.gwt/WEB-INF/web.xml b/java/com.sap.sailing.dashboards.gwt/WEB-INF/web.xml index ad6c4ff7907..33797f9786f 100644 --- a/java/com.sap.sailing.dashboards.gwt/WEB-INF/web.xml +++ b/java/com.sap.sailing.dashboards.gwt/WEB-INF/web.xml @@ -28,6 +28,15 @@ /service/sailing + + LocaleInjectionFilter + com.sap.sse.security.ui.server.LocaleInjectionFilter + + + LocaleInjectionFilter + *.html + + Dashboard Dispatch Service dashboardDispatch diff --git a/java/com.sap.sailing.gwt.ui/WEB-INF/web.xml b/java/com.sap.sailing.gwt.ui/WEB-INF/web.xml index 2dd07f89431..8538c7b0804 100755 --- a/java/com.sap.sailing.gwt.ui/WEB-INF/web.xml +++ b/java/com.sap.sailing.gwt.ui/WEB-INF/web.xml @@ -53,6 +53,15 @@ /* + + LocaleInjectionFilter + com.sap.sse.security.ui.server.LocaleInjectionFilter + + + LocaleInjectionFilter + *.html + + Sailing Service SailingService diff --git a/java/com.sap.sse.security.ui/WEB-INF/web.xml b/java/com.sap.sse.security.ui/WEB-INF/web.xml index e96f26129ec..63cbcc61550 100644 --- a/java/com.sap.sse.security.ui/WEB-INF/web.xml +++ b/java/com.sap.sse.security.ui/WEB-INF/web.xml @@ -44,6 +44,15 @@ ERROR + + LocaleInjectionFilter + com.sap.sse.security.ui.server.LocaleInjectionFilter + + + LocaleInjectionFilter + *.html + + User Management Service UserManagementService diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/server/LocaleInjectionFilter.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/server/LocaleInjectionFilter.java new file mode 100644 index 00000000000..939c5deae20 --- /dev/null +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/server/LocaleInjectionFilter.java @@ -0,0 +1,77 @@ +package com.sap.sse.security.ui.server; + +import java.io.IOException; +import java.util.Locale; + +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletResponse; + +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.subject.Subject; +import org.osgi.framework.BundleContext; +import org.osgi.util.tracker.ServiceTracker; + +import com.sap.sse.security.SecurityService; +import com.sap.sse.security.User; + +/** + * {@link Filter ServletFilter} implementation that sets a short living {@link Cookie} that carries a user's preferred + * locale if one is logged in. This allows the GWT UI to be shown in the user's preferred language without the need to + * rewrite the URL with the locale parameter added. This also ensures that shared URLs are locale-independent unless a + * user manually selects a specific locale for a page. + */ +public class LocaleInjectionFilter implements Filter { + private ServiceTracker securityServiceTracker; + + @Override + public void init(FilterConfig filterConfig) throws ServletException { + } + + @Override + public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) + throws IOException, ServletException { + if (securityServiceTracker == null) { + // It would be preferable to do this in init, but somehow, the context is sometimes null + final BundleContext context = Activator.getContext(); + securityServiceTracker = new ServiceTracker<>(context, SecurityService.class, /* customizer */ null); + securityServiceTracker.open(); + } + + final HttpServletResponse resp = (HttpServletResponse) response; + final Subject currentSubject = SecurityUtils.getSubject(); + if (currentSubject != null) { + final Object principal = currentSubject.getPrincipal(); + if (principal instanceof String) { + final SecurityService service = securityServiceTracker.getService(); + if (service != null) { + final User user = service.getUserByName((String) principal); + if (user != null) { + final Locale preferredLocale = user.getLocale(); + if (preferredLocale != null) { + final Cookie cookie = new Cookie(UserManagementConstants.LOCALE_COOKIE_NAME, + preferredLocale.toLanguageTag()); + cookie.setMaxAge(-1); + resp.addCookie(cookie); + } + } + } + } + } + chain.doFilter(request, response); + } + + @Override + public void destroy() { + if (securityServiceTracker != null) { + securityServiceTracker.close(); + securityServiceTracker = null; + } + } + +} diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/server/UserManagementConstants.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/server/UserManagementConstants.java new file mode 100644 index 00000000000..71ad9f98179 --- /dev/null +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/server/UserManagementConstants.java @@ -0,0 +1,9 @@ +package com.sap.sse.security.ui.server; + +public interface UserManagementConstants { + /** + * Name of the Cookie to transfer a user's preferred language to the UI. + */ + public static final String LOCALE_COOKIE_NAME = "GWT_LOCALE"; + +} From dc1c253088af0b9b0d72cc1352717a193bff8ace Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Thu, 26 Oct 2017 13:39:47 +0200 Subject: [PATCH 024/290] Bug 4032: The GWT UIs now evaluate the GWT_LOCALE cookie when selecting the permutation --- .../sap/sailing/gwt/common/SailingLocalesAllPermutations.gwt.xml | 1 + .../sap/sse/security/ui/SecurityLocalesAllPermutations.gwt.xml | 1 + 2 files changed, 2 insertions(+) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/common/SailingLocalesAllPermutations.gwt.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/common/SailingLocalesAllPermutations.gwt.xml index b79c9c282d7..970d476cb47 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/common/SailingLocalesAllPermutations.gwt.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/common/SailingLocalesAllPermutations.gwt.xml @@ -22,4 +22,5 @@ + diff --git a/java/com.sap.sse.security.ui/src/main/resources/com/sap/sse/security/ui/SecurityLocalesAllPermutations.gwt.xml b/java/com.sap.sse.security.ui/src/main/resources/com/sap/sse/security/ui/SecurityLocalesAllPermutations.gwt.xml index 40025c2d48d..335d54f214c 100644 --- a/java/com.sap.sse.security.ui/src/main/resources/com/sap/sse/security/ui/SecurityLocalesAllPermutations.gwt.xml +++ b/java/com.sap.sse.security.ui/src/main/resources/com/sap/sse/security/ui/SecurityLocalesAllPermutations.gwt.xml @@ -5,4 +5,5 @@ + From e97bc9a631159d2e9a22ca638f7e6bb9839cff28 Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Thu, 26 Oct 2017 13:40:16 +0200 Subject: [PATCH 025/290] Bug 4032: The GWT_LOCALE cookie is now deleted on logout --- .../sap/sse/security/ui/server/UserManagementServiceImpl.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/server/UserManagementServiceImpl.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/server/UserManagementServiceImpl.java index 0289f40eb8b..46f8ec750d5 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/server/UserManagementServiceImpl.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/server/UserManagementServiceImpl.java @@ -18,6 +18,7 @@ import java.util.concurrent.FutureTask; import java.util.logging.Level; import java.util.logging.Logger; +import javax.servlet.http.Cookie; import javax.servlet.http.HttpSession; import org.apache.shiro.SecurityUtils; @@ -124,6 +125,9 @@ public class UserManagementServiceImpl extends RemoteServiceServlet implements U logger.info("Logging out user: " + SecurityUtils.getSubject()); getSecurityService().logout(); getHttpSession().invalidate(); + final Cookie cookie = new Cookie(UserManagementConstants.LOCALE_COOKIE_NAME, ""); + cookie.setMaxAge(0); + getThreadLocalResponse().addCookie(cookie); logger.info("Invalidated HTTP session"); return new SuccessInfo(true, "Logged out.", /* redirectURL */ null, null); } From a6e9015f5ccbc5a8d40ba29c116cd34f3c12e259 Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Thu, 26 Oct 2017 13:46:54 +0200 Subject: [PATCH 026/290] Bug 4032: GWT UIs do not switch locale anymore when signing in. Instead, we rely on the GWT_LOCALE cookie to be correctly set. --- .../AuthenticationManagerImpl.java | 31 ++++++++++++------- .../authentication/ExperimentalFeatures.java | 10 ++++++ 2 files changed, 29 insertions(+), 12 deletions(-) create mode 100644 java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/ExperimentalFeatures.java diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/AuthenticationManagerImpl.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/AuthenticationManagerImpl.java index cdada9553e5..81de687b92f 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/AuthenticationManagerImpl.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/AuthenticationManagerImpl.java @@ -96,11 +96,13 @@ public class AuthenticationManagerImpl implements AuthenticationManager { } }); userService.addUserStatusEventHandler(new UserStatusEventHandler() { + @SuppressWarnings("unused") @Override public void onUserStatusChange(UserDTO user, boolean preAuthenticated) { final String localeParam = Window.Location.getParameter(LocaleInfo.getLocaleQueryParam()); // If a user is already authenticated while opening the page, we only trigger a reload if no locale is given by the URL - if (preAuthenticated && (localeParam == null || localeParam.isEmpty())) { + if (ExperimentalFeatures.REFRESH_ON_LOCALE_CHANGE_IN_USER_PROFILE && preAuthenticated + && (localeParam == null || localeParam.isEmpty())) { redirectWithLocaleForAuthenticatedUser(); } } @@ -152,7 +154,7 @@ public class AuthenticationManagerImpl implements AuthenticationManager { if (result.isSuccessful()) { callback.onSuccess(result); // when a user logs in we explicitly switch to the user's locale event if a locale is given by the URL - redirectIfLocaleIsSetAndNotCurrentOne(result.getUserDTO().getLocale()); + redirectIfLocaleIsSetAndLocaleIsNotGivenInTheURL(result.getUserDTO().getLocale()); } else { if (SuccessInfo.FAILED_TO_LOGIN.equals(result.getMessage())) { view.setErrorMessage(StringMessages.INSTANCE.failedToSignIn()); @@ -200,7 +202,7 @@ public class AuthenticationManagerImpl implements AuthenticationManager { callback.onSuccess(result); if(!Util.equalsWithNull(locale, localeName)) { - redirectIfLocaleIsSetAndNotCurrentOne(localeName); + redirectIfLocaleIsSetAndLocaleIsNotGivenInTheURL(localeName); } } }); @@ -212,24 +214,29 @@ public class AuthenticationManagerImpl implements AuthenticationManager { private void redirectWithLocaleForAuthenticatedUser() { final AuthenticationContext authenticationContext = getAuthenticationContext(); if(authenticationContext.isLoggedIn()) { - redirectIfLocaleIsSetAndNotCurrentOne(authenticationContext.getCurrentUser().getLocale()); + redirectIfLocaleIsSetAndLocaleIsNotGivenInTheURL(authenticationContext.getCurrentUser().getLocale()); } } - private void redirectIfLocaleIsSetAndNotCurrentOne(String locale) { - if(!isCurrentLocale(locale)) { - Window.Location.assign(Window.Location.createUrlBuilder() - .setParameter(LocaleInfo.getLocaleQueryParam(), locale).buildString()); + private void redirectIfLocaleIsSetAndLocaleIsNotGivenInTheURL(String locale) { + if(shouldChangeLocale(locale)) { + Window.Location.reload(); } } - private boolean isCurrentLocale(String locale) { + private boolean shouldChangeLocale(String locale) { if(locale == null || locale.isEmpty()) { - return true; + // If the user currently has no locale preference, we do not refresh + return false; + } + final String localeParam = Window.Location.getParameter(LocaleInfo.getLocaleQueryParam()); + if (localeParam != null && !localeParam.isEmpty()) { + // If the locale is specified in the URL, we do not refresh + return false; } final String currentLocale = LocaleInfo.getCurrentLocale().getLocaleName(); - final String localeParam = Window.Location.getParameter(LocaleInfo.getLocaleQueryParam()); - return currentLocale.equals(locale) || locale.equals(localeParam); + // If the current locale is equal to the preferred language, a refresh isn't necessary + return !currentLocale.equals(locale); } @Override diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/ExperimentalFeatures.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/ExperimentalFeatures.java new file mode 100644 index 00000000000..5a95f44f5e5 --- /dev/null +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/ExperimentalFeatures.java @@ -0,0 +1,10 @@ +package com.sap.sse.security.ui.authentication; + +public interface ExperimentalFeatures { + /** + * When a user changes the locale preference setting on the user profile page, all pages will reload with the new + * locale applied. This is currently inactive due to the fact that users will lose state on refresh. This + * implementation should be finished when we can serialize state to the URL. + */ + public static final boolean REFRESH_ON_LOCALE_CHANGE_IN_USER_PROFILE = false; +} From 77f835b3dddacd3c5be49db4b0d8687b25cb94b6 Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Thu, 26 Oct 2017 13:59:29 +0200 Subject: [PATCH 027/290] Bug 4032: Updated release notes --- .../places/whatsnew/resources/SailingAnalyticsNotes.html | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/places/whatsnew/resources/SailingAnalyticsNotes.html b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/places/whatsnew/resources/SailingAnalyticsNotes.html index b9412436b41..c1d7a08c72a 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/places/whatsnew/resources/SailingAnalyticsNotes.html +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/places/whatsnew/resources/SailingAnalyticsNotes.html @@ -15,8 +15,11 @@ the grouping dimension. If that was the last dimension removed, the user is asked to provide a new grouping dimension.
  • -
  • When signing in, the page will now switch to the user's preferred language if one is configured in the user profile. - In addition, when the user changes the preferred language in the user profile, the page will switch to this language on save. +
  • A user's language preference now also affects the website's language if one is set in the user profile. + This preference formerly only affected the language of notification mails. + Be aware that when signing in, the page will not be forced to be shown in the user's preferred language. + It will only take effect when refreshing the page or opening a new one, to prevent the state of the currently opened page to get lost. + When signing out, the language preference will also stop to take effect.
From 6924ea32b86fbe32230ec2ef15bb22e3dd0a835d Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Fri, 27 Oct 2017 10:42:32 +0200 Subject: [PATCH 028/290] bug 4356: included MergeState enum and field in CompetitorResult Change-Id: I974bb5904c7e71efc142ac19e84b03a91b7ad045 --- .../impl/DomainObjectFactoryImpl.java | 12 ++++++-- .../domain/persistence/impl/FieldNames.java | 3 +- .../impl/MongoObjectFactoryImpl.java | 1 + ...firmedFinishPositioningListFinderTest.java | 21 +++++++------- .../abstractlog/race/CompetitorResult.java | 29 +++++++++++++++++++ .../race/impl/CompetitorResultImpl.java | 19 ++++++++++-- ...teFromRaceLogFinishPositioingListTest.java | 3 +- ...ingAndRetrievingRaceLogInLeaderboards.java | 7 +++-- ...tStoringAndRetrievingRaceLogInRegatta.java | 5 ++-- ...LogFinishPositioningEventDeserializer.java | 10 ++++++- ...ceLogFinishPositioningEventSerializer.java | 2 ++ ...sitioningConfirmedEventSerializerTest.java | 3 +- .../test/ApplyScoresFromRaceLogTest.java | 5 ++-- .../server/test/MasterDataImportTest.java | 5 ++-- .../impl/CompetitorResultEditableImpl.java | 10 +++++++ .../impl/CompetitorResultWithIdImpl.java | 7 +++-- .../fragments/raceinfo/PenaltyFragment.java | 11 +++---- .../raceinfo/TrackingListFragment.java | 17 ++++++----- .../app/ui/layouts/CompetitorEditLayout.java | 4 ++- 19 files changed, 130 insertions(+), 44 deletions(-) diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java index a2c738b79e6..c5275ed3e22 100644 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java @@ -39,6 +39,7 @@ import com.mongodb.WriteResult; import com.mongodb.util.JSON; import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor; import com.sap.sailing.domain.abstractlog.impl.LogEventAuthorImpl; +import com.sap.sailing.domain.abstractlog.race.CompetitorResult.MergeState; import com.sap.sailing.domain.abstractlog.race.CompetitorResults; import com.sap.sailing.domain.abstractlog.race.RaceLog; import com.sap.sailing.domain.abstractlog.race.RaceLogCourseAreaChangedEvent; @@ -168,8 +169,8 @@ import com.sap.sailing.domain.common.SpeedWithBearing; import com.sap.sailing.domain.common.Wind; import com.sap.sailing.domain.common.WindSource; import com.sap.sailing.domain.common.WindSourceType; -import com.sap.sailing.domain.common.dto.EventType; import com.sap.sailing.domain.common.dto.AnniversaryType; +import com.sap.sailing.domain.common.dto.EventType; import com.sap.sailing.domain.common.impl.DegreeBearingImpl; import com.sap.sailing.domain.common.impl.DegreePosition; import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl; @@ -1601,8 +1602,15 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { final Long finishingTimePointAsMillis = (Long) dbObject.get(FieldNames.RACE_LOG_FINISHING_TIME_AS_MILLIS.name()); final TimePoint finishingTime = finishingTimePointAsMillis == null ? null : new MillisecondsTimePoint(finishingTimePointAsMillis); final String comment = (String) dbObject.get(FieldNames.LEADERBOARD_SCORE_CORRECTION_COMMENT.name()); + final String mergeStateAsString = (String) dbObject.get(FieldNames.LEADERBOARD_SCORE_CORRECTION_MERGE_STATE.name()); + final MergeState mergeState; + if (mergeStateAsString == null) { + mergeState = MergeState.OK; + } else { + mergeState = MergeState.valueOf(mergeStateAsString); + } CompetitorResultImpl positionedCompetitor = new CompetitorResultImpl( - competitorId, competitorDisplayName, rank == null ? rankCounter : rank, maxPointsReason, score, finishingTime, comment); + competitorId, competitorDisplayName, rank == null ? rankCounter : rank, maxPointsReason, score, finishingTime, comment, mergeState); positionedCompetitors.add(positionedCompetitor); rankCounter++; } diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/FieldNames.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/FieldNames.java index 2a2981141c0..a3dfe0b6343 100644 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/FieldNames.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/FieldNames.java @@ -80,7 +80,8 @@ public enum FieldNames { LEADERBOARD_IS_MEDAL_RACE_COLUMN, LEADERBOARD_CARRIED_POINTS, LEADERBOARD_CARRIED_POINTS_BY_ID, LEADERBOARD_SCORE_CORRECTIONS, LEADERBOARD_DISCARDING_THRESHOLDS, LEADERBOARD_SCORE_CORRECTION_MAX_POINTS_REASON, LEADERBOARD_CORRECTED_SCORE, LEADERBOARD_SCORE_CORRECTION_TIMESTAMP, - LEADERBOARD_RANK, LEADERBOARD_SCORE_CORRECTION_COMMENT, LEADERBOARD_COLUMN_FACTORS, WRAPPED_REGATTA_LEADERBOARD_NAME, + LEADERBOARD_RANK, LEADERBOARD_SCORE_CORRECTION_COMMENT, LEADERBOARD_SCORE_CORRECTION_MERGE_STATE, + LEADERBOARD_COLUMN_FACTORS, WRAPPED_REGATTA_LEADERBOARD_NAME, ELMINATED_COMPETITORS, // leaderboard group diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoObjectFactoryImpl.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoObjectFactoryImpl.java index 6c07b6ee67a..5018c723fce 100644 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoObjectFactoryImpl.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoObjectFactoryImpl.java @@ -1239,6 +1239,7 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { result.put(FieldNames.RACE_LOG_FINISHING_TIME_AS_MILLIS.name(), competitorResult.getFinishingTime() == null ? null : competitorResult.getFinishingTime().asMillis()); result.put(FieldNames.LEADERBOARD_RANK.name(), competitorResult.getOneBasedRank()); result.put(FieldNames.LEADERBOARD_SCORE_CORRECTION_COMMENT.name(), competitorResult.getComment()); + result.put(FieldNames.LEADERBOARD_SCORE_CORRECTION_MERGE_STATE.name(), competitorResult.getMergeState().name()); return result; } diff --git a/java/com.sap.sailing.domain.shared.android.test/src/com/sap/sailing/domain/racelog/analyzing/test/ConfirmedFinishPositioningListFinderTest.java b/java/com.sap.sailing.domain.shared.android.test/src/com/sap/sailing/domain/racelog/analyzing/test/ConfirmedFinishPositioningListFinderTest.java index 178e8dc026d..b818708212f 100644 --- a/java/com.sap.sailing.domain.shared.android.test/src/com/sap/sailing/domain/racelog/analyzing/test/ConfirmedFinishPositioningListFinderTest.java +++ b/java/com.sap.sailing.domain.shared.android.test/src/com/sap/sailing/domain/racelog/analyzing/test/ConfirmedFinishPositioningListFinderTest.java @@ -12,6 +12,7 @@ import org.junit.Test; import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor; import com.sap.sailing.domain.abstractlog.race.CompetitorResult; +import com.sap.sailing.domain.abstractlog.race.CompetitorResult.MergeState; import com.sap.sailing.domain.abstractlog.race.CompetitorResults; import com.sap.sailing.domain.abstractlog.race.RaceLog; import com.sap.sailing.domain.abstractlog.race.RaceLogEvent; @@ -56,10 +57,10 @@ public class ConfirmedFinishPositioningListFinderTest extends public void testMostRecent() { RaceLogFinishPositioningConfirmedEvent event1 = createEvent(RaceLogFinishPositioningConfirmedEvent.class, 1); RaceLogFinishPositioningConfirmedEvent event2 = createEvent(RaceLogFinishPositioningConfirmedEvent.class, 2); - final CompetitorResultImpl oldResultC1 = new CompetitorResultImpl("Comp1", "Comp 1", 1, MaxPointsReason.NONE, 1.0, /* finishing time */ null, /* comment */ null); - final CompetitorResultImpl oldResultC2 = new CompetitorResultImpl("Comp2", "Comp 2", 2, MaxPointsReason.NONE, 2.0, /* finishing time */ null, /* comment */ null); + final CompetitorResultImpl oldResultC1 = new CompetitorResultImpl("Comp1", "Comp 1", 1, MaxPointsReason.NONE, 1.0, /* finishing time */ null, /* comment */ null, MergeState.OK); + final CompetitorResultImpl oldResultC2 = new CompetitorResultImpl("Comp2", "Comp 2", 2, MaxPointsReason.NONE, 2.0, /* finishing time */ null, /* comment */ null, MergeState.OK); final CompetitorResults olderResults = mockCompetitorResults(oldResultC1, oldResultC2); - final CompetitorResultImpl newResultC2 = new CompetitorResultImpl("Comp2", "Comp 2", 2, MaxPointsReason.DNF, 3.0, /* finishing time */ null, /* comment */ null); + final CompetitorResultImpl newResultC2 = new CompetitorResultImpl("Comp2", "Comp 2", 2, MaxPointsReason.DNF, 3.0, /* finishing time */ null, /* comment */ null, MergeState.OK); final CompetitorResults newerResults = mockCompetitorResults(newResultC2); when(event1.getPositionedCompetitorsIDsNamesMaxPointsReasons()).thenReturn(olderResults); when(event2.getPositionedCompetitorsIDsNamesMaxPointsReasons()).thenReturn(newerResults); @@ -74,16 +75,16 @@ public class ConfirmedFinishPositioningListFinderTest extends RaceLogFinishPositioningConfirmedEvent event2 = createEvent(/* priority */ 1, RaceLogFinishPositioningConfirmedEvent.class, 2); RaceLogFinishPositioningConfirmedEvent event3 = createEvent(/* priority */ 2, RaceLogFinishPositioningConfirmedEvent.class, 3); RaceLogFinishPositioningConfirmedEvent event4 = createEvent(/* priority */ 1, RaceLogFinishPositioningConfirmedEvent.class, 4); - final CompetitorResultImpl e1ResultC1 = new CompetitorResultImpl("Comp1", "Comp 1", 1, MaxPointsReason.DNC, 6.0, /* finishing time */ null, /* comment */ null); - final CompetitorResultImpl e1ResultC2 = new CompetitorResultImpl("Comp2", "Comp 2", 2, MaxPointsReason.NONE, 2.0, /* finishing time */ null, /* comment */ null); + final CompetitorResultImpl e1ResultC1 = new CompetitorResultImpl("Comp1", "Comp 1", 1, MaxPointsReason.DNC, 6.0, /* finishing time */ null, /* comment */ null, MergeState.OK); + final CompetitorResultImpl e1ResultC2 = new CompetitorResultImpl("Comp2", "Comp 2", 2, MaxPointsReason.NONE, 2.0, /* finishing time */ null, /* comment */ null, MergeState.OK); final CompetitorResults e1Results = mockCompetitorResults(e1ResultC1, e1ResultC2); - final CompetitorResultImpl e2ResultC2 = new CompetitorResultImpl("Comp2", "Comp 2", 2, MaxPointsReason.DNF, 3.0, /* finishing time */ null, /* comment */ null); + final CompetitorResultImpl e2ResultC2 = new CompetitorResultImpl("Comp2", "Comp 2", 2, MaxPointsReason.DNF, 3.0, /* finishing time */ null, /* comment */ null, MergeState.OK); final CompetitorResults e2Results = mockCompetitorResults(e2ResultC2); - final CompetitorResultImpl e3ResultC2 = new CompetitorResultImpl("Comp2", "Comp 2", 2, MaxPointsReason.DSQ, 6.0, /* finishing time */ null, /* comment */ null); - final CompetitorResultImpl e3ResultC3 = new CompetitorResultImpl("Comp3", "Comp 3", 2, MaxPointsReason.DNF, 3.0, /* finishing time */ null, /* comment */ null); + final CompetitorResultImpl e3ResultC2 = new CompetitorResultImpl("Comp2", "Comp 2", 2, MaxPointsReason.DSQ, 6.0, /* finishing time */ null, /* comment */ null, MergeState.OK); + final CompetitorResultImpl e3ResultC3 = new CompetitorResultImpl("Comp3", "Comp 3", 2, MaxPointsReason.DNF, 3.0, /* finishing time */ null, /* comment */ null, MergeState.OK); final CompetitorResults e3Results = mockCompetitorResults(e3ResultC2, e3ResultC3); - final CompetitorResultImpl e4ResultC1 = new CompetitorResultImpl("Comp1", "Comp 1", 1, /* maxPointsReason */ null, /* score */ null, /* finishing time */ null, /* comment */ null); - final CompetitorResultImpl e4ResultC4 = new CompetitorResultImpl("Comp4", "Comp 4", 2, MaxPointsReason.DNF, 3.0, /* finishing time */ null, /* comment */ null); + final CompetitorResultImpl e4ResultC1 = new CompetitorResultImpl("Comp1", "Comp 1", 1, /* maxPointsReason */ null, /* score */ null, /* finishing time */ null, /* comment */ null, MergeState.OK); + final CompetitorResultImpl e4ResultC4 = new CompetitorResultImpl("Comp4", "Comp 4", 2, MaxPointsReason.DNF, 3.0, /* finishing time */ null, /* comment */ null, MergeState.OK); final CompetitorResults e4Results = mockCompetitorResults(e4ResultC1, e4ResultC4); when(event1.getPositionedCompetitorsIDsNamesMaxPointsReasons()).thenReturn(e1Results); when(event2.getPositionedCompetitorsIDsNamesMaxPointsReasons()).thenReturn(e2Results); diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/race/CompetitorResult.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/race/CompetitorResult.java index a1743691ef4..73e556c861e 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/race/CompetitorResult.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/race/CompetitorResult.java @@ -14,6 +14,30 @@ import com.sap.sse.common.TimePoint; * */ public interface CompetitorResult extends Serializable { + public static enum MergeState { + /** + * No merge was necessary at competitor level. + */ + OK, + + /** + * A field-wise merge was necessary because an update was received that affected this competitor result + * while locally this competitor result was in a "dirty" (modified) state. The merge was carried out + * automatically because the fields changed in the dirty state did not overlap with the fields changed + * in the version of the object received. + */ + WARNING, + + /** + * A field-wise merge was necessary because an update was received that affected this competitor result while + * locally this competitor result was in a "dirty" (modified) state. The fields changed in the dirty state + * overlap with the fields changed in the version of the object received. Field values from the local dirty state + * have been preferred or have been appended in case of {@link String}-typed fields and need manual + * intervention. + */ + ERROR + }; + Serializable getCompetitorId(); String getCompetitorDisplayName(); @@ -27,4 +51,9 @@ public interface CompetitorResult extends Serializable { TimePoint getFinishingTime(); String getComment(); + + /** + * Always returns a valid, non-{@code null} result. See {@link MergeState} for details. + */ + MergeState getMergeState(); } diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/race/impl/CompetitorResultImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/race/impl/CompetitorResultImpl.java index da8728f267b..bebbf6c4490 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/race/impl/CompetitorResultImpl.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/race/impl/CompetitorResultImpl.java @@ -23,8 +23,11 @@ public class CompetitorResultImpl implements CompetitorResult { private final String comment; + private final MergeState mergeState; + public CompetitorResultImpl(Serializable competitorId, String competitorDisplayName, int oneBasedRank, - MaxPointsReason maxPointsReason, Double score, TimePoint finishingTime, String comment) { + MaxPointsReason maxPointsReason, Double score, TimePoint finishingTime, String comment, + MergeState mergeState) { super(); this.competitorId = competitorId; this.competitorDisplayName = competitorDisplayName; @@ -33,6 +36,7 @@ public class CompetitorResultImpl implements CompetitorResult { this.score = score; this.finishingTime = finishingTime; this.comment = comment; + this.mergeState = mergeState; } @Override @@ -70,6 +74,11 @@ public class CompetitorResultImpl implements CompetitorResult { return comment; } + @Override + public MergeState getMergeState() { + return mergeState; + } + @Override public int hashCode() { final int prime = 31; @@ -81,6 +90,7 @@ public class CompetitorResultImpl implements CompetitorResult { result = prime * result + ((maxPointsReason == null) ? 0 : maxPointsReason.hashCode()); result = prime * result + oneBasedRank; result = prime * result + ((score == null) ? 0 : score.hashCode()); + result = prime * result + ((mergeState == null) ? 0 : mergeState.hashCode()); return result; } @@ -122,6 +132,11 @@ public class CompetitorResultImpl implements CompetitorResult { return false; } else if (!score.equals(other.score)) return false; + if (mergeState == null) { + if (other.mergeState != null) + return false; + } else if (!mergeState.equals(other.mergeState)) + return false; return true; } @@ -129,7 +144,7 @@ public class CompetitorResultImpl implements CompetitorResult { public String toString() { return "CompetitorResultImpl [competitorId=" + competitorId + ", competitorName=" + competitorDisplayName + ", rank=" + oneBasedRank + ", maxPointsReason=" + maxPointsReason + ", score=" + score + ", finishingTime=" - + finishingTime + ", comment=" + comment + "]"; + + finishingTime + ", comment=" + comment + ", mergeState=" + mergeState + "]"; } } diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/MarkPassingUpdateFromRaceLogFinishPositioingListTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/MarkPassingUpdateFromRaceLogFinishPositioingListTest.java index 51cb340ece3..c8fe26bb138 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/MarkPassingUpdateFromRaceLogFinishPositioingListTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/MarkPassingUpdateFromRaceLogFinishPositioingListTest.java @@ -24,6 +24,7 @@ import org.junit.Test; import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor; import com.sap.sailing.domain.abstractlog.impl.LogEventAuthorImpl; import com.sap.sailing.domain.abstractlog.race.CompetitorResult; +import com.sap.sailing.domain.abstractlog.race.CompetitorResult.MergeState; import com.sap.sailing.domain.abstractlog.race.CompetitorResults; import com.sap.sailing.domain.abstractlog.race.RaceLog; import com.sap.sailing.domain.abstractlog.race.RaceLogFinishPositioningConfirmedEvent; @@ -153,7 +154,7 @@ public class MarkPassingUpdateFromRaceLogFinishPositioingListTest extends Abstra int rank = 1; for (Pair finishingTime : finishingTimes) { results.add(new CompetitorResultImpl(finishingTime.getA().getId(), finishingTime.getA().getName(), rank++, /* maxPointsReason */ - null, /* score */null, finishingTime.getB(), /* comment */null)); + null, /* score */null, finishingTime.getB(), /* comment */null, MergeState.OK)); } return results; } diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogInLeaderboards.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogInLeaderboards.java index 804650c66f6..7a28a46958a 100644 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogInLeaderboards.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogInLeaderboards.java @@ -21,6 +21,7 @@ import com.mongodb.MongoException; import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor; import com.sap.sailing.domain.abstractlog.impl.LogEventAuthorImpl; import com.sap.sailing.domain.abstractlog.race.CompetitorResult; +import com.sap.sailing.domain.abstractlog.race.CompetitorResult.MergeState; import com.sap.sailing.domain.abstractlog.race.CompetitorResults; import com.sap.sailing.domain.abstractlog.race.RaceLog; import com.sap.sailing.domain.abstractlog.race.RaceLogCourseAreaChangedEvent; @@ -311,7 +312,7 @@ public class TestStoringAndRetrievingRaceLogInLeaderboards extends RaceLogMongoD /* timeOnTimeFactor */ null, /* timeOnDistanceAllowancePerNauticalMile */ null, null); CompetitorResults storedPositioningList = new CompetitorResultsImpl(); storedPositioningList.add(new CompetitorResultImpl(storedCompetitor.getId(), storedCompetitor.getName(), /* rank */ - 1, MaxPointsReason.NONE, /* score */ null, /* finishingTimePoint */null, /* comment */null)); + 1, MaxPointsReason.NONE, /* score */ null, /* finishingTimePoint */null, /* comment */null, MergeState.OK)); RaceLogFinishPositioningConfirmedEvent event = new RaceLogFinishPositioningConfirmedEventImpl(now, author, 0, storedPositioningList); addAndStoreRaceLogEvent(leaderboard, raceColumnName, event); RaceLog loadedRaceLog = retrieveRaceLog(); @@ -337,7 +338,7 @@ public class TestStoringAndRetrievingRaceLogInLeaderboards extends RaceLogMongoD final TimePoint finishingTimePoint = MillisecondsTimePoint.now(); final String comment = "This is a comment"; storedPositioningList.add(new CompetitorResultImpl(storedCompetitor.getId(), storedCompetitor.getName(), /* rank */ - 1, MaxPointsReason.NONE, /* score */ 12.3, finishingTimePoint, comment)); + 1, MaxPointsReason.NONE, /* score */ 12.3, finishingTimePoint, comment, MergeState.OK)); RaceLogFinishPositioningConfirmedEvent event = new RaceLogFinishPositioningConfirmedEventImpl(now, author, 0, storedPositioningList); addAndStoreRaceLogEvent(leaderboard, raceColumnName, event); RaceLog loadedRaceLog = retrieveRaceLog(); @@ -405,7 +406,7 @@ public class TestStoringAndRetrievingRaceLogInLeaderboards extends RaceLogMongoD "someone@nowhere.de", null, null, null, /* timeOnTimeFactor */ null, /* timeOnDistanceAllowancePerNauticalMile */ null, null); CompetitorResults storedPositioningList = new CompetitorResultsImpl(); storedPositioningList.add(new CompetitorResultImpl(storedCompetitor.getId(), storedCompetitor.getName(), /* rank */ - 1, MaxPointsReason.NONE, /* score */ null, /* finishingTimePoint */null, /* comment */null)); + 1, MaxPointsReason.NONE, /* score */ null, /* finishingTimePoint */null, /* comment */null, MergeState.OK)); RaceLogFinishPositioningListChangedEvent event = new RaceLogFinishPositioningListChangedEventImpl(now, author, 0, storedPositioningList); addAndStoreRaceLogEvent(leaderboard, raceColumnName, event); diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogInRegatta.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogInRegatta.java index 07a72e149e2..f35ff25cace 100644 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogInRegatta.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogInRegatta.java @@ -14,6 +14,7 @@ import com.mongodb.BasicDBList; import com.mongodb.BasicDBObject; import com.mongodb.DBObject; import com.mongodb.MongoException; +import com.sap.sailing.domain.abstractlog.race.CompetitorResult.MergeState; import com.sap.sailing.domain.abstractlog.race.CompetitorResults; import com.sap.sailing.domain.abstractlog.race.RaceLog; import com.sap.sailing.domain.abstractlog.race.RaceLogCourseAreaChangedEvent; @@ -210,7 +211,7 @@ public class TestStoringAndRetrievingRaceLogInRegatta extends AbstractTestStorin Competitor storedCompetitor = DomainFactory.INSTANCE.getOrCreateCompetitor(UUID.randomUUID(), "SAP Extreme Sailing Team", Color.RED, "someone@nowhere.de", null, null, null, /* timeOnTimeFactor */ null, /* timeOnDistanceAllowancePerNauticalMile */ null, null); CompetitorResults storedPositioningList = new CompetitorResultsImpl(); - storedPositioningList.add(new CompetitorResultImpl(storedCompetitor.getId(), storedCompetitor.getName(), /* rank */ 1, MaxPointsReason.NONE, /* score */ null, /* finishingTime */ null, /* comment */ null)); + storedPositioningList.add(new CompetitorResultImpl(storedCompetitor.getId(), storedCompetitor.getName(), /* rank */ 1, MaxPointsReason.NONE, /* score */ null, /* finishingTime */ null, /* comment */ null, MergeState.OK)); RaceLogFinishPositioningListChangedEvent event = new RaceLogFinishPositioningListChangedEventImpl(now, author, 0, storedPositioningList); addAndStoreRaceLogEvent(regatta, raceColumnName, event); RaceLog loadedRaceLog = retrieveRaceLog(); @@ -234,7 +235,7 @@ public class TestStoringAndRetrievingRaceLogInRegatta extends AbstractTestStorin Competitor storedCompetitor = DomainFactory.INSTANCE.getOrCreateCompetitor(UUID.randomUUID(), "SAP Extreme Sailing Team", Color.RED, "someone@nowhere.de", null, null, null, /* timeOnTimeFactor */ null, /* timeOnDistanceAllowancePerNauticalMile */ null, null); CompetitorResults storedPositioningList = new CompetitorResultsImpl(); - storedPositioningList.add(new CompetitorResultImpl(storedCompetitor.getId(), storedCompetitor.getName(), /* rank */ 1, MaxPointsReason.NONE, /* score */ null, /* finishingTime */ null, /* comment */ null)); + storedPositioningList.add(new CompetitorResultImpl(storedCompetitor.getId(), storedCompetitor.getName(), /* rank */ 1, MaxPointsReason.NONE, /* score */ null, /* finishingTime */ null, /* comment */ null, MergeState.OK)); RaceLogFinishPositioningConfirmedEvent event = new RaceLogFinishPositioningConfirmedEventImpl(now, author, 0, storedPositioningList); addAndStoreRaceLogEvent(regatta, raceColumnName, event); RaceLog loadedRaceLog = retrieveRaceLog(); diff --git a/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/racelog/impl/RaceLogFinishPositioningEventDeserializer.java b/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/racelog/impl/RaceLogFinishPositioningEventDeserializer.java index 65b50ad842f..ed5680fc244 100644 --- a/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/racelog/impl/RaceLogFinishPositioningEventDeserializer.java +++ b/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/racelog/impl/RaceLogFinishPositioningEventDeserializer.java @@ -7,6 +7,7 @@ import org.json.simple.JSONArray; import org.json.simple.JSONObject; import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor; +import com.sap.sailing.domain.abstractlog.race.CompetitorResult.MergeState; import com.sap.sailing.domain.abstractlog.race.CompetitorResults; import com.sap.sailing.domain.abstractlog.race.RaceLogEvent; import com.sap.sailing.domain.abstractlog.race.RaceLogFinishPositioningEvent; @@ -54,8 +55,15 @@ public abstract class RaceLogFinishPositioningEventDeserializer extends BaseRace final Long finishingTimePointAsMillis = (Long) jsonPositionedCompetitor.get(RaceLogFinishPositioningConfirmedEventSerializer.FIELD_FINISHING_TIME_POINT_AS_MILLIS); final TimePoint finishingTime = finishingTimePointAsMillis == null ? null : new MillisecondsTimePoint(finishingTimePointAsMillis); final String comment = (String) jsonPositionedCompetitor.get(RaceLogFinishPositioningConfirmedEventSerializer.FIELD_COMMENT); + final String mergeStateAsString = (String) jsonPositionedCompetitor.get(RaceLogFinishPositioningConfirmedEventSerializer.FIELD_MERGE_STATE); + final MergeState mergeState; + if (mergeStateAsString == null) { + mergeState = MergeState.OK; + } else { + mergeState = MergeState.valueOf(mergeStateAsString); + } CompetitorResultImpl positionedCompetitor = new CompetitorResultImpl( - competitorId, competitorDisplayName, rank == null ? rankCounter : rank.intValue(), maxPointsReason, score, finishingTime, comment); + competitorId, competitorDisplayName, rank == null ? rankCounter : rank.intValue(), maxPointsReason, score, finishingTime, comment, mergeState); rankCounter++; positionedCompetitors.add(positionedCompetitor); } diff --git a/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/serialization/racelog/impl/RaceLogFinishPositioningEventSerializer.java b/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/serialization/racelog/impl/RaceLogFinishPositioningEventSerializer.java index e07e02424e0..3940a8018fc 100644 --- a/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/serialization/racelog/impl/RaceLogFinishPositioningEventSerializer.java +++ b/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/serialization/racelog/impl/RaceLogFinishPositioningEventSerializer.java @@ -17,6 +17,7 @@ public abstract class RaceLogFinishPositioningEventSerializer extends BaseRaceLo public static final String FIELD_SCORE_CORRECTIONS_MAX_POINTS_REASON = "maxPointsReason"; public static final String FIELD_SCORE = "score"; public static final String FIELD_COMMENT = "comment"; + public static final String FIELD_MERGE_STATE = "mergeState"; public static final String FIELD_RANK = "rank"; public static final String FIELD_FINISHING_TIME_POINT_AS_MILLIS = "finishingTimePointAsMillis"; @@ -45,6 +46,7 @@ public abstract class RaceLogFinishPositioningEventSerializer extends BaseRaceLo jsonPositionedCompetitor.put(FIELD_SCORE_CORRECTIONS_MAX_POINTS_REASON, positionedCompetitor.getMaxPointsReason().name()); jsonPositionedCompetitor.put(FIELD_SCORE, positionedCompetitor.getScore()); jsonPositionedCompetitor.put(FIELD_COMMENT, positionedCompetitor.getComment()); + jsonPositionedCompetitor.put(FIELD_MERGE_STATE, positionedCompetitor.getMergeState().name()); jsonPositionedCompetitor.put(FIELD_RANK, positionedCompetitor.getOneBasedRank()); // writes it as an int, but deserializer will fetch it as a Long jsonPositionedCompetitor.put(FIELD_FINISHING_TIME_POINT_AS_MILLIS, positionedCompetitor.getFinishingTime() == null ? null : positionedCompetitor.getFinishingTime().asMillis()); jsonPositionedCompetitors.add(jsonPositionedCompetitor); diff --git a/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/racelog/RaceLogFinishPositioningConfirmedEventSerializerTest.java b/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/racelog/RaceLogFinishPositioningConfirmedEventSerializerTest.java index 9735e2dbb04..08541b3796a 100644 --- a/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/racelog/RaceLogFinishPositioningConfirmedEventSerializerTest.java +++ b/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/racelog/RaceLogFinishPositioningConfirmedEventSerializerTest.java @@ -15,6 +15,7 @@ import org.junit.Test; import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor; import com.sap.sailing.domain.abstractlog.impl.LogEventAuthorImpl; import com.sap.sailing.domain.abstractlog.race.CompetitorResult; +import com.sap.sailing.domain.abstractlog.race.CompetitorResult.MergeState; import com.sap.sailing.domain.abstractlog.race.CompetitorResults; import com.sap.sailing.domain.abstractlog.race.RaceLogFinishPositioningConfirmedEvent; import com.sap.sailing.domain.abstractlog.race.impl.CompetitorResultImpl; @@ -67,7 +68,7 @@ public class RaceLogFinishPositioningConfirmedEventSerializerTest { @Test public void testSerializeAndDeserializeRaceLogFinishPositioningConfirmedEvent() throws JsonDeserializationException { positioningList.add(new CompetitorResultImpl(UUID.randomUUID(), "SAP Extreme", /* rank */ 1, - MaxPointsReason.NONE, /* score */ null, /* finishingTime */ null, /* comment */ null)); + MaxPointsReason.NONE, /* score */ null, /* finishingTime */ null, /* comment */ null, MergeState.OK)); event = new RaceLogFinishPositioningConfirmedEventImpl(now, author, 0, positioningList); JSONObject jsonConfirmationEvent = serializer.serialize(event); RaceLogFinishPositioningConfirmedEvent deserializedEvent = (RaceLogFinishPositioningConfirmedEvent) deserializer diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/ApplyScoresFromRaceLogTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/ApplyScoresFromRaceLogTest.java index 5868377e4ac..939c618ad4e 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/ApplyScoresFromRaceLogTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/ApplyScoresFromRaceLogTest.java @@ -15,6 +15,7 @@ import org.junit.Before; import org.junit.Test; import com.sap.sailing.domain.abstractlog.impl.LogEventAuthorImpl; +import com.sap.sailing.domain.abstractlog.race.CompetitorResult.MergeState; import com.sap.sailing.domain.abstractlog.race.CompetitorResults; import com.sap.sailing.domain.abstractlog.race.RaceLog; import com.sap.sailing.domain.abstractlog.race.impl.CompetitorResultImpl; @@ -102,7 +103,7 @@ public class ApplyScoresFromRaceLogTest extends LeaderboardScoringAndRankingTest scores.put(c, score); mprs.put(c, mpr); results.add(new CompetitorResultImpl(c.getId(), c.getName(), - oneBasedRank++, mpr, score, /* finishingTime */ null, /* comment */ null)); + oneBasedRank++, mpr, score, /* finishingTime */ null, /* comment */ null, MergeState.OK)); } final RaceLog f1RaceLog = f1Column.getRaceLog(f1Column.getFleets().iterator().next()); final LogEventAuthorImpl author = new LogEventAuthorImpl("Axel", 0); @@ -231,6 +232,6 @@ public class ApplyScoresFromRaceLogTest extends LeaderboardScoringAndRankingTest private void setResultForCompetitor(final Competitor competitor, int oneBasedRank, final CompetitorResults results, MaxPointsReason maxPointsReason, Double explicitScore) { - results.add(new CompetitorResultImpl(competitor.getId(), competitor.getName(), oneBasedRank, maxPointsReason, explicitScore, /* finishingTime */ null, /* comment */ null)); + results.add(new CompetitorResultImpl(competitor.getId(), competitor.getName(), oneBasedRank, maxPointsReason, explicitScore, /* finishingTime */ null, /* comment */ null, MergeState.OK)); } } diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/MasterDataImportTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/MasterDataImportTest.java index 6d186f1c3a9..ecf3e268425 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/MasterDataImportTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/MasterDataImportTest.java @@ -35,6 +35,7 @@ import com.mongodb.DB; import com.mongodb.WriteConcern; import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor; import com.sap.sailing.domain.abstractlog.impl.LogEventAuthorImpl; +import com.sap.sailing.domain.abstractlog.race.CompetitorResult.MergeState; import com.sap.sailing.domain.abstractlog.race.CompetitorResults; import com.sap.sailing.domain.abstractlog.race.RaceLog; import com.sap.sailing.domain.abstractlog.race.RaceLogEvent; @@ -918,9 +919,9 @@ public class MasterDataImportTest { TimePoint logTimePoint2 = logTimePoint.plus(10); CompetitorResults positionedCompetitors = new CompetitorResultsImpl(); positionedCompetitors.add(new CompetitorResultImpl( - competitor.getId(), competitor.getName(), /* rank */ 1, MaxPointsReason.DNS, /* score */ null, /* finishingTime */ null, /* comment */ null)); + competitor.getId(), competitor.getName(), /* rank */ 1, MaxPointsReason.DNS, /* score */ null, /* finishingTime */ null, /* comment */ null, MergeState.OK)); positionedCompetitors.add(new CompetitorResultImpl( - competitor2.getId(), competitor2.getName(), /* rank */ 2, MaxPointsReason.NONE, /* score */ null, /* finishingTime */ null, /* comment */ null)); + competitor2.getId(), competitor2.getName(), /* rank */ 2, MaxPointsReason.NONE, /* score */ null, /* finishingTime */ null, /* comment */ null, MergeState.OK)); RaceLogFinishPositioningConfirmedEvent finishPositioningConfirmedEvent = new RaceLogFinishPositioningConfirmedEventImpl( logTimePoint2, author, 1, positionedCompetitors); raceColumn.getRaceLog(testFleet1).add(finishPositioningConfirmedEvent); diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/impl/CompetitorResultEditableImpl.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/impl/CompetitorResultEditableImpl.java index c0a75d3f465..92d4b253827 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/impl/CompetitorResultEditableImpl.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/impl/CompetitorResultEditableImpl.java @@ -16,6 +16,7 @@ public class CompetitorResultEditableImpl implements CompetitorResult { private Double mScore; private TimePoint mFinishingTime; private String mComment; + private MergeState mMergeState; private boolean mDirty; private boolean mChecked; @@ -28,6 +29,7 @@ public class CompetitorResultEditableImpl implements CompetitorResult { mScore = result.getScore(); mFinishingTime = result.getFinishingTime(); mComment = result.getComment(); + mMergeState = result.getMergeState(); } @Override @@ -108,6 +110,14 @@ public class CompetitorResultEditableImpl implements CompetitorResult { public void setChecked(boolean checked) { mChecked = checked; } + + public MergeState getMergeState() { + return mMergeState; + } + + public void setMergeState(MergeState mergeState) { + this.mMergeState = mergeState; + } @Override public boolean equals(Object o) { diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/impl/CompetitorResultWithIdImpl.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/impl/CompetitorResultWithIdImpl.java index a470c8cef2e..89712d978e8 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/impl/CompetitorResultWithIdImpl.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/impl/CompetitorResultWithIdImpl.java @@ -14,13 +14,14 @@ public class CompetitorResultWithIdImpl extends CompetitorResultImpl { public CompetitorResultWithIdImpl(long id, CompetitorResult result) { this(id, result.getCompetitorId(), result.getCompetitorDisplayName(), result.getOneBasedRank(), - result.getMaxPointsReason(), result.getScore(), result.getFinishingTime(), result.getComment()); + result.getMaxPointsReason(), result.getScore(), result.getFinishingTime(), result.getComment(), + result.getMergeState()); } public CompetitorResultWithIdImpl(long id, Serializable competitorId, String competitorDisplayName, int oneBasedRank, MaxPointsReason maxPointsReason, Double score, - TimePoint finishingTime, String comment) { - super(competitorId, competitorDisplayName, oneBasedRank, maxPointsReason, score, finishingTime, comment); + TimePoint finishingTime, String comment, MergeState mergeState) { + super(competitorId, competitorDisplayName, oneBasedRank, maxPointsReason, score, finishingTime, comment, mergeState); mId = id; } diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/raceinfo/PenaltyFragment.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/raceinfo/PenaltyFragment.java index 770d0342fb0..6ba0f29f2fb 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/raceinfo/PenaltyFragment.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/raceinfo/PenaltyFragment.java @@ -15,6 +15,7 @@ import com.sap.sailing.android.shared.util.BitmapHelper; import com.sap.sailing.android.shared.util.BroadcastManager; import com.sap.sailing.android.shared.util.ViewHelper; import com.sap.sailing.domain.abstractlog.race.CompetitorResult; +import com.sap.sailing.domain.abstractlog.race.CompetitorResult.MergeState; import com.sap.sailing.domain.abstractlog.race.CompetitorResults; import com.sap.sailing.domain.abstractlog.race.impl.CompetitorResultImpl; import com.sap.sailing.domain.abstractlog.race.impl.CompetitorResultsImpl; @@ -279,7 +280,7 @@ public class PenaltyFragment extends BaseFragment implements PopupMenu.OnMenuIte if (getRaceState().getConfirmedFinishPositioningList() != null) { for (CompetitorResult item : getRaceState().getConfirmedFinishPositioningList()) { mLastPublished.add(new CompetitorResultImpl(item.getCompetitorId(), item.getCompetitorDisplayName(), item.getOneBasedRank(), item - .getMaxPointsReason(), item.getScore(), item.getFinishingTime(), item.getComment())); + .getMaxPointsReason(), item.getScore(), item.getFinishingTime(), item.getComment(), MergeState.OK)); // TODO handle merge state } } loadCompetitors(); @@ -390,7 +391,7 @@ public class PenaltyFragment extends BaseFragment implements PopupMenu.OnMenuIte } name += " - " + item.getName(); CompetitorResult result = new CompetitorResultImpl(item.getId(), name, 0, MaxPointsReason.NONE, - /* score */ null, /* finishingTime */ null, /* comment */ null); + /* score */ null, /* finishingTime */ null, /* comment */ null, MergeState.OK); // TODO handle merge state mCompetitorResults.add(new CompetitorResultEditableImpl(result)); } if (getRaceState() != null && getRaceState().getFinishPositioningList() != null) { // mix with finish position list @@ -504,7 +505,7 @@ public class PenaltyFragment extends BaseFragment implements PopupMenu.OnMenuIte } CompetitorResultWithIdImpl item = new CompetitorResultWithIdImpl(0, competitor.getCompetitorId(), competitor .getCompetitorDisplayName(), competitor.getOneBasedRank(), competitor.getMaxPointsReason(), competitor.getScore(), competitor - .getFinishingTime(), competitor.getComment()); + .getFinishingTime(), competitor.getComment(), MergeState.OK); // TODO handle merge state AlertDialog.Builder builder = new AlertDialog.Builder(context, R.style.AppTheme_AlertDialog); builder.setTitle(item.getCompetitorDisplayName()); final CompetitorEditLayout layout = new CompetitorEditLayout(getActivity(), item, mCompetitorResults.getFirstRankZeroPosition() + @@ -551,7 +552,7 @@ public class PenaltyFragment extends BaseFragment implements PopupMenu.OnMenuIte for (CompetitorResultEditableImpl item : mCompetitorResults) { if (item.isDirty()) { result.add(new CompetitorResultImpl(item.getCompetitorId(), item.getCompetitorDisplayName(), item.getOneBasedRank(), item - .getMaxPointsReason(), item.getScore(), item.getFinishingTime(), item.getComment())); + .getMaxPointsReason(), item.getScore(), item.getFinishingTime(), item.getComment(), MergeState.OK)); // TODO handle merge state } } @@ -564,7 +565,7 @@ public class PenaltyFragment extends BaseFragment implements PopupMenu.OnMenuIte } if (!found) { result.add(new CompetitorResultImpl(item.getCompetitorId(), item.getCompetitorDisplayName(), item.getOneBasedRank(), item - .getMaxPointsReason(), item.getScore(), item.getFinishingTime(), item.getComment())); + .getMaxPointsReason(), item.getScore(), item.getFinishingTime(), item.getComment(), MergeState.OK)); // TODO handle merge state } } diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/raceinfo/TrackingListFragment.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/raceinfo/TrackingListFragment.java index 3db42821a1f..3b2c0002cb5 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/raceinfo/TrackingListFragment.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/raceinfo/TrackingListFragment.java @@ -16,6 +16,7 @@ import com.sap.sailing.android.shared.util.BitmapHelper; import com.sap.sailing.android.shared.util.BroadcastManager; import com.sap.sailing.android.shared.util.ViewHelper; import com.sap.sailing.domain.abstractlog.race.CompetitorResult; +import com.sap.sailing.domain.abstractlog.race.CompetitorResult.MergeState; import com.sap.sailing.domain.abstractlog.race.CompetitorResults; import com.sap.sailing.domain.abstractlog.race.impl.CompetitorResultImpl; import com.sap.sailing.domain.abstractlog.race.impl.CompetitorResultsImpl; @@ -281,7 +282,7 @@ public class TrackingListFragment extends BaseFragment if (getRaceState().getConfirmedFinishPositioningList() != null) { for (CompetitorResult item : getRaceState().getConfirmedFinishPositioningList()) { mLastPublished.add(new CompetitorResultImpl(item.getCompetitorId(), item.getCompetitorDisplayName(), item.getOneBasedRank(), item - .getMaxPointsReason(), item.getScore(), item.getFinishingTime(), item.getComment())); + .getMaxPointsReason(), item.getScore(), item.getFinishingTime(), item.getComment(), item.getMergeState())); // TODO handle merge state } } } @@ -526,7 +527,7 @@ public class TrackingListFragment extends BaseFragment } } mFinishedData.add(pos, new CompetitorResultWithIdImpl(mId, competitor.getId(), name, greatestOneBasedRankSoFar + 1, MaxPointsReason.NONE, - /* score */ null, /* finishingTime */ null, /* comment */ null)); + /* score */ null, /* finishingTime */ null, /* comment */ null, MergeState.OK)); // TODO handle merge state mId++; mFinishedAdapter.notifyItemInserted(pos); if (mDots.size() > 0) { @@ -608,7 +609,7 @@ public class TrackingListFragment extends BaseFragment .getCompetitorId(), competitorToReplaceWithAdjustedPosition .getCompetitorDisplayName(), newOneBasedRank, competitorToReplaceWithAdjustedPosition .getMaxPointsReason(), competitorToReplaceWithAdjustedPosition.getScore(), competitorToReplaceWithAdjustedPosition - .getFinishingTime(), competitorToReplaceWithAdjustedPosition.getComment()); + .getFinishingTime(), competitorToReplaceWithAdjustedPosition.getComment(), MergeState.OK); // TODO handle merge state } private void addNewCompetitorToCompetitorList(Competitor competitor) { @@ -702,7 +703,7 @@ public class TrackingListFragment extends BaseFragment protected void setMaxPointsReasonForItem(CompetitorResultWithIdImpl item, CharSequence maxPointsReasonName) { MaxPointsReason maxPointsReason = MaxPointsReason.valueOf(maxPointsReasonName.toString()); CompetitorResultWithIdImpl newItem = new CompetitorResultWithIdImpl(item.getId(), item.getCompetitorId(), item - .getCompetitorDisplayName(), item.getOneBasedRank(), maxPointsReason, item.getScore(), item.getFinishingTime(), item.getComment()); + .getCompetitorDisplayName(), item.getOneBasedRank(), maxPointsReason, item.getScore(), item.getFinishingTime(), item.getComment(), MergeState.OK); // TODO handle merge state updateItem(item, newItem); getRaceState().setFinishPositioningListChanged(MillisecondsTimePoint.now(), getCompetitorResults()); } @@ -711,7 +712,7 @@ public class TrackingListFragment extends BaseFragment CompetitorResults result = new CompetitorResultsImpl(); for (CompetitorResultWithIdImpl item : mFinishedData) { result.add(new CompetitorResultImpl(item.getCompetitorId(), item.getCompetitorDisplayName(), item.getOneBasedRank(), item - .getMaxPointsReason(), item.getScore(), item.getFinishingTime(), item.getComment())); + .getMaxPointsReason(), item.getScore(), item.getFinishingTime(), item.getComment(), MergeState.OK)); // TODO handle merge state } return result; } @@ -726,7 +727,7 @@ public class TrackingListFragment extends BaseFragment if (oldItem.getCompetitorId().equals(newItem.getCompetitorId())) { if (!oldItem.equals(newItem)) { result.add(new CompetitorResultImpl(newItem.getCompetitorId(), newItem.getCompetitorDisplayName(), newItem - .getOneBasedRank(), newItem.getMaxPointsReason(), newItem.getScore(), newItem.getFinishingTime(), newItem.getComment())); + .getOneBasedRank(), newItem.getMaxPointsReason(), newItem.getScore(), newItem.getFinishingTime(), newItem.getComment(), MergeState.OK)); // TODO handle merge state } found = true; break; @@ -734,7 +735,7 @@ public class TrackingListFragment extends BaseFragment } if (!found) { result.add(new CompetitorResultImpl(oldItem.getCompetitorId(), oldItem.getCompetitorDisplayName(), 0, oldItem - .getMaxPointsReason(), oldItem.getScore(), oldItem.getFinishingTime(), oldItem.getComment())); + .getMaxPointsReason(), oldItem.getScore(), oldItem.getFinishingTime(), oldItem.getComment(), MergeState.OK)); // TODO handle merge state } } @@ -749,7 +750,7 @@ public class TrackingListFragment extends BaseFragment } if (!found) { result.add(new CompetitorResultImpl(newItem.getCompetitorId(), newItem.getCompetitorDisplayName(), newItem.getOneBasedRank(), newItem - .getMaxPointsReason(), newItem.getScore(), newItem.getFinishingTime(), newItem.getComment())); + .getMaxPointsReason(), newItem.getScore(), newItem.getFinishingTime(), newItem.getComment(), MergeState.OK)); // TODO handle merge state } } diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/layouts/CompetitorEditLayout.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/layouts/CompetitorEditLayout.java index 1767b26a70b..0d1a7ea7067 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/layouts/CompetitorEditLayout.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/layouts/CompetitorEditLayout.java @@ -10,6 +10,7 @@ import java.util.Locale; import com.sap.sailing.android.shared.util.AppUtils; import com.sap.sailing.android.shared.util.ViewHelper; import com.sap.sailing.domain.abstractlog.race.CompetitorResult; +import com.sap.sailing.domain.abstractlog.race.CompetitorResult.MergeState; import com.sap.sailing.domain.abstractlog.race.impl.CompetitorResultImpl; import com.sap.sailing.domain.common.MaxPointsReason; import com.sap.sailing.racecommittee.app.R; @@ -215,7 +216,8 @@ public class CompetitorEditLayout extends ScrollView implements DatePickerDialog comment = mComment.getText().toString(); } CompetitorResult result = new CompetitorResultImpl(mCompetitor.getCompetitorId(), mCompetitor - .getCompetitorDisplayName(), oneBaseRank, maxPointsReason, score, finishingTime, comment); + .getCompetitorDisplayName(), oneBaseRank, maxPointsReason, score, finishingTime, comment, + MergeState.OK); // TODO handle merge state return new CompetitorResultWithIdImpl(mCompetitor.getId(), result); } From 5e04623fa6c9cf0d4ff9b65e2b69eef77dee92b9 Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Fri, 27 Oct 2017 14:47:06 +0200 Subject: [PATCH 029/290] Bug 4346: First concept of replacing several arrow icons with ImageResources in different constellations --- .../images/mobile/arrow-down-grey.png | Bin 865 -> 0 bytes .../images/mobile/arrow-grey-right.png | Bin 308 -> 0 bytes .../partials/eventheader/EventHeader.gss | 4 ++-- .../eventheader/EventHeaderResources.java | 4 ++++ .../eventheader/dropdown__button--arrow@2x.png | Bin 0 -> 15031 bytes .../EventsOverviewRecentYear.ui.xml | 3 ++- .../EventsOverviewUpcoming.ui.xml | 3 ++- .../partials/old/EventRegattaLeaderboard.gss | 4 ++-- .../old/EventRegattaLeaderboardResources.java | 7 +++++++ .../desktop/partials/old}/arrow-down-yellow.png | Bin .../desktop/partials/old/arrow-up-yellow.png | Bin 0 -> 154 bytes .../partials/regattaheader/RegattaHeader.gss | 2 +- .../regattaheader/RegattaHeaderResources.java | 4 ++-- .../regattanavigation/RegattaNavigation.gss | 4 ++-- .../RegattaNavigationResources.java | 7 +++++++ .../arrow-down-filled-black.png | Bin .../arrow-down-filled-yellow.png | Bin .../desktop/partials/updates/UpdatesBox.gss | 2 +- .../partials/updates/UpdatesBoxResources.java | 4 ++-- .../partials/accordion/AccordionItem.ui.xml | 3 ++- .../EventOverviewRecentSeriesInfo.ui.xml | 3 ++- .../recents/EventsOverviewRecentYear.ui.xml | 3 ++- .../EventsOverviewRecentYearEvent.ui.xml | 3 ++- .../regattaStatus/RegattaStatusRace.ui.xml | 3 ++- .../sectionHeader/SectionHeaderContent.java | 3 ++- .../sectionHeader/SectionHeaderContent.ui.xml | 3 ++- .../upcoming/EventsOverviewUpcoming.ui.xml | 3 ++- .../upcoming/EventsOverviewUpcomingEvent.ui.xml | 3 ++- .../mobile/partials/updatesBox/UpdatesBox.gss | 2 +- .../updatesBox/UpdatesBoxResources.java | 4 ++-- .../shared/resources/SharedHomeResources.java | 8 ++++++++ .../home/shared/resources}/arrow-down-grey.png | Bin .../home/shared/resources}/arrow-grey-right.png | Bin 33 files changed, 63 insertions(+), 26 deletions(-) delete mode 100644 java/com.sap.sailing.gwt.ui/images/mobile/arrow-down-grey.png delete mode 100644 java/com.sap.sailing.gwt.ui/images/mobile/arrow-grey-right.png create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/dropdown__button--arrow@2x.png rename java/com.sap.sailing.gwt.ui/{images/home => src/main/java/com/sap/sailing/gwt/home/desktop/partials/old}/arrow-down-yellow.png (100%) create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/old/arrow-up-yellow.png rename java/com.sap.sailing.gwt.ui/{images/home => src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattanavigation}/arrow-down-filled-black.png (100%) rename java/com.sap.sailing.gwt.ui/{images/home => src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattanavigation}/arrow-down-filled-yellow.png (100%) rename java/com.sap.sailing.gwt.ui/{images/home => src/main/java/com/sap/sailing/gwt/home/shared/resources}/arrow-down-grey.png (100%) rename java/com.sap.sailing.gwt.ui/{images/home => src/main/java/com/sap/sailing/gwt/home/shared/resources}/arrow-grey-right.png (100%) diff --git a/java/com.sap.sailing.gwt.ui/images/mobile/arrow-down-grey.png b/java/com.sap.sailing.gwt.ui/images/mobile/arrow-down-grey.png deleted file mode 100644 index 85a2c44730492545103fb6e0633e97dfdc1bb3b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 865 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEjKx9jP7LeL$-D$|I14-?iy0WW zg+Z8+Vb&Z8pn}txArU1JzCKpT`MG+DDfvmMdKI|^K-CNkHWgMtW^QUpqC!P(PF}H9 zg{=};g%ywu64qBz04piUwpEJo4N!2-FG^J~)icpEP_pAvP*AWbN=dT{a&d!d2l8x{ zGD=Dctn~HE%ggo3jrH=2()A53EiLs8jP#9+bb%^#i!1X=5-W7`ij^UTz|3(;Elw`V zEGWs$&r<-Io0ybeT4JlD1hNPYpzh2qfLoMT4D}VzfBF@P1^R}12Kv}Em1L$NoQI+d zBm>a~_7%i38(`2_ITxiSmgE=BmTSintB$e@6$3ye)Ze#A{Nk!<{+phX2Zf2vwfLd2zYS zEysV))Sr+X^hA#DTivqET?~10hE3nN4ovy}c-z{wEc05o99@_!?$KLvP?l-sgmo6m z3-m9sr}LD!{(7{gVVein9McOTo~^}9a*Bm=w;p{py;o%Iy!CjG&YCwSnk%na%YQiM z5F(*8w{SP(K T{PnmhIN^J``njxgN@xNAvMerk diff --git a/java/com.sap.sailing.gwt.ui/images/mobile/arrow-grey-right.png b/java/com.sap.sailing.gwt.ui/images/mobile/arrow-grey-right.png deleted file mode 100644 index cb174da3416d277c0962be9a796a00c4b36de7c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 308 zcmeAS@N?(olHy`uVBq!ia0vp^oIotV!3-onPg`0Dq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N$@?z$e5NNY5k@0JY@F zZ0ZD30wqCy!3@VwiJre8aqXh`rK^{(h@ENZ5!MFEF(!GtyD)UH%6b4foCO|{#S9GG zLLkg|>2BR0prE~{i(?4Kb>DNId<+U4%ns#up8j8d^$1tdtd@YRHJ_jPJ>XD##3T0T x*NwWerwr+jS$SVP$b0G(q!PJ5lR0xM<9Si08G_$8T?ZP);OXk;vd$@?2>``CYhVBX diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeader.gss b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeader.gss index 6a43db38fd6..f04cf972899 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeader.gss +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeader.gss @@ -46,7 +46,7 @@ margin-left: 0.714285714285714em; height: 0.285714285714286em; width: 0.428571428571429em; - background-image: url("images/home/dropdown__button--arrow@2x.png"); + background-image: resourceUrl("dropdown"); background-position: center bottom; background-repeat: no-repeat; background-size: 100%; @@ -241,7 +241,7 @@ width: 0.8em; height: 0.533333333333333em; vertical-align: middle; - background-image: url("images/home/dropdown__button--arrow@2x.png"); + background-image: resourceUrl("dropdown"); background-size: 100%; background-repeat: no-repeat; background-position: center bottom; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeaderResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeaderResources.java index c4ccbc278e1..add5a74551f 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeaderResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeaderResources.java @@ -3,12 +3,16 @@ package com.sap.sailing.gwt.home.desktop.partials.eventheader; import com.google.gwt.core.client.GWT; import com.google.gwt.resources.client.ClientBundle; import com.google.gwt.resources.client.CssResource; +import com.google.gwt.resources.client.ImageResource; public interface EventHeaderResources extends ClientBundle { public static final EventHeaderResources INSTANCE = GWT.create(EventHeaderResources.class); @Source("EventHeader.gss") LocalCss css(); + + @Source("dropdown__button--arrow@2x.png") + ImageResource dropdown(); public interface LocalCss extends CssResource { String jsdropdown(); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/dropdown__button--arrow@2x.png b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/dropdown__button--arrow@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5ec5ecafb085fcbcfa3100f78888c67e1ae903e2 GIT binary patch literal 15031 zcmeI3PmB{)9LGmP2reN&G>VwWSb`Cyoj?6MlW9q9x4VlLHcP=pjW9d&x}DI@l$qIW zcLT{r6BFWrgm6&wV8n!YQPKD(;lM$RCYX33(HQigUNnjj59kTs%=FK%|9ES{@in{K z-@f<#ecyYZ_j|8%>B;H66C1|1jxh|gVQMlzgWtE{Uv}ME{CC|;pQrHKef7yh4#TX! z-}}9XIr|n?NbeY>S$DShtgKnJh^kw2DAKIev6^9&-OakH9YroXhvp449s29yr4VcA z>CkiWB44cMP{o*Bw$c9Oy(Mk=s3z&5-I+0^DPw~ga#gljtD277Oox158OL5T7h-*h zdo&%&dIPev#c4KY*@%rt5@C%OVr){12=PQxO73Ds{6EL1IFS$Yk{pl9yvVj*q0AVL z6k9LLGxc)7c)Fw0-i( z(QKpc8kWg=zUrK{;HE<%Z=lYrwXRydGmz=D*kOuXQ>}ACgy%*i6^nOHtJQ{PI_?bW zu59RlPHCx*xEbVF3$})^eEYB|IPUl&UQ!FuDvZV#k?9V#(zT9HeZj8!pmmKyRaC<% z4yGUsT}!=Uxt3G0MgZ(|kHqL2y~kmn^HA z3CeZ4J$p8n^UITcqNr+y=`Cre!u2P0OQ-9H@~Vq6UTKE~G0Y1kL6AjB=3`Isg3R;4 zBvAHw6fNB-FSR}5*Z`l6k`R+)NjWA#51{P#z(-M6U3FD1P}}QMEXq@+a-NZQzSttpZlw z4*nm^LoC1~up1s`(s1wzS_0#H>-MhK{peV4YrCUrta4*I+k-DPS=GFYJL9N$a~00N z=-O@FNd+0+K!IS$p02KZ2hvB6(WoHPJMN>7YGCE7Mw>WR*=?vc%Fg2xvAVk`@a;_; zJ%CnG&3U9}xHh|XLw}0Gd7D=?diO49?cLIL84i|!qHA*5vTLfFF>2~O;_BwS!gU+F zV=A4`1370^EgRoyC=*qz)7Vg0D}CJbrP4_qUY_ zyZciQ-8mI@_osF<5159V5nH46HG?eg<0^o$A3vg@Od=kS;+wC(xj$ptXrk(D-oRI? z;~f++*2?Mc7@Byfn;6AY^at}3K}RbwC@`DX%J(Ii--scC@x5Y7*kwCL{LC+K^nxE;vyn~0*VXLAjT9I z5fKznT#yDarnrcRpn&3nG>9?9MMMMz6c?mHj43W6A}FA^APr(naS;(g0mTJr5Mzpq zhzJTOE=YqIQ(QzuP(X1(8pN35A|iqUiVM;p#uOJ35fo5dkOncPxQK|LfZ~EQh%v=Q zL<9vC7oPGw_ah7=zs@iZ zS*H(wS-{#;Q~7ME`NJP)gs~NV)0&A3n~$ITV9%c)U*C6g=cgAgObcf(U%dX{z3(lm zufF@tPW6pPfB9!+qyKYo&17MMd7RyP=Bsm$tUUbv16Mvf_xI_yQ=4|3`1;KoH_xA1 zf9u8PPbl`cJ1X{fHy#Ub{P60;=35819k}+w@ikX&?}_cceDT!bYnP6fj%|B#?ZG3` fkFR~Sk*Qw&;-_y;ezG1 + .quickFix { padding: 0px 10px; @@ -26,7 +27,7 @@
- +
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventsupcoming/EventsOverviewUpcoming.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventsupcoming/EventsOverviewUpcoming.ui.xml index 91243e608ae..440dd6c52fd 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventsupcoming/EventsOverviewUpcoming.ui.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventsupcoming/EventsOverviewUpcoming.ui.xml @@ -3,6 +3,7 @@ + @@ -30,7 +31,7 @@
- +
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/old/EventRegattaLeaderboard.gss b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/old/EventRegattaLeaderboard.gss index c19abc8c77e..32150023059 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/old/EventRegattaLeaderboard.gss +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/old/EventRegattaLeaderboard.gss @@ -194,7 +194,7 @@ margin-right: 0.333333333333333em; background-repeat: no-repeat; background-position: center center; - background-image: url("images/home/arrow-down-yellow.png"); + background-image: resourceUrl("arrowDownYellow"); } .regattaleaderboard_header_itemascending:before, .regattaleaderboard_header_itemdata_elementascending:before { @@ -206,7 +206,7 @@ margin-right: 0.333333333333333em; background-repeat: no-repeat; background-position: center center; - background-image: url("images/home/arrow-up-yellow.png"); + background-image: resourceUrl("arrowUpYellow"); } .regattaleaderboard_header_table { width: 100%; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/old/EventRegattaLeaderboardResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/old/EventRegattaLeaderboardResources.java index 32653ee9e3d..782fbe5c718 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/old/EventRegattaLeaderboardResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/old/EventRegattaLeaderboardResources.java @@ -3,12 +3,19 @@ package com.sap.sailing.gwt.home.desktop.partials.old; import com.google.gwt.core.client.GWT; import com.google.gwt.resources.client.ClientBundle; import com.google.gwt.resources.client.CssResource; +import com.google.gwt.resources.client.ImageResource; public interface EventRegattaLeaderboardResources extends ClientBundle { public static final EventRegattaLeaderboardResources INSTANCE = GWT.create(EventRegattaLeaderboardResources.class); @Source("EventRegattaLeaderboard.gss") LocalCss css(); + + @Source("arrow-down-yellow.png") + ImageResource arrowDownYellow(); + + @Source("arrow-up-yellow.png") + ImageResource arrowUpYellow(); public interface LocalCss extends CssResource { String leaderboardcompetitor(); diff --git a/java/com.sap.sailing.gwt.ui/images/home/arrow-down-yellow.png b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/old/arrow-down-yellow.png similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/home/arrow-down-yellow.png rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/old/arrow-down-yellow.png diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/old/arrow-up-yellow.png b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/old/arrow-up-yellow.png new file mode 100644 index 0000000000000000000000000000000000000000..360e4007a6221a38f02d8f6f2d573f03bbec822d GIT binary patch literal 154 zcmeAS@N?(olHy`uVBq!ia0vp^d_c^}!3HFmd}T9%RHCPgV@SoVsb?;7HaPGwUuc+Y z(fs+2-?@p=J`;k?1C+lUzBD=Ngu7>aV^tG+J$Mb*!p+ z#4%A~ie6lYq0={$Lq`5Pg^OF1*4z%S6jycP6Tht=b8Z6n_2)lc0WD+jboFyt=akR{ E02wPeQ~&?~ literal 0 HcmV?d00001 diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattaheader/RegattaHeader.gss b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattaheader/RegattaHeader.gss index c6777ba0f40..bfbd4193f31 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattaheader/RegattaHeader.gss +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattaheader/RegattaHeader.gss @@ -100,7 +100,7 @@ text-align: right; padding: 0.666666666666667em; padding-right: 5.333333333333333em; - background-image: url("images/home/arrow-down-grey.png"); + background-image: resourceUrl("arrowDownGrey"); background-size: 1.333333333333333em 1.333333333333333em; background-position: center; background-repeat: no-repeat; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattaheader/RegattaHeaderResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattaheader/RegattaHeaderResources.java index 93faedeea4b..b04fbe470ce 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattaheader/RegattaHeaderResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattaheader/RegattaHeaderResources.java @@ -1,10 +1,10 @@ package com.sap.sailing.gwt.home.desktop.partials.regattaheader; import com.google.gwt.core.client.GWT; -import com.google.gwt.resources.client.ClientBundle; import com.google.gwt.resources.client.CssResource; +import com.sap.sailing.gwt.home.shared.resources.SharedHomeResources; -public interface RegattaHeaderResources extends ClientBundle { +public interface RegattaHeaderResources extends SharedHomeResources { public static final RegattaHeaderResources INSTANCE = GWT.create(RegattaHeaderResources.class); @Source("RegattaHeader.gss") diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattanavigation/RegattaNavigation.gss b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattanavigation/RegattaNavigation.gss index d902be63d69..6127af9fa69 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattanavigation/RegattaNavigation.gss +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattanavigation/RegattaNavigation.gss @@ -49,7 +49,7 @@ font-size: 0.866666666666667rem; text-align: right; margin-top: 0; - background: transparent url("images/home/arrow-down-filled-black.png") no-repeat; + background: transparent resourceUrl("arrowDownFilledBlack") no-repeat; background-position: 96%; background-size: 0.923076923076923em 0.538461538461538em; border: 1px solid transparent; @@ -65,7 +65,7 @@ background-color: #f2f2f2; } .regattanavigation_filter.jsdropdownactive { - background-image: url("images/home/arrow-down-filled-yellow.png"); + background-image: resourceUrl("arrowDownFilledYellow"); } .regattanavigation_filter.jsdropdownactive .regattanavigation_filter_dropdown { display: block; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattanavigation/RegattaNavigationResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattanavigation/RegattaNavigationResources.java index 03f153c1b43..471b3090248 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattanavigation/RegattaNavigationResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattanavigation/RegattaNavigationResources.java @@ -3,12 +3,19 @@ package com.sap.sailing.gwt.home.desktop.partials.regattanavigation; import com.google.gwt.core.client.GWT; import com.google.gwt.resources.client.ClientBundle; import com.google.gwt.resources.client.CssResource; +import com.google.gwt.resources.client.ImageResource; public interface RegattaNavigationResources extends ClientBundle { public static final RegattaNavigationResources INSTANCE = GWT.create(RegattaNavigationResources.class); @Source("RegattaNavigation.gss") LocalCss css(); + + @Source("arrow-down-filled-black.png") + ImageResource arrowDownFilledBlack(); + + @Source("arrow-down-filled-yellow.png") + ImageResource arrowDownFilledYellow(); public interface LocalCss extends CssResource { String jsdropdown(); diff --git a/java/com.sap.sailing.gwt.ui/images/home/arrow-down-filled-black.png b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattanavigation/arrow-down-filled-black.png similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/home/arrow-down-filled-black.png rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattanavigation/arrow-down-filled-black.png diff --git a/java/com.sap.sailing.gwt.ui/images/home/arrow-down-filled-yellow.png b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattanavigation/arrow-down-filled-yellow.png similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/home/arrow-down-filled-yellow.png rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattanavigation/arrow-down-filled-yellow.png diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/updates/UpdatesBox.gss b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/updates/UpdatesBox.gss index 68ece5712e6..4a98e76f294 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/updates/UpdatesBox.gss +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/updates/UpdatesBox.gss @@ -45,7 +45,7 @@ color: #0a0a0a; } .updatesbox_itemlink { - background-image: url("images/home/arrow-grey-right.png"); + background-image: resourceUrl("arrowRightGrey"); background-repeat: no-repeat; background-size: 9px 16px; background-position: 95% 50%; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/updates/UpdatesBoxResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/updates/UpdatesBoxResources.java index 378cb4ccd58..256f5df8e53 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/updates/UpdatesBoxResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/updates/UpdatesBoxResources.java @@ -1,10 +1,10 @@ package com.sap.sailing.gwt.home.desktop.partials.updates; import com.google.gwt.core.client.GWT; -import com.google.gwt.resources.client.ClientBundle; import com.google.gwt.resources.client.CssResource; +import com.sap.sailing.gwt.home.shared.resources.SharedHomeResources; -public interface UpdatesBoxResources extends ClientBundle { +public interface UpdatesBoxResources extends SharedHomeResources { public static final UpdatesBoxResources INSTANCE = GWT.create(UpdatesBoxResources.class); @Source("UpdatesBox.gss") diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/accordion/AccordionItem.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/accordion/AccordionItem.ui.xml index 7265fe6c5af..fd9c30b3e3c 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/accordion/AccordionItem.ui.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/accordion/AccordionItem.ui.xml @@ -2,10 +2,11 @@ +

- +
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/recents/EventOverviewRecentSeriesInfo.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/recents/EventOverviewRecentSeriesInfo.ui.xml index 5c471590b66..c7d7b71d1d9 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/recents/EventOverviewRecentSeriesInfo.ui.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/recents/EventOverviewRecentSeriesInfo.ui.xml @@ -3,13 +3,14 @@ +
- +
\ No newline at end of file diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/recents/EventsOverviewRecentYear.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/recents/EventsOverviewRecentYear.ui.xml index a50d8348c0e..1930e71dc49 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/recents/EventsOverviewRecentYear.ui.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/recents/EventsOverviewRecentYear.ui.xml @@ -3,6 +3,7 @@ xmlns:mp="urn:import:com.sap.sailing.gwt.home.mobile.partials" xmlns:s="urn:import:com.sap.sailing.gwt.home.client.shared"> +
-
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/recents/EventsOverviewRecentYearEvent.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/recents/EventsOverviewRecentYearEvent.ui.xml index eb3006d5ca2..58f66f98ef2 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/recents/EventsOverviewRecentYearEvent.ui.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/recents/EventsOverviewRecentYearEvent.ui.xml @@ -7,6 +7,7 @@ type="com.sap.sailing.gwt.common.client.SharedResources" /> +
- {i18n.goToEventOverview}
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/regattaStatus/RegattaStatusRace.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/regattaStatus/RegattaStatusRace.ui.xml index cab25b6e7d6..70b2bf72d03 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/regattaStatus/RegattaStatusRace.ui.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/regattaStatus/RegattaStatusRace.ui.xml @@ -4,6 +4,7 @@ +
@@ -30,7 +31,7 @@
- +
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/sectionHeader/SectionHeaderContent.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/sectionHeader/SectionHeaderContent.java index f935c88af85..5a2b70a3c11 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/sectionHeader/SectionHeaderContent.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/sectionHeader/SectionHeaderContent.java @@ -20,6 +20,7 @@ import com.sap.sailing.gwt.home.shared.partials.bubble.Bubble; import com.sap.sailing.gwt.home.shared.partials.bubble.Bubble.Direction; import com.sap.sailing.gwt.home.shared.partials.bubble.BubbleContentBoatClass; import com.sap.sailing.gwt.home.shared.partials.filter.AbstractSelectionFilter; +import com.sap.sailing.gwt.home.shared.resources.SharedHomeResources; import com.sap.sailing.gwt.home.shared.utils.CollapseAnimation; import com.sap.sailing.gwt.home.shared.utils.LabelTypeUtil; import com.sap.sse.gwt.client.LinkUtil; @@ -94,7 +95,7 @@ public class SectionHeaderContent extends Composite { animation.animate(collapsed); } }); - actionArrowUi.setSrc("images/mobile/arrow-down-grey.png"); + actionArrowUi.setSrc(SharedHomeResources.INSTANCE.arrowDownGrey().getSafeUri().asString()); actionArrowUi.addClassName(SectionHeaderResources.INSTANCE.css().accordion()); titleAndLabelContainerUi .addClassName(SectionHeaderResources.INSTANCE.css().sectionheader_item_adjust_title_right()); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/sectionHeader/SectionHeaderContent.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/sectionHeader/SectionHeaderContent.ui.xml index fc23b72cc9d..0c9d300b03a 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/sectionHeader/SectionHeaderContent.ui.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/sectionHeader/SectionHeaderContent.ui.xml @@ -3,6 +3,7 @@ +
@@ -17,7 +18,7 @@
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/upcoming/EventsOverviewUpcoming.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/upcoming/EventsOverviewUpcoming.ui.xml index e4d65742f73..d5d1413c89b 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/upcoming/EventsOverviewUpcoming.ui.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/upcoming/EventsOverviewUpcoming.ui.xml @@ -5,6 +5,7 @@ + @@ -17,7 +18,7 @@
- +
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/upcoming/EventsOverviewUpcomingEvent.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/upcoming/EventsOverviewUpcomingEvent.ui.xml index a881101438e..12d6ea157d0 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/upcoming/EventsOverviewUpcomingEvent.ui.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/upcoming/EventsOverviewUpcomingEvent.ui.xml @@ -5,6 +5,7 @@ + .holder { @@ -25,7 +26,7 @@
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/updatesBox/UpdatesBox.gss b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/updatesBox/UpdatesBox.gss index a05bc5e5f9b..683db58c985 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/updatesBox/UpdatesBox.gss +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/updatesBox/UpdatesBox.gss @@ -45,7 +45,7 @@ color: #0a0a0a; } .updatesbox_itemlink { - background-image: url("images/home/arrow-grey-right.png"); + background-image: resourceUrl("arrowRightGrey"); background-repeat: no-repeat; background-size: 9px 16px; background-position: 95% 50%; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/updatesBox/UpdatesBoxResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/updatesBox/UpdatesBoxResources.java index 046477e0f1e..283441e9247 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/updatesBox/UpdatesBoxResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/updatesBox/UpdatesBoxResources.java @@ -1,10 +1,10 @@ package com.sap.sailing.gwt.home.mobile.partials.updatesBox; import com.google.gwt.core.client.GWT; -import com.google.gwt.resources.client.ClientBundle; import com.google.gwt.resources.client.CssResource; +import com.sap.sailing.gwt.home.shared.resources.SharedHomeResources; -public interface UpdatesBoxResources extends ClientBundle { +public interface UpdatesBoxResources extends SharedHomeResources { public static final UpdatesBoxResources INSTANCE = GWT.create(UpdatesBoxResources.class); @Source("UpdatesBox.gss") diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/SharedHomeResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/SharedHomeResources.java index 616a794284b..2eea7a67e02 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/SharedHomeResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/SharedHomeResources.java @@ -8,6 +8,8 @@ public interface SharedHomeResources extends ClientBundle { public static final SharedHomeResources INSTANCE = GWT.create(SharedHomeResources.class); + public static final String GSS = "com/sap/sailing/gwt/home/shared/resources/SharedHomeRecources.gss"; + @Source("default_event_logo.jpg") ImageResource defaultEventLogoImage(); @@ -20,4 +22,10 @@ public interface SharedHomeResources extends ClientBundle { @Source("default_video_preview.jpg") ImageResource defaultVideoPreviewImage(); + @Source("arrow-down-grey.png") + ImageResource arrowDownGrey(); + + @Source("arrow-grey-right.png") + ImageResource arrowRightGrey(); + } diff --git a/java/com.sap.sailing.gwt.ui/images/home/arrow-down-grey.png b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/arrow-down-grey.png similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/home/arrow-down-grey.png rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/arrow-down-grey.png diff --git a/java/com.sap.sailing.gwt.ui/images/home/arrow-grey-right.png b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/arrow-grey-right.png similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/home/arrow-grey-right.png rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/arrow-grey-right.png From 7bc991cf0f27f4537103d74037a65d1bd5883791 Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Fri, 27 Oct 2017 15:33:50 +0200 Subject: [PATCH 030/290] Bug 4346: Removed icon that is now moved to another place --- .../images/home/dropdown__button--arrow@2x.png | Bin 15031 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 java/com.sap.sailing.gwt.ui/images/home/dropdown__button--arrow@2x.png diff --git a/java/com.sap.sailing.gwt.ui/images/home/dropdown__button--arrow@2x.png b/java/com.sap.sailing.gwt.ui/images/home/dropdown__button--arrow@2x.png deleted file mode 100644 index 5ec5ecafb085fcbcfa3100f78888c67e1ae903e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15031 zcmeI3PmB{)9LGmP2reN&G>VwWSb`Cyoj?6MlW9q9x4VlLHcP=pjW9d&x}DI@l$qIW zcLT{r6BFWrgm6&wV8n!YQPKD(;lM$RCYX33(HQigUNnjj59kTs%=FK%|9ES{@in{K z-@f<#ecyYZ_j|8%>B;H66C1|1jxh|gVQMlzgWtE{Uv}ME{CC|;pQrHKef7yh4#TX! z-}}9XIr|n?NbeY>S$DShtgKnJh^kw2DAKIev6^9&-OakH9YroXhvp449s29yr4VcA z>CkiWB44cMP{o*Bw$c9Oy(Mk=s3z&5-I+0^DPw~ga#gljtD277Oox158OL5T7h-*h zdo&%&dIPev#c4KY*@%rt5@C%OVr){12=PQxO73Ds{6EL1IFS$Yk{pl9yvVj*q0AVL z6k9LLGxc)7c)Fw0-i( z(QKpc8kWg=zUrK{;HE<%Z=lYrwXRydGmz=D*kOuXQ>}ACgy%*i6^nOHtJQ{PI_?bW zu59RlPHCx*xEbVF3$})^eEYB|IPUl&UQ!FuDvZV#k?9V#(zT9HeZj8!pmmKyRaC<% z4yGUsT}!=Uxt3G0MgZ(|kHqL2y~kmn^HA z3CeZ4J$p8n^UITcqNr+y=`Cre!u2P0OQ-9H@~Vq6UTKE~G0Y1kL6AjB=3`Isg3R;4 zBvAHw6fNB-FSR}5*Z`l6k`R+)NjWA#51{P#z(-M6U3FD1P}}QMEXq@+a-NZQzSttpZlw z4*nm^LoC1~up1s`(s1wzS_0#H>-MhK{peV4YrCUrta4*I+k-DPS=GFYJL9N$a~00N z=-O@FNd+0+K!IS$p02KZ2hvB6(WoHPJMN>7YGCE7Mw>WR*=?vc%Fg2xvAVk`@a;_; zJ%CnG&3U9}xHh|XLw}0Gd7D=?diO49?cLIL84i|!qHA*5vTLfFF>2~O;_BwS!gU+F zV=A4`1370^EgRoyC=*qz)7Vg0D}CJbrP4_qUY_ zyZciQ-8mI@_osF<5159V5nH46HG?eg<0^o$A3vg@Od=kS;+wC(xj$ptXrk(D-oRI? z;~f++*2?Mc7@Byfn;6AY^at}3K}RbwC@`DX%J(Ii--scC@x5Y7*kwCL{LC+K^nxE;vyn~0*VXLAjT9I z5fKznT#yDarnrcRpn&3nG>9?9MMMMz6c?mHj43W6A}FA^APr(naS;(g0mTJr5Mzpq zhzJTOE=YqIQ(QzuP(X1(8pN35A|iqUiVM;p#uOJ35fo5dkOncPxQK|LfZ~EQh%v=Q zL<9vC7oPGw_ah7=zs@iZ zS*H(wS-{#;Q~7ME`NJP)gs~NV)0&A3n~$ITV9%c)U*C6g=cgAgObcf(U%dX{z3(lm zufF@tPW6pPfB9!+qyKYo&17MMd7RyP=Bsm$tUUbv16Mvf_xI_yQ=4|3`1;KoH_xA1 zf9u8PPbl`cJ1X{fHy#Ub{P60;=35819k}+w@ikX&?}_cceDT!bYnP6fj%|B#?ZG3` fkFR~Sk*Qw&;-_y;ezG1 Date: Fri, 27 Oct 2017 15:42:28 +0200 Subject: [PATCH 031/290] Bug 4346: Check icon is now used via ImageResource --- .../desktop/partials/eventheader/EventHeader.gss | 2 +- .../partials/eventheader/EventHeaderResources.java | 4 ++-- .../regattanavigation/RegattaNavigation.gss | 2 +- .../RegattaNavigationResources.java | 4 ++-- .../desktop/resources/SharedDesktopResources.java | 11 +++++++++++ .../home/desktop/resources}/dropdown__check@2x.png | Bin 6 files changed, 17 insertions(+), 6 deletions(-) create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/resources/SharedDesktopResources.java rename java/com.sap.sailing.gwt.ui/{images/home => src/main/java/com/sap/sailing/gwt/home/desktop/resources}/dropdown__check@2x.png (100%) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeader.gss b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeader.gss index f04cf972899..f1d2e8ee7bc 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeader.gss +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeader.gss @@ -107,7 +107,7 @@ top: 50%; height: 0.933333333333333em; width: 0.933333333333333em; - background-image: url("images/home/dropdown__check@2x.png"); + background-image: resourceUrl("dropdownCheck"); background-repeat: no-repeat; background-position: right center; background-size: contain; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeaderResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeaderResources.java index add5a74551f..3aeb206924e 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeaderResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeaderResources.java @@ -1,11 +1,11 @@ package com.sap.sailing.gwt.home.desktop.partials.eventheader; import com.google.gwt.core.client.GWT; -import com.google.gwt.resources.client.ClientBundle; import com.google.gwt.resources.client.CssResource; import com.google.gwt.resources.client.ImageResource; +import com.sap.sailing.gwt.home.desktop.resources.SharedDesktopResources; -public interface EventHeaderResources extends ClientBundle { +public interface EventHeaderResources extends SharedDesktopResources { public static final EventHeaderResources INSTANCE = GWT.create(EventHeaderResources.class); @Source("EventHeader.gss") diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattanavigation/RegattaNavigation.gss b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattanavigation/RegattaNavigation.gss index 6127af9fa69..f42078ac10b 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattanavigation/RegattaNavigation.gss +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattanavigation/RegattaNavigation.gss @@ -98,7 +98,7 @@ text-decoration: underline; } .regattanavigation_filter_dropdown_linkactive { - background: url("images/home/dropdown__check@2x.png") no-repeat; + background: resourceUrl("dropdownCheck") no-repeat; background-position: 95%; background-size: 1.2em 0.933333333333333em; } \ No newline at end of file diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattanavigation/RegattaNavigationResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattanavigation/RegattaNavigationResources.java index 471b3090248..fde39f16006 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattanavigation/RegattaNavigationResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattanavigation/RegattaNavigationResources.java @@ -1,11 +1,11 @@ package com.sap.sailing.gwt.home.desktop.partials.regattanavigation; import com.google.gwt.core.client.GWT; -import com.google.gwt.resources.client.ClientBundle; import com.google.gwt.resources.client.CssResource; import com.google.gwt.resources.client.ImageResource; +import com.sap.sailing.gwt.home.desktop.resources.SharedDesktopResources; -public interface RegattaNavigationResources extends ClientBundle { +public interface RegattaNavigationResources extends SharedDesktopResources { public static final RegattaNavigationResources INSTANCE = GWT.create(RegattaNavigationResources.class); @Source("RegattaNavigation.gss") diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/resources/SharedDesktopResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/resources/SharedDesktopResources.java new file mode 100644 index 00000000000..a2f12ead36a --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/resources/SharedDesktopResources.java @@ -0,0 +1,11 @@ +package com.sap.sailing.gwt.home.desktop.resources; + +import com.google.gwt.resources.client.ImageResource; +import com.sap.sailing.gwt.home.shared.resources.SharedHomeResources; + +public interface SharedDesktopResources extends SharedHomeResources { + + @Source("dropdown__check@2x.png") + ImageResource dropdownCheck(); + +} diff --git a/java/com.sap.sailing.gwt.ui/images/home/dropdown__check@2x.png b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/resources/dropdown__check@2x.png similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/home/dropdown__check@2x.png rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/resources/dropdown__check@2x.png From 7a719d92fd7e6a2161fc0844825de3ff511ac8e1 Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Fri, 27 Oct 2017 16:09:45 +0200 Subject: [PATCH 032/290] Bug 4346: breadcrumb-arrow icon is now used via ImageResource --- .../desktop/partials/eventheader/EventHeader.gss | 2 +- .../desktop/partials/seriesheader/SeriesHeader.gss | 2 +- .../seriesheader/SeriesHeaderResources.java | 4 ++-- .../desktop/resources/SharedDesktopResources.java | 3 +++ .../home/desktop/resources}/breadcrumb-arrow.png | Bin 5 files changed, 7 insertions(+), 4 deletions(-) rename java/com.sap.sailing.gwt.ui/{images/home => src/main/java/com/sap/sailing/gwt/home/desktop/resources}/breadcrumb-arrow.png (100%) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeader.gss b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeader.gss index f1d2e8ee7bc..b64ad8a63ca 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeader.gss +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeader.gss @@ -141,7 +141,7 @@ width: 1.333333333333333em; border-right: 1px solid #cfcfcf; background-color: #dedede; - background-image: url("images/home/breadcrumb-arrow__back.png"); + background-image: resourceUrl("breadcrumbArrow"); background-position: center center; background-repeat: no-repeat; background-size: 50%; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/seriesheader/SeriesHeader.gss b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/seriesheader/SeriesHeader.gss index 14a144f1b81..e93b8dd37f4 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/seriesheader/SeriesHeader.gss +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/seriesheader/SeriesHeader.gss @@ -26,7 +26,7 @@ width: 1.333333333333333em; border-right: 1px solid #cfcfcf; background-color: #dedede; - background-image: url("images/home/breadcrumb-arrow__back.png"); + background-image: resourceUrl("breadcrumbArrow"); background-position: center center; background-repeat: no-repeat; background-size: 50%; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/seriesheader/SeriesHeaderResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/seriesheader/SeriesHeaderResources.java index 58e791e8773..6d518a52fe1 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/seriesheader/SeriesHeaderResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/seriesheader/SeriesHeaderResources.java @@ -1,10 +1,10 @@ package com.sap.sailing.gwt.home.desktop.partials.seriesheader; import com.google.gwt.core.client.GWT; -import com.google.gwt.resources.client.ClientBundle; import com.google.gwt.resources.client.CssResource; +import com.sap.sailing.gwt.home.desktop.resources.SharedDesktopResources; -public interface SeriesHeaderResources extends ClientBundle { +public interface SeriesHeaderResources extends SharedDesktopResources { public static final SeriesHeaderResources INSTANCE = GWT.create(SeriesHeaderResources.class); @Source("SeriesHeader.gss") diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/resources/SharedDesktopResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/resources/SharedDesktopResources.java index a2f12ead36a..01363c02b57 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/resources/SharedDesktopResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/resources/SharedDesktopResources.java @@ -7,5 +7,8 @@ public interface SharedDesktopResources extends SharedHomeResources { @Source("dropdown__check@2x.png") ImageResource dropdownCheck(); + + @Source("breadcrumb-arrow.png") + ImageResource breadcrumbArrow(); } diff --git a/java/com.sap.sailing.gwt.ui/images/home/breadcrumb-arrow.png b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/resources/breadcrumb-arrow.png similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/home/breadcrumb-arrow.png rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/resources/breadcrumb-arrow.png From bec9ce5b224907bb1f847289f4fba4a3a4411c3d Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Fri, 27 Oct 2017 16:37:26 +0200 Subject: [PATCH 033/290] Bug 4346: Changed several SVG icons to be used via DataResource --- .../media/SailingFullscreenViewer.java | 3 ++- .../AbstractLeaderboardFullscreenViewer.java | 5 +++-- .../partials/old/EventRegattaLeaderboard.gss | 8 ++++---- .../old/EventRegattaLeaderboardResources.java | 4 ++-- ...OldLeaderboardDelegateFullscreenViewer.java | 3 ++- .../resources/SharedDesktopResources.java | 9 +++++++++ .../gwt/home/desktop/resources}/liveraces.svg | 0 .../MobileFullscreenGallery.ui.xml | 5 +++-- .../fullscreen/FullscreenContainer.ui.xml | 3 ++- .../shared/resources/SharedHomeResources.java | 18 ++++++++++++++++++ .../gwt/home/shared/resources}/close.svg | 0 .../gwt/home/shared/resources}/fullscreen.svg | 0 .../gwt/home/shared/resources}/reload.svg | 0 .../gwt/home/shared/resources}/settings.svg | 0 14 files changed, 45 insertions(+), 13 deletions(-) rename java/com.sap.sailing.gwt.ui/{images/home => src/main/java/com/sap/sailing/gwt/home/desktop/resources}/liveraces.svg (100%) rename java/com.sap.sailing.gwt.ui/{images/home => src/main/java/com/sap/sailing/gwt/home/shared/resources}/close.svg (100%) rename java/com.sap.sailing.gwt.ui/{images/home => src/main/java/com/sap/sailing/gwt/home/shared/resources}/fullscreen.svg (100%) rename java/com.sap.sailing.gwt.ui/{images/home => src/main/java/com/sap/sailing/gwt/home/shared/resources}/reload.svg (100%) rename java/com.sap.sailing.gwt.ui/{images/home => src/main/java/com/sap/sailing/gwt/home/shared/resources}/settings.svg (100%) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/media/SailingFullscreenViewer.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/media/SailingFullscreenViewer.java index 4ee433da454..f1a6372f0c5 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/media/SailingFullscreenViewer.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/media/SailingFullscreenViewer.java @@ -15,6 +15,7 @@ import com.sap.sailing.gwt.home.desktop.app.DesktopPlacesNavigator; import com.sap.sailing.gwt.home.shared.app.PlaceNavigation; import com.sap.sailing.gwt.home.shared.partials.fullscreen.FullscreenContainer; import com.sap.sailing.gwt.home.shared.places.event.EventDefaultPlace; +import com.sap.sailing.gwt.home.shared.resources.SharedHomeResources; import com.sap.sse.gwt.client.controls.carousel.ImageCarousel.FullscreenViewer; /** @@ -29,7 +30,7 @@ public class SailingFullscreenViewer extends FullscreenContainer implements LeaderboardDelegate { - protected final Image autoRefreshControl = new Image("images/home/reload.svg"); - protected final Image settingsControl = new Image("images/home/settings.svg"); + protected final Image autoRefreshControl = new Image(SharedHomeResources.INSTANCE.reload().getSafeUri()); + protected final Image settingsControl = new Image(SharedHomeResources.INSTANCE.settings().getSafeUri()); private final static BusyIndicatorResources RESOURCES = GWT.create(BusyIndicatorResources.class); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/old/EventRegattaLeaderboard.gss b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/old/EventRegattaLeaderboard.gss index 32150023059..810a0eae1fd 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/old/EventRegattaLeaderboard.gss +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/old/EventRegattaLeaderboard.gss @@ -99,7 +99,7 @@ } .regattaleaderboard_meta_reload { background-color: #9f9f9f; - background-image: url("images/home/reload.svg"); + background-image: resourceUrl("reload"); } .regattaleaderboard_meta_reload_live { background-color: red; @@ -138,7 +138,7 @@ } .regattaleaderboard_meta_settings_button { background-color: #9f9f9f; - background-image: url("images/home/settings.svg"); + background-image: resourceUrl("settings"); } .regattaleaderboard_table { margin-bottom: 20px; @@ -242,9 +242,9 @@ } .regattaleaderboard_meta_fullscreen_button { background-color: #9f9f9f; - background-image: url("images/home/fullscreen.svg"); + background-image: resourceUrl("fullscreen"); } .regattaleaderboard_meta_liveraces_button { background-color: #9f9f9f; - background-image: url("images/home/liveraces.svg"); + background-image: resourceUrl("liveraces"); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/old/EventRegattaLeaderboardResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/old/EventRegattaLeaderboardResources.java index 782fbe5c718..ee43a0ba756 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/old/EventRegattaLeaderboardResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/old/EventRegattaLeaderboardResources.java @@ -1,11 +1,11 @@ package com.sap.sailing.gwt.home.desktop.partials.old; import com.google.gwt.core.client.GWT; -import com.google.gwt.resources.client.ClientBundle; import com.google.gwt.resources.client.CssResource; import com.google.gwt.resources.client.ImageResource; +import com.sap.sailing.gwt.home.desktop.resources.SharedDesktopResources; -public interface EventRegattaLeaderboardResources extends ClientBundle { +public interface EventRegattaLeaderboardResources extends SharedDesktopResources { public static final EventRegattaLeaderboardResources INSTANCE = GWT.create(EventRegattaLeaderboardResources.class); @Source("EventRegattaLeaderboard.gss") diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/old/leaderboard/OldLeaderboardDelegateFullscreenViewer.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/old/leaderboard/OldLeaderboardDelegateFullscreenViewer.java index 6589ae44ce0..a22f9e86722 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/old/leaderboard/OldLeaderboardDelegateFullscreenViewer.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/old/leaderboard/OldLeaderboardDelegateFullscreenViewer.java @@ -11,6 +11,7 @@ import com.google.gwt.user.client.ui.SimplePanel; import com.google.gwt.user.client.ui.Widget; import com.sap.sailing.gwt.home.desktop.partials.old.AbstractLeaderboardFullscreenViewer; import com.sap.sailing.gwt.home.desktop.partials.old.leaderboard.OldLeaderboard.OldLeaderboardDelegate; +import com.sap.sailing.gwt.home.desktop.resources.SharedDesktopResources; public class OldLeaderboardDelegateFullscreenViewer extends AbstractLeaderboardFullscreenViewer implements OldLeaderboardDelegate { @@ -22,7 +23,7 @@ public class OldLeaderboardDelegateFullscreenViewer extends AbstractLeaderboardF private static OldLeaderboardDelegateFullscreenViewerUiBinder uiBinder = GWT .create(OldLeaderboardDelegateFullscreenViewerUiBinder.class); - private final Image showLiveRacesControl = new Image("images/home/liveraces.svg"); + private final Image showLiveRacesControl = new Image(SharedDesktopResources.INSTANCE.liveraces().getSafeUri()); private final Label hasLiveRace = new Label(); private final Widget headerWidget; private final ContentLayout contentLayout = new ContentLayout(); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/resources/SharedDesktopResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/resources/SharedDesktopResources.java index 01363c02b57..d096b08faa1 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/resources/SharedDesktopResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/resources/SharedDesktopResources.java @@ -1,14 +1,23 @@ package com.sap.sailing.gwt.home.desktop.resources; +import com.google.gwt.core.client.GWT; +import com.google.gwt.resources.client.DataResource; +import com.google.gwt.resources.client.DataResource.MimeType; import com.google.gwt.resources.client.ImageResource; import com.sap.sailing.gwt.home.shared.resources.SharedHomeResources; public interface SharedDesktopResources extends SharedHomeResources { + public static final SharedDesktopResources INSTANCE = GWT.create(SharedDesktopResources.class); + @Source("dropdown__check@2x.png") ImageResource dropdownCheck(); @Source("breadcrumb-arrow.png") ImageResource breadcrumbArrow(); + + @Source("liveraces.svg") + @MimeType("image/svg+xml") + DataResource liveraces(); } diff --git a/java/com.sap.sailing.gwt.ui/images/home/liveraces.svg b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/resources/liveraces.svg similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/home/liveraces.svg rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/resources/liveraces.svg diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/imagegallery/MobileFullscreenGallery.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/imagegallery/MobileFullscreenGallery.ui.xml index 64b863bd918..7216e3d8bdc 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/imagegallery/MobileFullscreenGallery.ui.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/imagegallery/MobileFullscreenGallery.ui.xml @@ -1,6 +1,7 @@ + .popup { position: fixed !important; @@ -37,8 +38,8 @@ - - + + diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/fullscreen/FullscreenContainer.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/fullscreen/FullscreenContainer.ui.xml index 04990195aec..bfaf45aa04c 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/fullscreen/FullscreenContainer.ui.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/fullscreen/FullscreenContainer.ui.xml @@ -1,6 +1,7 @@ + .popup { position: fixed !important; @@ -85,7 +86,7 @@
- +
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/SharedHomeResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/SharedHomeResources.java index 2eea7a67e02..a3ac4ef0d04 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/SharedHomeResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/SharedHomeResources.java @@ -2,6 +2,8 @@ package com.sap.sailing.gwt.home.shared.resources; import com.google.gwt.core.client.GWT; import com.google.gwt.resources.client.ClientBundle; +import com.google.gwt.resources.client.DataResource; +import com.google.gwt.resources.client.DataResource.MimeType; import com.google.gwt.resources.client.ImageResource; public interface SharedHomeResources extends ClientBundle { @@ -28,4 +30,20 @@ public interface SharedHomeResources extends ClientBundle { @Source("arrow-grey-right.png") ImageResource arrowRightGrey(); + @Source("close.svg") + @MimeType("image/svg+xml") + DataResource close(); + + @Source("reload.svg") + @MimeType("image/svg+xml") + DataResource reload(); + + @Source("settings.svg") + @MimeType("image/svg+xml") + DataResource settings(); + + @Source("fullscreen.svg") + @MimeType("image/svg+xml") + DataResource fullscreen(); + } diff --git a/java/com.sap.sailing.gwt.ui/images/home/close.svg b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/close.svg similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/home/close.svg rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/close.svg diff --git a/java/com.sap.sailing.gwt.ui/images/home/fullscreen.svg b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/fullscreen.svg similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/home/fullscreen.svg rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/fullscreen.svg diff --git a/java/com.sap.sailing.gwt.ui/images/home/reload.svg b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/reload.svg similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/home/reload.svg rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/reload.svg diff --git a/java/com.sap.sailing.gwt.ui/images/home/settings.svg b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/settings.svg similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/home/settings.svg rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/settings.svg From 7235adf922fd9ac79765a5c7586a7ff00d383c8e Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Fri, 27 Oct 2017 16:52:06 +0200 Subject: [PATCH 034/290] Bug 4346: Changed user account icons to be used via DataResource --- .../info/LoggedInUserInfoViewImpl.java | 3 ++- .../SharedAuthenticationResources.java | 19 +++++++++++++++++++ .../ui/authentication/resource}/edit.svg | 0 .../authentication/resource}/userdefault.svg | 0 .../userdetails/UserAccountDetails.java | 3 ++- .../userdetails/UseraccountDetails.gss | 2 +- .../UseraccountDetailsResources.java | 4 ++-- .../shared/userheader/AbstractUserHeader.java | 3 ++- 8 files changed, 28 insertions(+), 6 deletions(-) create mode 100644 java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/resource/SharedAuthenticationResources.java rename java/{com.sap.sailing.gwt.ui/images/home => com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/resource}/edit.svg (100%) rename java/{com.sap.sailing.gwt.ui/images/home => com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/resource}/userdefault.svg (100%) diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/info/LoggedInUserInfoViewImpl.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/info/LoggedInUserInfoViewImpl.java index c25c4583356..b82ac1f8489 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/info/LoggedInUserInfoViewImpl.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/info/LoggedInUserInfoViewImpl.java @@ -12,6 +12,7 @@ import com.google.gwt.user.client.ui.Widget; import com.sap.sse.gwt.common.CommonSharedResources; import com.sap.sse.security.ui.authentication.UserManagementResources; import com.sap.sse.security.ui.authentication.app.AuthenticationContext; +import com.sap.sse.security.ui.authentication.resource.SharedAuthenticationResources; public class LoggedInUserInfoViewImpl extends Composite implements LoggedInUserInfoView { @@ -40,7 +41,7 @@ public class LoggedInUserInfoViewImpl extends Composite implements LoggedInUserI @Override public void setUserInfo(AuthenticationContext userManagementContext) { - userImageUi.getStyle().setBackgroundImage("url('images/home/userdefault.svg')"); + userImageUi.getStyle().setBackgroundImage("url('" + SharedAuthenticationResources.INSTANCE.userdefault().getSafeUri().asString() + "')"); userRealnameUi.setInnerText(userManagementContext.getUserTitle()); userUsernameUi.setInnerText(userManagementContext.getUserSubtitle()); diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/resource/SharedAuthenticationResources.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/resource/SharedAuthenticationResources.java new file mode 100644 index 00000000000..0595e3ccbea --- /dev/null +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/resource/SharedAuthenticationResources.java @@ -0,0 +1,19 @@ +package com.sap.sse.security.ui.authentication.resource; + +import com.google.gwt.core.shared.GWT; +import com.google.gwt.resources.client.ClientBundle; +import com.google.gwt.resources.client.DataResource; +import com.google.gwt.resources.client.DataResource.MimeType; + +public interface SharedAuthenticationResources extends ClientBundle { + + public static SharedAuthenticationResources INSTANCE = GWT.create(SharedAuthenticationResources.class); + + @Source("edit.svg") + @MimeType("image/svg+xml") + DataResource edit(); + + @Source("userdefault.svg") + @MimeType("image/svg+xml") + DataResource userdefault(); +} diff --git a/java/com.sap.sailing.gwt.ui/images/home/edit.svg b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/resource/edit.svg similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/home/edit.svg rename to java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/resource/edit.svg diff --git a/java/com.sap.sailing.gwt.ui/images/home/userdefault.svg b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/resource/userdefault.svg similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/home/userdefault.svg rename to java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/resource/userdefault.svg diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/userprofile/desktop/userdetails/UserAccountDetails.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/userprofile/desktop/userdetails/UserAccountDetails.java index 867411c413a..dd077eedbf0 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/userprofile/desktop/userdetails/UserAccountDetails.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/userprofile/desktop/userdetails/UserAccountDetails.java @@ -6,6 +6,7 @@ import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; import com.google.gwt.user.client.ui.Widget; import com.sap.sse.gwt.common.CommonSharedResources; +import com.sap.sse.security.ui.authentication.resource.SharedAuthenticationResources; import com.sap.sse.security.ui.shared.UserDTO; import com.sap.sse.security.ui.userprofile.shared.userdetails.AbstractUserDetails; @@ -34,6 +35,6 @@ public class UserAccountDetails extends AbstractUserDetails { // TODO correct message // editImageLinkUi.setTitle("TODO picture of: " + currentUser.getName()); // TODO use image from user when field is available - editImageLinkUi.getStyle().setBackgroundImage("url(images/home/userdefault.svg)"); + editImageLinkUi.getStyle().setBackgroundImage("url('" + SharedAuthenticationResources.INSTANCE.userdefault().getSafeUri().asString() + "')"); } } diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/userprofile/desktop/userdetails/UseraccountDetails.gss b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/userprofile/desktop/userdetails/UseraccountDetails.gss index b716f5109bf..7224b5b901b 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/userprofile/desktop/userdetails/UseraccountDetails.gss +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/userprofile/desktop/userdetails/UseraccountDetails.gss @@ -18,7 +18,7 @@ right: 0; width: 2em; height: 2em; - background-image: url("images/home/edit.svg"); + background-image: resourceUrl("edit"); background-color: #efaa00; background-repeat: no-repeat; background-size: contain; diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/userprofile/desktop/userdetails/UseraccountDetailsResources.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/userprofile/desktop/userdetails/UseraccountDetailsResources.java index f47574821a1..bb5881ab637 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/userprofile/desktop/userdetails/UseraccountDetailsResources.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/userprofile/desktop/userdetails/UseraccountDetailsResources.java @@ -1,10 +1,10 @@ package com.sap.sse.security.ui.userprofile.desktop.userdetails; import com.google.gwt.core.client.GWT; -import com.google.gwt.resources.client.ClientBundle; import com.google.gwt.resources.client.CssResource; +import com.sap.sse.security.ui.authentication.resource.SharedAuthenticationResources; -public interface UseraccountDetailsResources extends ClientBundle { +public interface UseraccountDetailsResources extends SharedAuthenticationResources { public static final UseraccountDetailsResources INSTANCE = GWT.create(UseraccountDetailsResources.class); @Source("UseraccountDetails.gss") diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/userprofile/shared/userheader/AbstractUserHeader.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/userprofile/shared/userheader/AbstractUserHeader.java index e559d3471be..55f5e49f81b 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/userprofile/shared/userheader/AbstractUserHeader.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/userprofile/shared/userheader/AbstractUserHeader.java @@ -7,6 +7,7 @@ import com.google.gwt.uibinder.client.UiHandler; import com.google.gwt.user.client.ui.Composite; import com.sap.sse.security.ui.authentication.app.AuthenticationContext; import com.sap.sse.security.ui.authentication.app.NeedsAuthenticationContext; +import com.sap.sse.security.ui.authentication.resource.SharedAuthenticationResources; /** * Base view class of the user header. This class implements the shared logic of the desktop and mobile @@ -30,7 +31,7 @@ public class AbstractUserHeader extends Composite implements NeedsAuthentication // TODO correct message // imageUi.setTitle("TODO picture of: " + currentUser.getName()); // TODO use image from user when field is available - imageUi.getStyle().setBackgroundImage("url(images/home/userdefault.svg)"); + imageUi.getStyle().setBackgroundImage("url('" + SharedAuthenticationResources.INSTANCE.userdefault().getSafeUri().asString() + "')"); titleUi.setInnerText(authenticationContext.getUserTitle()); subtitleUi.setInnerText(authenticationContext.getUserSubtitle()); From aa2fe75e3492e8be7642e06e8ed99c37ecd100b4 Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Fri, 27 Oct 2017 18:07:07 +0200 Subject: [PATCH 035/290] Bug 4032: Fixed a bug that caused an unwanted page refresh --- .../ui/authentication/AuthenticationManagerImpl.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/AuthenticationManagerImpl.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/AuthenticationManagerImpl.java index 81de687b92f..d170b5f4921 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/AuthenticationManagerImpl.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/AuthenticationManagerImpl.java @@ -153,8 +153,10 @@ public class AuthenticationManagerImpl implements AuthenticationManager { public void onSuccess(SuccessInfo result) { if (result.isSuccessful()) { callback.onSuccess(result); - // when a user logs in we explicitly switch to the user's locale event if a locale is given by the URL - redirectIfLocaleIsSetAndLocaleIsNotGivenInTheURL(result.getUserDTO().getLocale()); + if (ExperimentalFeatures.REFRESH_ON_LOCALE_CHANGE_IN_USER_PROFILE) { + // when a user logs in we explicitly switch to the user's locale event if a locale is given by the URL + redirectIfLocaleIsSetAndLocaleIsNotGivenInTheURL(result.getUserDTO().getLocale()); + } } else { if (SuccessInfo.FAILED_TO_LOGIN.equals(result.getMessage())) { view.setErrorMessage(StringMessages.INSTANCE.failedToSignIn()); From fd88c50df19164520d3586eafe5fd2e2d2cc955f Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Fri, 27 Oct 2017 18:08:01 +0200 Subject: [PATCH 036/290] Bug 4032: Explicitly setting the path of the GWT_LOCALE cookie to make it work consistently for different web contexts --- .../com/sap/sse/security/ui/server/LocaleInjectionFilter.java | 1 + .../sap/sse/security/ui/server/UserManagementServiceImpl.java | 1 + 2 files changed, 2 insertions(+) diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/server/LocaleInjectionFilter.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/server/LocaleInjectionFilter.java index 939c5deae20..6461c90a875 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/server/LocaleInjectionFilter.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/server/LocaleInjectionFilter.java @@ -57,6 +57,7 @@ public class LocaleInjectionFilter implements Filter { final Cookie cookie = new Cookie(UserManagementConstants.LOCALE_COOKIE_NAME, preferredLocale.toLanguageTag()); cookie.setMaxAge(-1); + cookie.setPath("/"); resp.addCookie(cookie); } } diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/server/UserManagementServiceImpl.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/server/UserManagementServiceImpl.java index 46f8ec750d5..5961f54cd91 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/server/UserManagementServiceImpl.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/server/UserManagementServiceImpl.java @@ -127,6 +127,7 @@ public class UserManagementServiceImpl extends RemoteServiceServlet implements U getHttpSession().invalidate(); final Cookie cookie = new Cookie(UserManagementConstants.LOCALE_COOKIE_NAME, ""); cookie.setMaxAge(0); + cookie.setPath("/"); getThreadLocalResponse().addCookie(cookie); logger.info("Invalidated HTTP session"); return new SuccessInfo(true, "Logged out.", /* redirectURL */ null, null); From dddc0b5e4250799d9779301c8f879a5d586d7ffb Mon Sep 17 00:00:00 2001 From: Benjamin Barth Date: Thu, 2 Nov 2017 14:15:12 +0100 Subject: [PATCH 037/290] bug 4032 Just did some small release note improvements --- .../whatsnew/resources/SailingAnalyticsNotes.html | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/places/whatsnew/resources/SailingAnalyticsNotes.html b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/places/whatsnew/resources/SailingAnalyticsNotes.html index c1d7a08c72a..3166cedf8ab 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/places/whatsnew/resources/SailingAnalyticsNotes.html +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/places/whatsnew/resources/SailingAnalyticsNotes.html @@ -15,11 +15,12 @@ the grouping dimension. If that was the last dimension removed, the user is asked to provide a new grouping dimension. -
  • A user's language preference now also affects the website's language if one is set in the user profile. - This preference formerly only affected the language of notification mails. - Be aware that when signing in, the page will not be forced to be shown in the user's preferred language. - It will only take effect when refreshing the page or opening a new one, to prevent the state of the currently opened page to get lost. - When signing out, the language preference will also stop to take effect. +
  • The language preference set in the user profile (if any), now also affects the website's language. Formerly, + this preference affected the language of notification mails only. + Be aware of the fact, that signing in will nor force the page to be shown in the user's preferred language. + It will only take effect when refreshing the page manually or opening a new one, in order to prevent the + state of the currently opened page to get lost. + After a sign out (and another page reload) the language preference will stop to take effect.
  • From cce9a34a8194dbace4953b44e3b896bf762580d4 Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Mon, 6 Nov 2017 14:21:38 +0100 Subject: [PATCH 038/290] Bug 4346: Changed social sharing icons to be used via ImageResource --- .../desktop/partials/sharing/SharingButtons.gss | 6 +++--- .../partials/sharing/SharingButtonsResources.java | 10 ++++++++++ .../home/desktop/partials/sharing}/email-icon.png | Bin .../desktop/partials/sharing}/facebook-icon.png | Bin .../home/desktop/partials/sharing}/twitter-icon.png | Bin 5 files changed, 13 insertions(+), 3 deletions(-) rename java/com.sap.sailing.gwt.ui/{images/home => src/main/java/com/sap/sailing/gwt/home/desktop/partials/sharing}/email-icon.png (100%) rename java/com.sap.sailing.gwt.ui/{images/home => src/main/java/com/sap/sailing/gwt/home/desktop/partials/sharing}/facebook-icon.png (100%) rename java/com.sap.sailing.gwt.ui/{images/home => src/main/java/com/sap/sailing/gwt/home/desktop/partials/sharing}/twitter-icon.png (100%) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/sharing/SharingButtons.gss b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/sharing/SharingButtons.gss index 04d4564e036..1e46d85c5bb 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/sharing/SharingButtons.gss +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/sharing/SharingButtons.gss @@ -13,7 +13,7 @@ } .eventheader_sharing_itememail { background-color: #f0ab00; - background-image: url("images/home/email-icon.png"); + background-image: resourceUrl("email"); } .eventheader_sharing_itememail:hover, .eventheader_sharing_itememail:focus { @@ -21,7 +21,7 @@ } .eventheader_sharing_itemtwitter { background-color: #32b5e2; - background-image: url("images/home/twitter-icon.png"); + background-image: resourceUrl("twitter"); } .eventheader_sharing_itemtwitter:hover, .eventheader_sharing_itemtwitter:focus { @@ -29,7 +29,7 @@ } .eventheader_sharing_itemfacebook { background-color: #3b5998; - background-image: url("images/home/facebook-icon.png"); + background-image: resourceUrl("facebook"); } .eventheader_sharing_itemfacebook:hover, .eventheader_sharing_itemfacebook:focus { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/sharing/SharingButtonsResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/sharing/SharingButtonsResources.java index 280afd2fbec..f6d3a307cb6 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/sharing/SharingButtonsResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/sharing/SharingButtonsResources.java @@ -3,12 +3,22 @@ package com.sap.sailing.gwt.home.desktop.partials.sharing; import com.google.gwt.core.client.GWT; import com.google.gwt.resources.client.ClientBundle; import com.google.gwt.resources.client.CssResource; +import com.google.gwt.resources.client.ImageResource; public interface SharingButtonsResources extends ClientBundle { public static final SharingButtonsResources INSTANCE = GWT.create(SharingButtonsResources.class); @Source("SharingButtons.gss") LocalCss css(); + + @Source("email-icon.png") + ImageResource email(); + + @Source("facebook-icon.png") + ImageResource facebook(); + + @Source("twitter-icon.png") + ImageResource twitter(); public interface LocalCss extends CssResource { String eventheader_sharing(); diff --git a/java/com.sap.sailing.gwt.ui/images/home/email-icon.png b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/sharing/email-icon.png similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/home/email-icon.png rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/sharing/email-icon.png diff --git a/java/com.sap.sailing.gwt.ui/images/home/facebook-icon.png b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/sharing/facebook-icon.png similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/home/facebook-icon.png rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/sharing/facebook-icon.png diff --git a/java/com.sap.sailing.gwt.ui/images/home/twitter-icon.png b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/sharing/twitter-icon.png similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/home/twitter-icon.png rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/sharing/twitter-icon.png From 18239502aa1ade9142bd4d6fdede777fc27f45be Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Mon, 6 Nov 2017 14:32:40 +0100 Subject: [PATCH 039/290] Bug 4346: Changed social footer icons to be used via ImageResource --- .../desktop/partials/socialfooter/SocialFooter.ui.xml | 5 +++-- .../home/mobile/partials/socialfooter/SocialFooter.ui.xml | 5 +++-- .../gwt/home/shared/resources/SharedHomeResources.java | 8 ++++++++ .../sailing/gwt/home/shared/resources}/facebook-logo.svg | 0 .../sailing/gwt/home/shared/resources}/twitter-logo.svg | 0 5 files changed, 14 insertions(+), 4 deletions(-) rename java/com.sap.sailing.gwt.ui/{images/home => src/main/java/com/sap/sailing/gwt/home/shared/resources}/facebook-logo.svg (100%) rename java/com.sap.sailing.gwt.ui/{images/home => src/main/java/com/sap/sailing/gwt/home/shared/resources}/twitter-logo.svg (100%) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/socialfooter/SocialFooter.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/socialfooter/SocialFooter.ui.xml index 0dbed52ff4f..f74bec830db 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/socialfooter/SocialFooter.ui.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/socialfooter/SocialFooter.ui.xml @@ -4,6 +4,7 @@ xmlns:s="urn:import:com.sap.sailing.gwt.home.client.shared"> + @@ -14,7 +15,7 @@
    - +
    @@ -25,7 +26,7 @@
    - +
    diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/socialfooter/SocialFooter.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/socialfooter/SocialFooter.ui.xml index 16989c71521..571c090a8e2 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/socialfooter/SocialFooter.ui.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/socialfooter/SocialFooter.ui.xml @@ -3,6 +3,7 @@ + @@ -14,7 +15,7 @@
    - +
    @@ -25,7 +26,7 @@
    - +
    diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/SharedHomeResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/SharedHomeResources.java index a3ac4ef0d04..3f4e77ad678 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/SharedHomeResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/SharedHomeResources.java @@ -46,4 +46,12 @@ public interface SharedHomeResources extends ClientBundle { @MimeType("image/svg+xml") DataResource fullscreen(); + @Source("facebook-logo.svg") + @MimeType("image/svg+xml") + DataResource facebookLogo(); + + @Source("twitter-logo.svg") + @MimeType("image/svg+xml") + DataResource twitterLogo(); + } diff --git a/java/com.sap.sailing.gwt.ui/images/home/facebook-logo.svg b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/facebook-logo.svg similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/home/facebook-logo.svg rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/facebook-logo.svg diff --git a/java/com.sap.sailing.gwt.ui/images/home/twitter-logo.svg b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/twitter-logo.svg similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/home/twitter-logo.svg rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/twitter-logo.svg From 958c0e367658b20bfbb8743115fb140a5a42c68d Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Mon, 6 Nov 2017 14:43:53 +0100 Subject: [PATCH 040/290] Bug 4346: Changed social login icons to be used via DataResource --- .../sse/security/ui/authentication/UserManagement.gss | 4 ++-- .../ui/authentication/UserManagementResources.java | 10 ++++++++++ .../sap/sse/security/ui/authentication}/facebook.svg | 0 .../com/sap/sse/security/ui/authentication}/google.svg | 0 4 files changed, 12 insertions(+), 2 deletions(-) rename java/{com.sap.sailing.gwt.ui/images/home => com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication}/facebook.svg (100%) rename java/{com.sap.sailing.gwt.ui/images/home => com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication}/google.svg (100%) diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/UserManagement.gss b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/UserManagement.gss index 0f046547fd7..ef402af2ae4 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/UserManagement.gss +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/UserManagement.gss @@ -184,7 +184,7 @@ a.form_social_button_facebook:hover { background-color: #355089; } a.form_social_button_facebook:before { - background-image: url(images/home/facebook.svg); + background-image: resourceUrl("facebook"); } a.form_social_button_google { background-color: #de5342; @@ -193,7 +193,7 @@ a.form_social_button_google:hover { background-color: #da3d29; } a.form_social_button_google:before { - background-image: url(images/home/google.svg); + background-image: resourceUrl("google"); } .info_user { overflow: hidden; diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/UserManagementResources.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/UserManagementResources.java index 722b817f77f..fcf297b6172 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/UserManagementResources.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/UserManagementResources.java @@ -3,6 +3,8 @@ package com.sap.sse.security.ui.authentication; import com.google.gwt.core.client.GWT; import com.google.gwt.resources.client.ClientBundle; import com.google.gwt.resources.client.CssResource; +import com.google.gwt.resources.client.DataResource; +import com.google.gwt.resources.client.DataResource.MimeType; /** * Resources used by the authentication framework. @@ -13,6 +15,14 @@ public interface UserManagementResources extends ClientBundle { @Source("UserManagement.gss") LocalCss css(); + + @Source("facebook.svg") + @MimeType("image/svg+xml") + DataResource facebook(); + + @Source("google.svg") + @MimeType("image/svg+xml") + DataResource google(); public interface LocalCss extends CssResource { String flyover(); diff --git a/java/com.sap.sailing.gwt.ui/images/home/facebook.svg b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/facebook.svg similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/home/facebook.svg rename to java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/facebook.svg diff --git a/java/com.sap.sailing.gwt.ui/images/home/google.svg b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/google.svg similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/home/google.svg rename to java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/google.svg From e2d062ebfc12aa0269b18a24e75db4c17a8f3207 Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Mon, 6 Nov 2017 15:40:51 +0100 Subject: [PATCH 041/290] Bug 4346: Changed media icons to be used via DataResource --- .../desktop/partials/racelist/RaceList.gss | 30 +++++++++++++ .../racelist/RaceListColumnFactory.java | 8 ++-- .../racelist/RaceListContainer.ui.xml | 40 ++---------------- .../partials/racelist/RaceListResources.java | 10 ++++- .../partials/regattaheader/RegattaHeader.gss | 38 +++++++++++++++++ .../regattaheader/RegattaHeader.ui.xml | 8 ++-- .../RegattaHeaderBubbleContentLegend.ui.xml | 39 +++-------------- .../regattaheader/RegattaHeaderResources.java | 14 +++++- .../resources/SharedDesktopResources.java | 13 +++++- .../home/desktop/resources}/icon-audio.png | Bin .../home/desktop/resources}/icon-video.png | Bin .../gwt/home/desktop/resources}/icon-wind.png | Bin .../home/desktop/resources}/raw_gps_fixes.png | Bin 13 files changed, 117 insertions(+), 83 deletions(-) rename java/com.sap.sailing.gwt.ui/{images/home => src/main/java/com/sap/sailing/gwt/home/desktop/resources}/icon-audio.png (100%) rename java/com.sap.sailing.gwt.ui/{images/home => src/main/java/com/sap/sailing/gwt/home/desktop/resources}/icon-video.png (100%) rename java/com.sap.sailing.gwt.ui/{images/home => src/main/java/com/sap/sailing/gwt/home/desktop/resources}/icon-wind.png (100%) rename java/com.sap.sailing.gwt.ui/{images/home => src/main/java/com/sap/sailing/gwt/home/desktop/resources}/raw_gps_fixes.png (100%) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/racelist/RaceList.gss b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/racelist/RaceList.gss index 33566e9022b..9332a62743b 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/racelist/RaceList.gss +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/racelist/RaceList.gss @@ -230,4 +230,34 @@ img.race_item_flag { } .racesListHideColumn > * { display: none !important; +} +.iconGPS, .iconWind, .iconVideo, .iconAudio{ + position: relative; + display: none; + margin-left: 0.666666666666667em; + padding-left: 2.333333333333333em; + background-size: 1.666666666666667rem 1.666666666666667rem; + background-position: left; + background-repeat: no-repeat; +} +.iconGPS { + background-image: resourceUrl('gpsFixes'); +} +.iconWind { + background-image: resourceUrl('wind'); +} +.iconVideo { + background-image: resourceUrl('video'); + border-left: 1px solid #ccc; +} +.iconAudio { + background-image: resourceUrl('audio'); + border-left: 1px solid #ccc; +} +.legend { + text-align: right; + vertical-align: baseline; + line-height: 1.333em; + padding-right:0px; + margin: 0 0 .5em; } \ No newline at end of file diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/racelist/RaceListColumnFactory.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/racelist/RaceListColumnFactory.java index 67bff5d364b..7026c8c53b2 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/racelist/RaceListColumnFactory.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/racelist/RaceListColumnFactory.java @@ -19,7 +19,6 @@ import com.google.gwt.safehtml.client.SafeHtmlTemplates; import com.google.gwt.safehtml.shared.SafeHtml; import com.google.gwt.safehtml.shared.SafeHtmlBuilder; import com.google.gwt.safehtml.shared.SafeUri; -import com.google.gwt.safehtml.shared.UriUtils; import com.google.gwt.user.cellview.client.SafeHtmlHeader; import com.sap.sailing.domain.common.SortingOrder; import com.sap.sailing.gwt.home.communication.event.LiveRaceDTO; @@ -36,6 +35,7 @@ import com.sap.sailing.gwt.home.desktop.partials.racelist.RaceListResources.Loca import com.sap.sailing.gwt.home.desktop.partials.raceviewerlaunchpad.RaceviewerLaunchPadCell; import com.sap.sailing.gwt.home.desktop.partials.raceviewerlaunchpad.RaceviewerLaunchPadController; import com.sap.sailing.gwt.home.desktop.places.event.EventView; +import com.sap.sailing.gwt.home.desktop.resources.SharedDesktopResources; import com.sap.sailing.gwt.home.shared.utils.HomeSailingFlagsBuilder; import com.sap.sailing.gwt.regattaoverview.client.FlagsMeaningExplanator; import com.sap.sailing.gwt.ui.client.FlagImageResolver; @@ -570,9 +570,9 @@ public class RaceListColumnFactory { } private static abstract class DataCountColumn extends SortableRaceListColumn { - private static final SafeUri ICON_WIND = UriUtils.fromTrustedString("images/home/icon-wind.png"); - private static final SafeUri ICON_VIDEO = UriUtils.fromTrustedString("images/home/icon-video.png"); - private static final SafeUri ICON_AUDIO = UriUtils.fromTrustedString("images/home/icon-audio.png"); + private static final SafeUri ICON_WIND = SharedDesktopResources.INSTANCE.wind().getSafeUri(); + private static final SafeUri ICON_VIDEO = SharedDesktopResources.INSTANCE.video().getSafeUri(); + private static final SafeUri ICON_AUDIO = SharedDesktopResources.INSTANCE.audio().getSafeUri(); private DataCountColumn(final SafeUri imageUri, RaceListColumnComparator comparator) { super(new SafeHtmlHeader(TEMPLATE.imageHeader(CSS.raceslist_head_itemflag(), imageUri)), new AbstractCell() { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/racelist/RaceListContainer.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/racelist/RaceListContainer.ui.xml index f77d773a8ae..cfb9c874016 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/racelist/RaceListContainer.ui.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/racelist/RaceListContainer.ui.xml @@ -5,44 +5,12 @@ - - .iconGPS, .iconWind, .iconVideo, .iconAudio{ - position: relative; - display: none; - margin-left: 0.666666666666667em; - padding-left: 2.333333333333333em; - background-size: 1.666666666666667rem 1.666666666666667rem; - background-position: left; - background-repeat: no-repeat; - } - .iconGPS { - background-image:url('images/home/raw_gps_fixes.png'); - } - .iconWind { - background-image:url('images/home/icon-wind.png'); - } - .iconVideo { - background-image:url('images/home/icon-video.png'); - border-left: 1px solid #ccc; - } - .iconAudio { - background-image:url('images/home/icon-audio.png'); - border-left: 1px solid #ccc; - } - .legend { - text-align: right; - vertical-align: baseline; - line-height: 1.333em; - padding-right:0px; - margin: 0 0 .5em; - } -

    -
    -
    -
    -
    +
    +
    +
    +
    diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/racelist/RaceListResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/racelist/RaceListResources.java index 2570e15c311..d9548ae6ff0 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/racelist/RaceListResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/racelist/RaceListResources.java @@ -1,10 +1,10 @@ package com.sap.sailing.gwt.home.desktop.partials.racelist; import com.google.gwt.core.client.GWT; -import com.google.gwt.resources.client.ClientBundle; import com.google.gwt.resources.client.CssResource; +import com.sap.sailing.gwt.home.desktop.resources.SharedDesktopResources; -public interface RaceListResources extends ClientBundle { +public interface RaceListResources extends SharedDesktopResources { public static final RaceListResources INSTANCE = GWT.create(RaceListResources.class); @Source("RaceList.gss") @@ -51,5 +51,11 @@ public interface RaceListResources extends ClientBundle { String racesListIcon(); String racesListHideColumn(); + + String iconGPS(); + String iconWind(); + String iconVideo(); + String iconAudio(); + String legend(); } } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattaheader/RegattaHeader.gss b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattaheader/RegattaHeader.gss index bfbd4193f31..2e52f509b83 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattaheader/RegattaHeader.gss +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattaheader/RegattaHeader.gss @@ -170,3 +170,41 @@ img.regattaheader_update_title_icon { .regattaheader_update_timestamp { font-size: 12px; } +.iconHeaderGPS, .iconHeaderWind, .iconHeaderVideo, .iconHeaderAudio { + pointer-events: none; +} +.iconHeaderGPS, .iconGPS { + background-image: resourceUrl('gpsFixes'); +} +.iconHeaderWind, .iconWind { + background-image: resourceUrl('wind'); +} +.iconHeaderVideo, .iconVideo { + background-image: resourceUrl('video'); +} +.iconHeaderAudio, .iconAudio { + background-image: resourceUrl('audio'); +} + +.iconGPS, .iconWind, .iconVideo, .iconAudio { + line-height: 1.5em; + position: relative; + height:1.666666666666667rem; + display: inline-block; + padding-left: 2.333333333333333em; + background-size: 1.666666666666667rem 1.666666666666667rem; + background-position: left bottom; + background-repeat: no-repeat; +} +.iconWind { + margin-left: 0.666666666666667em; + border-left: 1px solid #ccc; +} +.iconVideo { + padding-top: 0.277777777777778em; +} +.iconAudio { + margin-left: 0.666666666666667em; + border-left: 1px solid #ccc; + padding-top: 0.277777777777778em; +} \ No newline at end of file diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattaheader/RegattaHeader.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattaheader/RegattaHeader.ui.xml index e8979872c35..43e5f24b5a2 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattaheader/RegattaHeader.ui.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattaheader/RegattaHeader.ui.xml @@ -12,10 +12,10 @@
    -
    -
    -
    -
    +
    +
    +
    +
    diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattaheader/RegattaHeaderBubbleContentLegend.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattaheader/RegattaHeaderBubbleContentLegend.ui.xml index 40f156ed706..51d0c39b6c8 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattaheader/RegattaHeaderBubbleContentLegend.ui.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattaheader/RegattaHeaderBubbleContentLegend.ui.xml @@ -1,48 +1,19 @@ - - .iconGPS, .iconWind, .iconVideo, .iconAudio { - line-height: 1.5em; - position: relative; - height:1.666666666666667rem; - display: inline-block; - padding-left: 2.333333333333333em; - background-size: 1.666666666666667rem 1.666666666666667rem; - background-position: left bottom; - background-repeat: no-repeat; - } - .iconGPS { - background-image:url('images/home/raw_gps_fixes.png'); - } - .iconWind { - margin-left: 0.666666666666667em; - background-image:url('images/home/icon-wind.png'); - border-left: 1px solid #ccc; - } - .iconVideo { - background-image:url('images/home/icon-video.png'); - padding-top: 0.277777777777778em; - } - .iconAudio { - margin-left: 0.666666666666667em; - background-image:url('images/home/icon-audio.png'); - border-left: 1px solid #ccc; - padding-top: 0.277777777777778em; - } - + - + - + - + - +
    diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattaheader/RegattaHeaderResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattaheader/RegattaHeaderResources.java index b04fbe470ce..369f29552aa 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattaheader/RegattaHeaderResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattaheader/RegattaHeaderResources.java @@ -2,9 +2,9 @@ package com.sap.sailing.gwt.home.desktop.partials.regattaheader; import com.google.gwt.core.client.GWT; import com.google.gwt.resources.client.CssResource; -import com.sap.sailing.gwt.home.shared.resources.SharedHomeResources; +import com.sap.sailing.gwt.home.desktop.resources.SharedDesktopResources; -public interface RegattaHeaderResources extends SharedHomeResources { +public interface RegattaHeaderResources extends SharedDesktopResources { public static final RegattaHeaderResources INSTANCE = GWT.create(RegattaHeaderResources.class); @Source("RegattaHeader.gss") @@ -29,5 +29,15 @@ public interface RegattaHeaderResources extends SharedHomeResources { String regattaheader_update_title(); String regattaheader_update_title_icon(); String regattaheader_update_timestamp(); + + String iconHeaderGPS(); + String iconHeaderWind(); + String iconHeaderVideo(); + String iconHeaderAudio(); + + String iconGPS(); + String iconWind(); + String iconVideo(); + String iconAudio(); } } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/resources/SharedDesktopResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/resources/SharedDesktopResources.java index d096b08faa1..c087c520d92 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/resources/SharedDesktopResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/resources/SharedDesktopResources.java @@ -19,5 +19,16 @@ public interface SharedDesktopResources extends SharedHomeResources { @Source("liveraces.svg") @MimeType("image/svg+xml") DataResource liveraces(); - + + @Source("icon-audio.png") + ImageResource audio(); + + @Source("icon-video.png") + ImageResource video(); + + @Source("icon-wind.png") + ImageResource wind(); + + @Source("raw_gps_fixes.png") + ImageResource gpsFixes(); } diff --git a/java/com.sap.sailing.gwt.ui/images/home/icon-audio.png b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/resources/icon-audio.png similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/home/icon-audio.png rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/resources/icon-audio.png diff --git a/java/com.sap.sailing.gwt.ui/images/home/icon-video.png b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/resources/icon-video.png similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/home/icon-video.png rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/resources/icon-video.png diff --git a/java/com.sap.sailing.gwt.ui/images/home/icon-wind.png b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/resources/icon-wind.png similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/home/icon-wind.png rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/resources/icon-wind.png diff --git a/java/com.sap.sailing.gwt.ui/images/home/raw_gps_fixes.png b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/resources/raw_gps_fixes.png similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/home/raw_gps_fixes.png rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/resources/raw_gps_fixes.png From 4cc4566188bc26b87561ca9735de6cabe2e4f1d8 Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Mon, 6 Nov 2017 16:10:14 +0100 Subject: [PATCH 042/290] Bug 4346: Changed statistics icons to be used via DataResource --- .../racemap/PreRaceRacemapViewImpl.java | 16 +++--- .../statistic/PreRaceStatisticsBox.java | 16 +++--- .../PreRaceStatisticsBoxResources.java | 30 ++++++++++- .../racemap/statistic}/icon-competitors.svg | 0 .../racemap/statistic}/icon-legs.svg | 0 .../racemap/statistic}/icon-length.svg | 0 .../racemap/statistic}/icon-raceviewer.svg | 0 .../racemap/statistic}/icon-time.svg | 0 .../racemap/statistic}/icon-wind.svg | 0 .../AbstractStatisticsBoxPresenter.java | 25 +++++---- .../EventStatisticsBoxPresenter.java | 28 ++++------ .../statistics/StatisticsBoxConstants.java | 13 ----- .../statistics/StatisticsBoxResources.java | 52 +++++++++++++++++++ .../YearStatisticsBoxPresenter.java | 28 ++++------ .../partials/statistics}/fastest_sailor.svg | 0 .../statistics}/icon_averageSpeed.svg | 0 .../partials/statistics}/icon_racesCount.svg | 0 .../statistics}/icon_regattasFought.svg | 0 .../statistics}/icon_trackedCount.svg | 0 .../shared/partials/statistics}/max_speed.svg | 0 .../partials/statistics}/raw_gps_fixes.svg | 0 .../partials/statistics}/statistics.svg | 0 .../partials/statistics}/strongest_wind.svg | 0 .../shared/partials/statistics}/sum_miles.svg | 0 24 files changed, 128 insertions(+), 80 deletions(-) rename java/com.sap.sailing.gwt.ui/{images/mobile => src/main/java/com/sap/sailing/gwt/autoplay/client/places/screens/preliveraceloop/racemap/statistic}/icon-competitors.svg (100%) rename java/com.sap.sailing.gwt.ui/{images/mobile => src/main/java/com/sap/sailing/gwt/autoplay/client/places/screens/preliveraceloop/racemap/statistic}/icon-legs.svg (100%) rename java/com.sap.sailing.gwt.ui/{images/mobile => src/main/java/com/sap/sailing/gwt/autoplay/client/places/screens/preliveraceloop/racemap/statistic}/icon-length.svg (100%) rename java/com.sap.sailing.gwt.ui/{images/mobile => src/main/java/com/sap/sailing/gwt/autoplay/client/places/screens/preliveraceloop/racemap/statistic}/icon-raceviewer.svg (100%) rename java/com.sap.sailing.gwt.ui/{images/mobile => src/main/java/com/sap/sailing/gwt/autoplay/client/places/screens/preliveraceloop/racemap/statistic}/icon-time.svg (100%) rename java/com.sap.sailing.gwt.ui/{images/mobile => src/main/java/com/sap/sailing/gwt/autoplay/client/places/screens/preliveraceloop/racemap/statistic}/icon-wind.svg (100%) delete mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics/StatisticsBoxConstants.java create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics/StatisticsBoxResources.java rename java/com.sap.sailing.gwt.ui/{images/mobile => src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics}/fastest_sailor.svg (100%) rename java/com.sap.sailing.gwt.ui/{images/mobile => src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics}/icon_averageSpeed.svg (100%) rename java/com.sap.sailing.gwt.ui/{images/mobile => src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics}/icon_racesCount.svg (100%) rename java/com.sap.sailing.gwt.ui/{images/mobile => src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics}/icon_regattasFought.svg (100%) rename java/com.sap.sailing.gwt.ui/{images/mobile => src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics}/icon_trackedCount.svg (100%) rename java/com.sap.sailing.gwt.ui/{images/mobile => src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics}/max_speed.svg (100%) rename java/com.sap.sailing.gwt.ui/{images/mobile => src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics}/raw_gps_fixes.svg (100%) rename java/com.sap.sailing.gwt.ui/{images/mobile => src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics}/statistics.svg (100%) rename java/com.sap.sailing.gwt.ui/{images/mobile => src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics}/strongest_wind.svg (100%) rename java/com.sap.sailing.gwt.ui/{images/mobile => src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics}/sum_miles.svg (100%) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/places/screens/preliveraceloop/racemap/PreRaceRacemapViewImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/places/screens/preliveraceloop/racemap/PreRaceRacemapViewImpl.java index 51b12aff50c..e864517ca2c 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/places/screens/preliveraceloop/racemap/PreRaceRacemapViewImpl.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/places/screens/preliveraceloop/racemap/PreRaceRacemapViewImpl.java @@ -10,8 +10,8 @@ import com.google.gwt.user.client.ui.ResizeComposite; import com.google.gwt.user.client.ui.Widget; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.gwt.autoplay.client.places.screens.preliveraceloop.racemap.statistic.PreRaceStatisticsBox; +import com.sap.sailing.gwt.autoplay.client.places.screens.preliveraceloop.racemap.statistic.PreRaceStatisticsBoxResources; import com.sap.sailing.gwt.home.communication.event.sixtyinch.GetSixtyInchStatisticDTO; -import com.sap.sailing.gwt.home.shared.partials.statistics.StatisticsBoxConstants; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.shared.racemap.RaceMap; import com.sap.sse.gwt.client.panels.ResizableFlowPanel; @@ -53,23 +53,23 @@ public class PreRaceRacemapViewImpl extends ResizeComposite implements PreRaceRa racemap.onResize(); statistics.clear(); - statistics.addItem(PreRaceStatisticsBox.ICON_COMPETITORS, StringMessages.INSTANCE.competitors(), + statistics.addItem(PreRaceStatisticsBoxResources.INSTANCE.competitors(), StringMessages.INSTANCE.competitors(), result.getCompetitors()); - statistics.addItem(StatisticsBoxConstants.ICON_WIND_FIX, StringMessages.INSTANCE.wind(), windSpeed); - statistics.addItem(PreRaceStatisticsBox.ICON_WIND, StringMessages.INSTANCE.averageDirection(), windDegree); - statistics.addItem(PreRaceStatisticsBox.ICON_LEGS, StringMessages.INSTANCE.legs(), result.getLegs()); + statistics.addItem(PreRaceStatisticsBoxResources.INSTANCE.strongestWind(), StringMessages.INSTANCE.wind(), windSpeed); + statistics.addItem(PreRaceStatisticsBoxResources.INSTANCE.wind(), StringMessages.INSTANCE.averageDirection(), windDegree); + statistics.addItem(PreRaceStatisticsBoxResources.INSTANCE.legs(), StringMessages.INSTANCE.legs(), result.getLegs()); try { - statistics.addItem(StatisticsBoxConstants.ICON_SUM_MILES, StringMessages.INSTANCE.estimatedDistance(), + statistics.addItem(PreRaceStatisticsBoxResources.INSTANCE.sumMiles(), StringMessages.INSTANCE.estimatedDistance(), compactFormat.format(result.getDistance().getSeaMiles()) + " " + StringMessages.INSTANCE.seaMiles()); } catch (Exception e) { } try { - statistics.addItem(PreRaceStatisticsBox.ICON_TIME, StringMessages.INSTANCE.estimatedTime(), + statistics.addItem(PreRaceStatisticsBoxResources.INSTANCE.time(), StringMessages.INSTANCE.estimatedTime(), compactFormat.format(result.getDuration().asMinutes()) + " " + StringMessages.INSTANCE.minutes()); } catch (Exception e) { } - statistics.addQRItem(PreRaceStatisticsBox.ICON_RACEVIEWER, StringMessages.INSTANCE.raceViewer(), url); + statistics.addQRItem(PreRaceStatisticsBoxResources.INSTANCE.raceviewer(), StringMessages.INSTANCE.raceViewer(), url); } @Override diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/places/screens/preliveraceloop/racemap/statistic/PreRaceStatisticsBox.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/places/screens/preliveraceloop/racemap/statistic/PreRaceStatisticsBox.java index 9993a0fffaf..d4f9c06ca75 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/places/screens/preliveraceloop/racemap/statistic/PreRaceStatisticsBox.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/places/screens/preliveraceloop/racemap/statistic/PreRaceStatisticsBox.java @@ -2,19 +2,13 @@ package com.sap.sailing.gwt.autoplay.client.places.screens.preliveraceloop.racem import com.google.gwt.core.client.GWT; import com.google.gwt.dom.client.UListElement; +import com.google.gwt.resources.client.DataResource; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.Widget; public class PreRaceStatisticsBox extends Composite { - - public static final String ICON_COMPETITORS = "images/mobile/icon-competitors.svg"; - public static final String ICON_LEGS = "images/mobile/icon-legs.svg"; - public static final String ICON_LENGTH = "images/mobile/icon-length.svg"; - public static final String ICON_RACEVIEWER = "images/mobile/icon-raceviewer.svg"; - public static final String ICON_TIME = "images/mobile/icon-time.svg"; - public static final String ICON_WIND = "images/mobile/icon-wind.svg"; private static StatisticsBoxUiBinder uiBinder = GWT.create(StatisticsBoxUiBinder.class); @@ -33,11 +27,15 @@ public class PreRaceStatisticsBox extends Composite { itemContainerUi.removeAllChildren(); } + public void addItem(DataResource icon, String name, Object payload) { + addItem(icon.getSafeUri().asString(), name, payload); + } + public void addItem(String iconUrl, String name, Object payload) { itemContainerUi.appendChild(new PreRaceStatisticsBoxItem(iconUrl, name, payload).getElement()); } - public void addQRItem(String iconUrl, String name, String url) { - itemContainerUi.appendChild(new PreRaceStatisticsBoxQR(iconUrl, name, url).getElement()); + public void addQRItem(DataResource icon, String name, String url) { + itemContainerUi.appendChild(new PreRaceStatisticsBoxQR(icon.getSafeUri().asString(), name, url).getElement()); } } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/places/screens/preliveraceloop/racemap/statistic/PreRaceStatisticsBoxResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/places/screens/preliveraceloop/racemap/statistic/PreRaceStatisticsBoxResources.java index be46db0d90e..a4d24094d9c 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/places/screens/preliveraceloop/racemap/statistic/PreRaceStatisticsBoxResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/places/screens/preliveraceloop/racemap/statistic/PreRaceStatisticsBoxResources.java @@ -1,14 +1,40 @@ package com.sap.sailing.gwt.autoplay.client.places.screens.preliveraceloop.racemap.statistic; import com.google.gwt.core.client.GWT; -import com.google.gwt.resources.client.ClientBundle; import com.google.gwt.resources.client.CssResource; +import com.google.gwt.resources.client.DataResource; +import com.google.gwt.resources.client.DataResource.MimeType; +import com.sap.sailing.gwt.home.shared.partials.statistics.StatisticsBoxResources; -public interface PreRaceStatisticsBoxResources extends ClientBundle { +public interface PreRaceStatisticsBoxResources extends StatisticsBoxResources { public static final PreRaceStatisticsBoxResources INSTANCE = GWT.create(PreRaceStatisticsBoxResources.class); @Source("PreRaceStatisticsBox.gss") LocalCss css(); + + @Source("icon-competitors.svg") + @MimeType("image/svg+xml") + DataResource competitors(); + + @Source("icon-legs.svg") + @MimeType("image/svg+xml") + DataResource legs(); + + @Source("icon-length.svg") + @MimeType("image/svg+xml") + DataResource length(); + + @Source("icon-raceviewer.svg") + @MimeType("image/svg+xml") + DataResource raceviewer(); + + @Source("icon-time.svg") + @MimeType("image/svg+xml") + DataResource time(); + + @Source("icon-wind.svg") + @MimeType("image/svg+xml") + DataResource wind(); public interface LocalCss extends CssResource { String box(); diff --git a/java/com.sap.sailing.gwt.ui/images/mobile/icon-competitors.svg b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/places/screens/preliveraceloop/racemap/statistic/icon-competitors.svg similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/mobile/icon-competitors.svg rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/places/screens/preliveraceloop/racemap/statistic/icon-competitors.svg diff --git a/java/com.sap.sailing.gwt.ui/images/mobile/icon-legs.svg b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/places/screens/preliveraceloop/racemap/statistic/icon-legs.svg similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/mobile/icon-legs.svg rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/places/screens/preliveraceloop/racemap/statistic/icon-legs.svg diff --git a/java/com.sap.sailing.gwt.ui/images/mobile/icon-length.svg b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/places/screens/preliveraceloop/racemap/statistic/icon-length.svg similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/mobile/icon-length.svg rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/places/screens/preliveraceloop/racemap/statistic/icon-length.svg diff --git a/java/com.sap.sailing.gwt.ui/images/mobile/icon-raceviewer.svg b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/places/screens/preliveraceloop/racemap/statistic/icon-raceviewer.svg similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/mobile/icon-raceviewer.svg rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/places/screens/preliveraceloop/racemap/statistic/icon-raceviewer.svg diff --git a/java/com.sap.sailing.gwt.ui/images/mobile/icon-time.svg b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/places/screens/preliveraceloop/racemap/statistic/icon-time.svg similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/mobile/icon-time.svg rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/places/screens/preliveraceloop/racemap/statistic/icon-time.svg diff --git a/java/com.sap.sailing.gwt.ui/images/mobile/icon-wind.svg b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/places/screens/preliveraceloop/racemap/statistic/icon-wind.svg similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/mobile/icon-wind.svg rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/places/screens/preliveraceloop/racemap/statistic/icon-wind.svg diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics/AbstractStatisticsBoxPresenter.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics/AbstractStatisticsBoxPresenter.java index 00eecf31ab5..5281bfbe634 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics/AbstractStatisticsBoxPresenter.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics/AbstractStatisticsBoxPresenter.java @@ -1,6 +1,7 @@ package com.sap.sailing.gwt.home.shared.partials.statistics; import com.google.gwt.i18n.client.NumberFormat; +import com.google.gwt.resources.client.DataResource; import com.sap.sailing.gwt.home.communication.event.SimpleCompetitorDTO; import com.sap.sailing.gwt.ui.client.StringMessages; @@ -13,33 +14,33 @@ public abstract class AbstractStatisticsBoxPresenter { this.view = view; } - public void addCompetitorItem(String iconUrl, String name, SimpleCompetitorDTO competitor) { + public void addCompetitorItem(DataResource icon, String name, SimpleCompetitorDTO competitor) { if (competitor != null) { - addItem(iconUrl, name, competitor.getSailID() != null ? competitor.getSailID() : competitor.getName()); + addItem(icon, name, competitor.getSailID() != null ? competitor.getSailID() : competitor.getName()); } } - public void addKnotsItem(String iconUrl, String name, Double speedInKnots) { + public void addKnotsItem(DataResource icon, String name, Double speedInKnots) { if (speedInKnots != null) { - addItem(iconUrl, name, StringMessages.INSTANCE.knotsValue(speedInKnots)); + addItem(icon, name, StringMessages.INSTANCE.knotsValue(speedInKnots)); } } - public void addItemWithCompactFormat(String iconUrl, String name, Double payload) { + public void addItemWithCompactFormat(DataResource icon, String name, Double payload) { if (payload != null && payload != 0) { - addItem(iconUrl, name, compactNumber(payload)); + addItem(icon, name, compactNumber(payload)); } } - public void addItemWithCompactFormat(String iconUrl, String name, long payload) { + public void addItemWithCompactFormat(DataResource icon, String name, long payload) { if (payload != 0) { - addItem(iconUrl, name, compactNumber(payload)); + addItem(icon, name, compactNumber(payload)); } } - public void addItemIfNotNull(String iconUrl, String name, Object payload) { + public void addItemIfNotNull(DataResource icon, String name, Object payload) { if (payload != null || payload instanceof Number && ((Number) payload).longValue() != 0) { - addItem(iconUrl, name, payload); + addItem(icon, name, payload); } } @@ -70,6 +71,10 @@ public abstract class AbstractStatisticsBoxPresenter { view.clear(); } + protected void addItem(DataResource icon, String name, Object payload) { + addItem(icon.getSafeUri().asString(), name, payload); + } + protected void addItem(String iconUrl, String name, Object payload) { view.addItem(iconUrl, name, payload); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics/EventStatisticsBoxPresenter.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics/EventStatisticsBoxPresenter.java index 7bde8ebfb28..bea29a1898e 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics/EventStatisticsBoxPresenter.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics/EventStatisticsBoxPresenter.java @@ -1,15 +1,5 @@ package com.sap.sailing.gwt.home.shared.partials.statistics; -import static com.sap.sailing.gwt.home.shared.partials.statistics.StatisticsBoxConstants.ICON_COMPATITORS_COUNT; -import static com.sap.sailing.gwt.home.shared.partials.statistics.StatisticsBoxConstants.ICON_FASTEST_SAILOR; -import static com.sap.sailing.gwt.home.shared.partials.statistics.StatisticsBoxConstants.ICON_MAX_SPEED; -import static com.sap.sailing.gwt.home.shared.partials.statistics.StatisticsBoxConstants.ICON_RACES_COUNT; -import static com.sap.sailing.gwt.home.shared.partials.statistics.StatisticsBoxConstants.ICON_RAW_GPS_FIX; -import static com.sap.sailing.gwt.home.shared.partials.statistics.StatisticsBoxConstants.ICON_REGATTAS_FOUGHT; -import static com.sap.sailing.gwt.home.shared.partials.statistics.StatisticsBoxConstants.ICON_SUM_MILES; -import static com.sap.sailing.gwt.home.shared.partials.statistics.StatisticsBoxConstants.ICON_TRACKED_COUNT; -import static com.sap.sailing.gwt.home.shared.partials.statistics.StatisticsBoxConstants.ICON_WIND_FIX; - import com.sap.sailing.gwt.home.communication.event.statistics.EventStatisticsDTO; import com.sap.sailing.gwt.home.shared.refresh.RefreshableWidget; import com.sap.sailing.gwt.ui.client.StringMessages; @@ -29,15 +19,15 @@ public class EventStatisticsBoxPresenter extends AbstractStatisticsBoxPresenter public void setData(EventStatisticsDTO statistics) { clear(); if (showRegattaInformation) { - addItem(ICON_REGATTAS_FOUGHT, MSG.regattas(), statistics.getRegattasFoughtCount()); + addItem(StatisticsBoxResources.INSTANCE.regattasFought(), MSG.regattas(), statistics.getRegattasFoughtCount()); } - addItemIfNotNull(ICON_COMPATITORS_COUNT, MSG.competitors(), statistics.getCompetitorsCount()); - addItem(ICON_RACES_COUNT, MSG.races(), statistics.getRacesRunCount()); - addItem(ICON_TRACKED_COUNT, MSG.trackedRaces(), statistics.getTrackedRacesCount()); - addItemWithCompactFormat(ICON_RAW_GPS_FIX, MSG.numberOfGPSFixes(), statistics.getNumberOfGPSFixes()); - addItemWithCompactFormat(ICON_WIND_FIX, MSG.numberWindFixes(), statistics.getNumberOfWindFixes()); - addItemWithCompactFormat(ICON_SUM_MILES, MSG.sailedMiles(), statistics.getTotalDistanceTraveled() == null ? null : statistics.getTotalDistanceTraveled().getSeaMiles()); - addCompetitorItem(ICON_FASTEST_SAILOR, MSG.fastestSailor(), statistics.getFastestCompetitor()); - addKnotsItem(ICON_MAX_SPEED, MSG.highestSpeed(), statistics.getFastestCompetitorSpeedInKnots()); + addItemIfNotNull(StatisticsBoxResources.INSTANCE.averageSpeed(), MSG.competitors(), statistics.getCompetitorsCount()); + addItem(StatisticsBoxResources.INSTANCE.racesCount(), MSG.races(), statistics.getRacesRunCount()); + addItem(StatisticsBoxResources.INSTANCE.trackedCount(), MSG.trackedRaces(), statistics.getTrackedRacesCount()); + addItemWithCompactFormat(StatisticsBoxResources.INSTANCE.gpsFixes(), MSG.numberOfGPSFixes(), statistics.getNumberOfGPSFixes()); + addItemWithCompactFormat(StatisticsBoxResources.INSTANCE.strongestWind(), MSG.numberWindFixes(), statistics.getNumberOfWindFixes()); + addItemWithCompactFormat(StatisticsBoxResources.INSTANCE.sumMiles(), MSG.sailedMiles(), statistics.getTotalDistanceTraveled() == null ? null : statistics.getTotalDistanceTraveled().getSeaMiles()); + addCompetitorItem(StatisticsBoxResources.INSTANCE.fastestSailor(), MSG.fastestSailor(), statistics.getFastestCompetitor()); + addKnotsItem(StatisticsBoxResources.INSTANCE.maxSpeed(), MSG.highestSpeed(), statistics.getFastestCompetitorSpeedInKnots()); } } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics/StatisticsBoxConstants.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics/StatisticsBoxConstants.java deleted file mode 100644 index c86d43718e2..00000000000 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics/StatisticsBoxConstants.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.sap.sailing.gwt.home.shared.partials.statistics; - -public interface StatisticsBoxConstants { - public static final String ICON_REGATTAS_FOUGHT = "images/mobile/icon_regattasFought.svg"; - public static final String ICON_COMPATITORS_COUNT = "images/mobile/icon_averageSpeed.svg"; - public static final String ICON_RACES_COUNT = "images/mobile/icon_racesCount.svg"; - public static final String ICON_TRACKED_COUNT = "images/mobile/icon_trackedCount.svg"; - public static final String ICON_FASTEST_SAILOR = "images/mobile/fastest_sailor.svg"; - public static final String ICON_MAX_SPEED = "images/mobile/max_speed.svg"; - public static final String ICON_RAW_GPS_FIX = "images/mobile/raw_gps_fixes.svg"; - public static final String ICON_WIND_FIX = "images/mobile/strongest_wind.svg"; - public static final String ICON_SUM_MILES = "images/mobile/sum_miles.svg"; -} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics/StatisticsBoxResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics/StatisticsBoxResources.java new file mode 100644 index 00000000000..d06fa6eaee8 --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics/StatisticsBoxResources.java @@ -0,0 +1,52 @@ +package com.sap.sailing.gwt.home.shared.partials.statistics; + +import com.google.gwt.core.shared.GWT; +import com.google.gwt.resources.client.ClientBundle; +import com.google.gwt.resources.client.DataResource; +import com.google.gwt.resources.client.DataResource.MimeType; + +public interface StatisticsBoxResources extends ClientBundle { + + public static final StatisticsBoxResources INSTANCE = GWT.create(StatisticsBoxResources.class); + + @Source("statistics.svg") + @MimeType("image/svg+xml") + DataResource statistics(); + + @Source("fastest_sailor.svg") + @MimeType("image/svg+xml") + DataResource fastestSailor(); + + @Source("icon_averageSpeed.svg") + @MimeType("image/svg+xml") + DataResource averageSpeed(); + + @Source("icon_racesCount.svg") + @MimeType("image/svg+xml") + DataResource racesCount(); + + @Source("icon_regattasFought.svg") + @MimeType("image/svg+xml") + DataResource regattasFought(); + + @Source("icon_trackedCount.svg") + @MimeType("image/svg+xml") + DataResource trackedCount(); + + @Source("max_speed.svg") + @MimeType("image/svg+xml") + DataResource maxSpeed(); + + @Source("raw_gps_fixes.svg") + @MimeType("image/svg+xml") + DataResource gpsFixes(); + + @Source("strongest_wind.svg") + @MimeType("image/svg+xml") + DataResource strongestWind(); + + @Source("sum_miles.svg") + @MimeType("image/svg+xml") + DataResource sumMiles(); + +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics/YearStatisticsBoxPresenter.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics/YearStatisticsBoxPresenter.java index 0fa91f1f06e..bd5940595b0 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics/YearStatisticsBoxPresenter.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics/YearStatisticsBoxPresenter.java @@ -1,15 +1,5 @@ package com.sap.sailing.gwt.home.shared.partials.statistics; -import static com.sap.sailing.gwt.home.shared.partials.statistics.StatisticsBoxConstants.ICON_COMPATITORS_COUNT; -import static com.sap.sailing.gwt.home.shared.partials.statistics.StatisticsBoxConstants.ICON_FASTEST_SAILOR; -import static com.sap.sailing.gwt.home.shared.partials.statistics.StatisticsBoxConstants.ICON_MAX_SPEED; -import static com.sap.sailing.gwt.home.shared.partials.statistics.StatisticsBoxConstants.ICON_RACES_COUNT; -import static com.sap.sailing.gwt.home.shared.partials.statistics.StatisticsBoxConstants.ICON_RAW_GPS_FIX; -import static com.sap.sailing.gwt.home.shared.partials.statistics.StatisticsBoxConstants.ICON_REGATTAS_FOUGHT; -import static com.sap.sailing.gwt.home.shared.partials.statistics.StatisticsBoxConstants.ICON_SUM_MILES; -import static com.sap.sailing.gwt.home.shared.partials.statistics.StatisticsBoxConstants.ICON_TRACKED_COUNT; -import static com.sap.sailing.gwt.home.shared.partials.statistics.StatisticsBoxConstants.ICON_WIND_FIX; - import com.sap.sailing.gwt.home.communication.eventlist.EventListYearDTO; import com.sap.sailing.gwt.ui.client.StringMessages; @@ -23,14 +13,14 @@ public class YearStatisticsBoxPresenter extends AbstractStatisticsBoxPresenter { public void setData(EventListYearDTO statistics) { clear(); - addItem(ICON_REGATTAS_FOUGHT, MSG.regattas(), statistics.getNumberOfRegattas()); - addItemIfNotNull(ICON_COMPATITORS_COUNT, MSG.competitors(), statistics.getNumberOfCompetitors()); - addItem(ICON_RACES_COUNT, MSG.races(), statistics.getNumberOfRaces()); - addItem(ICON_TRACKED_COUNT, MSG.trackedRaces(), statistics.getNumberOfTrackedRaces()); - addItemWithCompactFormat(ICON_RAW_GPS_FIX, MSG.numberOfGPSFixes(), statistics.getNumberOfGPSFixes()); - addItemWithCompactFormat(ICON_WIND_FIX, MSG.numberWindFixes(), statistics.getNumberOfWindFixes()); - addItemWithCompactFormat(ICON_SUM_MILES, MSG.sailedMiles(), statistics.getDistanceTraveled().getNauticalMiles()); - addCompetitorItem(ICON_FASTEST_SAILOR, MSG.fastestSailor(), statistics.getFastestCompetitor()); - addKnotsItem(ICON_MAX_SPEED, MSG.highestSpeed(), statistics.getFastestCompetitorSpeedInKnots()); + addItem(StatisticsBoxResources.INSTANCE.regattasFought(), MSG.regattas(), statistics.getNumberOfRegattas()); + addItemIfNotNull(StatisticsBoxResources.INSTANCE.averageSpeed(), MSG.competitors(), statistics.getNumberOfCompetitors()); + addItem(StatisticsBoxResources.INSTANCE.racesCount(), MSG.races(), statistics.getNumberOfRaces()); + addItem(StatisticsBoxResources.INSTANCE.trackedCount(), MSG.trackedRaces(), statistics.getNumberOfTrackedRaces()); + addItemWithCompactFormat(StatisticsBoxResources.INSTANCE.gpsFixes(), MSG.numberOfGPSFixes(), statistics.getNumberOfGPSFixes()); + addItemWithCompactFormat(StatisticsBoxResources.INSTANCE.strongestWind(), MSG.numberWindFixes(), statistics.getNumberOfWindFixes()); + addItemWithCompactFormat(StatisticsBoxResources.INSTANCE.sumMiles(), MSG.sailedMiles(), statistics.getDistanceTraveled().getNauticalMiles()); + addCompetitorItem(StatisticsBoxResources.INSTANCE.fastestSailor(), MSG.fastestSailor(), statistics.getFastestCompetitor()); + addKnotsItem(StatisticsBoxResources.INSTANCE.maxSpeed(), MSG.highestSpeed(), statistics.getFastestCompetitorSpeedInKnots()); } } diff --git a/java/com.sap.sailing.gwt.ui/images/mobile/fastest_sailor.svg b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics/fastest_sailor.svg similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/mobile/fastest_sailor.svg rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics/fastest_sailor.svg diff --git a/java/com.sap.sailing.gwt.ui/images/mobile/icon_averageSpeed.svg b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics/icon_averageSpeed.svg similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/mobile/icon_averageSpeed.svg rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics/icon_averageSpeed.svg diff --git a/java/com.sap.sailing.gwt.ui/images/mobile/icon_racesCount.svg b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics/icon_racesCount.svg similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/mobile/icon_racesCount.svg rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics/icon_racesCount.svg diff --git a/java/com.sap.sailing.gwt.ui/images/mobile/icon_regattasFought.svg b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics/icon_regattasFought.svg similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/mobile/icon_regattasFought.svg rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics/icon_regattasFought.svg diff --git a/java/com.sap.sailing.gwt.ui/images/mobile/icon_trackedCount.svg b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics/icon_trackedCount.svg similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/mobile/icon_trackedCount.svg rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics/icon_trackedCount.svg diff --git a/java/com.sap.sailing.gwt.ui/images/mobile/max_speed.svg b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics/max_speed.svg similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/mobile/max_speed.svg rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics/max_speed.svg diff --git a/java/com.sap.sailing.gwt.ui/images/mobile/raw_gps_fixes.svg b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics/raw_gps_fixes.svg similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/mobile/raw_gps_fixes.svg rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics/raw_gps_fixes.svg diff --git a/java/com.sap.sailing.gwt.ui/images/mobile/statistics.svg b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics/statistics.svg similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/mobile/statistics.svg rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics/statistics.svg diff --git a/java/com.sap.sailing.gwt.ui/images/mobile/strongest_wind.svg b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics/strongest_wind.svg similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/mobile/strongest_wind.svg rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics/strongest_wind.svg diff --git a/java/com.sap.sailing.gwt.ui/images/mobile/sum_miles.svg b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics/sum_miles.svg similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/mobile/sum_miles.svg rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/statistics/sum_miles.svg From 705352cdf82f6ffcb38255e6110d15e8d0c8ce80 Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Mon, 6 Nov 2017 17:01:33 +0100 Subject: [PATCH 043/290] Bug 4346: Changed mobile burger icons to be used via DataResource --- .../sailing/gwt/home/mobile/partials/header/Header.gss | 4 ++-- .../home/mobile/partials/header/HeaderResources.java | 10 ++++++++++ .../partials/header}/navigation-icon-signedin.svg | 0 .../home/mobile/partials/header}/navigation-icon.svg | 0 4 files changed, 12 insertions(+), 2 deletions(-) rename java/com.sap.sailing.gwt.ui/{images/mobile => src/main/java/com/sap/sailing/gwt/home/mobile/partials/header}/navigation-icon-signedin.svg (100%) rename java/com.sap.sailing.gwt.ui/{images/mobile => src/main/java/com/sap/sailing/gwt/home/mobile/partials/header}/navigation-icon.svg (100%) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/header/Header.gss b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/header/Header.gss index c253f8427ea..21ff0e10c9e 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/header/Header.gss +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/header/Header.gss @@ -155,12 +155,12 @@ img.header_logo_image { transform: translate(-50%, -50%); width: 1em; height: 1.333333333333333em; - background-image: url("images/mobile/navigation-icon.svg"); + background-image: resourceUrl("navigation"); background-repeat: no-repeat; background-size: contain; background-position: center center; } .header_navigation_iconsignedin { width: 1.666666666666667em; - background-image: url("images/mobile/navigation-icon-signedin.svg"); + background-image: resourceUrl("navigationSignedin"); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/header/HeaderResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/header/HeaderResources.java index bcb09e99e1a..ea4397cf060 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/header/HeaderResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/header/HeaderResources.java @@ -3,6 +3,8 @@ package com.sap.sailing.gwt.home.mobile.partials.header; import com.google.gwt.core.client.GWT; import com.google.gwt.resources.client.ClientBundle; import com.google.gwt.resources.client.CssResource; +import com.google.gwt.resources.client.DataResource; +import com.google.gwt.resources.client.DataResource.MimeType; public interface HeaderResources extends ClientBundle { public static final HeaderResources INSTANCE = GWT.create(HeaderResources.class); @@ -10,6 +12,14 @@ public interface HeaderResources extends ClientBundle { @Source("Header.gss") LocalCss css(); + @Source("navigation-icon-signedin.svg") + @MimeType("image/svg+xml") + DataResource navigationSignedin(); + + @Source("navigation-icon.svg") + @MimeType("image/svg+xml") + DataResource navigation(); + public interface LocalCss extends CssResource { String header(); String header_logo(); diff --git a/java/com.sap.sailing.gwt.ui/images/mobile/navigation-icon-signedin.svg b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/header/navigation-icon-signedin.svg similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/mobile/navigation-icon-signedin.svg rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/header/navigation-icon-signedin.svg diff --git a/java/com.sap.sailing.gwt.ui/images/mobile/navigation-icon.svg b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/header/navigation-icon.svg similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/mobile/navigation-icon.svg rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/header/navigation-icon.svg From 880664c179472b080b2309b8549e49d12541d74c Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Mon, 6 Nov 2017 17:05:48 +0100 Subject: [PATCH 044/290] Bug 4346: Fixed usages of gray arrow icon via ImageResource --- .../sailing/gwt/home/desktop/partials/standings/Standings.gss | 2 +- .../home/desktop/partials/standings/StandingsResources.java | 4 ++-- .../sap/sailing/gwt/home/mobile/partials/header/Header.gss | 2 +- .../gwt/home/mobile/partials/header/HeaderResources.java | 4 ++-- .../gwt/home/mobile/partials/searchresult/SearchResult.gss | 2 +- .../mobile/partials/searchresult/SearchResultResources.java | 4 ++-- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/standings/Standings.gss b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/standings/Standings.gss index b0307fa806e..f1356a4aafe 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/standings/Standings.gss +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/standings/Standings.gss @@ -23,7 +23,7 @@ text-align: right; padding: 0.666666666666667em; padding-right: 2.666666666666667em; - background-image: url("images/home/arrow-down-grey.png"); + background-image: resourceUrl("arrowDownGrey"); background-size: 1.333333333333333em 1.333333333333333em; background-position: center; background-repeat: no-repeat; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/standings/StandingsResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/standings/StandingsResources.java index 23eb20d0a6f..95b5ae3b4b7 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/standings/StandingsResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/standings/StandingsResources.java @@ -1,10 +1,10 @@ package com.sap.sailing.gwt.home.desktop.partials.standings; import com.google.gwt.core.client.GWT; -import com.google.gwt.resources.client.ClientBundle; import com.google.gwt.resources.client.CssResource; +import com.sap.sailing.gwt.home.shared.resources.SharedHomeResources; -public interface StandingsResources extends ClientBundle { +public interface StandingsResources extends SharedHomeResources { public static final StandingsResources INSTANCE = GWT.create(StandingsResources.class); @Source("Standings.gss") diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/header/Header.gss b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/header/Header.gss index 21ff0e10c9e..61229c0c9a2 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/header/Header.gss +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/header/Header.gss @@ -133,7 +133,7 @@ img.header_logo_image { background: none; } .header_navigation_nav_sublist_item:before { - background: url('images/home/arrow-down-grey.png'); + background: resourceUrl('arrowDownGrey'); display: block; height: 25px; background-position: center; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/header/HeaderResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/header/HeaderResources.java index ea4397cf060..64a3a12708a 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/header/HeaderResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/header/HeaderResources.java @@ -1,12 +1,12 @@ package com.sap.sailing.gwt.home.mobile.partials.header; import com.google.gwt.core.client.GWT; -import com.google.gwt.resources.client.ClientBundle; import com.google.gwt.resources.client.CssResource; import com.google.gwt.resources.client.DataResource; import com.google.gwt.resources.client.DataResource.MimeType; +import com.sap.sailing.gwt.home.shared.resources.SharedHomeResources; -public interface HeaderResources extends ClientBundle { +public interface HeaderResources extends SharedHomeResources { public static final HeaderResources INSTANCE = GWT.create(HeaderResources.class); @Source("Header.gss") diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/searchresult/SearchResult.gss b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/searchresult/SearchResult.gss index b016ad07887..7e64425ca70 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/searchresult/SearchResult.gss +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/searchresult/SearchResult.gss @@ -93,7 +93,7 @@ } .searchresult_item_arrow { font-size: 1rem; - background: url("images/home/arrow-down-grey.png"); + background: resourceUrl("arrowDownGrey"); background-size: contain; display: block; width: 1.333333333333333em; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/searchresult/SearchResultResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/searchresult/SearchResultResources.java index 10735e2707b..ea144f1e4a9 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/searchresult/SearchResultResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/searchresult/SearchResultResources.java @@ -1,10 +1,10 @@ package com.sap.sailing.gwt.home.mobile.partials.searchresult; import com.google.gwt.core.client.GWT; -import com.google.gwt.resources.client.ClientBundle; import com.google.gwt.resources.client.CssResource; +import com.sap.sailing.gwt.home.shared.resources.SharedHomeResources; -public interface SearchResultResources extends ClientBundle { +public interface SearchResultResources extends SharedHomeResources { public static final SearchResultResources INSTANCE = GWT.create(SearchResultResources.class); @Source("SearchResult.gss") From 2022de7cfc057cb6a339015e7285cf70c25c9346 Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Mon, 6 Nov 2017 17:55:14 +0100 Subject: [PATCH 045/290] Bug 4346: Changed desktop login menu icons to be used via DataResource --- .../home/desktop/partials/header/Header.gss | 8 +++---- .../partials/header/HeaderResources.java | 4 ++-- .../gwt/ui/raceboard/RaceBoardResources.java | 3 ++- .../gwt/ui/raceboard/raceboard-main.gss | 8 +++---- .../META-INF/MANIFEST.MF | 11 +++++---- .../resource/AuthenticationResources.java | 24 +++++++++++++++++++ .../generic/resource}/loggedin-open.svg | 0 .../generic/resource}/loggedin.svg | 0 .../generic/resource}/loggedout-open.svg | 0 .../generic/resource}/loggedout.svg | 0 .../SAPHeaderWithAuthenticationResources.java | 4 ++-- .../sapheader/header-with-authentication.gss | 8 +++---- 12 files changed, 48 insertions(+), 22 deletions(-) create mode 100644 java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/generic/resource/AuthenticationResources.java rename java/{com.sap.sailing.gwt.ui/images/home => com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/generic/resource}/loggedin-open.svg (100%) rename java/{com.sap.sailing.gwt.ui/images/home => com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/generic/resource}/loggedin.svg (100%) rename java/{com.sap.sailing.gwt.ui/images/home => com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/generic/resource}/loggedout-open.svg (100%) rename java/{com.sap.sailing.gwt.ui/images/home => com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/generic/resource}/loggedout.svg (100%) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/header/Header.gss b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/header/Header.gss index 42758085648..719abdb726e 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/header/Header.gss +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/header/Header.gss @@ -112,16 +112,16 @@ background-repeat: no-repeat; background-position: center center; background-size: contain; - background-image: url('images/home/loggedout.svg'); + background-image: resourceUrl('loggedoutOpen'); margin-left: 1rem; cursor: pointer; } .user_menu_button.open { - background-image: url('images/home/loggedout-open.svg'); + background-image: resourceUrl('loggedout'); } .user_menu_button.loggedin { - background-image: url('images/home/loggedin.svg'); + background-image: resourceUrl('loggedin'); } .user_menu_button.loggedin.open { - background-image: url('images/home/loggedin-open.svg'); + background-image: resourceUrl('loggedinOpen'); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/header/HeaderResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/header/HeaderResources.java index d432431aaf4..3d20dc18e84 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/header/HeaderResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/header/HeaderResources.java @@ -1,10 +1,10 @@ package com.sap.sailing.gwt.home.desktop.partials.header; import com.google.gwt.core.client.GWT; -import com.google.gwt.resources.client.ClientBundle; import com.google.gwt.resources.client.CssResource; +import com.sap.sse.security.ui.authentication.generic.resource.AuthenticationResources; -public interface HeaderResources extends ClientBundle { +public interface HeaderResources extends AuthenticationResources { public static final HeaderResources INSTANCE = GWT.create(HeaderResources.class); @Source("Header.gss") diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/RaceBoardResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/RaceBoardResources.java index f5853d9d0c0..1ae8c295c2f 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/RaceBoardResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/RaceBoardResources.java @@ -2,9 +2,10 @@ package com.sap.sailing.gwt.ui.raceboard; import com.google.gwt.core.client.GWT; import com.sap.sse.gwt.common.CommonSharedResources; +import com.sap.sse.security.ui.authentication.generic.resource.AuthenticationResources; -public interface RaceBoardResources extends CommonSharedResources { +public interface RaceBoardResources extends CommonSharedResources, AuthenticationResources { public static final RaceBoardResources INSTANCE = GWT.create(RaceBoardResources.class); @Source({CommonSharedResources.RESET, CommonSharedResources.MAIN, "raceboard-main.gss"}) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/raceboard-main.gss b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/raceboard-main.gss index dbbf0cf8d89..775d3ee518d 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/raceboard-main.gss +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/raceboard-main.gss @@ -5,20 +5,20 @@ background-repeat: no-repeat; background-position: center center; background-size: contain; - background-image: url('images/home/loggedout.svg'); + background-image: resourceUrl('loggedout'); cursor: pointer; position: absolute; right: 10px; top: 6px; } .usermanagement_icon.usermanagement_open { - background-image: url('images/home/loggedout-open.svg'); + background-image: resourceUrl('loggedoutOpen'); } .usermanagement_icon.usermanagement_loggedin { - background-image: url('images/home/loggedin.svg'); + background-image: resourceUrl('loggedin'); } .usermanagement_icon.usermanagement_loggedin.usermanagement_open { - background-image: url('images/home/loggedin-open.svg'); + background-image: resourceUrl('loggedinOpen'); } .usermanagement_view { top: 60px !important; diff --git a/java/com.sap.sse.security.ui/META-INF/MANIFEST.MF b/java/com.sap.sse.security.ui/META-INF/MANIFEST.MF index b1683d34397..1263d1cf863 100644 --- a/java/com.sap.sse.security.ui/META-INF/MANIFEST.MF +++ b/java/com.sap.sse.security.ui/META-INF/MANIFEST.MF @@ -32,6 +32,7 @@ Export-Package: com.sap.sse.security.shared, com.sap.sse.security.ui.authentication.create, com.sap.sse.security.ui.authentication.decorator, com.sap.sse.security.ui.authentication.generic, + com.sap.sse.security.ui.authentication.generic.resource, com.sap.sse.security.ui.authentication.generic.sapheader, com.sap.sse.security.ui.authentication.info, com.sap.sse.security.ui.authentication.login, @@ -45,9 +46,9 @@ Export-Package: com.sap.sse.security.shared, com.sap.sse.security.ui.server, com.sap.sse.security.ui.settings, com.sap.sse.security.ui.shared, - com.sap.sse.security.ui.userprofile.desktop.userheader, - com.sap.sse.security.ui.userprofile.mobile.userheader, - com.sap.sse.security.ui.userprofile.shared.userheader, - com.sap.sse.security.ui.userprofile.shared.userdetails, com.sap.sse.security.ui.userprofile.desktop.userdetails, - com.sap.sse.security.ui.userprofile.mobile.userdetails + com.sap.sse.security.ui.userprofile.desktop.userheader, + com.sap.sse.security.ui.userprofile.mobile.userdetails, + com.sap.sse.security.ui.userprofile.mobile.userheader, + com.sap.sse.security.ui.userprofile.shared.userdetails, + com.sap.sse.security.ui.userprofile.shared.userheader diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/generic/resource/AuthenticationResources.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/generic/resource/AuthenticationResources.java new file mode 100644 index 00000000000..f4885a984e5 --- /dev/null +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/generic/resource/AuthenticationResources.java @@ -0,0 +1,24 @@ +package com.sap.sse.security.ui.authentication.generic.resource; + +import com.google.gwt.resources.client.ClientBundle; +import com.google.gwt.resources.client.DataResource; +import com.google.gwt.resources.client.DataResource.MimeType; + +public interface AuthenticationResources extends ClientBundle { + + @Source("loggedin.svg") + @MimeType("image/svg+xml") + DataResource loggedin(); + + @Source("loggedin-open.svg") + @MimeType("image/svg+xml") + DataResource loggedinOpen(); + + @Source("loggedout.svg") + @MimeType("image/svg+xml") + DataResource loggedout(); + + @Source("loggedout-open.svg") + @MimeType("image/svg+xml") + DataResource loggedoutOpen(); +} diff --git a/java/com.sap.sailing.gwt.ui/images/home/loggedin-open.svg b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/generic/resource/loggedin-open.svg similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/home/loggedin-open.svg rename to java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/generic/resource/loggedin-open.svg diff --git a/java/com.sap.sailing.gwt.ui/images/home/loggedin.svg b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/generic/resource/loggedin.svg similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/home/loggedin.svg rename to java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/generic/resource/loggedin.svg diff --git a/java/com.sap.sailing.gwt.ui/images/home/loggedout-open.svg b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/generic/resource/loggedout-open.svg similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/home/loggedout-open.svg rename to java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/generic/resource/loggedout-open.svg diff --git a/java/com.sap.sailing.gwt.ui/images/home/loggedout.svg b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/generic/resource/loggedout.svg similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/home/loggedout.svg rename to java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/generic/resource/loggedout.svg diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/generic/sapheader/SAPHeaderWithAuthenticationResources.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/generic/sapheader/SAPHeaderWithAuthenticationResources.java index 4a54c317294..0a2f96993e1 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/generic/sapheader/SAPHeaderWithAuthenticationResources.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/generic/sapheader/SAPHeaderWithAuthenticationResources.java @@ -1,11 +1,11 @@ package com.sap.sse.security.ui.authentication.generic.sapheader; import com.google.gwt.core.client.GWT; -import com.google.gwt.resources.client.ClientBundle; import com.google.gwt.resources.client.CssResource; +import com.sap.sse.security.ui.authentication.generic.resource.AuthenticationResources; -public interface SAPHeaderWithAuthenticationResources extends ClientBundle { +public interface SAPHeaderWithAuthenticationResources extends AuthenticationResources { public static final SAPHeaderWithAuthenticationResources INSTANCE = GWT.create(SAPHeaderWithAuthenticationResources.class); @Source("header-with-authentication.gss") diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/generic/sapheader/header-with-authentication.gss b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/generic/sapheader/header-with-authentication.gss index 2330c76ff39..b50f5ddaf7c 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/generic/sapheader/header-with-authentication.gss +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/generic/sapheader/header-with-authentication.gss @@ -20,17 +20,17 @@ background-repeat: no-repeat; background-position: center center; background-size: contain; - background-image: url('images/home/loggedout.svg'); + background-image: resourceUrl('loggedout'); cursor: pointer; } .usermanagement_icon.usermanagement_open { - background-image: url('images/home/loggedout-open.svg'); + background-image: resourceUrl('loggedoutOpen'); } .usermanagement_icon.usermanagement_loggedin { - background-image: url('images/home/loggedin.svg'); + background-image: resourceUrl('loggedin'); } .usermanagement_icon.usermanagement_loggedin.usermanagement_open { - background-image: url('images/home/loggedin-open.svg'); + background-image: resourceUrl('loggedinOpen'); } .usermanagement_view { top: 68px !important; From 82575dd2fef66a30e20aaae635928ec6cf81b259 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Mon, 6 Nov 2017 23:28:07 +0100 Subject: [PATCH 046/290] added Expedition columns to SailingService output and DetailType Change-Id: I28982317130f36a9568d509a76e99878f4003e76 --- .../sap/sailing/domain/common/DetailType.java | 12 ++ .../common/tracking/BravoExtendedFix.java | 4 +- .../tracking/impl/BravoExtendedFixImpl.java | 10 +- .../domain/tracking/BravoFixTrack.java | 12 ++ .../tracking/impl/BravoFixTrackImpl.java | 72 +++++++++ .../gwt/ui/client/DetailTypeFormatter.java | 68 ++++++++ .../sailing/gwt/ui/client/StringMessages.java | 26 ++++ .../gwt/ui/client/StringMessages.properties | 28 +++- .../ui/client/StringMessages_de.properties | 28 +++- .../gwt/ui/server/SailingServiceImpl.java | 145 ++++++++++++------ 10 files changed, 353 insertions(+), 52 deletions(-) diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/DetailType.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/DetailType.java index a26f5c1dcf6..7b31f8f27b5 100755 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/DetailType.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/DetailType.java @@ -30,6 +30,18 @@ public enum DetailType implements Serializable { CURRENT_PORT_RUDDER_RAKE(2,DESCENDING), CURRENT_STBD_RUDDER_RAKE(2,DESCENDING), CURRENT_MAST_ROTATION_IN_DEGREES(2,DESCENDING), + CURRENT_LEEWAY_IN_DEGREES(1, ASCENDING), + CURRENT_SET(1, ASCENDING), + CURRENT_DRIFT_IN_DEGREES(1, ASCENDING), + CURRENT_DEPTH_IN_METERS(1, ASCENDING), + CURRENT_RUDDER_IN_DEGREES(2, ASCENDING), + CURRENT_TACK_ANGLE_IN_DEGREES(2, ASCENDING), + CURRENT_DEFLECTOR_PERCENTAGE(2, ASCENDING), + CURRENT_DEFLECTOR_IN_MILLIMETERS(2, ASCENDING), + CURRENT_RAKE_IN_DEGREES(2, ASCENDING), + CURRENT_TARGET_HEEL_ANGLE_IN_DEGREES(2, ASCENDING), + CURRENT_FORESTAY_LOAD(2, ASCENDING), + CURRENT_TARGET_BOATSPEED_PERCENTAGE(2, ASCENDING), ESTIMATED_TIME_TO_NEXT_WAYPOINT_IN_SECONDS(1, ASCENDING), VELOCITY_MADE_GOOD_IN_KNOTS(2, DESCENDING), GAP_TO_LEADER_IN_SECONDS(0, ASCENDING), GAP_CHANGE_SINCE_LEG_START_IN_SECONDS(0, ASCENDING), SIDE_TO_WHICH_MARK_AT_LEG_START_WAS_ROUNDED(0, ASCENDING), WINDWARD_DISTANCE_TO_GO_IN_METERS(0, ASCENDING), diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/tracking/BravoExtendedFix.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/tracking/BravoExtendedFix.java index d12b3abb281..a0ef9812e3d 100644 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/tracking/BravoExtendedFix.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/tracking/BravoExtendedFix.java @@ -12,9 +12,9 @@ public interface BravoExtendedFix extends BravoFix { Double getPortRudderRake(); Double getStbdRudderRake(); Bearing getMastRotation(); - Double getLeeway(); + Bearing getLeeway(); Double getSet(); - Double getDrift(); + Bearing getDrift(); Distance getDepth(); Bearing getRudder(); Double getForestayLoad(); diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/tracking/impl/BravoExtendedFixImpl.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/tracking/impl/BravoExtendedFixImpl.java index 89efcd0e6ea..1cda013dd27 100644 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/tracking/impl/BravoExtendedFixImpl.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/tracking/impl/BravoExtendedFixImpl.java @@ -52,8 +52,9 @@ public class BravoExtendedFixImpl extends BravoFixImpl implements BravoExtendedF } @Override - public Double getLeeway() { - return fix.get(BravoExtendedSensorDataMetadata.LEEWAY.getColumnIndex()); + public Bearing getLeeway() { + final Double leeway = fix.get(BravoExtendedSensorDataMetadata.LEEWAY.getColumnIndex()); + return leeway == null ? null : new DegreeBearingImpl(leeway); } @Override @@ -62,8 +63,9 @@ public class BravoExtendedFixImpl extends BravoFixImpl implements BravoExtendedF } @Override - public Double getDrift() { - return fix.get(BravoExtendedSensorDataMetadata.DRIFT.getColumnIndex()); + public Bearing getDrift() { + final Double drift = fix.get(BravoExtendedSensorDataMetadata.DRIFT.getColumnIndex()); + return drift == null ? null : new DegreeBearingImpl(drift); } @Override diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/BravoFixTrack.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/BravoFixTrack.java index d4d152e746b..8b0e5f27e5e 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/BravoFixTrack.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/BravoFixTrack.java @@ -88,4 +88,16 @@ public interface BravoFixTrack extends S Double getPortRudderRakeIfAvailable(TimePoint timePoint); Double getStbdRudderRakeIfAvailable(TimePoint timePoint); Bearing getMastRotationIfAvailable(TimePoint timePoint); + Bearing getLeewayIfAvailable(TimePoint timePoint); + Double getSetIfAvailable(TimePoint timePoint); + Bearing getDriftIfAvailable(TimePoint timePoint); + Distance getDepthIfAvailable(TimePoint timePoint); + Bearing getRudderIfAvailable(TimePoint timePoint); + Double getForestayLoadIfAvailable(TimePoint timePoint); + Bearing getTackAngleIfAvailable(TimePoint timePoint); + Bearing getRakeIfAvailable(TimePoint timePoint); + Double getDeflectorPercentageIfAvailable(TimePoint timePoint); + Bearing getTargetHeelIfAvailable(TimePoint timePoint); + Distance getDeflectorIfAvailable(TimePoint timePoint); + Double getTargetBoatspeedPIfAvailable(TimePoint timePoint); } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/BravoFixTrackImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/BravoFixTrackImpl.java index a444973c2a6..fb800728658 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/BravoFixTrackImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/BravoFixTrackImpl.java @@ -212,6 +212,78 @@ public class BravoFixTrackImpl extends S NaivelyScalableBearing::new); } + @Override + public Bearing getLeewayIfAvailable(TimePoint timePoint) { + return getValueFromExtendedFixSkippingNullValues(timePoint, BravoExtendedFix::getLeeway, + NaivelyScalableBearing::new); + } + + @Override + public Double getSetIfAvailable(TimePoint timePoint) { + return getValueFromExtendedFixSkippingNullValues(timePoint, BravoExtendedFix::getSet, + ScalableDouble::new); + } + + @Override + public Bearing getDriftIfAvailable(TimePoint timePoint) { + return getValueFromExtendedFixSkippingNullValues(timePoint, BravoExtendedFix::getDrift, + NaivelyScalableBearing::new); + } + + @Override + public Distance getDepthIfAvailable(TimePoint timePoint) { + return getValueFromExtendedFixSkippingNullValues(timePoint, BravoExtendedFix::getDepth, + ScalableDistance::new); + } + + @Override + public Bearing getRudderIfAvailable(TimePoint timePoint) { + return getValueFromExtendedFixSkippingNullValues(timePoint, BravoExtendedFix::getRudder, + NaivelyScalableBearing::new); + } + + @Override + public Double getForestayLoadIfAvailable(TimePoint timePoint) { + return getValueFromExtendedFixSkippingNullValues(timePoint, BravoExtendedFix::getForestayLoad, + ScalableDouble::new); + } + + @Override + public Bearing getTackAngleIfAvailable(TimePoint timePoint) { + return getValueFromExtendedFixSkippingNullValues(timePoint, BravoExtendedFix::getTackAngle, + NaivelyScalableBearing::new); + } + + @Override + public Bearing getRakeIfAvailable(TimePoint timePoint) { + return getValueFromExtendedFixSkippingNullValues(timePoint, BravoExtendedFix::getRake, + NaivelyScalableBearing::new); + } + + @Override + public Double getDeflectorPercentageIfAvailable(TimePoint timePoint) { + return getValueFromExtendedFixSkippingNullValues(timePoint, BravoExtendedFix::getDeflectorPercentage, + ScalableDouble::new); + } + + @Override + public Bearing getTargetHeelIfAvailable(TimePoint timePoint) { + return getValueFromExtendedFixSkippingNullValues(timePoint, BravoExtendedFix::getTargetHeel, + NaivelyScalableBearing::new); + } + + @Override + public Distance getDeflectorIfAvailable(TimePoint timePoint) { + return getValueFromExtendedFixSkippingNullValues(timePoint, BravoExtendedFix::getDeflector, + ScalableDistance::new); + } + + @Override + public Double getTargetBoatspeedPIfAvailable(TimePoint timePoint) { + return getValueFromExtendedFixSkippingNullValues(timePoint, BravoExtendedFix::getTargetBoatspeedP, + ScalableDouble::new); + } + private static class NaivelyScalableBearing implements ScalableValue { private final double deg; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/DetailTypeFormatter.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/DetailTypeFormatter.java index f784d5f0c4f..947f576743d 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/DetailTypeFormatter.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/DetailTypeFormatter.java @@ -56,6 +56,30 @@ public class DetailTypeFormatter { return stringMessages.currentStbdRudderRake(); case CURRENT_MAST_ROTATION_IN_DEGREES: return stringMessages.currentMastRotationInDegree(); + case CURRENT_DEPTH_IN_METERS: + return stringMessages.currentDepthInMeters(); + case CURRENT_DRIFT_IN_DEGREES: + return stringMessages.currentDriftInDegrees(); + case CURRENT_LEEWAY_IN_DEGREES: + return stringMessages.currentLeewayInDegrees(); + case CURRENT_RUDDER_IN_DEGREES: + return stringMessages.currentRudderInDegrees(); + case CURRENT_SET: + return stringMessages.currentSet(); + case CURRENT_TACK_ANGLE_IN_DEGREES: + return stringMessages.currentTackAngleInDegrees(); + case CURRENT_DEFLECTOR_IN_MILLIMETERS: + return stringMessages.currentDeflectorInMillimeters(); + case CURRENT_DEFLECTOR_PERCENTAGE: + return stringMessages.currentDeflectorPercentage(); + case CURRENT_FORESTAY_LOAD: + return stringMessages.currentForestayLoad(); + case CURRENT_RAKE_IN_DEGREES: + return stringMessages.currentRakeInDegrees(); + case CURRENT_TARGET_BOATSPEED_PERCENTAGE: + return stringMessages.currentTargetBoatspeedPercentage(); + case CURRENT_TARGET_HEEL_ANGLE_IN_DEGREES: + return stringMessages.currentTargetHeelAngleInDegrees(); case ESTIMATED_TIME_TO_NEXT_WAYPOINT_IN_SECONDS: return stringMessages.estimatedTimeToNextWaypointInSeconds(); case VELOCITY_MADE_GOOD_IN_KNOTS: @@ -162,6 +186,8 @@ public class DetailTypeFormatter { return stringMessages.beatAngle(); case COURSE_OVER_GROUND_TRUE_DEGREES: return stringMessages.courseOverGroundTrueDegrees(); + default: + break; } return null; } @@ -188,6 +214,10 @@ public class DetailTypeFormatter { case RACE_SPEED_OVER_GROUND_FIVE_SECONDS_BEFORE_START: return stringMessages.knotsUnit(); + case CURRENT_DEFLECTOR_PERCENTAGE: + case CURRENT_TARGET_BOATSPEED_PERCENTAGE: + return stringMessages.percent(); + case WINDWARD_DISTANCE_TO_COMPETITOR_FARTHEST_AHEAD: case WINDWARD_DISTANCE_TO_GO_IN_METERS: case DISTANCE_TRAVELED: @@ -209,18 +239,30 @@ public class DetailTypeFormatter { case DISTANCE_TO_START_LINE: case CURRENT_RIDE_HEIGHT_IN_METERS: case RACE_CURRENT_RIDE_HEIGHT_IN_METERS: + case CURRENT_DEPTH_IN_METERS: return stringMessages.metersUnit(); + + case CURRENT_DEFLECTOR_IN_MILLIMETERS: + return stringMessages.millimetersUnit(); case COURSE_OVER_GROUND_TRUE_DEGREES: case CURRENT_HEEL_IN_DEGREES: case CURRENT_PITCH_IN_DEGREES: case CURRENT_MAST_ROTATION_IN_DEGREES: + case CURRENT_DRIFT_IN_DEGREES: + case CURRENT_LEEWAY_IN_DEGREES: + case CURRENT_RAKE_IN_DEGREES: + case CURRENT_RUDDER_IN_DEGREES: + case CURRENT_TACK_ANGLE_IN_DEGREES: + case CURRENT_TARGET_HEEL_ANGLE_IN_DEGREES: return stringMessages.degreesShort(); case CURRENT_PORT_DAGGERBOARD_RAKE: case CURRENT_STBD_DAGGERBOARD_RAKE: case CURRENT_PORT_RUDDER_RAKE: case CURRENT_STBD_RUDDER_RAKE: + case CURRENT_FORESTAY_LOAD: + case CURRENT_SET: // We currently do not show a specific unit for these measures because these are specific "uninterpreted" values return ""; @@ -270,6 +312,8 @@ public class DetailTypeFormatter { case BEAT_ANGLE: case TIME_ON_TIME_FACTOR: return ""; + default: + break; } // Throwing an exception to get notified if an implementation of // a detail type is missing. @@ -348,6 +392,30 @@ public class DetailTypeFormatter { return stringMessages.currentStbdRudderRakeTooltip(); case CURRENT_MAST_ROTATION_IN_DEGREES: return stringMessages.currentMastRotationInDegreeTooltip(); + case CURRENT_DEPTH_IN_METERS: + return stringMessages.currentDepthInMetersTooltip(); + case CURRENT_DRIFT_IN_DEGREES: + return stringMessages.currentDriftInDegreesTooltip(); + case CURRENT_LEEWAY_IN_DEGREES: + return stringMessages.currentLeewayInDegreesTooltip(); + case CURRENT_RUDDER_IN_DEGREES: + return stringMessages.currentRudderInDegreesTooltip(); + case CURRENT_SET: + return stringMessages.currentSetTooltip(); + case CURRENT_TACK_ANGLE_IN_DEGREES: + return stringMessages.currentTackAngleInDegreesTooltip(); + case CURRENT_DEFLECTOR_IN_MILLIMETERS: + return stringMessages.currentDeflectorInMillimetersTooltip(); + case CURRENT_DEFLECTOR_PERCENTAGE: + return stringMessages.currentDeflectorPercentageTooltip(); + case CURRENT_FORESTAY_LOAD: + return stringMessages.currentForestayLoadTooltip(); + case CURRENT_RAKE_IN_DEGREES: + return stringMessages.currentRakeInDegreesTooltip(); + case CURRENT_TARGET_BOATSPEED_PERCENTAGE: + return stringMessages.currentTargetBoatspeedPercentageTooltip(); + case CURRENT_TARGET_HEEL_ANGLE_IN_DEGREES: + return stringMessages.currentTargetHeelAngleInDegreesTooltip(); case CURRENT_HEEL_IN_DEGREES: return stringMessages.currentHeelInDegreeTooltip(); case CURRENT_PITCH_IN_DEGREES: diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java index 21b4d544a58..3cf9849e336 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java @@ -184,6 +184,7 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages, String secondsUnit(); String secondsPerNauticalMileUnit(); String metersUnit(); + String millimetersUnit(); String degreesUnit(); @Override String close(); @@ -1942,4 +1943,29 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages, String expeditionBoatId(); String doYouReallyWantToRemoveTheSelectedExpeditionDeviceConfigurations(); String doYouReallyWantToRemoveTheSelectedIgtimiAccounts(); + String currentDepthInMeters(); + String currentDriftInDegrees(); + String currentLeewayInDegrees(); + String currentRudderInDegrees(); + String currentSet(); + String currentTackAngleInDegrees(); + String currentDeflectorInMillimeters(); + String currentDeflectorPercentage(); + String currentForestayLoad(); + String currentRakeInDegrees(); + String currentTargetBoatspeedPercentage(); + String currentTargetHeelAngleInDegrees(); + String percent(); + String currentTargetHeelAngleInDegreesTooltip(); + String currentTargetBoatspeedPercentageTooltip(); + String currentRakeInDegreesTooltip(); + String currentForestayLoadTooltip(); + String currentDeflectorPercentageTooltip(); + String currentDeflectorInMillimetersTooltip(); + String currentTackAngleInDegreesTooltip(); + String currentSetTooltip(); + String currentRudderInDegreesTooltip(); + String currentLeewayInDegreesTooltip(); + String currentDriftInDegreesTooltip(); + String currentDepthInMetersTooltip(); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties index 23b2515c3c8..363474d9953 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties @@ -183,6 +183,7 @@ in=in secondsUnit=s secondsPerNauticalMileUnit=s/NM metersUnit=m +millimetersUnit=mm degreesUnit=° close=Close compareCompetitors=Compare competitors @@ -1926,4 +1927,29 @@ addExpeditionDeviceConfiguration=Add Expedition Device Configuration editExpeditionDeviceConfiguration=Edit Expedition Device Configuration expeditionBoatId=Boat ID (e.g. 0, 1, or 2) doYouReallyWantToRemoveTheSelectedExpeditionDeviceConfigurations=Do you really want to remove the selected Expedition device configurations? -doYouReallyWantToRemoveTheSelectedIgtimiAccounts=Do you really want to remove the selected Igtimi accounts? \ No newline at end of file +doYouReallyWantToRemoveTheSelectedIgtimiAccounts=Do you really want to remove the selected Igtimi accounts? +currentDepthInMeters=Depth +currentDriftInDegrees=Drift +currentLeewayInDegrees=Leeway +currentRudderInDegrees=Rudder +currentSet=Set +currentTackAngleInDegrees=Tack Angle +currentDeflectorInMillimeters=Deflector Distance +currentDeflectorPercentage=Deflector Ratio +currentForestayLoad=Forestay Load +currentRakeInDegrees=Rake +currentTargetBoatspeedPercentage=Target Boatspeed +currentTargetHeelAngleInDegrees=Target Heel +percent=% +currentTargetHeelAngleInDegreesTooltip=Target heel angle for best performance +currentTargetBoatspeedPercentageTooltip=Percentage of the calculated target boat speed reached +currentRakeInDegreesTooltip=Mast rake +currentForestayLoadTooltip=Forestay load, measured by a load cell +currentDeflectorPercentageTooltip=Deflector percentage +currentDeflectorInMillimetersTooltip=Deflector distance +currentTackAngleInDegreesTooltip=The calculated optimum tack angle +currentSetTooltip=Set (???) +currentRudderInDegreesTooltip=Rudder angle; negative values mean to port, positive to starboard +currentLeewayInDegreesTooltip=Leeway +currentDriftInDegreesTooltip=Angle between heading and course over ground +currentDepthInMetersTooltip=Water depth diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties index cea5ffe233c..cb2f52bfe9c 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties @@ -186,6 +186,7 @@ in=in secondsUnit=s secondsPerNauticalMileUnit=s/sm metersUnit=m +millimetersUnit=mm degreesUnit=° close=Schließen compareCompetitors=Teilnehmer vergleichen @@ -1920,4 +1921,29 @@ addExpeditionDeviceConfiguration=Expedition Gerätekonfiguration hinzufügen editExpeditionDeviceConfiguration=Expedition Gerätekonfiguration bearbeiten expeditionBoatId=Boot-ID (z.B. 0, 1 oder 2) doYouReallyWantToRemoveTheSelectedExpeditionDeviceConfigurations=Möchten Sie wirklich die ausgewählten Expedition Gerätekonfigurationen löschen? -doYouReallyWantToRemoveTheSelectedIgtimiAccounts=Möchten Sie wirklich die ausgewählten Igtimi-Konten löschen? \ No newline at end of file +doYouReallyWantToRemoveTheSelectedIgtimiAccounts=Möchten Sie wirklich die ausgewählten Igtimi-Konten löschen? +currentDepthInMeters=Wassertiefe +currentDriftInDegrees=Abdrift +currentLeewayInDegrees=Leeway (???) +currentRudderInDegrees=Ruder +currentSet=Set (???) +currentTackAngleInDegrees=Wendewinkel +currentDeflectorInMillimeters=Abweiser Abstand (???) +currentDeflectorPercentage=Abweiser Anteil (???) +currentForestayLoad=Vorstagsspannung +currentRakeInDegrees=Mastneigung +currentTargetBoatspeedPercentage=Anteil Zielgeschwindigkeit +currentTargetHeelAngleInDegrees=Ziel-Krängung +percent=% +currentTargetHeelAngleInDegreesTooltip=Optimale Krängung +currentTargetBoatspeedPercentageTooltip=Anteil der erreichten berechneten Zielgeschwindigkeit +currentRakeInDegreesTooltip=Mastneigung +currentForestayLoadTooltip=Gemessene Vorstagsspannung +currentDeflectorPercentageTooltip=Prozentualer Anteil Abweiser (???) +currentDeflectorInMillimetersTooltip=Abweiser Abstand (???) +currentTackAngleInDegreesTooltip=Berechneter optimaler Wendewinkel +currentSetTooltip=Set (???) +currentRudderInDegreesTooltip=Ruderwinkel; negative Werte bedeuten Ruder nach Backbord, positive Ruder nach Steuerbord +currentLeewayInDegreesTooltip=Leeway (???) +currentDriftInDegreesTooltip=Winkel zwischen Kurs durchs Wasser und Kurs über Grund +currentDepthInMetersTooltip=Wassertiefe diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java index b17e902e1c0..9f49c92b530 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java @@ -40,6 +40,8 @@ import java.util.concurrent.Executor; import java.util.concurrent.Future; import java.util.concurrent.FutureTask; import java.util.concurrent.RunnableFuture; +import java.util.function.BiFunction; +import java.util.function.Function; import java.util.logging.Level; import java.util.logging.Logger; import java.util.regex.Matcher; @@ -2960,71 +2962,84 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S } break; case CURRENT_HEEL_IN_DEGREES: { - final BravoFixTrack bravoFixTrack = trackedRace - .> getSensorTrack(competitor, BravoFixTrack.TRACK_NAME); - if (bravoFixTrack != null) { - final Bearing bearing = bravoFixTrack.getHeel(timePoint); - result = bearing == null ? null : bearing.getDegrees(); - } + result = getBravoBearingInDegrees(BravoFixTrack::getHeel, trackedRace, competitor, timePoint); break; } case CURRENT_PITCH_IN_DEGREES: { - final BravoFixTrack bravoFixTrack = trackedRace - .> getSensorTrack(competitor, BravoFixTrack.TRACK_NAME); - if (bravoFixTrack != null) { - final Bearing bearing = bravoFixTrack.getPitch(timePoint); - result = bearing == null ? null : bearing.getDegrees(); - } + result = getBravoBearingInDegrees(BravoFixTrack::getPitch, trackedRace, competitor, timePoint); break; } case RACE_CURRENT_RIDE_HEIGHT_IN_METERS: { - final BravoFixTrack bravoFixTrack = trackedRace - .> getSensorTrack(competitor, BravoFixTrack.TRACK_NAME); - if (bravoFixTrack != null) { - final Distance rideHeight = bravoFixTrack.getRideHeight(timePoint); - result = rideHeight == null ? null : rideHeight.getMeters(); - } + result = getBravoDistanceInMeters(BravoFixTrack::getRideHeight, trackedRace, competitor, timePoint); break; } case CURRENT_PORT_DAGGERBOARD_RAKE: { - final BravoFixTrack bravoFixTrack = trackedRace - .> getSensorTrack(competitor, BravoFixTrack.TRACK_NAME); - if (bravoFixTrack != null) { - result = bravoFixTrack.getPortDaggerboardRakeIfAvailable(timePoint); - } + result = getBravoDoubleValue(BravoFixTrack::getPortDaggerboardRakeIfAvailable, trackedRace, competitor, timePoint); break; } case CURRENT_STBD_DAGGERBOARD_RAKE: { - final BravoFixTrack bravoFixTrack = trackedRace - .> getSensorTrack(competitor, BravoFixTrack.TRACK_NAME); - if (bravoFixTrack != null) { - result = bravoFixTrack.getStbdDaggerboardRakeStbdIfAvailable(timePoint); - } + result = getBravoDoubleValue(BravoFixTrack::getStbdDaggerboardRakeStbdIfAvailable, trackedRace, competitor, timePoint); break; } case CURRENT_PORT_RUDDER_RAKE: { - final BravoFixTrack bravoFixTrack = trackedRace - .> getSensorTrack(competitor, BravoFixTrack.TRACK_NAME); - if (bravoFixTrack != null) { - result = bravoFixTrack.getPortRudderRakeIfAvailable(timePoint); - } + result = getBravoDoubleValue(BravoFixTrack::getPortRudderRakeIfAvailable, trackedRace, competitor, timePoint); break; } case CURRENT_STBD_RUDDER_RAKE: { - final BravoFixTrack bravoFixTrack = trackedRace - .> getSensorTrack(competitor, BravoFixTrack.TRACK_NAME); - if (bravoFixTrack != null) { - result = bravoFixTrack.getStbdRudderRakeIfAvailable(timePoint); - } + result = getBravoDoubleValue(BravoFixTrack::getStbdRudderRakeIfAvailable, trackedRace, competitor, timePoint); break; } case CURRENT_MAST_ROTATION_IN_DEGREES: { - final BravoFixTrack bravoFixTrack = trackedRace - .> getSensorTrack(competitor, BravoFixTrack.TRACK_NAME); - if (bravoFixTrack != null) { - final Bearing bearing = bravoFixTrack.getMastRotationIfAvailable(timePoint); - result = bearing == null ? null : bearing.getDegrees(); - } + result = getBravoBearingInDegrees(BravoFixTrack::getMastRotationIfAvailable, trackedRace, competitor, timePoint); + break; + } + case CURRENT_LEEWAY_IN_DEGREES: { + result = getBravoBearingInDegrees(BravoFixTrack::getLeewayIfAvailable, trackedRace, competitor, timePoint); + break; + } + case CURRENT_SET: { + result = getBravoDoubleValue(BravoFixTrack::getSetIfAvailable, trackedRace, competitor, timePoint); + break; + } + case CURRENT_DRIFT_IN_DEGREES: { + result = getBravoBearingInDegrees(BravoFixTrack::getDriftIfAvailable, trackedRace, competitor, timePoint); + break; + } + case CURRENT_DEPTH_IN_METERS: { + result = getBravoDistanceInMeters(BravoFixTrack::getDepthIfAvailable, trackedRace, competitor, timePoint); + break; + } + case CURRENT_RUDDER_IN_DEGREES: { + result = getBravoBearingInDegrees(BravoFixTrack::getRudderIfAvailable, trackedRace, competitor, timePoint); + break; + } + case CURRENT_TACK_ANGLE_IN_DEGREES: { + result = getBravoBearingInDegrees(BravoFixTrack::getTackAngleIfAvailable, trackedRace, competitor, timePoint); + break; + } + case CURRENT_DEFLECTOR_PERCENTAGE: { + result = getBravoDoubleValue(BravoFixTrack::getDeflectorPercentageIfAvailable, trackedRace, competitor, timePoint); + break; + } + case CURRENT_DEFLECTOR_IN_MILLIMETERS: { + Double deflectorInMeters = getBravoDistanceInMeters(BravoFixTrack::getDeflectorIfAvailable, trackedRace, competitor, timePoint); + result = deflectorInMeters == null ? null : (deflectorInMeters * 1000.); + break; + } + case CURRENT_RAKE_IN_DEGREES: { + result = getBravoBearingInDegrees(BravoFixTrack::getRakeIfAvailable, trackedRace, competitor, timePoint); + break; + } + case CURRENT_TARGET_HEEL_ANGLE_IN_DEGREES: { + result = getBravoBearingInDegrees(BravoFixTrack::getTargetHeelIfAvailable, trackedRace, competitor, timePoint); + break; + } + case CURRENT_FORESTAY_LOAD: { + result = getBravoDoubleValue(BravoFixTrack::getForestayLoadIfAvailable, trackedRace, competitor, timePoint); + break; + } + case CURRENT_TARGET_BOATSPEED_PERCENTAGE: { + result = getBravoDoubleValue(BravoFixTrack::getTargetBoatspeedPIfAvailable, trackedRace, competitor, timePoint); break; } default: @@ -3037,6 +3052,36 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S } } + private Double getBravoDoubleValue(BiFunction, TimePoint, Double> valueGetter, + TrackedRace trackedRace, Competitor competitor, TimePoint timePoint) { + return getBravoValue(valueGetter, d->d, trackedRace, competitor, timePoint); + } + + private Double getBravoBearingInDegrees(BiFunction, TimePoint, Bearing> valueGetter, + TrackedRace trackedRace, Competitor competitor, TimePoint timePoint) { + return getBravoValue(valueGetter, b->b.getDegrees(), trackedRace, competitor, timePoint); + } + + private Double getBravoDistanceInMeters(BiFunction, TimePoint, Distance> valueGetter, + TrackedRace trackedRace, Competitor competitor, TimePoint timePoint) { + return getBravoValue(valueGetter, d->d.getMeters(), trackedRace, competitor, timePoint); + } + + private Double getBravoValue(BiFunction, TimePoint, T> valueGetter, + Function mapperToDouble, + TrackedRace trackedRace, Competitor competitor, TimePoint timePoint) { + final Double result; + final BravoFixTrack bravoFixTrack = trackedRace + .> getSensorTrack(competitor, BravoFixTrack.TRACK_NAME); + if (bravoFixTrack != null) { + final T t = valueGetter.apply(bravoFixTrack, timePoint); + result = t == null ? null : mapperToDouble.apply(t); + } else { + result = null; + } + return result; + } + @Override public CompetitorsRaceDataDTO getCompetitorsRaceData(RegattaAndRaceIdentifier race, List competitors, Date from, Date to, final long stepSizeInMillis, final DetailType detailType, final String leaderboardGroupName, final String leaderboardName) throws NoWindException { @@ -6648,6 +6693,18 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S availableDetailsTypes.add(DetailType.CURRENT_PORT_RUDDER_RAKE); availableDetailsTypes.add(DetailType.CURRENT_STBD_RUDDER_RAKE); availableDetailsTypes.add(DetailType.CURRENT_MAST_ROTATION_IN_DEGREES); + availableDetailsTypes.add(DetailType.CURRENT_LEEWAY_IN_DEGREES); + availableDetailsTypes.add(DetailType.CURRENT_SET); + availableDetailsTypes.add(DetailType.CURRENT_DRIFT_IN_DEGREES); + availableDetailsTypes.add(DetailType.CURRENT_DEPTH_IN_METERS); + availableDetailsTypes.add(DetailType.CURRENT_RUDDER_IN_DEGREES); + availableDetailsTypes.add(DetailType.CURRENT_TACK_ANGLE_IN_DEGREES); + availableDetailsTypes.add(DetailType.CURRENT_DEFLECTOR_PERCENTAGE); + availableDetailsTypes.add(DetailType.CURRENT_DEFLECTOR_IN_MILLIMETERS); + availableDetailsTypes.add(DetailType.CURRENT_RAKE_IN_DEGREES); + availableDetailsTypes.add(DetailType.CURRENT_TARGET_HEEL_ANGLE_IN_DEGREES); + availableDetailsTypes.add(DetailType.CURRENT_FORESTAY_LOAD); + availableDetailsTypes.add(DetailType.CURRENT_TARGET_BOATSPEED_PERCENTAGE); } } if (leaderboardGroupName != null) { From 54370d7fdf07a3e43c2a62d52cdc711989414b9d Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Tue, 7 Nov 2017 08:06:28 +0100 Subject: [PATCH 047/290] Bug 4346: Changed compass icon to be used via DataResource --- .../desktop/partials/racelist/RaceListColumnFactory.java | 6 +++--- .../home/desktop/partials/racelist/RaceListResources.java | 6 ++++++ .../home/desktop/partials/racelist}/windkompass_nord.svg | 0 3 files changed, 9 insertions(+), 3 deletions(-) rename java/com.sap.sailing.gwt.ui/{images/home => src/main/java/com/sap/sailing/gwt/home/desktop/partials/racelist}/windkompass_nord.svg (100%) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/racelist/RaceListColumnFactory.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/racelist/RaceListColumnFactory.java index 7026c8c53b2..a308100cffa 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/racelist/RaceListColumnFactory.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/racelist/RaceListColumnFactory.java @@ -57,8 +57,8 @@ public class RaceListColumnFactory { @Template("
    {3}
    ") SafeHtml viewStateRunning(String styleNamesBar, String styleNamesProgress, SafeStyles width, String text); - @Template("") - SafeHtml windDirection(SafeStyles rotation); + @Template("") + SafeHtml windDirection(SafeStyles rotation, SafeUri imageUrl); @Template("{4}
    {5}
    ") SafeHtml winner(String styleNamesFlag, String styleNamesSailId, String styleNamesText, SafeUri flagImageURL, String sailId, String name); @@ -275,7 +275,7 @@ public class RaceListColumnFactory { safeStyles.trustedNameAndValue("-webkit-transform", "rotate(" + value.getTrueWindFromDeg() + "deg)"); safeStyles.trustedNameAndValue("transform", "rotate(" + value.getTrueWindFromDeg() + "deg)"); safeStyles.width(2.75, Unit.EM).height(2.75, Unit.EM); - sb.append(TEMPLATE.windDirection(safeStyles.toSafeStyles())); + sb.append(TEMPLATE.windDirection(safeStyles.toSafeStyles(), RaceListResources.INSTANCE.compass().getSafeUri())); } } }; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/racelist/RaceListResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/racelist/RaceListResources.java index d9548ae6ff0..c4007b808fb 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/racelist/RaceListResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/racelist/RaceListResources.java @@ -2,6 +2,8 @@ package com.sap.sailing.gwt.home.desktop.partials.racelist; import com.google.gwt.core.client.GWT; import com.google.gwt.resources.client.CssResource; +import com.google.gwt.resources.client.DataResource; +import com.google.gwt.resources.client.DataResource.MimeType; import com.sap.sailing.gwt.home.desktop.resources.SharedDesktopResources; public interface RaceListResources extends SharedDesktopResources { @@ -9,6 +11,10 @@ public interface RaceListResources extends SharedDesktopResources { @Source("RaceList.gss") LocalCss css(); + + @Source("windkompass_nord.svg") + @MimeType("image/svg+xml") + DataResource compass(); public interface LocalCss extends CssResource { String race(); diff --git a/java/com.sap.sailing.gwt.ui/images/home/windkompass_nord.svg b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/racelist/windkompass_nord.svg similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/home/windkompass_nord.svg rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/racelist/windkompass_nord.svg From 4421d4ee58546ebec8176810fc78a76ee74c8257 Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Tue, 7 Nov 2017 08:10:10 +0100 Subject: [PATCH 048/290] Bug 4346: Converted MainMedia.css to GSS in order to make the integration of icons via ImageResource easier --- .../partials/mainmedia/{MainMedia.css => MainMedia.gss} | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) rename java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/mainmedia/{MainMedia.css => MainMedia.gss} (94%) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/mainmedia/MainMedia.css b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/mainmedia/MainMedia.gss similarity index 94% rename from java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/mainmedia/MainMedia.css rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/mainmedia/MainMedia.gss index 71352f498a7..e88a8770e3c 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/mainmedia/MainMedia.css +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/mainmedia/MainMedia.gss @@ -1,6 +1,6 @@ .media { - font-size: 15px; - font-size: 1rem; + /* @alternate */ font-size: 15px; + /* @alternate */ font-size: 1rem; } .media_swipecontainer { @@ -76,8 +76,8 @@ } .videopreview { - font-size: 15px; - font-size: 1rem; + /* @alternate */ font-size: 15px; + /* @alternate */ font-size: 1rem; margin-bottom: 2.666666666666667em; } From b70e76d03468f5291f29573e143e28eef98f50ca Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Tue, 7 Nov 2017 08:16:26 +0100 Subject: [PATCH 049/290] Bug 4346: Changed main media icons to be used via ImageResource --- .../home/desktop/partials/mainmedia/MainMedia.gss | 14 +++++++------- .../partials/mainmedia/MainMediaResources.java | 12 +++++++++++- .../mainmedia}/media-controls__arrows.png | Bin .../mainmedia}/media-controls__fullsize.png | Bin .../partials/mainmedia}/video__preview--play.png | Bin 5 files changed, 18 insertions(+), 8 deletions(-) rename java/com.sap.sailing.gwt.ui/{images/home => src/main/java/com/sap/sailing/gwt/home/desktop/partials/mainmedia}/media-controls__arrows.png (100%) rename java/com.sap.sailing.gwt.ui/{images/home => src/main/java/com/sap/sailing/gwt/home/desktop/partials/mainmedia}/media-controls__fullsize.png (100%) rename java/com.sap.sailing.gwt.ui/{images/home => src/main/java/com/sap/sailing/gwt/home/desktop/partials/mainmedia}/video__preview--play.png (100%) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/mainmedia/MainMedia.gss b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/mainmedia/MainMedia.gss index e88a8770e3c..5921259ba1f 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/mainmedia/MainMedia.gss +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/mainmedia/MainMedia.gss @@ -1,6 +1,6 @@ .media { - /* @alternate */ font-size: 15px; - /* @alternate */ font-size: 1rem; + /* @alternate */ font-size: 15px; + /* @alternate */ font-size: 1rem; } .media_swipecontainer { @@ -37,7 +37,7 @@ transform: translate(0, -50%); width: 60px; height: 60px; - background-image: url("images/home/media-controls__arrows.png"); + background-image: resourceUrl("mediaControlsArrows"); } .media_slideshow_controlsprev { @@ -59,7 +59,7 @@ } .media_slideshow_controlsfullsize { - background-image: url("images/home/media-controls__fullsize.png"); + background-image: resourceUrl("mediaControlsFullsize"); right: 0; bottom: 0; width: 40px; @@ -76,8 +76,8 @@ } .videopreview { - /* @alternate */ font-size: 15px; - /* @alternate */ font-size: 1rem; + /* @alternate */ font-size: 15px; + /* @alternate */ font-size: 1rem; margin-bottom: 2.666666666666667em; } @@ -93,7 +93,7 @@ transform: translate(-50%, 0); width: 69px; height: 69px; - background: url("images/home/video__preview--play.png"); + background: resourceUrl("videoPreviewPlay"); -webkit-background-size: contain; -moz-background-size: contain; background-size: contain; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/mainmedia/MainMediaResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/mainmedia/MainMediaResources.java index 272acae4b70..00a429faf60 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/mainmedia/MainMediaResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/mainmedia/MainMediaResources.java @@ -3,12 +3,22 @@ package com.sap.sailing.gwt.home.desktop.partials.mainmedia; import com.google.gwt.core.client.GWT; import com.google.gwt.resources.client.ClientBundle; import com.google.gwt.resources.client.CssResource; +import com.google.gwt.resources.client.ImageResource; public interface MainMediaResources extends ClientBundle { public static final MainMediaResources INSTANCE = GWT.create(MainMediaResources.class); - @Source("MainMedia.css") + @Source("MainMedia.gss") LocalCss css(); + + @Source("media-controls__arrows.png") + ImageResource mediaControlsArrows(); + + @Source("media-controls__fullsize.png") + ImageResource mediaControlsFullsize(); + + @Source("video__preview--play.png") + ImageResource videoPreviewPlay(); public interface LocalCss extends CssResource { String media(); diff --git a/java/com.sap.sailing.gwt.ui/images/home/media-controls__arrows.png b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/mainmedia/media-controls__arrows.png similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/home/media-controls__arrows.png rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/mainmedia/media-controls__arrows.png diff --git a/java/com.sap.sailing.gwt.ui/images/home/media-controls__fullsize.png b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/mainmedia/media-controls__fullsize.png similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/home/media-controls__fullsize.png rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/mainmedia/media-controls__fullsize.png diff --git a/java/com.sap.sailing.gwt.ui/images/home/video__preview--play.png b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/mainmedia/video__preview--play.png similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/home/video__preview--play.png rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/mainmedia/video__preview--play.png From 050541262cfaab2b98ee81e21684a1584b3324a2 Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Tue, 7 Nov 2017 08:26:14 +0100 Subject: [PATCH 050/290] Bug 4346: Changed green check icon to be used via ImageResource --- .../desktop/partials/multiregattalist/MultiRegattaList.gss | 2 +- .../partials/multiregattalist/MultiRegattaListResources.java | 4 ++-- .../sailing/gwt/home/desktop/partials/standings/Standings.gss | 2 +- .../home/mobile/partials/eventsteps/EventStepsPhase.ui.xml | 3 ++- .../gwt/home/shared/resources/SharedHomeResources.java | 4 ++++ .../sailing/gwt/home/shared/resources}/icon-green-check.svg | 0 6 files changed, 10 insertions(+), 5 deletions(-) rename java/com.sap.sailing.gwt.ui/{images/home => src/main/java/com/sap/sailing/gwt/home/shared/resources}/icon-green-check.svg (100%) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/multiregattalist/MultiRegattaList.gss b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/multiregattalist/MultiRegattaList.gss index 5f3811930ee..1d25a7dc7a6 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/multiregattalist/MultiRegattaList.gss +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/multiregattalist/MultiRegattaList.gss @@ -236,7 +236,7 @@ img.race_item_windflag { vertical-align: middle; width: 1.066666666666667em; height: 1.066666666666667em; - background-image: url("images/home/icon-green-check.svg"); + background-image: resourceUrl("greenCheck"); background-repeat: no-repeat; background-size: contain; margin-right: 0.333333333333333em; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/multiregattalist/MultiRegattaListResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/multiregattalist/MultiRegattaListResources.java index 2bfec96bb05..46c740520dc 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/multiregattalist/MultiRegattaListResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/multiregattalist/MultiRegattaListResources.java @@ -1,10 +1,10 @@ package com.sap.sailing.gwt.home.desktop.partials.multiregattalist; import com.google.gwt.core.client.GWT; -import com.google.gwt.resources.client.ClientBundle; import com.google.gwt.resources.client.CssResource; +import com.sap.sailing.gwt.home.shared.resources.SharedHomeResources; -public interface MultiRegattaListResources extends ClientBundle { +public interface MultiRegattaListResources extends SharedHomeResources { public static final MultiRegattaListResources INSTANCE = GWT.create(MultiRegattaListResources.class); @Source("MultiRegattaList.gss") diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/standings/Standings.gss b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/standings/Standings.gss index f1356a4aafe..3149bd71c5e 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/standings/Standings.gss +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/standings/Standings.gss @@ -107,7 +107,7 @@ vertical-align: middle; width: 1.066666666666667em; height: 1.066666666666667em; - background-image: url("../images/home/icon-green-check.svg"); + background-image: resourceUrl("greenCheck"); background-repeat: no-repeat; background-size: contain; margin-right: 0.333333333333333em; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/eventsteps/EventStepsPhase.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/eventsteps/EventStepsPhase.ui.xml index a2555bf8c5c..7cece0b816b 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/eventsteps/EventStepsPhase.ui.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/eventsteps/EventStepsPhase.ui.xml @@ -4,10 +4,11 @@ +
    - +
    diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/SharedHomeResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/SharedHomeResources.java index 3f4e77ad678..6e73973b29f 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/SharedHomeResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/SharedHomeResources.java @@ -54,4 +54,8 @@ public interface SharedHomeResources extends ClientBundle { @MimeType("image/svg+xml") DataResource twitterLogo(); + @Source("icon-green-check.svg") + @MimeType("image/svg+xml") + DataResource greenCheck(); + } diff --git a/java/com.sap.sailing.gwt.ui/images/home/icon-green-check.svg b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/icon-green-check.svg similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/home/icon-green-check.svg rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/icon-green-check.svg From a765f1c3164503cbb286bab669ff055d34eed429 Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Tue, 7 Nov 2017 08:43:41 +0100 Subject: [PATCH 051/290] Bug 4346: Changed launchpad icons to be used via DataResource --- .../RaceviewerLaunchPadCell.java | 15 ++++++++------- .../regattacompetition/RegattaCompetition.gss | 4 ++-- .../RegattaCompetitionResources.java | 4 ++-- .../regattacompetition/RegattaCompetition.gss | 8 ++++---- .../RegattaCompetitionResources.java | 4 ++-- .../shared/resources/SharedHomeResources.java | 8 ++++++++ .../gwt/home/shared/resources}/launch-loupe.svg | 0 .../gwt/home/shared/resources}/launch-play.svg | 0 8 files changed, 26 insertions(+), 17 deletions(-) rename java/com.sap.sailing.gwt.ui/{images/home => src/main/java/com/sap/sailing/gwt/home/shared/resources}/launch-loupe.svg (100%) rename java/com.sap.sailing.gwt.ui/{images/home => src/main/java/com/sap/sailing/gwt/home/shared/resources}/launch-play.svg (100%) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/raceviewerlaunchpad/RaceviewerLaunchPadCell.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/raceviewerlaunchpad/RaceviewerLaunchPadCell.java index e25cf2650e1..3dcc9d69ca6 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/raceviewerlaunchpad/RaceviewerLaunchPadCell.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/raceviewerlaunchpad/RaceviewerLaunchPadCell.java @@ -12,6 +12,7 @@ import com.google.gwt.safehtml.shared.SafeHtmlBuilder; import com.google.gwt.safehtml.shared.SafeUri; import com.google.gwt.safehtml.shared.UriUtils; import com.sap.sailing.gwt.home.communication.race.RaceMetadataDTO; +import com.sap.sailing.gwt.home.shared.resources.SharedHomeResources; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sse.common.Util; @@ -21,11 +22,11 @@ public class RaceviewerLaunchPadCell> extends Abstr @Template("
    {1}
    ") SafeHtml raceNotTracked(String styleNames, String text); - @Template("
    {2}
    ") - SafeHtml raceviewerLaunchPad(String styleNames, String iconStyleNames, String text); + @Template("
    {2}
    ") + SafeHtml raceviewerLaunchPad(String styleNames, String iconStyleNames, String text, SafeUri iconUrl); - @Template("
    {2}
    ") - SafeHtml standaloneButton(String styleNames, String iconStyleNames, String text, String icon, SafeUri safeUri); + @Template("
    {2}
    ") + SafeHtml standaloneButton(String styleNames, String iconStyleNames, String text, SafeUri iconUrl, SafeUri safeUri); } private static final CellTemplates TEMPLATE = GWT.create(CellTemplates.class); @@ -66,13 +67,13 @@ public class RaceviewerLaunchPadCell> extends Abstr switch (launchPadController.getRenderingStyle(data)) { case WATCH_LIVE_ONLY: sb.append(TEMPLATE.standaloneButton(plannedStyleNames, iconStyleNames, I18N.watchLive(), - "launch-play", UriUtils.fromString(launchPadController.getDirectLinkUrl(data)))); + SharedHomeResources.INSTANCE.launchPlay().getSafeUri(), UriUtils.fromString(launchPadController.getDirectLinkUrl(data)))); break; case WATCH_LIVE_OR_ANALYZE: - sb.append(TEMPLATE.raceviewerLaunchPad(liveStyleNames, iconStyleNames, I18N.raceDetailsToShow())); + sb.append(TEMPLATE.raceviewerLaunchPad(liveStyleNames, iconStyleNames, I18N.raceDetailsToShow(), SharedHomeResources.INSTANCE.launchLoupe().getSafeUri())); break; case ANALYZE: - sb.append(TEMPLATE.raceviewerLaunchPad(analyzeStyleNames, iconStyleNames, I18N.raceDetailsToShow())); + sb.append(TEMPLATE.raceviewerLaunchPad(analyzeStyleNames, iconStyleNames, I18N.raceDetailsToShow(), SharedHomeResources.INSTANCE.launchLoupe().getSafeUri())); break; case NOT_TRACKED: sb.append(TEMPLATE.raceNotTracked(notTrackedStyleNames, showNotTracked ? I18N.eventRegattaRaceNotTracked() : "")); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattacompetition/RegattaCompetition.gss b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattacompetition/RegattaCompetition.gss index 1840dcd6c5e..838f946303d 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattacompetition/RegattaCompetition.gss +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattacompetition/RegattaCompetition.gss @@ -144,7 +144,7 @@ display: inline-block; width: 1em; height: 0.866666666666667em; - background: url("images/home/launch-loupe.svg") no-repeat center center; + background: resourceUrl("launchLoupe") no-repeat center center; font-size: 1.466666666666667em; position: absolute; right: 0; @@ -175,7 +175,7 @@ background-color: #8a8a8a; } .fleet_races_raceplanned .fleet_races_race_name:after { - background: url("images/home/launch-play.svg") no-repeat center center; + background: resourceUrl("launchPlay") no-repeat center center; } .fleet_races_raceuntracked .fleet_races_race_name:after { display: none; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattacompetition/RegattaCompetitionResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattacompetition/RegattaCompetitionResources.java index 25731591094..6b9b757e840 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattacompetition/RegattaCompetitionResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/regattacompetition/RegattaCompetitionResources.java @@ -1,10 +1,10 @@ package com.sap.sailing.gwt.home.desktop.partials.regattacompetition; import com.google.gwt.core.client.GWT; -import com.google.gwt.resources.client.ClientBundle; import com.google.gwt.resources.client.CssResource; +import com.sap.sailing.gwt.home.shared.resources.SharedHomeResources; -public interface RegattaCompetitionResources extends ClientBundle { +public interface RegattaCompetitionResources extends SharedHomeResources { public static final RegattaCompetitionResources INSTANCE = GWT.create(RegattaCompetitionResources.class); @Source("RegattaCompetition.gss") diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/regattacompetition/RegattaCompetition.gss b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/regattacompetition/RegattaCompetition.gss index 9f4535c7332..f4cc6530815 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/regattacompetition/RegattaCompetition.gss +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/regattacompetition/RegattaCompetition.gss @@ -138,7 +138,7 @@ display: inline-block; width: 1.666666666666667em; height: 1.1em; - background: url("images/home/launch-loupe.svg") no-repeat center center; + background: resourceUrl("launchLoupe") no-repeat center center; position: absolute; right: 0; top: 0.133333333333333em; @@ -148,7 +148,7 @@ } .regattacompetition_phase_fleet_race_arrow { display: none; - background: url("images/home/launch-loupe.svg") no-repeat center center; + background: resourceUrl("launchLoupe") no-repeat center center; position: absolute; top: 50%; right: 1em; @@ -158,10 +158,10 @@ transform: translateY(-50%); } .regattacompetition_phase_fleet_raceplanned .regattacompetition_phase_fleet_race_title:after { - background: url("images/home/launch-play.svg") no-repeat center center; + background: resourceUrl("launchPlay") no-repeat center center; } .regattacompetition_phase_fleet_raceplanned .regattacompetition_phase_fleet_race_arrow { - background: url("images/home/launch-play.svg") no-repeat center center; + background: resourceUrl("launchPlay") no-repeat center center; } .regattacompetition_phase_fleet_raceuntracked .regattacompetition_phase_fleet_race_arrow { display: none; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/regattacompetition/RegattaCompetitionResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/regattacompetition/RegattaCompetitionResources.java index c0fa2dc729f..dd113f3c1de 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/regattacompetition/RegattaCompetitionResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/regattacompetition/RegattaCompetitionResources.java @@ -1,10 +1,10 @@ package com.sap.sailing.gwt.home.mobile.partials.regattacompetition; import com.google.gwt.core.client.GWT; -import com.google.gwt.resources.client.ClientBundle; import com.google.gwt.resources.client.CssResource; +import com.sap.sailing.gwt.home.shared.resources.SharedHomeResources; -public interface RegattaCompetitionResources extends ClientBundle { +public interface RegattaCompetitionResources extends SharedHomeResources { public static final RegattaCompetitionResources INSTANCE = GWT.create(RegattaCompetitionResources.class); @Source("RegattaCompetition.gss") diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/SharedHomeResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/SharedHomeResources.java index 6e73973b29f..6352cfd7bd4 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/SharedHomeResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/SharedHomeResources.java @@ -58,4 +58,12 @@ public interface SharedHomeResources extends ClientBundle { @MimeType("image/svg+xml") DataResource greenCheck(); + @Source("launch-loupe.svg") + @MimeType("image/svg+xml") + DataResource launchLoupe(); + + @Source("launch-play.svg") + @MimeType("image/svg+xml") + DataResource launchPlay(); + } diff --git a/java/com.sap.sailing.gwt.ui/images/home/launch-loupe.svg b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/launch-loupe.svg similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/home/launch-loupe.svg rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/launch-loupe.svg diff --git a/java/com.sap.sailing.gwt.ui/images/home/launch-play.svg b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/launch-play.svg similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/home/launch-play.svg rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/launch-play.svg From 803222a8d39fe4ab86931680f6947ed691c1e854 Mon Sep 17 00:00:00 2001 From: Kai Boernert Date: Tue, 7 Nov 2017 08:45:22 +0100 Subject: [PATCH 052/290] fixed missing messages after merge issues --- .../com/sap/sailing/gwt/ui/client/StringMessages.properties | 2 ++ .../com/sap/sailing/gwt/ui/client/StringMessages_de.properties | 1 + 2 files changed, 3 insertions(+) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties index 3b7ea383da9..80a4036b2a2 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties @@ -994,6 +994,7 @@ overwriteRacingProceduresConfiguration=Activate regatta configuration overwriteRacingProceduresConfigurationHelpText=Enabling this option will provide a base regatta configuration for all options unconfigured in the regatta-specific configuration. setStartTime=Set start time currentPass=Current pass +setEndTimeDescription=Select a new end time for the race. ?Clarify Domain logic here:?If you want to set the end time to a timepoint in the past then you have to enable the checkbox to update the pass count. Please be aware of the fact that changing the pass count will have you loose all information from the previous pass (like flag events). setStartTimeDescription=Select a new start time for the race. If you want to set the start time to a timepoint in the past then you have to enable the checkbox to update the pass count. Please be aware of the fact that changing the pass count will have you loose all information from the previous pass (like flag events). setTrackingTimesDescription=Set the start and end of tracking for the race. hasAdditionalGolfDownTime=Activate additional golf down time @@ -1917,6 +1918,7 @@ currentStbdRudderRakeTooltip=The current starboard rudder rake currentMastRotationInDegree=Mast rotation currentMastRotationInDegreeTooltip=The current mast rotation in degrees setFinishingTime=Set finishing time +setEndTime=Set finish time boatNameMustNotBeEmpty=Please provide a non-empty boat name errorUpdatingExpeditionDeviceConfiguration=Error updating Expedition device configuration "{0}": {1} doYouReallyWantToRemoveExpeditionDeviceConfiguration=Do you really want to remove Expedition device configuration "{0}"? diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties index fc955f67acd..9f6028b661c 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties @@ -1911,6 +1911,7 @@ chooseDifferentDimensionTitle=Andere Dimension auswählen chooseDifferentDimensionMessage=Zum Gruppieren eine andere Dimension auswählen pleaseSelectADimension=Bitte eine Dimension auswählen setFinishingTime=Setze Zieleinlaufzeit +setEndTime=Setzte Endzeitpunkt boatNameMustNotBeEmpty=Bitte einen nicht leeren Bootsnamen angeben errorUpdatingExpeditionDeviceConfiguration=Fehler beim Speichern der Expedition Gerätekonfiguration "{0}": {1} doYouReallyWantToRemoveExpeditionDeviceConfiguration=Möchten Sie wirklich die Expedition Gerätekonfiguration "{0}" löschen? From e8457959705c05fc80f1b42d60656e1938eda064 Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Tue, 7 Nov 2017 09:08:52 +0100 Subject: [PATCH 053/290] Bug 4346: Changed location, news and notification icons to be used via ImageResource --- .../desktop/partials/eventheader/EventHeader.ui.xml | 2 +- .../partials/eventheader/EventHeaderResources.java | 3 +++ .../desktop/partials/eventheader}/location-icon.png | Bin .../home/desktop/partials/updates/UpdatesBox.gss | 1 + .../desktop/partials/updates/UpdatesBoxItem.ui.xml | 4 ++-- .../home/mobile/partials/updatesBox/UpdatesBox.gss | 1 + .../partials/updatesBox/UpdatesBoxItem.ui.xml | 2 +- .../gwt/home/shared/partials/message/Message.ui.xml | 2 +- .../shared/partials/message/MessageResources.java | 4 ++++ .../home/shared/partials/message}/notification.png | Bin .../home/shared/resources/SharedHomeResources.java | 3 +++ .../sailing/gwt/home/shared/resources}/news-i.png | Bin 12 files changed, 17 insertions(+), 5 deletions(-) rename java/com.sap.sailing.gwt.ui/{images/home => src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader}/location-icon.png (100%) rename java/com.sap.sailing.gwt.ui/{images/home => src/main/java/com/sap/sailing/gwt/home/shared/partials/message}/notification.png (100%) rename java/com.sap.sailing.gwt.ui/{images/home => src/main/java/com/sap/sailing/gwt/home/shared/resources}/news-i.png (100%) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeader.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeader.ui.xml index 0e94e41524f..bdfe83cdf19 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeader.ui.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeader.ui.xml @@ -42,7 +42,7 @@
    - +
    diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeaderResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeaderResources.java index 3aeb206924e..45827454dc1 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeaderResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeaderResources.java @@ -13,6 +13,9 @@ public interface EventHeaderResources extends SharedDesktopResources { @Source("dropdown__button--arrow@2x.png") ImageResource dropdown(); + + @Source("location-icon.png") + ImageResource location(); public interface LocalCss extends CssResource { String jsdropdown(); diff --git a/java/com.sap.sailing.gwt.ui/images/home/location-icon.png b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/location-icon.png similarity index 100% rename from java/com.sap.sailing.gwt.ui/images/home/location-icon.png rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/location-icon.png diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/updates/UpdatesBox.gss b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/updates/UpdatesBox.gss index 4a98e76f294..31e080a109d 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/updates/UpdatesBox.gss +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/updates/UpdatesBox.gss @@ -68,6 +68,7 @@ background-repeat: no-repeat; -webkit-filter: grayscale(100%); filter: grayscale(100%); + background-image: resourceUrl("news"); } @media (max-width: 1190px) { .updatesbox_item_icon { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/updates/UpdatesBoxItem.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/updates/UpdatesBoxItem.ui.xml index be325dbeafc..0125b8d528e 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/updates/UpdatesBoxItem.ui.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/updates/UpdatesBoxItem.ui.xml @@ -3,10 +3,10 @@ xmlns:s="urn:import:com.sap.sailing.gwt.home.client.shared"> +
  • -
    +
    diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/updatesBox/UpdatesBox.gss b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/updatesBox/UpdatesBox.gss index 683db58c985..15bcda0d6fd 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/updatesBox/UpdatesBox.gss +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/updatesBox/UpdatesBox.gss @@ -68,6 +68,7 @@ background-repeat: no-repeat; -webkit-filter: grayscale(100%); filter: grayscale(100%); + background-image: resourceUrl("news"); } @media (max-width: 1190px) { .updatesbox_item_icon { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/updatesBox/UpdatesBoxItem.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/updatesBox/UpdatesBoxItem.ui.xml index c5c35020e10..ea41ccf45b9 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/updatesBox/UpdatesBoxItem.ui.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/updatesBox/UpdatesBoxItem.ui.xml @@ -4,7 +4,7 @@
  • -
    +
    diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/message/Message.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/message/Message.ui.xml index 5e484309a8b..76ae2040949 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/message/Message.ui.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/partials/message/Message.ui.xml @@ -7,7 +7,7 @@
  • - +
    @@ -26,7 +26,7 @@
    - +
    diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/SharedHomeResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/SharedHomeResources.java index 19b29853a88..e82078897bb 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/SharedHomeResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/SharedHomeResources.java @@ -1,12 +1,12 @@ package com.sap.sailing.gwt.home.shared.resources; import com.google.gwt.core.client.GWT; -import com.google.gwt.resources.client.ClientBundle; import com.google.gwt.resources.client.DataResource; import com.google.gwt.resources.client.DataResource.MimeType; import com.google.gwt.resources.client.ImageResource; +import com.sap.sse.gwt.common.CommonIcons; -public interface SharedHomeResources extends ClientBundle { +public interface SharedHomeResources extends CommonIcons { public static final SharedHomeResources INSTANCE = GWT.create(SharedHomeResources.class); @@ -46,14 +46,6 @@ public interface SharedHomeResources extends ClientBundle { @MimeType("image/svg+xml") DataResource fullscreen(); - @Source("facebook-logo.svg") - @MimeType("image/svg+xml") - DataResource facebookLogo(); - - @Source("twitter-logo.svg") - @MimeType("image/svg+xml") - DataResource twitterLogo(); - @Source("icon-green-check.svg") @MimeType("image/svg+xml") DataResource greenCheck(); diff --git a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/common/CommonIcons.java b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/common/CommonIcons.java new file mode 100644 index 00000000000..758a201d2b9 --- /dev/null +++ b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/common/CommonIcons.java @@ -0,0 +1,20 @@ +package com.sap.sse.gwt.common; + +import com.google.gwt.resources.client.ClientBundle; +import com.google.gwt.resources.client.DataResource; +import com.google.gwt.resources.client.DataResource.MimeType; + +public interface CommonIcons extends ClientBundle { + + @Source("facebook-logo.svg") + @MimeType("image/svg+xml") + DataResource facebook(); + + @Source("twitter-logo.svg") + @MimeType("image/svg+xml") + DataResource twitter(); + + @Source("google.svg") + @MimeType("image/svg+xml") + DataResource google(); +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/facebook-logo.svg b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/common/facebook-logo.svg similarity index 100% rename from java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/facebook-logo.svg rename to java/com.sap.sse.gwt/src/com/sap/sse/gwt/common/facebook-logo.svg diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/google.svg b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/common/google.svg similarity index 100% rename from java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/google.svg rename to java/com.sap.sse.gwt/src/com/sap/sse/gwt/common/google.svg diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/twitter-logo.svg b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/common/twitter-logo.svg similarity index 100% rename from java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/twitter-logo.svg rename to java/com.sap.sse.gwt/src/com/sap/sse/gwt/common/twitter-logo.svg diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/UserManagement.gss b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/UserManagement.gss index ef402af2ae4..5b19ddc6d1a 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/UserManagement.gss +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/UserManagement.gss @@ -185,6 +185,7 @@ a.form_social_button_facebook:hover { } a.form_social_button_facebook:before { background-image: resourceUrl("facebook"); + background-size: 12px auto; } a.form_social_button_google { background-color: #de5342; diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/UserManagementResources.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/UserManagementResources.java index fcf297b6172..6228654ab27 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/UserManagementResources.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/UserManagementResources.java @@ -1,28 +1,18 @@ package com.sap.sse.security.ui.authentication; import com.google.gwt.core.client.GWT; -import com.google.gwt.resources.client.ClientBundle; import com.google.gwt.resources.client.CssResource; -import com.google.gwt.resources.client.DataResource; -import com.google.gwt.resources.client.DataResource.MimeType; +import com.sap.sse.gwt.common.CommonIcons; /** * Resources used by the authentication framework. */ -public interface UserManagementResources extends ClientBundle { +public interface UserManagementResources extends CommonIcons { public static final UserManagementResources INSTANCE = GWT.create(UserManagementResources.class); @Source("UserManagement.gss") LocalCss css(); - - @Source("facebook.svg") - @MimeType("image/svg+xml") - DataResource facebook(); - - @Source("google.svg") - @MimeType("image/svg+xml") - DataResource google(); public interface LocalCss extends CssResource { String flyover(); diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/facebook.svg b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/facebook.svg deleted file mode 100644 index c12e1f9afed..00000000000 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/authentication/facebook.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file From d524f5510badf99ed3be7db6fd04ab59145d1021 Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Wed, 8 Nov 2017 13:25:29 +0100 Subject: [PATCH 093/290] Bug 4346: Removed unused constant --- .../sailing/gwt/home/shared/resources/SharedHomeResources.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/SharedHomeResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/SharedHomeResources.java index e82078897bb..0db6216a407 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/SharedHomeResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/shared/resources/SharedHomeResources.java @@ -10,8 +10,6 @@ public interface SharedHomeResources extends CommonIcons { public static final SharedHomeResources INSTANCE = GWT.create(SharedHomeResources.class); - public static final String GSS = "com/sap/sailing/gwt/home/shared/resources/SharedHomeRecources.gss"; - @Source("default_event_logo.jpg") ImageResource defaultEventLogoImage(); From 233f10d1cceeb203be36ad13939277ab179f243a Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Wed, 8 Nov 2017 13:43:15 +0100 Subject: [PATCH 094/290] Bug 4346: Removed unused styles with inlined icons --- .../gwt/common/client/SharedResources.java | 2 -- .../sap/sailing/gwt/common/client/main.gss | 20 ------------------- .../partials/searchresult/SearchResult.ui.xml | 13 ------------ 3 files changed, 35 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/common/client/SharedResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/common/client/SharedResources.java index 0574c017fda..5f40ba0f90d 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/common/client/SharedResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/common/client/SharedResources.java @@ -26,8 +26,6 @@ public interface SharedResources extends ClientBundle, CommonSharedResources { String buttonprimary(); String buttonprimaryoutlined(); String buttonred(); - String buttonrefresh(); - String buttonarrowdown(); String buttonsearch(); String buttonarrowrightwhite(); String label(); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/common/client/main.gss b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/common/client/main.gss index 2c330d72467..65c72dcc113 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/common/client/main.gss +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/common/client/main.gss @@ -145,21 +145,6 @@ figcaption { .buttonred:hover { background-color: #d54115; } -.buttonrefresh { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAAppJREFUeNrsl09o03AUx9MEi0rXSuhE66wMKoO5YlXYUc966NF5sB4UOoUdFXYdDnYaCj2VFobCpoeo61xZKQrCGIjt2jlxQ0vr0vWwTdYmzZImTZrnwSbUSbemW4tIHuTy4/d4n9/393t/YgAA5F82gw6oA+qAOqAO+J8DFt+etBrPee6gpp4e7ITLhRgwtEItLcnMyqqYI4iOG2T2QAEAoKmPnraYhbTfD3uZLIlCJhigZzqtzcZpyomJOvsqXG59N49USCalfDwmSxxbu15hSZJ5d+VyWwCLYbtd5rc2Vah8PMYuuN0UgaHKHorAUHbB7a4wqZQqprC9XZxzOFoOSBEYWiYnJwEAhJTPVwv21zN4feyokPL51MNQy5+pV0Zjy6+YIjCUW/R6G91fXnv+TIHkEg/utwywtPzooRYwVckQjstlqgAAIP6cn28JYOnL8HCzKgAAImSCASWztWS1ZjgVMjk0pAWQi9+7q/gy7/v7G/VD96uTTPRCL3q8u1vaiESUNWkjEsHMTicTOe/Yt5DPnj5VSgx6MYvrkrJmtHs8pcSglwl32Q6tUO98uHZVVe+3Gg378qtjY7tvgP/+9MmhvkE6hOMgSyIAQDUrNb1BfmX0sVY4zVlczUCQRYahQziuGfLryIgWOM2A7CfPbUWFcvbli4b9Pg7cbEsvpggMlQrJpAIpZIIB+o3JtNf+qmLAfxsfb08vnnM4antxZSeTrteLpXw8pvZifmuzOHvG1r5phiXJPycrjpXy8VitwuohuNw6E3X2tW3cAgCEnum0Cmm/X8nseib8mJigpy3mZuMceKJmwl22I2cHbmEW10XU3NuLIAhSKSwm5FKWFLNTUx3XM2v6P4kOqAPqgDqgDqgD1rVfAwAVWx4m+SNozQAAAABJRU5ErkJggg=="); -} -.buttonrefresh, -.buttonarrowdown { - background-repeat: no-repeat; - background-position: left top; - background-size: cover; - width: 2.333333333333333em; - height: 0; - padding: 2.333333333333333em 0 0 0; - border: 0; - overflow: hidden; - white-space: nowrap; -} .buttonsearch { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2NTg0MEE1MTVFN0UxMUU0QkNGMTk0Q0UzOUEwNUNFMyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2NTg0MEE1MjVFN0UxMUU0QkNGMTk0Q0UzOUEwNUNFMyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjY1ODQwQTRGNUU3RTExRTRCQ0YxOTRDRTM5QTA1Q0UzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjY1ODQwQTUwNUU3RTExRTRCQ0YxOTRDRTM5QTA1Q0UzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+tERf2gAAArFJREFUeNrMmE1kXFEUx28SwjAMjxCGIQwhzCoMQysVugqlhJBVyCqLbELpqtmEUFJddZFNFhVSpd20uqgw1VIhixgSIqREYiKRSExkhNTruZzhOO5999737m3m8DdzZt6773fP/Trn9cRxLBysD/QUNAaKQEP4eQI6xc/voN/Cl0lAC1VBG6Cr2M6aoHegkmX7WpkuKIPW4/R2B1oBRSEAJ0G3BoAz0DaoZbjuGEfBG+CS5kG7oFegiua+MYxYU3Gv7OyUD0AV3CFo2qHhHGhBM2efZQGcUjT4ER+YZg7JRbLF2msljEAiYFkx515nXYXYuS+s3QNQvyvghiJywpPyoAZr/4ULYFXRw5xHQKkh3HY6dmGz/fTifv2S7d+LoLbwa39Ab4gvT6BZm5MkYj3b9Rw5qojN84ZNBB+B+gnzexHOLvGs7lgFVEy6oQNI7asIax+YP2oCLBP/BrQXGHCH+RUT4ADxZcr0NzDgEfMLJsA88dsivN0wP2cCvCZ+/j8ARsw/NwGeEr+IWXNIK7kC7hNfbje1wIA1xQaeCPiL/TYRGHCSzfkfppMkx/K2Q9tMI2X6dU+e9dPmJGmzzVNWanOBorfE5viqbVWnyjSKnqNXY9E7thkp6qywlGvLY8pVVNQpc64Ja4S9ovbJA2QJMyRqm2lrkqoi7W9kKMBrmgpvPEtVN60pGZdBBYeorRnePAxnqYufa4rxFg677MQoSdlL6MtS8xtbDJkgk/6s4J7ow+qgCcVwGyFtC/CLlGBNtlpHXCFtJ3sBQesWUPe4Smc0+5wTZI/j+0GBCa488Acx+xkk7waP8Gw15ZUjoE28lybLT1jyIkTACs4kq0g+JKAV5EMDGiHTzMEQNgyqK+bk424B1EF+7hXdY/u4immNJLopgh2TLxLe4vf5fwIMADtbDGrkqxb2AAAAAElFTkSuQmCC"); background-color: transparent; @@ -175,11 +160,6 @@ figcaption { outline: none; text-decoration: none; } -.buttonarrowdown { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAALFJREFUeNrs1TEOgjAUxnFx5iDscgPvwXkYuYdXwBPgAYwrsxPGIAPPvKQkxLQO5UE0+X9J06Ff0186tImI7H45CUCAAAECBAgQIMA1s1+y+dkUpUXna/QGY0Z/q0QztCcJddyauG7UOdHA8XWXKT7khNO47rbArj5kIeQnTrubA0NIS9xioA9piTMB+pBWODPgHGmJ02H6UD/OeaZzerxc+eoAAgQIECBAgAD/AvgWYACm/8hEADYaXwAAAABJRU5ErkJggg=="); - width: 2.666666666666667em; - padding: 2.733333333333333em 0 0 0; -} .buttonarrowrightwhite:after { content: ''; display: inline-block; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/searchresult/SearchResult.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/searchresult/SearchResult.ui.xml index 498509744ec..e92ebc875de 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/searchresult/SearchResult.ui.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/searchresult/SearchResult.ui.xml @@ -23,19 +23,6 @@
    -
    From 612e9b76d511d467c0635b2ce07bcf4b96051ccd Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Wed, 8 Nov 2017 14:20:38 +0100 Subject: [PATCH 095/290] when adding a device mapping for EXPEDITION_SENSOR, use the correct log event type Change-Id: I6358ff0120224082532ad25d40265b49e2c02142 --- .../sailing/domain/common}/DeviceIdentifier.java | 5 ++--- .../persistence/impl/DomainObjectFactoryImpl.java | 2 +- .../persistence/impl/MongoObjectFactoryImpl.java | 2 +- .../tracking/impl/MongoSensorFixStoreImpl.java | 2 +- .../PlaceHolderDeviceIdentifierMongoHandler.java | 2 +- .../test/AbstractGPSFixStoreTest.java | 2 +- .../test/impl/CreateAndTrackWithRaceLogTest.java | 2 +- ...DeviceMappingsAndSensorFixStoreLockingTest.java | 2 +- .../test/impl/GPSFixStoreListenerTest.java | 2 +- .../test/impl/RaceLogFixTrackerManagerTest.java | 2 +- .../test/impl/SensorFixStoreAndLoadTest.java | 2 +- .../test/impl/SensorFixStoreTest.java | 2 +- .../test/impl/TrackedRaceLoadsFixesTest.java | 2 +- .../test/mock/SmartphoneImeiIdentifier.java | 2 +- .../test/mock/SmartphoneImeiJsonHandler.java | 2 +- .../test/mock/SmartphoneImeiMongoHandler.java | 2 +- .../mock/SmartphoneImeiSerializationHandler.java | 2 +- .../racelogtracking/PingDeviceIdentifier.java | 2 ++ .../impl/PingDeviceIdentifierJsonHandler.java | 2 +- .../impl/PingDeviceIdentifierMongoHandler.java | 2 +- .../PingDeviceIdentifierSerializationHandler.java | 2 +- .../impl/SmartphoneUUIDMongoHandler.java | 2 +- ...TrackFileImportDeviceIdentifierJsonHandler.java | 2 +- ...rackFileImportDeviceIdentifierMongoHandler.java | 2 +- ...DeviceIdentifierStringSerializationHandler.java | 2 +- .../impl/fixtracker/FixLoaderAndTracker.java | 2 +- .../impl/fixtracker/RegattaLogDeviceMappings.java | 2 +- .../analyzing/test/DeviceMappingFinderTest.java | 2 +- .../events/RegattaLogDeviceMappingEvent.java | 2 +- .../events/RegattaLogDeviceMappingEventImpl.java | 2 +- ...DeviceCompetitorSensorDataMappingEventImpl.java | 2 +- ...iceCompetitorBravoExtendedMappingEventImpl.java | 2 +- ...taLogDeviceCompetitorBravoMappingEventImpl.java | 2 +- ...mpetitorExpeditionExtendedMappingEventImpl.java | 2 +- ...RegattaLogDeviceCompetitorMappingEventImpl.java | 2 +- .../impl/RegattaLogDeviceMarkMappingEventImpl.java | 2 +- .../impl/BaseRegattaLogDeviceMappingFinder.java | 2 +- .../RegattaLogDeviceCompetitorMappingFinder.java | 2 +- .../impl/RegattaLogDeviceMappingFinder.java | 2 +- .../impl/RegattaLogDeviceMarkMappingFinder.java | 2 +- .../DeviceIdentifierSerializationHandler.java | 1 + .../domain/racelogtracking/DeviceMapping.java | 1 + .../PlaceHolderDeviceIdentifier.java | 1 + .../racelogtracking/SmartphoneUUIDIdentifier.java | 2 ++ .../SmartphoneUUIDSerializationHandler.java | 1 + .../racelogtracking/impl/DeviceMappingImpl.java | 2 +- .../impl/DeviceMappingWithRegattaLogEventImpl.java | 2 +- ...HolderDeviceIdentifierSerializationHandler.java | 2 +- .../masterdataimport/TopLevelMasterData.java | 2 +- .../domain/racelog/impl/GPSFixStoreImpl.java | 2 +- .../domain/racelog/tracking/EmptyGPSFixStore.java | 2 +- .../racelog/tracking/EmptySensorFixStore.java | 2 +- .../racelog/tracking/FixReceivedListener.java | 2 +- .../domain/racelog/tracking/GPSFixStore.java | 2 +- .../domain/racelog/tracking/SensorFixStore.java | 2 +- .../TrackFileImportDeviceIdentifier.java | 2 +- .../TrackFileImportDeviceIdentifierImpl.java | 2 +- .../trackimport/DoubleVectorFixImporter.java | 2 +- .../sailing/domain/trackimport/GPSFixImporter.java | 2 +- .../META-INF/MANIFEST.MF | 3 ++- .../ExpeditionDeviceIdentifier.java | 5 ++--- .../ExpeditionSensorDeviceIdentifier.java | 2 +- .../persistence/ExpeditionGpsDeviceIdentifier.java | 2 ++ .../ExpeditionGpsDeviceIdentifierJsonHandler.java | 2 +- ...ionGpsDeviceIdentifierSerializationHandler.java | 2 +- .../ExpeditionSensorDeviceIdentifierImpl.java | 1 + ...SensorDeviceIdentifierSerializationHandler.java | 3 ++- .../AbstractExpeditionDeviceIdentifierImpl.java | 2 +- .../persistence/impl/Activator.java | 2 +- .../ExpeditionGpsDeviceIdentifierMongoHandler.java | 2 +- ...peditionSensorDeviceIdentifierMongoHandler.java | 2 +- .../test/UDPExpeditionReceiverTest.java | 4 ++-- .../expeditionconnector/DeviceRegistry.java | 1 - .../ExpeditionTrackerFactory.java | 1 - .../expeditionconnector/UDPExpeditionReceiver.java | 1 - .../expeditionconnector/impl/Activator.java | 2 +- .../impl/ExpeditionMessageImpl.java | 1 - ...xpeditionSensorDeviceIdentifierJsonHandler.java | 2 +- .../sailing/gwt/ui/server/SailingServiceImpl.java | 14 +++++++++++--- .../test/StoreAndLoadDeviceIdentifierTest.java | 2 +- .../sailing/mongodb/test/StoreGPSFixTrackTest.java | 2 +- .../impl/DeviceIdentifierJsonDeserializer.java | 2 +- .../racelog/impl/RaceLogEventDeserializer.java | 2 +- .../impl/DeviceIdentifierJsonSerializer.java | 2 +- .../racelog/impl/RaceLogEventSerializer.java | 2 +- .../PlaceHolderDeviceIdentifierJsonHandler.java | 2 +- .../tracking/impl/SmartphoneUUIDJsonHandler.java | 2 +- ...dSessionIdentifierWithGPSFixesDeserializer.java | 2 +- ...AndSessionIdentifierWithGPSFixesSerializer.java | 2 +- .../test/DeviceIdentifierSerializationTest.java | 2 +- .../gateway/test/jaxrs/GPSFixesResourceTest.java | 2 +- .../jaxrs/LeaderboardsResourcePingMarkTest.java | 2 +- .../gateway/trackfiles/impl/GPSFixImportTest.java | 2 +- .../server/gateway/jaxrs/api/GPSFixesResource.java | 2 +- .../gateway/jaxrs/api/LeaderboardsResource.java | 2 +- .../trackfiles/impl/SensorDataImportServlet.java | 2 +- .../trackfiles/impl/TrackFilesImportServlet.java | 2 +- .../sailing/server/test/MasterDataImportTest.java | 2 +- .../trackfiles/impl/BravoDataImporterImpl.java | 2 +- .../impl/BravoExtendedDataImporterImpl.java | 2 +- .../impl/ExpeditionExtendedDataImporterImpl.java | 2 +- .../server/impl/RacingEventServiceImpl.java | 2 +- .../ImportMasterDataOperation.java | 2 +- .../android/tracking/app/valueobjects/UrlData.java | 2 +- .../buoy/positioning/app/util/CheckinManager.java | 2 +- 105 files changed, 119 insertions(+), 104 deletions(-) rename java/{com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking => com.sap.sailing.domain.common/src/com/sap/sailing/domain/common}/DeviceIdentifier.java (96%) rename java/{com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence => com.sap.sailing.expeditionconnector.common/src/com/sap/sailing/expeditionconnector}/ExpeditionDeviceIdentifier.java (51%) rename java/{com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence => com.sap.sailing.expeditionconnector.common/src/com/sap/sailing/expeditionconnector}/ExpeditionSensorDeviceIdentifier.java (86%) diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/DeviceIdentifier.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/DeviceIdentifier.java similarity index 96% rename from java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/DeviceIdentifier.java rename to java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/DeviceIdentifier.java index 5471253c027..b29ebc77bbf 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/DeviceIdentifier.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/DeviceIdentifier.java @@ -1,9 +1,7 @@ -package com.sap.sailing.domain.racelogtracking; +package com.sap.sailing.domain.common; import java.io.Serializable; -import com.sap.sailing.domain.abstractlog.race.RaceLog; - /** * Identifies any kind of tracking device. Should be implemented accordingly for different tracking * adapters, e.g. for smartphones, Igtimi trackers etc.

    @@ -37,6 +35,7 @@ import com.sap.sailing.domain.abstractlog.race.RaceLog; * {@link Object#equals(Object)} and {@link Object#hashCode()} should be implemented so that multiple * deserializations of same device identifier (conceptually) result in objects that are be identified * as being equal through these two methods. + * * @author Fredrik Teschke * */ diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java index a2c738b79e6..7e071f1e15d 100644 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java @@ -155,6 +155,7 @@ import com.sap.sailing.domain.base.impl.SeriesImpl; import com.sap.sailing.domain.base.impl.VenueImpl; import com.sap.sailing.domain.base.impl.WaypointImpl; import com.sap.sailing.domain.common.CourseDesignerMode; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.MarkType; import com.sap.sailing.domain.common.MaxPointsReason; import com.sap.sailing.domain.common.PassingInstruction; @@ -206,7 +207,6 @@ import com.sap.sailing.domain.persistence.racelog.tracking.DeviceIdentifierMongo import com.sap.sailing.domain.persistence.racelog.tracking.impl.PlaceHolderDeviceIdentifierMongoHandler; import com.sap.sailing.domain.racelog.RaceLogIdentifier; import com.sap.sailing.domain.racelog.RaceLogStore; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.racelogtracking.impl.PlaceHolderDeviceIdentifierSerializationHandler; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; import com.sap.sailing.domain.ranking.RankingMetricConstructor; diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoObjectFactoryImpl.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoObjectFactoryImpl.java index 6c07b6ee67a..d27f59f6885 100644 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoObjectFactoryImpl.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoObjectFactoryImpl.java @@ -86,6 +86,7 @@ import com.sap.sailing.domain.base.configuration.RegattaConfiguration; import com.sap.sailing.domain.base.configuration.impl.DeviceConfigurationMatcherSingle; import com.sap.sailing.domain.base.impl.FleetImpl; import com.sap.sailing.domain.common.Bearing; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.MaxPointsReason; import com.sap.sailing.domain.common.PassingInstruction; import com.sap.sailing.domain.common.Positioned; @@ -108,7 +109,6 @@ import com.sap.sailing.domain.persistence.MongoObjectFactory; import com.sap.sailing.domain.persistence.racelog.tracking.DeviceIdentifierMongoHandler; import com.sap.sailing.domain.persistence.racelog.tracking.impl.PlaceHolderDeviceIdentifierMongoHandler; import com.sap.sailing.domain.racelog.RaceLogIdentifier; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.regattalike.RegattaLikeIdentifier; import com.sap.sailing.domain.tracking.RaceTrackingConnectivityParameters; import com.sap.sailing.domain.tracking.RaceTrackingConnectivityParametersHandler; diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/racelog/tracking/impl/MongoSensorFixStoreImpl.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/racelog/tracking/impl/MongoSensorFixStoreImpl.java index eb813bc3351..9459a46b8ed 100644 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/racelog/tracking/impl/MongoSensorFixStoreImpl.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/racelog/tracking/impl/MongoSensorFixStoreImpl.java @@ -20,6 +20,7 @@ import com.mongodb.DBCollection; import com.mongodb.DBCursor; import com.mongodb.DBObject; import com.mongodb.QueryBuilder; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; import com.sap.sailing.domain.persistence.DomainObjectFactory; import com.sap.sailing.domain.persistence.MongoObjectFactory; @@ -30,7 +31,6 @@ import com.sap.sailing.domain.persistence.racelog.tracking.DeviceIdentifierMongo import com.sap.sailing.domain.persistence.racelog.tracking.FixMongoHandler; import com.sap.sailing.domain.persistence.racelog.tracking.MongoSensorFixStore; import com.sap.sailing.domain.racelog.tracking.FixReceivedListener; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sse.common.Duration; import com.sap.sse.common.NoCorrespondingServiceRegisteredException; import com.sap.sse.common.TimePoint; diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/racelog/tracking/impl/PlaceHolderDeviceIdentifierMongoHandler.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/racelog/tracking/impl/PlaceHolderDeviceIdentifierMongoHandler.java index ee3ee4fe186..ccf0364559e 100644 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/racelog/tracking/impl/PlaceHolderDeviceIdentifierMongoHandler.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/racelog/tracking/impl/PlaceHolderDeviceIdentifierMongoHandler.java @@ -1,8 +1,8 @@ package com.sap.sailing.domain.persistence.racelog.tracking.impl; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; import com.sap.sailing.domain.persistence.racelog.tracking.DeviceIdentifierMongoHandler; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.racelogtracking.impl.PlaceHolderDeviceIdentifierSerializationHandler; public class PlaceHolderDeviceIdentifierMongoHandler extends PlaceHolderDeviceIdentifierSerializationHandler diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/AbstractGPSFixStoreTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/AbstractGPSFixStoreTest.java index 2a74622a15d..dcb29f6b6e5 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/AbstractGPSFixStoreTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/AbstractGPSFixStoreTest.java @@ -24,6 +24,7 @@ import com.sap.sailing.domain.base.Mark; import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.base.Sideline; import com.sap.sailing.domain.base.impl.RegattaImpl; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.impl.DegreeBearingImpl; import com.sap.sailing.domain.common.impl.DegreePosition; import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl; @@ -38,7 +39,6 @@ import com.sap.sailing.domain.racelog.tracking.SensorFixStore; import com.sap.sailing.domain.racelog.tracking.test.mock.MockDeviceAndSessionIdentifierWithGPSFixesDeserializer; import com.sap.sailing.domain.racelog.tracking.test.mock.MockSmartphoneImeiServiceFinderFactory; import com.sap.sailing.domain.racelog.tracking.test.mock.SmartphoneImeiIdentifier; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore; import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/CreateAndTrackWithRaceLogTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/CreateAndTrackWithRaceLogTest.java index 836726fb94e..4c9f475b7f3 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/CreateAndTrackWithRaceLogTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/CreateAndTrackWithRaceLogTest.java @@ -36,6 +36,7 @@ import com.sap.sailing.domain.base.Series; import com.sap.sailing.domain.base.impl.FleetImpl; import com.sap.sailing.domain.base.impl.RegattaImpl; import com.sap.sailing.domain.base.impl.SeriesImpl; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.impl.DegreeBearingImpl; import com.sap.sailing.domain.common.impl.DegreePosition; import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl; @@ -47,7 +48,6 @@ import com.sap.sailing.domain.leaderboard.impl.HighPoint; import com.sap.sailing.domain.racelog.tracking.SensorFixStore; import com.sap.sailing.domain.racelog.tracking.test.mock.MockSmartphoneImeiServiceFinderFactory; import com.sap.sailing.domain.racelog.tracking.test.mock.SmartphoneImeiIdentifier; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.racelogtracking.RaceLogTrackingAdapter; import com.sap.sailing.domain.racelogtracking.RaceLogTrackingAdapterFactory; import com.sap.sailing.domain.racelogtracking.impl.fixtracker.RaceLogFixTrackerManager; diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/DeviceMappingsAndSensorFixStoreLockingTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/DeviceMappingsAndSensorFixStoreLockingTest.java index 0aff6e21645..383942f7784 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/DeviceMappingsAndSensorFixStoreLockingTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/DeviceMappingsAndSensorFixStoreLockingTest.java @@ -16,9 +16,9 @@ import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogDeviceCo import com.sap.sailing.domain.abstractlog.regatta.impl.RegattaLogImpl; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.DomainFactory; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.tracking.impl.DoubleVectorFixImpl; import com.sap.sailing.domain.racelog.tracking.test.mock.SmartphoneImeiIdentifier; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogDeviceMappings; import com.sap.sailing.domain.racelogtracking.test.AbstractGPSFixStoreTest; import com.sap.sse.common.MultiTimeRange; diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/GPSFixStoreListenerTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/GPSFixStoreListenerTest.java index bab51469897..2174d0718e8 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/GPSFixStoreListenerTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/GPSFixStoreListenerTest.java @@ -9,10 +9,10 @@ import org.junit.Rule; import org.junit.Test; import org.junit.rules.Timeout; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.tracking.GPSFixMoving; import com.sap.sailing.domain.persistence.racelog.tracking.impl.MongoSensorFixStoreImpl; import com.sap.sailing.domain.racelog.tracking.FixReceivedListener; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.racelogtracking.test.AbstractGPSFixStoreTest; public class GPSFixStoreListenerTest extends AbstractGPSFixStoreTest { diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/RaceLogFixTrackerManagerTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/RaceLogFixTrackerManagerTest.java index a8aa39a5806..5558db801d9 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/RaceLogFixTrackerManagerTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/RaceLogFixTrackerManagerTest.java @@ -31,6 +31,7 @@ import com.sap.sailing.domain.base.impl.CourseImpl; import com.sap.sailing.domain.base.impl.RaceDefinitionImpl; import com.sap.sailing.domain.base.impl.RegattaImpl; import com.sap.sailing.domain.base.impl.WaypointImpl; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.impl.DegreeBearingImpl; import com.sap.sailing.domain.common.impl.DegreePosition; import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl; @@ -45,7 +46,6 @@ import com.sap.sailing.domain.racelog.tracking.SensorFixStore; import com.sap.sailing.domain.racelog.tracking.test.mock.MockSmartphoneImeiServiceFinderFactory; import com.sap.sailing.domain.racelog.tracking.test.mock.SmartphoneImeiIdentifier; import com.sap.sailing.domain.racelogsensortracking.SensorFixMapperFactory; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.racelogtracking.impl.fixtracker.RaceLogFixTrackerManager; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore; diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/SensorFixStoreAndLoadTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/SensorFixStoreAndLoadTest.java index 431fc524b76..58cc556f94b 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/SensorFixStoreAndLoadTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/SensorFixStoreAndLoadTest.java @@ -54,6 +54,7 @@ import com.sap.sailing.domain.base.impl.CourseImpl; import com.sap.sailing.domain.base.impl.RaceDefinitionImpl; import com.sap.sailing.domain.base.impl.RegattaImpl; import com.sap.sailing.domain.base.impl.WaypointImpl; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.Distance; import com.sap.sailing.domain.common.TrackedRaceStatusEnum; import com.sap.sailing.domain.common.impl.DegreeBearingImpl; @@ -75,7 +76,6 @@ import com.sap.sailing.domain.racelog.tracking.SensorFixStore; import com.sap.sailing.domain.racelog.tracking.test.mock.MockSmartphoneImeiServiceFinderFactory; import com.sap.sailing.domain.racelog.tracking.test.mock.SmartphoneImeiIdentifier; import com.sap.sailing.domain.racelogsensortracking.SensorFixMapperFactory; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.racelogtracking.impl.BravoDataFixMapper; import com.sap.sailing.domain.racelogtracking.impl.fixtracker.FixLoaderAndTracker; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/SensorFixStoreTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/SensorFixStoreTest.java index f14d0b29bfa..1b11a7f9f3f 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/SensorFixStoreTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/SensorFixStoreTest.java @@ -14,6 +14,7 @@ import org.mockito.Mockito; import com.mongodb.DB; import com.mongodb.MongoException; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.impl.DegreeBearingImpl; import com.sap.sailing.domain.common.impl.DegreePosition; import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl; @@ -30,7 +31,6 @@ import com.sap.sailing.domain.racelog.tracking.FixReceivedListener; import com.sap.sailing.domain.racelog.tracking.SensorFixStore; import com.sap.sailing.domain.racelog.tracking.test.mock.MockSmartphoneImeiServiceFinderFactory; import com.sap.sailing.domain.racelog.tracking.test.mock.SmartphoneImeiIdentifier; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sse.common.NoCorrespondingServiceRegisteredException; import com.sap.sse.common.Timed; import com.sap.sse.common.impl.MillisecondsTimePoint; diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/TrackedRaceLoadsFixesTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/TrackedRaceLoadsFixesTest.java index f449b0dc1b0..56bc80be5bc 100755 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/TrackedRaceLoadsFixesTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/TrackedRaceLoadsFixesTest.java @@ -24,11 +24,11 @@ import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.base.impl.CourseImpl; import com.sap.sailing.domain.base.impl.RaceDefinitionImpl; import com.sap.sailing.domain.base.impl.WaypointImpl; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; import com.sap.sailing.domain.common.tracking.GPSFix; import com.sap.sailing.domain.common.tracking.GPSFixMoving; import com.sap.sailing.domain.racelog.tracking.test.mock.SmartphoneImeiIdentifier; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.racelogtracking.impl.fixtracker.FixLoaderAndTracker; import com.sap.sailing.domain.racelogtracking.test.AbstractGPSFixStoreTest; import com.sap.sailing.domain.tracking.DynamicTrackedRace; diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.testsupport/src/com/sap/sailing/domain/racelog/tracking/test/mock/SmartphoneImeiIdentifier.java b/java/com.sap.sailing.domain.racelogtrackingadapter.testsupport/src/com/sap/sailing/domain/racelog/tracking/test/mock/SmartphoneImeiIdentifier.java index 9bfdebc3545..f0ec889b7ab 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.testsupport/src/com/sap/sailing/domain/racelog/tracking/test/mock/SmartphoneImeiIdentifier.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.testsupport/src/com/sap/sailing/domain/racelog/tracking/test/mock/SmartphoneImeiIdentifier.java @@ -1,6 +1,6 @@ package com.sap.sailing.domain.racelog.tracking.test.mock; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; +import com.sap.sailing.domain.common.DeviceIdentifier; public class SmartphoneImeiIdentifier implements DeviceIdentifier { diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.testsupport/src/com/sap/sailing/domain/racelog/tracking/test/mock/SmartphoneImeiJsonHandler.java b/java/com.sap.sailing.domain.racelogtrackingadapter.testsupport/src/com/sap/sailing/domain/racelog/tracking/test/mock/SmartphoneImeiJsonHandler.java index 3a770d9dfbb..71a6c7cfcc2 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.testsupport/src/com/sap/sailing/domain/racelog/tracking/test/mock/SmartphoneImeiJsonHandler.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.testsupport/src/com/sap/sailing/domain/racelog/tracking/test/mock/SmartphoneImeiJsonHandler.java @@ -1,7 +1,7 @@ package com.sap.sailing.domain.racelog.tracking.test.mock; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.server.gateway.serialization.racelog.tracking.DeviceIdentifierJsonHandler; public class SmartphoneImeiJsonHandler extends SmartphoneImeiSerializationHandler diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.testsupport/src/com/sap/sailing/domain/racelog/tracking/test/mock/SmartphoneImeiMongoHandler.java b/java/com.sap.sailing.domain.racelogtrackingadapter.testsupport/src/com/sap/sailing/domain/racelog/tracking/test/mock/SmartphoneImeiMongoHandler.java index 1ac23ea7e8f..d102c5e0280 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.testsupport/src/com/sap/sailing/domain/racelog/tracking/test/mock/SmartphoneImeiMongoHandler.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.testsupport/src/com/sap/sailing/domain/racelog/tracking/test/mock/SmartphoneImeiMongoHandler.java @@ -1,8 +1,8 @@ package com.sap.sailing.domain.racelog.tracking.test.mock; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; import com.sap.sailing.domain.persistence.racelog.tracking.DeviceIdentifierMongoHandler; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; public class SmartphoneImeiMongoHandler extends SmartphoneImeiSerializationHandler implements DeviceIdentifierMongoHandler { diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.testsupport/src/com/sap/sailing/domain/racelog/tracking/test/mock/SmartphoneImeiSerializationHandler.java b/java/com.sap.sailing.domain.racelogtrackingadapter.testsupport/src/com/sap/sailing/domain/racelog/tracking/test/mock/SmartphoneImeiSerializationHandler.java index eaa539c68f6..bddce674e82 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.testsupport/src/com/sap/sailing/domain/racelog/tracking/test/mock/SmartphoneImeiSerializationHandler.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.testsupport/src/com/sap/sailing/domain/racelog/tracking/test/mock/SmartphoneImeiSerializationHandler.java @@ -1,7 +1,7 @@ package com.sap.sailing.domain.racelog.tracking.test.mock; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sse.common.Util; public class SmartphoneImeiSerializationHandler { diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/PingDeviceIdentifier.java b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/PingDeviceIdentifier.java index 9312eb9f762..2aa2d8778f5 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/PingDeviceIdentifier.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/PingDeviceIdentifier.java @@ -2,6 +2,8 @@ package com.sap.sailing.domain.racelogtracking; import java.util.UUID; +import com.sap.sailing.domain.common.DeviceIdentifier; + /** * A device identifier used to identify a non-existent, virtual device, which is used only once as an * identifier to add a single fix to a track (i.e. pinging the location of that track's item). diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/PingDeviceIdentifierJsonHandler.java b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/PingDeviceIdentifierJsonHandler.java index 60d1b57dfb7..072e91a1e4f 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/PingDeviceIdentifierJsonHandler.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/PingDeviceIdentifierJsonHandler.java @@ -1,7 +1,7 @@ package com.sap.sailing.domain.racelogtracking.impl; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.server.gateway.serialization.racelog.tracking.DeviceIdentifierJsonHandler; public class PingDeviceIdentifierJsonHandler extends PingDeviceIdentifierSerializationHandler diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/PingDeviceIdentifierMongoHandler.java b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/PingDeviceIdentifierMongoHandler.java index efb7ecb08dc..9a5a7d37764 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/PingDeviceIdentifierMongoHandler.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/PingDeviceIdentifierMongoHandler.java @@ -1,8 +1,8 @@ package com.sap.sailing.domain.racelogtracking.impl; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; import com.sap.sailing.domain.persistence.racelog.tracking.DeviceIdentifierMongoHandler; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; public class PingDeviceIdentifierMongoHandler extends PingDeviceIdentifierSerializationHandler implements DeviceIdentifierMongoHandler { diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/PingDeviceIdentifierSerializationHandler.java b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/PingDeviceIdentifierSerializationHandler.java index 415af995c85..2d1e5578407 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/PingDeviceIdentifierSerializationHandler.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/PingDeviceIdentifierSerializationHandler.java @@ -2,8 +2,8 @@ package com.sap.sailing.domain.racelogtracking.impl; import java.util.UUID; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.racelogtracking.PingDeviceIdentifier; import com.sap.sailing.domain.racelogtracking.PingDeviceIdentifierImpl; import com.sap.sse.common.Util; diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/SmartphoneUUIDMongoHandler.java b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/SmartphoneUUIDMongoHandler.java index 8646b044541..e11f27f1d8e 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/SmartphoneUUIDMongoHandler.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/SmartphoneUUIDMongoHandler.java @@ -1,8 +1,8 @@ package com.sap.sailing.domain.racelogtracking.impl; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; import com.sap.sailing.domain.persistence.racelog.tracking.DeviceIdentifierMongoHandler; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.racelogtracking.SmartphoneUUIDSerializationHandler; public class SmartphoneUUIDMongoHandler extends SmartphoneUUIDSerializationHandler diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/TrackFileImportDeviceIdentifierJsonHandler.java b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/TrackFileImportDeviceIdentifierJsonHandler.java index fcdb4f4876e..bff372f9a57 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/TrackFileImportDeviceIdentifierJsonHandler.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/TrackFileImportDeviceIdentifierJsonHandler.java @@ -4,8 +4,8 @@ import java.util.UUID; import org.json.simple.JSONObject; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.trackfiles.TrackFileImportDeviceIdentifier; import com.sap.sailing.domain.trackfiles.TrackFileImportDeviceIdentifierImpl; import com.sap.sailing.server.gateway.serialization.racelog.tracking.DeviceIdentifierJsonHandler; diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/TrackFileImportDeviceIdentifierMongoHandler.java b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/TrackFileImportDeviceIdentifierMongoHandler.java index a9b1e2cd8b5..1218089453f 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/TrackFileImportDeviceIdentifierMongoHandler.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/TrackFileImportDeviceIdentifierMongoHandler.java @@ -4,9 +4,9 @@ import java.util.UUID; import com.mongodb.BasicDBObject; import com.mongodb.DBObject; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; import com.sap.sailing.domain.persistence.racelog.tracking.DeviceIdentifierMongoHandler; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.trackfiles.TrackFileImportDeviceIdentifier; import com.sap.sailing.domain.trackfiles.TrackFileImportDeviceIdentifierImpl; import com.sap.sse.common.TimePoint; diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/TrackFileImportDeviceIdentifierStringSerializationHandler.java b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/TrackFileImportDeviceIdentifierStringSerializationHandler.java index e121abd0502..9f66f61d8e1 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/TrackFileImportDeviceIdentifierStringSerializationHandler.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/TrackFileImportDeviceIdentifierStringSerializationHandler.java @@ -2,8 +2,8 @@ package com.sap.sailing.domain.racelogtracking.impl; import java.util.UUID; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.racelogtracking.DeviceIdentifierStringSerializationHandler; import com.sap.sailing.domain.trackfiles.TrackFileImportDeviceIdentifier; import com.sap.sailing.domain.trackfiles.TrackFileImportDeviceIdentifierImpl; diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/fixtracker/FixLoaderAndTracker.java b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/fixtracker/FixLoaderAndTracker.java index ddc341ea55e..d83e9517bb5 100755 --- a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/fixtracker/FixLoaderAndTracker.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/fixtracker/FixLoaderAndTracker.java @@ -23,6 +23,7 @@ import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMarkMap import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.Mark; import com.sap.sailing.domain.base.Regatta; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.TrackedRaceStatusEnum; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; import com.sap.sailing.domain.common.tracking.DoubleVectorFix; @@ -33,7 +34,6 @@ import com.sap.sailing.domain.racelog.tracking.FixReceivedListener; import com.sap.sailing.domain.racelog.tracking.SensorFixMapper; import com.sap.sailing.domain.racelog.tracking.SensorFixStore; import com.sap.sailing.domain.racelogsensortracking.SensorFixMapperFactory; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.racelogtracking.DeviceMappingWithRegattaLogEvent; import com.sap.sailing.domain.tracking.DynamicGPSFixTrack; import com.sap.sailing.domain.tracking.DynamicSensorFixTrack; diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/fixtracker/RegattaLogDeviceMappings.java b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/fixtracker/RegattaLogDeviceMappings.java index 07cc2cefb8b..b837aa38419 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/fixtracker/RegattaLogDeviceMappings.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/fixtracker/RegattaLogDeviceMappings.java @@ -22,8 +22,8 @@ import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMarkMap import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRevokeEvent; import com.sap.sailing.domain.abstractlog.regatta.impl.BaseRegattaLogEventVisitor; import com.sap.sailing.domain.abstractlog.regatta.tracking.analyzing.impl.RegattaLogDeviceMappingFinder; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.racelog.tracking.DoesNotHaveRegattaLogException; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.racelogtracking.DeviceMapping; import com.sap.sailing.domain.racelogtracking.DeviceMappingWithRegattaLogEvent; import com.sap.sailing.domain.tracking.DynamicTrack; diff --git a/java/com.sap.sailing.domain.shared.android.test/src/com/sap/sailing/domain/regattalog/tracking/analyzing/test/DeviceMappingFinderTest.java b/java/com.sap.sailing.domain.shared.android.test/src/com/sap/sailing/domain/regattalog/tracking/analyzing/test/DeviceMappingFinderTest.java index e9b28c32396..e43e8cece89 100644 --- a/java/com.sap.sailing.domain.shared.android.test/src/com/sap/sailing/domain/regattalog/tracking/analyzing/test/DeviceMappingFinderTest.java +++ b/java/com.sap.sailing.domain.shared.android.test/src/com/sap/sailing/domain/regattalog/tracking/analyzing/test/DeviceMappingFinderTest.java @@ -17,9 +17,9 @@ import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogDeviceCo import com.sap.sailing.domain.abstractlog.regatta.tracking.analyzing.impl.RegattaLogDeviceCompetitorMappingFinder; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.impl.CompetitorImpl; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.abstractlog.NotRevokableException; import com.sap.sailing.domain.racelog.tracking.test.mock.SmartphoneImeiIdentifier; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.racelogtracking.DeviceMappingWithRegattaLogEvent; import com.sap.sse.common.TimePoint; import com.sap.sse.common.impl.MillisecondsTimePoint; diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/events/RegattaLogDeviceMappingEvent.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/events/RegattaLogDeviceMappingEvent.java index 8895db1fbea..7cac1817803 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/events/RegattaLogDeviceMappingEvent.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/events/RegattaLogDeviceMappingEvent.java @@ -6,7 +6,7 @@ import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEvent; import com.sap.sailing.domain.abstractlog.regatta.tracking.analyzing.impl.RegattaLogDefinedMarkAnalyzer; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.Mark; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.racelogtracking.DeviceMapping; import com.sap.sse.common.TimePoint; import com.sap.sse.common.TimeRange; diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/events/RegattaLogDeviceMappingEventImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/events/RegattaLogDeviceMappingEventImpl.java index 88b011916d1..08f4e08c1d9 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/events/RegattaLogDeviceMappingEventImpl.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/events/RegattaLogDeviceMappingEventImpl.java @@ -5,7 +5,7 @@ import java.io.Serializable; import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor; import com.sap.sailing.domain.abstractlog.impl.AbstractLogEventImpl; import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEventVisitor; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sse.common.TimePoint; import com.sap.sse.common.WithID; diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/events/impl/AbstractRegattaLogDeviceCompetitorSensorDataMappingEventImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/events/impl/AbstractRegattaLogDeviceCompetitorSensorDataMappingEventImpl.java index a0891b9273a..dbe9f1e80ac 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/events/impl/AbstractRegattaLogDeviceCompetitorSensorDataMappingEventImpl.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/events/impl/AbstractRegattaLogDeviceCompetitorSensorDataMappingEventImpl.java @@ -8,7 +8,7 @@ import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEventVisitor; import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceCompetitorSensorDataMappingEvent; import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMappingEventImpl; import com.sap.sailing.domain.base.Competitor; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sse.common.TimePoint; /** diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/events/impl/RegattaLogDeviceCompetitorBravoExtendedMappingEventImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/events/impl/RegattaLogDeviceCompetitorBravoExtendedMappingEventImpl.java index 43eb27f8faa..83fc2feb3e4 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/events/impl/RegattaLogDeviceCompetitorBravoExtendedMappingEventImpl.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/events/impl/RegattaLogDeviceCompetitorBravoExtendedMappingEventImpl.java @@ -4,7 +4,7 @@ import java.io.Serializable; import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor; import com.sap.sailing.domain.base.Competitor; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sse.common.TimePoint; /** diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/events/impl/RegattaLogDeviceCompetitorBravoMappingEventImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/events/impl/RegattaLogDeviceCompetitorBravoMappingEventImpl.java index 8c68721ceaf..831aa75a927 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/events/impl/RegattaLogDeviceCompetitorBravoMappingEventImpl.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/events/impl/RegattaLogDeviceCompetitorBravoMappingEventImpl.java @@ -4,7 +4,7 @@ import java.io.Serializable; import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor; import com.sap.sailing.domain.base.Competitor; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sse.common.TimePoint; /** diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/events/impl/RegattaLogDeviceCompetitorExpeditionExtendedMappingEventImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/events/impl/RegattaLogDeviceCompetitorExpeditionExtendedMappingEventImpl.java index b0049dbb1e3..eab4586d1f2 100755 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/events/impl/RegattaLogDeviceCompetitorExpeditionExtendedMappingEventImpl.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/events/impl/RegattaLogDeviceCompetitorExpeditionExtendedMappingEventImpl.java @@ -4,7 +4,7 @@ import java.io.Serializable; import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor; import com.sap.sailing.domain.base.Competitor; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sse.common.TimePoint; /** diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/events/impl/RegattaLogDeviceCompetitorMappingEventImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/events/impl/RegattaLogDeviceCompetitorMappingEventImpl.java index ef7aea4c628..b9c8cbce426 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/events/impl/RegattaLogDeviceCompetitorMappingEventImpl.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/events/impl/RegattaLogDeviceCompetitorMappingEventImpl.java @@ -8,7 +8,7 @@ import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEventVisitor; import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceCompetitorMappingEvent; import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMappingEventImpl; import com.sap.sailing.domain.base.Competitor; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sse.common.TimePoint; public class RegattaLogDeviceCompetitorMappingEventImpl extends RegattaLogDeviceMappingEventImpl implements diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/events/impl/RegattaLogDeviceMarkMappingEventImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/events/impl/RegattaLogDeviceMarkMappingEventImpl.java index e2da1cdca93..61312f84ba3 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/events/impl/RegattaLogDeviceMarkMappingEventImpl.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/events/impl/RegattaLogDeviceMarkMappingEventImpl.java @@ -8,7 +8,7 @@ import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEventVisitor; import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMappingEventImpl; import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMarkMappingEvent; import com.sap.sailing.domain.base.Mark; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sse.common.TimePoint; public class RegattaLogDeviceMarkMappingEventImpl extends RegattaLogDeviceMappingEventImpl implements diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/tracking/analyzing/impl/BaseRegattaLogDeviceMappingFinder.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/tracking/analyzing/impl/BaseRegattaLogDeviceMappingFinder.java index 83cff11e8f6..62f138d79f5 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/tracking/analyzing/impl/BaseRegattaLogDeviceMappingFinder.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/tracking/analyzing/impl/BaseRegattaLogDeviceMappingFinder.java @@ -10,8 +10,8 @@ import com.sap.sailing.domain.abstractlog.race.RaceLog; import com.sap.sailing.domain.abstractlog.regatta.RegattaLog; import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogCloseOpenEndedDeviceMappingEvent; import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMappingEvent; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.abstractlog.NotRevokableException; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.racelogtracking.DeviceMapping; import com.sap.sse.common.TimePoint; import com.sap.sse.common.TimeRange; diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/tracking/analyzing/impl/RegattaLogDeviceCompetitorMappingFinder.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/tracking/analyzing/impl/RegattaLogDeviceCompetitorMappingFinder.java index 6226305b798..c357cc9e26e 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/tracking/analyzing/impl/RegattaLogDeviceCompetitorMappingFinder.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/tracking/analyzing/impl/RegattaLogDeviceCompetitorMappingFinder.java @@ -8,7 +8,7 @@ import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceCompeti import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMappingEvent; import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogDeviceCompetitorMappingEventImpl; import com.sap.sailing.domain.base.Competitor; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sse.common.TimePoint; import com.sap.sse.common.impl.MillisecondsTimePoint; diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/tracking/analyzing/impl/RegattaLogDeviceMappingFinder.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/tracking/analyzing/impl/RegattaLogDeviceMappingFinder.java index 448947529dc..983684147c1 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/tracking/analyzing/impl/RegattaLogDeviceMappingFinder.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/tracking/analyzing/impl/RegattaLogDeviceMappingFinder.java @@ -13,7 +13,7 @@ import com.sap.sailing.domain.abstractlog.regatta.RegattaLog; import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEvent; import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogCloseOpenEndedDeviceMappingEvent; import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMappingEvent; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.racelogtracking.DeviceMapping; import com.sap.sailing.domain.racelogtracking.DeviceMappingWithRegattaLogEvent; import com.sap.sailing.domain.racelogtracking.impl.DeviceMappingWithRegattaLogEventImpl; diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/tracking/analyzing/impl/RegattaLogDeviceMarkMappingFinder.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/tracking/analyzing/impl/RegattaLogDeviceMarkMappingFinder.java index b76ca947923..4e3d50a3cf8 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/tracking/analyzing/impl/RegattaLogDeviceMarkMappingFinder.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/tracking/analyzing/impl/RegattaLogDeviceMarkMappingFinder.java @@ -8,7 +8,7 @@ import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMapping import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMarkMappingEvent; import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogDeviceMarkMappingEventImpl; import com.sap.sailing.domain.base.Mark; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sse.common.TimePoint; import com.sap.sse.common.impl.MillisecondsTimePoint; diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/DeviceIdentifierSerializationHandler.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/DeviceIdentifierSerializationHandler.java index 57327658980..e3bc1a64e60 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/DeviceIdentifierSerializationHandler.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/DeviceIdentifierSerializationHandler.java @@ -1,5 +1,6 @@ package com.sap.sailing.domain.racelogtracking; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; import com.sap.sse.common.Util; diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/DeviceMapping.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/DeviceMapping.java index 19fd46a3fed..afd702b188d 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/DeviceMapping.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/DeviceMapping.java @@ -4,6 +4,7 @@ import java.io.Serializable; import java.util.List; import com.sap.sailing.domain.abstractlog.regatta.tracking.analyzing.impl.RegattaLogDeviceMappingFinder; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sse.common.TimeRange; import com.sap.sse.common.Timed; import com.sap.sse.common.WithID; diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/PlaceHolderDeviceIdentifier.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/PlaceHolderDeviceIdentifier.java index 6adb0e30b79..1c4d9c2b16c 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/PlaceHolderDeviceIdentifier.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/PlaceHolderDeviceIdentifier.java @@ -1,6 +1,7 @@ package com.sap.sailing.domain.racelogtracking; import com.sap.sailing.domain.abstractlog.race.RaceLog; +import com.sap.sailing.domain.common.DeviceIdentifier; diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/SmartphoneUUIDIdentifier.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/SmartphoneUUIDIdentifier.java index 05d6e8e3671..2b5655a8c58 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/SmartphoneUUIDIdentifier.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/SmartphoneUUIDIdentifier.java @@ -2,6 +2,8 @@ package com.sap.sailing.domain.racelogtracking; import java.util.UUID; +import com.sap.sailing.domain.common.DeviceIdentifier; + public interface SmartphoneUUIDIdentifier extends DeviceIdentifier { String TYPE = "smartphoneUUID"; diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/SmartphoneUUIDSerializationHandler.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/SmartphoneUUIDSerializationHandler.java index 8a284d26c53..2661f799f5a 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/SmartphoneUUIDSerializationHandler.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/SmartphoneUUIDSerializationHandler.java @@ -2,6 +2,7 @@ package com.sap.sailing.domain.racelogtracking; import java.util.UUID; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; import com.sap.sailing.domain.racelogtracking.impl.SmartphoneUUIDIdentifierImpl; import com.sap.sse.common.Util; diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/impl/DeviceMappingImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/impl/DeviceMappingImpl.java index 125b7c6a8b3..1a7bebc997f 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/impl/DeviceMappingImpl.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/impl/DeviceMappingImpl.java @@ -5,7 +5,7 @@ import java.util.ArrayList; import java.util.List; import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMappingEvent; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.racelogtracking.DeviceMapping; import com.sap.sse.common.TimePoint; import com.sap.sse.common.TimeRange; diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/impl/DeviceMappingWithRegattaLogEventImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/impl/DeviceMappingWithRegattaLogEventImpl.java index 21096c83a03..454d2055597 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/impl/DeviceMappingWithRegattaLogEventImpl.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/impl/DeviceMappingWithRegattaLogEventImpl.java @@ -4,7 +4,7 @@ import java.io.Serializable; import java.util.List; import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMappingEvent; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.racelogtracking.DeviceMappingWithRegattaLogEvent; import com.sap.sse.common.TimeRange; import com.sap.sse.common.WithID; diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/impl/PlaceHolderDeviceIdentifierSerializationHandler.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/impl/PlaceHolderDeviceIdentifierSerializationHandler.java index 383c40a7e5c..182fa4d18a5 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/impl/PlaceHolderDeviceIdentifierSerializationHandler.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/impl/PlaceHolderDeviceIdentifierSerializationHandler.java @@ -1,7 +1,7 @@ package com.sap.sailing.domain.racelogtracking.impl; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.racelogtracking.PlaceHolderDeviceIdentifier; import com.sap.sse.common.Util; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/masterdataimport/TopLevelMasterData.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/masterdataimport/TopLevelMasterData.java index 1a16c789ebc..b921d9e345c 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/masterdataimport/TopLevelMasterData.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/masterdataimport/TopLevelMasterData.java @@ -23,6 +23,7 @@ import com.sap.sailing.domain.base.RaceColumn; import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.base.configuration.DeviceConfiguration; import com.sap.sailing.domain.base.configuration.DeviceConfigurationMatcher; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.RaceIdentifier; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.common.RegattaIdentifier; @@ -33,7 +34,6 @@ import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.LeaderboardGroup; import com.sap.sailing.domain.leaderboard.RegattaLeaderboard; import com.sap.sailing.domain.racelog.tracking.SensorFixStore; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sse.common.NoCorrespondingServiceRegisteredException; import com.sap.sse.common.Timed; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/impl/GPSFixStoreImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/impl/GPSFixStoreImpl.java index a6c443554be..c16c669fe70 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/impl/GPSFixStoreImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/impl/GPSFixStoreImpl.java @@ -9,12 +9,12 @@ import com.sap.sailing.domain.abstractlog.regatta.tracking.analyzing.impl.Regatt import com.sap.sailing.domain.abstractlog.regatta.tracking.analyzing.impl.RegattaLogDeviceMarkMappingFinder; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.Mark; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; import com.sap.sailing.domain.common.tracking.GPSFix; import com.sap.sailing.domain.common.tracking.GPSFixMoving; import com.sap.sailing.domain.racelog.tracking.GPSFixStore; import com.sap.sailing.domain.racelog.tracking.SensorFixStore; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.racelogtracking.DeviceMapping; import com.sap.sailing.domain.racelogtracking.DeviceMappingWithRegattaLogEvent; import com.sap.sailing.domain.tracking.DynamicGPSFixTrack; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/tracking/EmptyGPSFixStore.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/tracking/EmptyGPSFixStore.java index c91cf28897b..58a500bbcb1 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/tracking/EmptyGPSFixStore.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/tracking/EmptyGPSFixStore.java @@ -6,10 +6,10 @@ import java.util.function.Consumer; import com.sap.sailing.domain.abstractlog.regatta.RegattaLog; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.Mark; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; import com.sap.sailing.domain.common.tracking.GPSFix; import com.sap.sailing.domain.common.tracking.GPSFixMoving; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.racelogtracking.DeviceMapping; import com.sap.sailing.domain.tracking.DynamicGPSFixTrack; import com.sap.sse.common.NoCorrespondingServiceRegisteredException; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/tracking/EmptySensorFixStore.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/tracking/EmptySensorFixStore.java index cfe56fca9bd..9601bc0022c 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/tracking/EmptySensorFixStore.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/tracking/EmptySensorFixStore.java @@ -4,8 +4,8 @@ import java.util.Map; import java.util.function.BooleanSupplier; import java.util.function.Consumer; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sse.common.NoCorrespondingServiceRegisteredException; import com.sap.sse.common.TimePoint; import com.sap.sse.common.TimeRange; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/tracking/FixReceivedListener.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/tracking/FixReceivedListener.java index bebc25035ca..fdf017df4ef 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/tracking/FixReceivedListener.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/tracking/FixReceivedListener.java @@ -1,6 +1,6 @@ package com.sap.sailing.domain.racelog.tracking; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sse.common.Timed; /** diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/tracking/GPSFixStore.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/tracking/GPSFixStore.java index 61c887340ab..b83eabef87f 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/tracking/GPSFixStore.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/tracking/GPSFixStore.java @@ -8,10 +8,10 @@ import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceCompeti import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMarkMappingEvent; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.Mark; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; import com.sap.sailing.domain.common.tracking.GPSFix; import com.sap.sailing.domain.common.tracking.GPSFixMoving; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.racelogtracking.DeviceMapping; import com.sap.sailing.domain.tracking.DynamicGPSFixTrack; import com.sap.sse.common.NoCorrespondingServiceRegisteredException; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/tracking/SensorFixStore.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/tracking/SensorFixStore.java index c66ed7b0a4e..e3e348c7b1c 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/tracking/SensorFixStore.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/tracking/SensorFixStore.java @@ -4,9 +4,9 @@ import java.util.Map; import java.util.function.BooleanSupplier; import java.util.function.Consumer; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; import com.sap.sailing.domain.common.tracking.GPSFix; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sse.common.NoCorrespondingServiceRegisteredException; import com.sap.sse.common.TimePoint; import com.sap.sse.common.TimeRange; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/trackfiles/TrackFileImportDeviceIdentifier.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/trackfiles/TrackFileImportDeviceIdentifier.java index 9df153ea47f..c8dac9b7bfe 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/trackfiles/TrackFileImportDeviceIdentifier.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/trackfiles/TrackFileImportDeviceIdentifier.java @@ -2,7 +2,7 @@ package com.sap.sailing.domain.trackfiles; import java.util.UUID; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sse.common.TimePoint; /** diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/trackfiles/TrackFileImportDeviceIdentifierImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/trackfiles/TrackFileImportDeviceIdentifierImpl.java index befb425a903..b925ab5c7a5 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/trackfiles/TrackFileImportDeviceIdentifierImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/trackfiles/TrackFileImportDeviceIdentifierImpl.java @@ -5,8 +5,8 @@ import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sse.common.TimePoint; import com.sap.sse.common.impl.MillisecondsTimePoint; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/trackimport/DoubleVectorFixImporter.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/trackimport/DoubleVectorFixImporter.java index 6d58d2a02fd..a4327cdb51b 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/trackimport/DoubleVectorFixImporter.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/trackimport/DoubleVectorFixImporter.java @@ -6,7 +6,7 @@ import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor; import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEvent; import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceCompetitorSensorDataMappingEvent; import com.sap.sailing.domain.base.Competitor; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sse.common.TimePoint; /** diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/trackimport/GPSFixImporter.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/trackimport/GPSFixImporter.java index d014f682a50..b8174ec0729 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/trackimport/GPSFixImporter.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/trackimport/GPSFixImporter.java @@ -4,8 +4,8 @@ import java.io.IOException; import java.io.InputStream; import java.util.Map; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.tracking.GPSFix; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.trackfiles.TrackFileImportDeviceIdentifier; /** diff --git a/java/com.sap.sailing.expeditionconnector.common/META-INF/MANIFEST.MF b/java/com.sap.sailing.expeditionconnector.common/META-INF/MANIFEST.MF index 4327d078eb7..d41efa2965a 100755 --- a/java/com.sap.sailing.expeditionconnector.common/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.expeditionconnector.common/META-INF/MANIFEST.MF @@ -7,4 +7,5 @@ Bundle-Vendor: SAP Bundle-RequiredExecutionEnvironment: JavaSE-1.7 Bundle-ActivationPolicy: lazy Export-Package: com.sap.sailing.expeditionconnector -Require-Bundle: com.sap.sse.gwt +Require-Bundle: com.sap.sse.gwt, + com.sap.sailing.domain.common diff --git a/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/ExpeditionDeviceIdentifier.java b/java/com.sap.sailing.expeditionconnector.common/src/com/sap/sailing/expeditionconnector/ExpeditionDeviceIdentifier.java similarity index 51% rename from java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/ExpeditionDeviceIdentifier.java rename to java/com.sap.sailing.expeditionconnector.common/src/com/sap/sailing/expeditionconnector/ExpeditionDeviceIdentifier.java index 74dfb46f4db..dd44b6d6f39 100755 --- a/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/ExpeditionDeviceIdentifier.java +++ b/java/com.sap.sailing.expeditionconnector.common/src/com/sap/sailing/expeditionconnector/ExpeditionDeviceIdentifier.java @@ -1,9 +1,8 @@ -package com.sap.sailing.expeditionconnector.persistence; +package com.sap.sailing.expeditionconnector; import java.util.UUID; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; -import com.sap.sailing.expeditionconnector.ExpeditionDeviceConfiguration; +import com.sap.sailing.domain.common.DeviceIdentifier; public interface ExpeditionDeviceIdentifier extends DeviceIdentifier { /** diff --git a/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/ExpeditionSensorDeviceIdentifier.java b/java/com.sap.sailing.expeditionconnector.common/src/com/sap/sailing/expeditionconnector/ExpeditionSensorDeviceIdentifier.java similarity index 86% rename from java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/ExpeditionSensorDeviceIdentifier.java rename to java/com.sap.sailing.expeditionconnector.common/src/com/sap/sailing/expeditionconnector/ExpeditionSensorDeviceIdentifier.java index 0661ed8e7de..ee56e5f788f 100755 --- a/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/ExpeditionSensorDeviceIdentifier.java +++ b/java/com.sap.sailing.expeditionconnector.common/src/com/sap/sailing/expeditionconnector/ExpeditionSensorDeviceIdentifier.java @@ -1,4 +1,4 @@ -package com.sap.sailing.expeditionconnector.persistence; +package com.sap.sailing.expeditionconnector; /** * A device identifier used to identify an installation of the regatta tool "Expedition" diff --git a/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/ExpeditionGpsDeviceIdentifier.java b/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/ExpeditionGpsDeviceIdentifier.java index 7b980adcf47..7c59f1aeae0 100755 --- a/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/ExpeditionGpsDeviceIdentifier.java +++ b/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/ExpeditionGpsDeviceIdentifier.java @@ -1,5 +1,7 @@ package com.sap.sailing.expeditionconnector.persistence; +import com.sap.sailing.expeditionconnector.ExpeditionDeviceIdentifier; + /** * A device identifier used to identify an installation of the regatta tool "Expedition" * regarding its basic GPS information. diff --git a/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/ExpeditionGpsDeviceIdentifierJsonHandler.java b/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/ExpeditionGpsDeviceIdentifierJsonHandler.java index 8a6b8fa2898..7139cac90c9 100755 --- a/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/ExpeditionGpsDeviceIdentifierJsonHandler.java +++ b/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/ExpeditionGpsDeviceIdentifierJsonHandler.java @@ -1,7 +1,7 @@ package com.sap.sailing.expeditionconnector.persistence; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.server.gateway.serialization.racelog.tracking.DeviceIdentifierJsonHandler; public class ExpeditionGpsDeviceIdentifierJsonHandler extends ExpeditionGpsDeviceIdentifierSerializationHandler diff --git a/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/ExpeditionGpsDeviceIdentifierSerializationHandler.java b/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/ExpeditionGpsDeviceIdentifierSerializationHandler.java index ed3b71d187d..5965eb87869 100755 --- a/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/ExpeditionGpsDeviceIdentifierSerializationHandler.java +++ b/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/ExpeditionGpsDeviceIdentifierSerializationHandler.java @@ -2,8 +2,8 @@ package com.sap.sailing.expeditionconnector.persistence; import java.util.UUID; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sse.common.Util; public class ExpeditionGpsDeviceIdentifierSerializationHandler { diff --git a/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/ExpeditionSensorDeviceIdentifierImpl.java b/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/ExpeditionSensorDeviceIdentifierImpl.java index 158466797d1..4ad233a9d82 100755 --- a/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/ExpeditionSensorDeviceIdentifierImpl.java +++ b/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/ExpeditionSensorDeviceIdentifierImpl.java @@ -2,6 +2,7 @@ package com.sap.sailing.expeditionconnector.persistence; import java.util.UUID; +import com.sap.sailing.expeditionconnector.ExpeditionSensorDeviceIdentifier; import com.sap.sailing.expeditionconnector.persistence.impl.AbstractExpeditionDeviceIdentifierImpl; public class ExpeditionSensorDeviceIdentifierImpl extends AbstractExpeditionDeviceIdentifierImpl implements ExpeditionSensorDeviceIdentifier { diff --git a/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/ExpeditionSensorDeviceIdentifierSerializationHandler.java b/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/ExpeditionSensorDeviceIdentifierSerializationHandler.java index e49cc757215..3872e9255f9 100755 --- a/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/ExpeditionSensorDeviceIdentifierSerializationHandler.java +++ b/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/ExpeditionSensorDeviceIdentifierSerializationHandler.java @@ -2,8 +2,9 @@ package com.sap.sailing.expeditionconnector.persistence; import java.util.UUID; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; +import com.sap.sailing.expeditionconnector.ExpeditionSensorDeviceIdentifier; import com.sap.sse.common.Util; public class ExpeditionSensorDeviceIdentifierSerializationHandler { diff --git a/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/impl/AbstractExpeditionDeviceIdentifierImpl.java b/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/impl/AbstractExpeditionDeviceIdentifierImpl.java index 9e4e97d916e..21ff23cd0a6 100755 --- a/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/impl/AbstractExpeditionDeviceIdentifierImpl.java +++ b/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/impl/AbstractExpeditionDeviceIdentifierImpl.java @@ -2,7 +2,7 @@ package com.sap.sailing.expeditionconnector.persistence.impl; import java.util.UUID; -import com.sap.sailing.expeditionconnector.persistence.ExpeditionDeviceIdentifier; +import com.sap.sailing.expeditionconnector.ExpeditionDeviceIdentifier; public abstract class AbstractExpeditionDeviceIdentifierImpl implements ExpeditionDeviceIdentifier { private static final long serialVersionUID = -6605059302775505785L; diff --git a/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/impl/Activator.java b/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/impl/Activator.java index a842c2cbadd..4e988439924 100755 --- a/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/impl/Activator.java +++ b/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/impl/Activator.java @@ -10,8 +10,8 @@ import org.osgi.framework.BundleContext; import org.osgi.framework.ServiceRegistration; import com.sap.sailing.domain.persistence.racelog.tracking.DeviceIdentifierMongoHandler; +import com.sap.sailing.expeditionconnector.ExpeditionSensorDeviceIdentifier; import com.sap.sailing.expeditionconnector.persistence.ExpeditionGpsDeviceIdentifier; -import com.sap.sailing.expeditionconnector.persistence.ExpeditionSensorDeviceIdentifier; import com.sap.sse.common.TypeBasedServiceFinder; import com.sap.sse.mongodb.MongoDBService; diff --git a/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/impl/ExpeditionGpsDeviceIdentifierMongoHandler.java b/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/impl/ExpeditionGpsDeviceIdentifierMongoHandler.java index ea21669e0cf..16387b809d9 100755 --- a/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/impl/ExpeditionGpsDeviceIdentifierMongoHandler.java +++ b/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/impl/ExpeditionGpsDeviceIdentifierMongoHandler.java @@ -1,8 +1,8 @@ package com.sap.sailing.expeditionconnector.persistence.impl; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; import com.sap.sailing.domain.persistence.racelog.tracking.DeviceIdentifierMongoHandler; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.expeditionconnector.persistence.ExpeditionGpsDeviceIdentifierSerializationHandler; public class ExpeditionGpsDeviceIdentifierMongoHandler extends ExpeditionGpsDeviceIdentifierSerializationHandler diff --git a/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/impl/ExpeditionSensorDeviceIdentifierMongoHandler.java b/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/impl/ExpeditionSensorDeviceIdentifierMongoHandler.java index b7e6d3f1109..a549dab7d6c 100755 --- a/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/impl/ExpeditionSensorDeviceIdentifierMongoHandler.java +++ b/java/com.sap.sailing.expeditionconnector.persistence/src/com/sap/sailing/expeditionconnector/persistence/impl/ExpeditionSensorDeviceIdentifierMongoHandler.java @@ -1,8 +1,8 @@ package com.sap.sailing.expeditionconnector.persistence.impl; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; import com.sap.sailing.domain.persistence.racelog.tracking.DeviceIdentifierMongoHandler; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.expeditionconnector.persistence.ExpeditionSensorDeviceIdentifierSerializationHandler; public class ExpeditionSensorDeviceIdentifierMongoHandler extends ExpeditionSensorDeviceIdentifierSerializationHandler diff --git a/java/com.sap.sailing.expeditionconnector.test/src/com/sap/sailing/expeditionconnector/test/UDPExpeditionReceiverTest.java b/java/com.sap.sailing.expeditionconnector.test/src/com/sap/sailing/expeditionconnector/test/UDPExpeditionReceiverTest.java index 92fa46f66a3..709e5294686 100755 --- a/java/com.sap.sailing.expeditionconnector.test/src/com/sap/sailing/expeditionconnector/test/UDPExpeditionReceiverTest.java +++ b/java/com.sap.sailing.expeditionconnector.test/src/com/sap/sailing/expeditionconnector/test/UDPExpeditionReceiverTest.java @@ -39,6 +39,7 @@ import org.junit.rules.Timeout; import com.sap.sailing.declination.Declination; import com.sap.sailing.declination.DeclinationService; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.Position; import com.sap.sailing.domain.common.Wind; import com.sap.sailing.domain.common.WindSource; @@ -51,17 +52,16 @@ import com.sap.sailing.domain.common.tracking.GPSFixMoving; import com.sap.sailing.domain.common.tracking.impl.BravoExtendedFixImpl; import com.sap.sailing.domain.racelog.tracking.FixReceivedListener; import com.sap.sailing.domain.racelog.tracking.SensorFixStore; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.test.mock.MockedTrackedRace; import com.sap.sailing.expeditionconnector.DeviceRegistry; import com.sap.sailing.expeditionconnector.ExpeditionListener; import com.sap.sailing.expeditionconnector.ExpeditionMessage; +import com.sap.sailing.expeditionconnector.ExpeditionSensorDeviceIdentifier; import com.sap.sailing.expeditionconnector.ExpeditionTrackerFactory; import com.sap.sailing.expeditionconnector.ExpeditionWindTracker; import com.sap.sailing.expeditionconnector.UDPExpeditionReceiver; import com.sap.sailing.expeditionconnector.persistence.ExpeditionGpsDeviceIdentifier; import com.sap.sailing.expeditionconnector.persistence.ExpeditionGpsDeviceIdentifierImpl; -import com.sap.sailing.expeditionconnector.persistence.ExpeditionSensorDeviceIdentifier; import com.sap.sailing.expeditionconnector.persistence.ExpeditionSensorDeviceIdentifierImpl; import com.sap.sse.common.NoCorrespondingServiceRegisteredException; import com.sap.sse.common.TimePoint; diff --git a/java/com.sap.sailing.expeditionconnector/src/com/sap/sailing/expeditionconnector/DeviceRegistry.java b/java/com.sap.sailing.expeditionconnector/src/com/sap/sailing/expeditionconnector/DeviceRegistry.java index d34aebf0b1f..9f918719a8c 100755 --- a/java/com.sap.sailing.expeditionconnector/src/com/sap/sailing/expeditionconnector/DeviceRegistry.java +++ b/java/com.sap.sailing.expeditionconnector/src/com/sap/sailing/expeditionconnector/DeviceRegistry.java @@ -2,7 +2,6 @@ package com.sap.sailing.expeditionconnector; import com.sap.sailing.domain.racelog.tracking.SensorFixStore; import com.sap.sailing.expeditionconnector.persistence.ExpeditionGpsDeviceIdentifier; -import com.sap.sailing.expeditionconnector.persistence.ExpeditionSensorDeviceIdentifier; /** * Makes accessible a mapping from "Expedition" boat IDs to device UUIDs. diff --git a/java/com.sap.sailing.expeditionconnector/src/com/sap/sailing/expeditionconnector/ExpeditionTrackerFactory.java b/java/com.sap.sailing.expeditionconnector/src/com/sap/sailing/expeditionconnector/ExpeditionTrackerFactory.java index 1c67784bced..630d19832ef 100755 --- a/java/com.sap.sailing.expeditionconnector/src/com/sap/sailing/expeditionconnector/ExpeditionTrackerFactory.java +++ b/java/com.sap.sailing.expeditionconnector/src/com/sap/sailing/expeditionconnector/ExpeditionTrackerFactory.java @@ -27,7 +27,6 @@ import com.sap.sailing.expeditionconnector.impl.Activator; import com.sap.sailing.expeditionconnector.persistence.DomainObjectFactory; import com.sap.sailing.expeditionconnector.persistence.ExpeditionGpsDeviceIdentifier; import com.sap.sailing.expeditionconnector.persistence.ExpeditionGpsDeviceIdentifierImpl; -import com.sap.sailing.expeditionconnector.persistence.ExpeditionSensorDeviceIdentifier; import com.sap.sailing.expeditionconnector.persistence.ExpeditionSensorDeviceIdentifierImpl; import com.sap.sailing.expeditionconnector.persistence.MongoObjectFactory; import com.sap.sailing.expeditionconnector.persistence.PersistenceFactory; diff --git a/java/com.sap.sailing.expeditionconnector/src/com/sap/sailing/expeditionconnector/UDPExpeditionReceiver.java b/java/com.sap.sailing.expeditionconnector/src/com/sap/sailing/expeditionconnector/UDPExpeditionReceiver.java index 2e299b3814a..1b6be99d92a 100755 --- a/java/com.sap.sailing.expeditionconnector/src/com/sap/sailing/expeditionconnector/UDPExpeditionReceiver.java +++ b/java/com.sap.sailing.expeditionconnector/src/com/sap/sailing/expeditionconnector/UDPExpeditionReceiver.java @@ -13,7 +13,6 @@ import com.sap.sailing.domain.common.tracking.impl.DoubleVectorFixImpl; import com.sap.sailing.domain.racelog.tracking.SensorFixStore; import com.sap.sailing.expeditionconnector.impl.ExpeditionMessageParser; import com.sap.sailing.expeditionconnector.persistence.ExpeditionGpsDeviceIdentifier; -import com.sap.sailing.expeditionconnector.persistence.ExpeditionSensorDeviceIdentifier; import com.sap.sailing.udpconnector.UDPReceiver; /** diff --git a/java/com.sap.sailing.expeditionconnector/src/com/sap/sailing/expeditionconnector/impl/Activator.java b/java/com.sap.sailing.expeditionconnector/src/com/sap/sailing/expeditionconnector/impl/Activator.java index 1989810baa0..31074365dd0 100755 --- a/java/com.sap.sailing.expeditionconnector/src/com/sap/sailing/expeditionconnector/impl/Activator.java +++ b/java/com.sap.sailing.expeditionconnector/src/com/sap/sailing/expeditionconnector/impl/Activator.java @@ -15,11 +15,11 @@ import org.osgi.framework.ServiceRegistration; import com.sap.sailing.domain.racelogtracking.DeviceIdentifierStringSerializationHandler; import com.sap.sailing.domain.tracking.WindTrackerFactory; +import com.sap.sailing.expeditionconnector.ExpeditionSensorDeviceIdentifier; import com.sap.sailing.expeditionconnector.ExpeditionTrackerFactory; import com.sap.sailing.expeditionconnector.persistence.DomainObjectFactory; import com.sap.sailing.expeditionconnector.persistence.ExpeditionGpsDeviceIdentifier; import com.sap.sailing.expeditionconnector.persistence.ExpeditionGpsDeviceIdentifierJsonHandler; -import com.sap.sailing.expeditionconnector.persistence.ExpeditionSensorDeviceIdentifier; import com.sap.sailing.expeditionconnector.persistence.MongoObjectFactory; import com.sap.sailing.expeditionconnector.persistence.PersistenceFactory; import com.sap.sailing.server.gateway.serialization.racelog.tracking.DeviceIdentifierJsonHandler; diff --git a/java/com.sap.sailing.expeditionconnector/src/com/sap/sailing/expeditionconnector/impl/ExpeditionMessageImpl.java b/java/com.sap.sailing.expeditionconnector/src/com/sap/sailing/expeditionconnector/impl/ExpeditionMessageImpl.java index 0a936ab2e45..f0508c90773 100755 --- a/java/com.sap.sailing.expeditionconnector/src/com/sap/sailing/expeditionconnector/impl/ExpeditionMessageImpl.java +++ b/java/com.sap.sailing.expeditionconnector/src/com/sap/sailing/expeditionconnector/impl/ExpeditionMessageImpl.java @@ -1,6 +1,5 @@ package com.sap.sailing.expeditionconnector.impl; -import java.time.ZoneId; import java.util.Calendar; import java.util.Collections; import java.util.GregorianCalendar; diff --git a/java/com.sap.sailing.expeditionconnector/src/com/sap/sailing/expeditionconnector/impl/ExpeditionSensorDeviceIdentifierJsonHandler.java b/java/com.sap.sailing.expeditionconnector/src/com/sap/sailing/expeditionconnector/impl/ExpeditionSensorDeviceIdentifierJsonHandler.java index ad861ff29f3..48800fa3d20 100755 --- a/java/com.sap.sailing.expeditionconnector/src/com/sap/sailing/expeditionconnector/impl/ExpeditionSensorDeviceIdentifierJsonHandler.java +++ b/java/com.sap.sailing.expeditionconnector/src/com/sap/sailing/expeditionconnector/impl/ExpeditionSensorDeviceIdentifierJsonHandler.java @@ -1,7 +1,7 @@ package com.sap.sailing.expeditionconnector.impl; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.expeditionconnector.persistence.ExpeditionSensorDeviceIdentifierSerializationHandler; import com.sap.sailing.server.gateway.serialization.racelog.tracking.DeviceIdentifierJsonHandler; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java index a11fb3db256..035d45e208d 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java @@ -92,6 +92,7 @@ import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogCloseOpenEnde import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDefineMarkEvent; import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRegisterCompetitorEvent; import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogDefineMarkEventImpl; +import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogDeviceCompetitorExpeditionExtendedMappingEventImpl; import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogDeviceCompetitorMappingEventImpl; import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogDeviceMarkMappingEventImpl; import com.sap.sailing.domain.abstractlog.regatta.tracking.analyzing.impl.BaseRegattaLogDeviceMappingFinder; @@ -154,6 +155,7 @@ import com.sap.sailing.domain.common.CourseDesignerMode; import com.sap.sailing.domain.common.DataImportProgress; import com.sap.sailing.domain.common.DataImportSubProgress; import com.sap.sailing.domain.common.DetailType; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.Distance; import com.sap.sailing.domain.common.LeaderboardNameConstants; import com.sap.sailing.domain.common.LeaderboardType; @@ -258,7 +260,6 @@ import com.sap.sailing.domain.racelog.RaceLogStore; import com.sap.sailing.domain.racelog.RaceStateOfSameDayHelper; import com.sap.sailing.domain.racelog.impl.GPSFixStoreImpl; import com.sap.sailing.domain.racelog.tracking.GPSFixStore; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.racelogtracking.DeviceIdentifierStringSerializationHandler; import com.sap.sailing.domain.racelogtracking.DeviceMapping; import com.sap.sailing.domain.racelogtracking.RaceLogTrackingAdapter; @@ -306,6 +307,7 @@ import com.sap.sailing.domain.tractracadapter.TracTracAdapterFactory; import com.sap.sailing.domain.tractracadapter.TracTracConfiguration; import com.sap.sailing.domain.tractracadapter.TracTracConnectionConstants; import com.sap.sailing.expeditionconnector.ExpeditionDeviceConfiguration; +import com.sap.sailing.expeditionconnector.ExpeditionSensorDeviceIdentifier; import com.sap.sailing.expeditionconnector.ExpeditionTrackerFactory; import com.sap.sailing.gwt.server.HomeServiceUtil; import com.sap.sailing.gwt.ui.adminconsole.RaceLogSetTrackingTimesDTO; @@ -5751,8 +5753,14 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S } else if (dto.mappedTo instanceof CompetitorDTO) { Competitor competitor = getService().getCompetitorStore().getExistingCompetitorByIdAsString( ((CompetitorDTO) dto.mappedTo).getIdAsString()); - event = new RegattaLogDeviceCompetitorMappingEventImpl(now, now, getService().getServerAuthor(), UUID.randomUUID(), - competitor, mapping.getDevice(), from, to); + if (mapping.getDevice().getIdentifierType().equals(ExpeditionSensorDeviceIdentifier.TYPE)) { + event = new RegattaLogDeviceCompetitorExpeditionExtendedMappingEventImpl( + now, now, getService().getServerAuthor(), UUID.randomUUID(), + competitor, mapping.getDevice(), from, to); + } else { + event = new RegattaLogDeviceCompetitorMappingEventImpl(now, now, getService().getServerAuthor(), UUID.randomUUID(), + competitor, mapping.getDevice(), from, to); + } } else { throw new RuntimeException("Can only map devices to competitors or marks"); } diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/StoreAndLoadDeviceIdentifierTest.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/StoreAndLoadDeviceIdentifierTest.java index 7506506df8c..f7b711cd36d 100644 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/StoreAndLoadDeviceIdentifierTest.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/StoreAndLoadDeviceIdentifierTest.java @@ -17,6 +17,7 @@ import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceCompeti import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogDeviceCompetitorMappingEventImpl; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.DomainFactory; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; import com.sap.sailing.domain.persistence.PersistenceFactory; import com.sap.sailing.domain.persistence.impl.DomainObjectFactoryImpl; @@ -25,7 +26,6 @@ import com.sap.sailing.domain.persistence.impl.MongoRegattaLogStoreImpl; import com.sap.sailing.domain.racelog.tracking.test.mock.MockEmptyServiceFinderFactory; import com.sap.sailing.domain.racelog.tracking.test.mock.MockSmartphoneImeiServiceFinderFactory; import com.sap.sailing.domain.racelog.tracking.test.mock.SmartphoneImeiIdentifier; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.racelogtracking.PlaceHolderDeviceIdentifier; import com.sap.sailing.domain.regattalike.RegattaLikeIdentifier; import com.sap.sailing.domain.trackfiles.TrackFileImportDeviceIdentifierImpl; diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/StoreGPSFixTrackTest.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/StoreGPSFixTrackTest.java index e37d81162e8..d6f950fdf65 100644 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/StoreGPSFixTrackTest.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/StoreGPSFixTrackTest.java @@ -19,6 +19,7 @@ import com.sap.sailing.domain.abstractlog.regatta.impl.RegattaLogImpl; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.DomainFactory; import com.sap.sailing.domain.base.Mark; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.impl.DegreeBearingImpl; import com.sap.sailing.domain.common.impl.DegreePosition; import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl; @@ -36,7 +37,6 @@ import com.sap.sailing.domain.racelog.impl.GPSFixStoreImpl; import com.sap.sailing.domain.racelog.tracking.GPSFixStore; import com.sap.sailing.domain.racelog.tracking.test.mock.MockSmartphoneImeiServiceFinderFactory; import com.sap.sailing.domain.racelog.tracking.test.mock.SmartphoneImeiIdentifier; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.tracking.impl.DynamicGPSFixMovingTrackImpl; import com.sap.sailing.domain.tracking.impl.DynamicGPSFixTrackImpl; import com.sap.sse.common.NoCorrespondingServiceRegisteredException; diff --git a/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/impl/DeviceIdentifierJsonDeserializer.java b/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/impl/DeviceIdentifierJsonDeserializer.java index 5b03a23416d..236879a41d2 100644 --- a/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/impl/DeviceIdentifierJsonDeserializer.java +++ b/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/impl/DeviceIdentifierJsonDeserializer.java @@ -2,8 +2,8 @@ package com.sap.sailing.server.gateway.deserialization.impl; import org.json.simple.JSONObject; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.racelogtracking.PlaceHolderDeviceIdentifier; import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException; import com.sap.sailing.server.gateway.deserialization.JsonDeserializer; diff --git a/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/racelog/impl/RaceLogEventDeserializer.java b/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/racelog/impl/RaceLogEventDeserializer.java index 8201335ef90..0962ae5f77f 100755 --- a/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/racelog/impl/RaceLogEventDeserializer.java +++ b/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/racelog/impl/RaceLogEventDeserializer.java @@ -5,7 +5,7 @@ import org.json.simple.JSONObject; import com.sap.sailing.domain.abstractlog.race.RaceLogEvent; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.SharedDomainFactory; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.racelogtracking.SmartphoneUUIDIdentifier; import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException; import com.sap.sailing.server.gateway.deserialization.JsonDeserializer; diff --git a/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/serialization/impl/DeviceIdentifierJsonSerializer.java b/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/serialization/impl/DeviceIdentifierJsonSerializer.java index 905c8d32a80..a7a09968faa 100644 --- a/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/serialization/impl/DeviceIdentifierJsonSerializer.java +++ b/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/serialization/impl/DeviceIdentifierJsonSerializer.java @@ -5,8 +5,8 @@ import java.util.logging.Logger; import org.json.simple.JSONObject; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.racelogtracking.PlaceHolderDeviceIdentifier; import com.sap.sailing.server.gateway.deserialization.impl.DeviceIdentifierJsonDeserializer; import com.sap.sailing.server.gateway.serialization.JsonSerializer; diff --git a/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/serialization/racelog/impl/RaceLogEventSerializer.java b/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/serialization/racelog/impl/RaceLogEventSerializer.java index 28b454546d7..68c6e58beae 100644 --- a/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/serialization/racelog/impl/RaceLogEventSerializer.java +++ b/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/serialization/racelog/impl/RaceLogEventSerializer.java @@ -29,7 +29,7 @@ import com.sap.sailing.domain.abstractlog.race.tracking.RaceLogRegisterCompetito import com.sap.sailing.domain.abstractlog.race.tracking.RaceLogStartTrackingEvent; import com.sap.sailing.domain.abstractlog.race.tracking.RaceLogUseCompetitorsFromRaceLogEvent; import com.sap.sailing.domain.base.Competitor; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.racelogtracking.SmartphoneUUIDIdentifier; import com.sap.sailing.server.gateway.serialization.JsonSerializer; import com.sap.sailing.server.gateway.serialization.coursedata.impl.ControlPointJsonSerializer; diff --git a/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/serialization/racelog/tracking/impl/PlaceHolderDeviceIdentifierJsonHandler.java b/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/serialization/racelog/tracking/impl/PlaceHolderDeviceIdentifierJsonHandler.java index bb2df4f7eba..df86a267991 100644 --- a/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/serialization/racelog/tracking/impl/PlaceHolderDeviceIdentifierJsonHandler.java +++ b/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/serialization/racelog/tracking/impl/PlaceHolderDeviceIdentifierJsonHandler.java @@ -1,7 +1,7 @@ package com.sap.sailing.server.gateway.serialization.racelog.tracking.impl; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.racelogtracking.impl.PlaceHolderDeviceIdentifierSerializationHandler; import com.sap.sailing.server.gateway.serialization.racelog.tracking.DeviceIdentifierJsonHandler; diff --git a/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/serialization/racelog/tracking/impl/SmartphoneUUIDJsonHandler.java b/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/serialization/racelog/tracking/impl/SmartphoneUUIDJsonHandler.java index c813d5f781f..a0dddc22447 100644 --- a/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/serialization/racelog/tracking/impl/SmartphoneUUIDJsonHandler.java +++ b/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/serialization/racelog/tracking/impl/SmartphoneUUIDJsonHandler.java @@ -1,7 +1,7 @@ package com.sap.sailing.server.gateway.serialization.racelog.tracking.impl; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.racelogtracking.SmartphoneUUIDSerializationHandler; import com.sap.sailing.server.gateway.serialization.racelog.tracking.DeviceIdentifierJsonHandler; diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/DeviceAndSessionIdentifierWithGPSFixesDeserializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/DeviceAndSessionIdentifierWithGPSFixesDeserializer.java index a541c107356..530321f95db 100644 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/DeviceAndSessionIdentifierWithGPSFixesDeserializer.java +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/DeviceAndSessionIdentifierWithGPSFixesDeserializer.java @@ -7,9 +7,9 @@ import java.util.List; import org.json.simple.JSONArray; import org.json.simple.JSONObject; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; import com.sap.sailing.domain.common.tracking.GPSFix; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException; import com.sap.sailing.server.gateway.deserialization.JsonDeserializer; import com.sap.sailing.server.gateway.deserialization.TypeBasedJsonDeserializer; diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/DeviceAndSessionIdentifierWithGPSFixesSerializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/DeviceAndSessionIdentifierWithGPSFixesSerializer.java index d8b2f41273b..b9dd6ecce3f 100644 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/DeviceAndSessionIdentifierWithGPSFixesSerializer.java +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/DeviceAndSessionIdentifierWithGPSFixesSerializer.java @@ -6,8 +6,8 @@ import java.util.List; import org.json.simple.JSONArray; import org.json.simple.JSONObject; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.tracking.GPSFix; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.server.gateway.deserialization.impl.DeviceAndSessionIdentifierWithGPSFixesDeserializer; import com.sap.sailing.server.gateway.serialization.JsonSerializer; import com.sap.sse.common.Util; diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/DeviceIdentifierSerializationTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/DeviceIdentifierSerializationTest.java index 7e6a099824b..4f369593cfd 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/DeviceIdentifierSerializationTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/DeviceIdentifierSerializationTest.java @@ -7,10 +7,10 @@ import org.json.simple.JSONObject; import org.junit.Before; import org.junit.Test; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.racelog.tracking.test.mock.MockEmptyServiceFinder; import com.sap.sailing.domain.racelog.tracking.test.mock.SmartphoneImeiIdentifier; import com.sap.sailing.domain.racelog.tracking.test.mock.SmartphoneImeiJsonHandler; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.racelogtracking.PlaceHolderDeviceIdentifier; import com.sap.sailing.domain.trackfiles.TrackFileImportDeviceIdentifierImpl; import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException; diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/GPSFixesResourceTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/GPSFixesResourceTest.java index 3d00750d40c..b6533e22d80 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/GPSFixesResourceTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/GPSFixesResourceTest.java @@ -11,9 +11,9 @@ import org.json.simple.parser.ParseException; import org.junit.Before; import org.junit.Test; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; import com.sap.sailing.domain.racelog.tracking.test.mock.MockSmartphoneUuidServiceFinderFactory; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.racelogtracking.impl.SmartphoneUUIDIdentifierImpl; import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.gateway.jaxrs.api.GPSFixesResource; diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourcePingMarkTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourcePingMarkTest.java index c050b860789..c42d2e57884 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourcePingMarkTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourcePingMarkTest.java @@ -22,10 +22,10 @@ import com.sap.sailing.domain.base.impl.BoatClassImpl; import com.sap.sailing.domain.base.impl.FleetImpl; import com.sap.sailing.domain.base.impl.RegattaImpl; import com.sap.sailing.domain.base.impl.SeriesImpl; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; import com.sap.sailing.domain.leaderboard.RegattaLeaderboard; import com.sap.sailing.domain.leaderboard.impl.HighPoint; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.racelogtracking.DeviceMappingWithRegattaLogEvent; import com.sap.sailing.domain.racelogtracking.RaceLogTrackingAdapterFactory; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/trackfiles/impl/GPSFixImportTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/trackfiles/impl/GPSFixImportTest.java index b9f844c78f5..13cc978d3e9 100755 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/trackfiles/impl/GPSFixImportTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/trackfiles/impl/GPSFixImportTest.java @@ -15,8 +15,8 @@ import java.util.Collection; import org.apache.commons.fileupload.FileItem; import org.junit.Test; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.tracking.GPSFix; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.trackimport.GPSFixImporter; import com.sap.sailing.server.trackfiles.RouteConverterGPSFixImporterFactory; import com.sap.sse.common.Util.Pair; diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/GPSFixesResource.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/GPSFixesResource.java index 6109f18251a..920fce58e72 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/GPSFixesResource.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/GPSFixesResource.java @@ -16,8 +16,8 @@ import org.json.simple.JSONObject; import org.json.simple.JSONValue; import org.json.simple.parser.ParseException; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.tracking.GPSFixMoving; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.racelogtracking.impl.SmartphoneUUIDIdentifierImpl; import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException; import com.sap.sailing.server.gateway.deserialization.JsonDeserializer; diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/LeaderboardsResource.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/LeaderboardsResource.java index d0384d8b4f2..18d36656f18 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/LeaderboardsResource.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/LeaderboardsResource.java @@ -65,6 +65,7 @@ import com.sap.sailing.domain.base.Waypoint; import com.sap.sailing.domain.base.impl.CourseImpl; import com.sap.sailing.domain.common.Bearing; import com.sap.sailing.domain.common.CourseDesignerMode; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.Distance; import com.sap.sailing.domain.common.MaxPointsReason; import com.sap.sailing.domain.common.NoWindException; @@ -91,7 +92,6 @@ import com.sap.sailing.domain.common.tracking.GPSFixMoving; import com.sap.sailing.domain.common.tracking.impl.GPSFixImpl; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.SettableScoreCorrection; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.racelogtracking.RaceLogTrackingAdapter; import com.sap.sailing.domain.racelogtracking.RaceLogTrackingAdapterFactory; import com.sap.sailing.domain.racelogtracking.impl.SmartphoneUUIDIdentifierImpl; diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/SensorDataImportServlet.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/SensorDataImportServlet.java index c00ce614816..e23a004ea38 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/SensorDataImportServlet.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/SensorDataImportServlet.java @@ -20,8 +20,8 @@ import org.apache.commons.fileupload.FileItem; import org.osgi.framework.InvalidSyntaxException; import org.osgi.framework.ServiceReference; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.tracking.DoubleVectorFix; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.trackfiles.TrackFileImportDeviceIdentifier; import com.sap.sailing.domain.trackimport.DoubleVectorFixImporter; import com.sap.sailing.domain.trackimport.FormatNotSupportedException; diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/TrackFilesImportServlet.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/TrackFilesImportServlet.java index f0d9f915c00..d1b1cbe8af9 100755 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/TrackFilesImportServlet.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/TrackFilesImportServlet.java @@ -22,8 +22,8 @@ import org.osgi.framework.Filter; import org.osgi.framework.InvalidSyntaxException; import org.osgi.framework.ServiceReference; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.tracking.GPSFix; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.trackfiles.TrackFileImportDeviceIdentifier; import com.sap.sailing.domain.trackimport.FormatNotSupportedException; import com.sap.sailing.domain.trackimport.GPSFixImporter; diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/MasterDataImportTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/MasterDataImportTest.java index 95e5eb22a5d..a4a07327155 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/MasterDataImportTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/MasterDataImportTest.java @@ -77,6 +77,7 @@ import com.sap.sailing.domain.base.impl.RegattaImpl; import com.sap.sailing.domain.base.impl.SeriesImpl; import com.sap.sailing.domain.base.impl.TeamImpl; import com.sap.sailing.domain.common.CourseDesignerMode; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.MasterDataImportObjectCreationCount; import com.sap.sailing.domain.common.MaxPointsReason; import com.sap.sailing.domain.common.Position; @@ -115,7 +116,6 @@ import com.sap.sailing.domain.racelog.tracking.EmptySensorFixStore; import com.sap.sailing.domain.racelog.tracking.SensorFixStore; import com.sap.sailing.domain.racelog.tracking.test.mock.MockSmartphoneImeiServiceFinderFactory; import com.sap.sailing.domain.racelog.tracking.test.mock.SmartphoneImeiIdentifier; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; import com.sap.sailing.domain.test.TrackBasedTest; import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; diff --git a/java/com.sap.sailing.server.trackfiles/src/com/sap/sailing/server/trackfiles/impl/BravoDataImporterImpl.java b/java/com.sap.sailing.server.trackfiles/src/com/sap/sailing/server/trackfiles/impl/BravoDataImporterImpl.java index 0909222b0f8..ccac5747d9e 100644 --- a/java/com.sap.sailing.server.trackfiles/src/com/sap/sailing/server/trackfiles/impl/BravoDataImporterImpl.java +++ b/java/com.sap.sailing.server.trackfiles/src/com/sap/sailing/server/trackfiles/impl/BravoDataImporterImpl.java @@ -6,8 +6,8 @@ import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor; import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceCompetitorSensorDataMappingEvent; import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogDeviceCompetitorBravoMappingEventImpl; import com.sap.sailing.domain.base.Competitor; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.sensordata.BravoSensorDataMetadata; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sse.common.TimePoint; /** diff --git a/java/com.sap.sailing.server.trackfiles/src/com/sap/sailing/server/trackfiles/impl/BravoExtendedDataImporterImpl.java b/java/com.sap.sailing.server.trackfiles/src/com/sap/sailing/server/trackfiles/impl/BravoExtendedDataImporterImpl.java index cddcf344eb4..2265131c3d0 100644 --- a/java/com.sap.sailing.server.trackfiles/src/com/sap/sailing/server/trackfiles/impl/BravoExtendedDataImporterImpl.java +++ b/java/com.sap.sailing.server.trackfiles/src/com/sap/sailing/server/trackfiles/impl/BravoExtendedDataImporterImpl.java @@ -6,8 +6,8 @@ import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor; import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceCompetitorSensorDataMappingEvent; import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogDeviceCompetitorBravoExtendedMappingEventImpl; import com.sap.sailing.domain.base.Competitor; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.sensordata.BravoExtendedSensorDataMetadata; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sse.common.TimePoint; /** diff --git a/java/com.sap.sailing.server.trackfiles/src/com/sap/sailing/server/trackfiles/impl/ExpeditionExtendedDataImporterImpl.java b/java/com.sap.sailing.server.trackfiles/src/com/sap/sailing/server/trackfiles/impl/ExpeditionExtendedDataImporterImpl.java index 104ef1ac36f..9080874b6f8 100755 --- a/java/com.sap.sailing.server.trackfiles/src/com/sap/sailing/server/trackfiles/impl/ExpeditionExtendedDataImporterImpl.java +++ b/java/com.sap.sailing.server.trackfiles/src/com/sap/sailing/server/trackfiles/impl/ExpeditionExtendedDataImporterImpl.java @@ -27,9 +27,9 @@ import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor; import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceCompetitorSensorDataMappingEvent; import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogDeviceCompetitorExpeditionExtendedMappingEventImpl; import com.sap.sailing.domain.base.Competitor; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.sensordata.ExpeditionExtendedSensorDataMetadata; import com.sap.sailing.domain.common.tracking.impl.DoubleVectorFixImpl; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.trackfiles.TrackFileImportDeviceIdentifier; import com.sap.sailing.domain.trackfiles.TrackFileImportDeviceIdentifierImpl; import com.sap.sailing.domain.trackimport.DoubleVectorFixImporter; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java index 6d7a95f7d22..c537ea495cc 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java @@ -95,6 +95,7 @@ import com.sap.sailing.domain.base.impl.RegattaImpl; import com.sap.sailing.domain.base.impl.RemoteSailingServerReferenceImpl; import com.sap.sailing.domain.common.DataImportProgress; import com.sap.sailing.domain.common.DataImportSubProgress; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.Distance; import com.sap.sailing.domain.common.MasterDataImportObjectCreationCount; import com.sap.sailing.domain.common.MaxPointsReason; @@ -149,7 +150,6 @@ import com.sap.sailing.domain.polars.PolarDataService; import com.sap.sailing.domain.racelog.RaceLogIdentifier; import com.sap.sailing.domain.racelog.RaceLogStore; import com.sap.sailing.domain.racelog.tracking.SensorFixStore; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.ranking.RankingMetric.CompetitorRankingInfo; import com.sap.sailing.domain.ranking.RankingMetric.RankingInfo; import com.sap.sailing.domain.ranking.RankingMetricConstructor; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/ImportMasterDataOperation.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/ImportMasterDataOperation.java index a6c387b5346..7c24ea62cc0 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/ImportMasterDataOperation.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/ImportMasterDataOperation.java @@ -28,6 +28,7 @@ import com.sap.sailing.domain.base.configuration.DeviceConfigurationMatcher; import com.sap.sailing.domain.base.impl.RegattaImpl; import com.sap.sailing.domain.common.DataImportProgress; import com.sap.sailing.domain.common.DataImportSubProgress; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.RaceIdentifier; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.common.Wind; @@ -49,7 +50,6 @@ import com.sap.sailing.domain.persistence.MongoRegattaLogStoreFactory; import com.sap.sailing.domain.racelog.RaceLogIdentifier; import com.sap.sailing.domain.racelog.RaceLogStore; import com.sap.sailing.domain.racelog.tracking.SensorFixStore; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.regattalike.HasRegattaLike; import com.sap.sailing.domain.regattalike.IsRegattaLike; import com.sap.sailing.domain.regattalike.RegattaLikeIdentifier; diff --git a/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/valueobjects/UrlData.java b/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/valueobjects/UrlData.java index eb004517aee..d1a131e83b3 100644 --- a/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/valueobjects/UrlData.java +++ b/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/valueobjects/UrlData.java @@ -1,6 +1,6 @@ package com.sap.sailing.android.tracking.app.valueobjects; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; +import com.sap.sailing.domain.common.DeviceIdentifier; public abstract class UrlData { public String uriStr; diff --git a/mobile/com.sap.sailing.buoy.positioning/src/com/sap/sailing/android/buoy/positioning/app/util/CheckinManager.java b/mobile/com.sap.sailing.buoy.positioning/src/com/sap/sailing/android/buoy/positioning/app/util/CheckinManager.java index 18e223c9a96..614adf69bda 100644 --- a/mobile/com.sap.sailing.buoy.positioning/src/com/sap/sailing/android/buoy/positioning/app/util/CheckinManager.java +++ b/mobile/com.sap.sailing.buoy.positioning/src/com/sap/sailing/android/buoy/positioning/app/util/CheckinManager.java @@ -28,9 +28,9 @@ import com.sap.sailing.android.shared.util.NetworkHelper.NetworkHelperSuccessLis import com.sap.sailing.android.shared.util.UniqueDeviceUuid; import com.sap.sailing.domain.base.SharedDomainFactory; import com.sap.sailing.domain.base.impl.SharedDomainFactoryImpl; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.racelog.tracking.DeviceMappingConstants; import com.sap.sailing.domain.common.tracking.GPSFix; -import com.sap.sailing.domain.racelogtracking.DeviceIdentifier; import com.sap.sailing.domain.racelogtracking.impl.SmartphoneUUIDIdentifierImpl; import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException; import com.sap.sailing.server.gateway.deserialization.coursedata.impl.MarkDeserializer; From becb11e3005b7f74c2f3425ea7451327402dbba8 Mon Sep 17 00:00:00 2001 From: Kai Boernert Date: Thu, 9 Nov 2017 10:11:20 +0100 Subject: [PATCH 096/290] fixed case issues related to windows --- .../sailing/gwt/ui/client/FlagImageResources.java | 2 +- .../ui/client/images/flags/{fam.png => fam_old.png} | Bin 2 files changed, 1 insertion(+), 1 deletion(-) rename java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/client/images/flags/{fam.png => fam_old.png} (100%) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/FlagImageResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/FlagImageResources.java index 4b1289cf17c..4a61c1d376d 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/FlagImageResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/FlagImageResources.java @@ -214,7 +214,7 @@ public interface FlagImageResources extends ClientBundle { @Source("com/sap/sailing/gwt/ui/client/images/flags/EU.png") ImageResource flagEUROPEANUNION(); - @Source("com/sap/sailing/gwt/ui/client/images/flags/FAM.png") + @Source("com/sap/sailing/gwt/ui/client/images/flags/fam_old.png") ImageResource flagFAM(); @Source("com/sap/sailing/gwt/ui/client/images/flags/FI.png") diff --git a/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/client/images/flags/fam.png b/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/client/images/flags/fam_old.png similarity index 100% rename from java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/client/images/flags/fam.png rename to java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/client/images/flags/fam_old.png From 0c351202d65442a3288a3b6fc2b702001b79af61 Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Thu, 9 Nov 2017 10:53:56 +0100 Subject: [PATCH 097/290] Bug 4268: Removed temporary test code --- .../race/state/impl/RaceStateImpl.java | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/race/state/impl/RaceStateImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/race/state/impl/RaceStateImpl.java index fc1bc43636d..2fbd998177e 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/race/state/impl/RaceStateImpl.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/race/state/impl/RaceStateImpl.java @@ -8,8 +8,6 @@ import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor; import com.sap.sailing.domain.abstractlog.race.CompetitorResults; import com.sap.sailing.domain.abstractlog.race.RaceLog; import com.sap.sailing.domain.abstractlog.race.RaceLogDependentStartTimeEvent; -import com.sap.sailing.domain.abstractlog.race.RaceLogEvent; -import com.sap.sailing.domain.abstractlog.race.RaceLogRaceStatusEvent; import com.sap.sailing.domain.abstractlog.race.SimpleRaceLogIdentifier; import com.sap.sailing.domain.abstractlog.race.analyzing.impl.AdditionalScoringInformationFinder; import com.sap.sailing.domain.abstractlog.race.analyzing.impl.DependentStartTimeResolver; @@ -169,23 +167,6 @@ public class RaceStateImpl extends ReadonlyRaceStateImpl implements RaceState { @Override public void setFinishedTime(TimePoint timePoint) { - raceLog.lockForRead(); - try { - for (RaceLogEvent event : raceLog.getRawFixes()) { - if (event instanceof RaceLogRaceStatusEvent) { - RaceLogRaceStatusEvent statusEvent = (RaceLogRaceStatusEvent) event; - if (statusEvent.getNextStatus().equals(RaceLogRaceStatus.FINISHED)) { - try { - raceLog.revokeEvent(author, statusEvent, "Finsihtime Override"); - } catch (NotRevokableException e) { - e.printStackTrace(); - } - } - } - } - } finally { - raceLog.unlockAfterRead(); - } raceLog.add(new RaceLogRaceStatusEventImpl(timePoint, author, raceLog.getCurrentPassId(), RaceLogRaceStatus.FINISHED)); // ensure caches are synched From 282bf609c26c862b60ba2c0c227c665ae7e86087 Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Thu, 9 Nov 2017 11:17:34 +0100 Subject: [PATCH 098/290] Bug 4268: Ensure that finishing time is set before end time --- .../sap/sailing/gwt/ui/server/SailingServiceImpl.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java index 84121406cc8..f8eb84cd098 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java @@ -5119,15 +5119,16 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S @Override public Pair setEndTime(RaceLogSetEndTimeDTO dto) { - TimePoint newFinishTime = getService().setEndTime(dto.leaderboardName, dto.raceColumnName, - dto.fleetName, dto.authorName, dto.authorPriority, - dto.passId, new MillisecondsTimePoint(dto.finishTime)); - TimePoint newFinsihingTime = getService().setFinishingTime(dto.leaderboardName, dto.raceColumnName, dto.fleetName, dto.authorName, dto.authorPriority, dto.passId, new MillisecondsTimePoint(dto.finishingTime)); - return new Pair(new MillisecondsTimePoint(dto.finishingTime).equals(newFinsihingTime),new MillisecondsTimePoint(dto.finishTime).equals(newFinishTime)); + TimePoint newEndTime = getService().setEndTime(dto.leaderboardName, dto.raceColumnName, + dto.fleetName, dto.authorName, dto.authorPriority, + dto.passId, new MillisecondsTimePoint(dto.finishTime)); + + return new Pair(new MillisecondsTimePoint(dto.finishingTime).equals(newFinsihingTime), + new MillisecondsTimePoint(dto.finishTime).equals(newEndTime)); } @Override From d0ba45e8dd3a925600160935c137ec41b4f98d15 Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Thu, 9 Nov 2017 11:26:39 +0100 Subject: [PATCH 099/290] Bug 4268: Removed debug code --- .../sap/sailing/gwt/ui/adminconsole/LeaderboardConfigPanel.java | 1 - 1 file changed, 1 deletion(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardConfigPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardConfigPanel.java index a6531662513..697ce6e4832 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardConfigPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardConfigPanel.java @@ -629,7 +629,6 @@ TrackedRaceChangedListener, LeaderboardsDisplayer { fleetDTO.getName(), stringMessages, new DialogCallback() { @Override public void ok(RaceLogSetEndTimeDTO editedObject) { - Window.alert(editedObject.toString()); sailingService.setEndTime(editedObject, new AsyncCallback>() { @Override public void onFailure(Throwable caught) { From a299e0689f7808a78dd655b228c2f4e6153492b3 Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Thu, 9 Nov 2017 11:32:28 +0100 Subject: [PATCH 100/290] Bug 4268: Renamed DTO and service method to reflect implementation changes --- .../ui/adminconsole/LeaderboardConfigPanel.java | 8 ++++---- .../gwt/ui/adminconsole/SetEndTimeDialog.java | 14 +++++++------- .../sap/sailing/gwt/ui/client/SailingService.java | 4 ++-- .../sailing/gwt/ui/client/SailingServiceAsync.java | 8 ++++---- .../sailing/gwt/ui/server/SailingServiceImpl.java | 4 ++-- ....java => RaceLogSetFinishingAndEndTimeDTO.java} | 2 +- 6 files changed, 20 insertions(+), 20 deletions(-) rename java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/{RaceLogSetEndTimeDTO.java => RaceLogSetFinishingAndEndTimeDTO.java} (91%) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardConfigPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardConfigPanel.java index 697ce6e4832..09a3b805e36 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardConfigPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardConfigPanel.java @@ -60,7 +60,7 @@ import com.sap.sailing.gwt.ui.client.shared.controls.SelectionCheckboxColumn; import com.sap.sailing.gwt.ui.leaderboard.LeaderboardEntryPoint; import com.sap.sailing.gwt.ui.leaderboard.ScoringSchemeTypeFormatter; import com.sap.sailing.gwt.ui.shared.EventDTO; -import com.sap.sailing.gwt.ui.shared.RaceLogSetEndTimeDTO; +import com.sap.sailing.gwt.ui.shared.RaceLogSetFinishingAndEndTimeDTO; import com.sap.sailing.gwt.ui.shared.RaceLogSetStartTimeAndProcedureDTO; import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO; import com.sap.sse.common.Util; @@ -626,10 +626,10 @@ TrackedRaceChangedListener, LeaderboardsDisplayer { private void setEndTime(RaceColumnDTO raceColumnDTO, FleetDTO fleetDTO) { new SetEndTimeDialog(sailingService, errorReporter, getSelectedLeaderboardName(), raceColumnDTO.getName(), - fleetDTO.getName(), stringMessages, new DialogCallback() { + fleetDTO.getName(), stringMessages, new DialogCallback() { @Override - public void ok(RaceLogSetEndTimeDTO editedObject) { - sailingService.setEndTime(editedObject, new AsyncCallback>() { + public void ok(RaceLogSetFinishingAndEndTimeDTO editedObject) { + sailingService.setFinishingAndEndTime(editedObject, new AsyncCallback>() { @Override public void onFailure(Throwable caught) { errorReporter.reportError(caught.getMessage()); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetEndTimeDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetEndTimeDialog.java index 41e3efe67b3..ee58276724b 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetEndTimeDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetEndTimeDialog.java @@ -8,16 +8,16 @@ import com.google.gwt.user.client.ui.Grid; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.BetterDateTimeBox; -import com.sap.sailing.gwt.ui.shared.RaceLogSetEndTimeDTO; +import com.sap.sailing.gwt.ui.shared.RaceLogSetFinishingAndEndTimeDTO; import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.dialog.DataEntryDialog; -public class SetEndTimeDialog extends SetTimeDialog { +public class SetEndTimeDialog extends SetTimeDialog { private BetterDateTimeBox finishTimeBox; public SetEndTimeDialog(SailingServiceAsync service, ErrorReporter errorReporter, String leaderboardName, String raceColumnName, String fleetName, StringMessages stringMessages, - DataEntryDialog.DialogCallback callback) { + DataEntryDialog.DialogCallback callback) { super(service, errorReporter, stringMessages.setEndTime(), stringMessages.setEndTimeDescription(), stringMessages.setEndTime(), stringMessages.cancel(), leaderboardName, raceColumnName, fleetName, stringMessages, new EndTimeValidator(stringMessages), callback); @@ -25,8 +25,8 @@ public class SetEndTimeDialog extends SetTimeDialog { } @Override - protected RaceLogSetEndTimeDTO getResult() { - RaceLogSetEndTimeDTO dto = new RaceLogSetEndTimeDTO(); + protected RaceLogSetFinishingAndEndTimeDTO getResult() { + RaceLogSetFinishingAndEndTimeDTO dto = new RaceLogSetFinishingAndEndTimeDTO(); dto.leaderboardName = leaderboardName; dto.raceColumnName = raceColumnName; dto.fleetName = fleetName; @@ -97,7 +97,7 @@ public class SetEndTimeDialog extends SetTimeDialog { }); } - private static class EndTimeValidator implements Validator { + private static class EndTimeValidator implements Validator { private final StringMessages stringMessages; @@ -106,7 +106,7 @@ public class SetEndTimeDialog extends SetTimeDialog { } @Override - public String getErrorMessage(RaceLogSetEndTimeDTO dto) { + public String getErrorMessage(RaceLogSetFinishingAndEndTimeDTO dto) { if (dto.authorName == null || dto.authorName.isEmpty() || dto.authorPriority == null || dto.finishTime == null) { return stringMessages.pleaseEnterAValue(); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java index e07c7eaccbc..f7956991c2f 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java @@ -74,7 +74,7 @@ import com.sap.sailing.gwt.ui.shared.MarkDTO; import com.sap.sailing.gwt.ui.shared.RaceCourseDTO; import com.sap.sailing.gwt.ui.shared.RaceGroupDTO; import com.sap.sailing.gwt.ui.shared.RaceLogDTO; -import com.sap.sailing.gwt.ui.shared.RaceLogSetEndTimeDTO; +import com.sap.sailing.gwt.ui.shared.RaceLogSetFinishingAndEndTimeDTO; import com.sap.sailing.gwt.ui.shared.RaceLogSetStartTimeAndProcedureDTO; import com.sap.sailing.gwt.ui.shared.RaceTimesInfoDTO; import com.sap.sailing.gwt.ui.shared.RaceboardDataDTO; @@ -453,7 +453,7 @@ public interface SailingService extends RemoteService, FileStorageManagementGwtS boolean setStartTimeAndProcedure(RaceLogSetStartTimeAndProcedureDTO dto); - Pair setEndTime(RaceLogSetEndTimeDTO dto); + Pair setFinishingAndEndTime(RaceLogSetFinishingAndEndTimeDTO dto); Util.Triple getStartTimeAndProcedure(String leaderboardName, String raceColumnName, String fleetName); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java index b8e29f20930..18b6dda3010 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java @@ -63,7 +63,7 @@ import com.sap.sailing.gwt.ui.shared.MarkDTO; import com.sap.sailing.gwt.ui.shared.RaceCourseDTO; import com.sap.sailing.gwt.ui.shared.RaceGroupDTO; import com.sap.sailing.gwt.ui.shared.RaceLogDTO; -import com.sap.sailing.gwt.ui.shared.RaceLogSetEndTimeDTO; +import com.sap.sailing.gwt.ui.shared.RaceLogSetFinishingAndEndTimeDTO; import com.sap.sailing.gwt.ui.shared.RaceLogSetStartTimeAndProcedureDTO; import com.sap.sailing.gwt.ui.shared.RaceTimesInfoDTO; import com.sap.sailing.gwt.ui.shared.RaceboardDataDTO; @@ -621,13 +621,13 @@ public interface SailingServiceAsync extends ServerInfoRetriever, FileStorageMan void setStartTimeAndProcedure(RaceLogSetStartTimeAndProcedureDTO dto, AsyncCallback callback); /** - * Sets the a new end time. + * Sets the a new finishing and end time. * * @param dto - * {@link RaceLogSetEndTimeDTO} identifying the race to set the end time on and the new + * {@link RaceLogSetFinishingAndEndTimeDTO} identifying the race and the new finishing and * end time. */ - void setEndTime(RaceLogSetEndTimeDTO editedObject, AsyncCallback> asyncCallback); + void setFinishingAndEndTime(RaceLogSetFinishingAndEndTimeDTO editedObject, AsyncCallback> asyncCallback); /** * Gets the race's current start time, current pass identifier and racing procedure. If no start time is set, the diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java index f8eb84cd098..3fd9412e137 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java @@ -350,7 +350,7 @@ import com.sap.sailing.gwt.ui.shared.RaceInfoDTO.LineStartInfoDTO; import com.sap.sailing.gwt.ui.shared.RaceInfoDTO.RaceInfoExtensionDTO; import com.sap.sailing.gwt.ui.shared.RaceLogDTO; import com.sap.sailing.gwt.ui.shared.RaceLogEventDTO; -import com.sap.sailing.gwt.ui.shared.RaceLogSetEndTimeDTO; +import com.sap.sailing.gwt.ui.shared.RaceLogSetFinishingAndEndTimeDTO; import com.sap.sailing.gwt.ui.shared.RaceLogSetStartTimeAndProcedureDTO; import com.sap.sailing.gwt.ui.shared.RaceMapDataDTO; import com.sap.sailing.gwt.ui.shared.RaceTimesInfoDTO; @@ -5118,7 +5118,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S } @Override - public Pair setEndTime(RaceLogSetEndTimeDTO dto) { + public Pair setFinishingAndEndTime(RaceLogSetFinishingAndEndTimeDTO dto) { TimePoint newFinsihingTime = getService().setFinishingTime(dto.leaderboardName, dto.raceColumnName, dto.fleetName, dto.authorName, dto.authorPriority, dto.passId, new MillisecondsTimePoint(dto.finishingTime)); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceLogSetEndTimeDTO.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceLogSetFinishingAndEndTimeDTO.java similarity index 91% rename from java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceLogSetEndTimeDTO.java rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceLogSetFinishingAndEndTimeDTO.java index 33896f097f9..f14a5ecea0b 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceLogSetEndTimeDTO.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceLogSetFinishingAndEndTimeDTO.java @@ -7,7 +7,7 @@ import com.google.gwt.user.client.rpc.IsSerializable; /** * DTO holding all information to set a new start time on a specific race. */ -public class RaceLogSetEndTimeDTO implements IsSerializable { +public class RaceLogSetFinishingAndEndTimeDTO implements IsSerializable { public String leaderboardName; public String raceColumnName; public String fleetName; From 9f62527cf3cf6886ccf080445ad8283ebbba53eb Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Thu, 9 Nov 2017 11:46:13 +0100 Subject: [PATCH 101/290] made Bravo metrics robust against null values Change-Id: Iff401c8dc5fd70482ece70d760d5300342b573e9 --- .../domain/common/tracking/impl/BravoFixImpl.java | 11 ++++++++--- .../domain/tracking/impl/BravoFixTrackImpl.java | 7 +++++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/tracking/impl/BravoFixImpl.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/tracking/impl/BravoFixImpl.java index 8c1cc2a4012..7db57751513 100644 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/tracking/impl/BravoFixImpl.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/tracking/impl/BravoFixImpl.java @@ -27,10 +27,15 @@ public class BravoFixImpl extends SensorFixImpl implements BravoFix { @Override public Distance getRideHeight() { - double rideHeightPortHullasDouble = fix.get(BravoSensorDataMetadata.RIDE_HEIGHT_PORT_HULL.getColumnIndex()); - double rideHeightStarboardHullasDouble = fix + Double rideHeightPortHullasDouble = fix.get(BravoSensorDataMetadata.RIDE_HEIGHT_PORT_HULL.getColumnIndex()); + Double rideHeightStarboardHullAsDouble = fix .get(BravoSensorDataMetadata.RIDE_HEIGHT_STBD_HULL.getColumnIndex()); - return new MeterDistance(Math.min(rideHeightPortHullasDouble, rideHeightStarboardHullasDouble)); + return rideHeightPortHullasDouble == null ? + rideHeightStarboardHullAsDouble == null ? null : + new MeterDistance(rideHeightStarboardHullAsDouble) : + rideHeightStarboardHullAsDouble == null ? + new MeterDistance(rideHeightPortHullasDouble) : + new MeterDistance(Math.min(rideHeightPortHullasDouble, rideHeightStarboardHullAsDouble)); } @Override diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/BravoFixTrackImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/BravoFixTrackImpl.java index 2cbc8102934..19ce90b4a6c 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/BravoFixTrackImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/BravoFixTrackImpl.java @@ -76,8 +76,11 @@ public class BravoFixTrackImpl extends S Distance sum = Distance.NULL; int count = 0; for (final BravoFix fix : getFixes(from, true, to, true)) { - sum = sum.add(fix.getRideHeight()); - count++; + final Distance rideHeight = fix.getRideHeight(); + if (rideHeight != null) { + sum = sum.add(rideHeight); + count++; + } } if (count > 0) { result = sum.scale(1./count); From f01a9e894e492226dd5e440efb487882fcacd3e3 Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Thu, 9 Nov 2017 14:50:39 +0100 Subject: [PATCH 102/290] Bug 4268: Added set end time action also to SmartphoneTracking race list --- ...ckingEventManagementRaceImagesBarCell.java | 2 ++ ...martphoneTrackingEventManagementPanel.java | 31 +++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingEventManagementRaceImagesBarCell.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingEventManagementRaceImagesBarCell.java index 5e54ee20605..32d19525286 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingEventManagementRaceImagesBarCell.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingEventManagementRaceImagesBarCell.java @@ -19,6 +19,7 @@ public class RaceLogTrackingEventManagementRaceImagesBarCell extends ImagesBarCe public final static String ACTION_EDIT = "ACTION_EDIT"; public final static String ACTION_REFRESH_RACELOG = "ACTION_REFRESH_RACE_LOG"; public final static String ACTION_SET_STARTTIME = "ACTION_SET_STARTTIME"; + public final static String ACTION_SET_FINISHING_AND_END_TIME = "ACTION_SET_FINISHING_AND_END_TIME"; public final static String ACTION_SHOW_RACELOG = "ACTION_SHOW_RACELOG"; public final static String ACTION_SET_TRACKING_TIMES = "ACTION_SET_TRACKING_TIMES"; public final static String ACTION_STOP_TRACKING = "ACTION_STOP_TRACKING"; @@ -50,6 +51,7 @@ public class RaceLogTrackingEventManagementRaceImagesBarCell extends ImagesBarCe result.add(new ImageSpec(ACTION_EDIT, stringMessages.actionEdit(), makeImagePrototype(resources.editIcon()))); result.add(new ImageSpec(ACTION_REFRESH_RACELOG, stringMessages.refreshRaceLog(), makeImagePrototype(resources.reloadIcon()))); result.add(new ImageSpec(ACTION_SET_STARTTIME, stringMessages.setStartTime(), makeImagePrototype(resources.clockIcon()))); + result.add(new ImageSpec(ACTION_SET_FINISHING_AND_END_TIME, stringMessages.setEndTime(), makeImagePrototype(resources.clock2Icon()))); result.add(new ImageSpec(ACTION_SHOW_RACELOG, stringMessages.raceLog(), makeImagePrototype(resources.flagIcon()))); result.add(new ImageSpec(ACTION_SET_TRACKING_TIMES, stringMessages.setTrackingTimes(), makeImagePrototype(resources.setTrackingTimes()))); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SmartphoneTrackingEventManagementPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SmartphoneTrackingEventManagementPanel.java index 5bd92760112..8a12cb71085 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SmartphoneTrackingEventManagementPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SmartphoneTrackingEventManagementPanel.java @@ -55,6 +55,7 @@ import com.sap.sailing.gwt.ui.client.shared.racemap.RaceMapSettings; import com.sap.sailing.gwt.ui.shared.ControlPointDTO; import com.sap.sailing.gwt.ui.shared.DeviceConfigurationDTO; import com.sap.sailing.gwt.ui.shared.EventDTO; +import com.sap.sailing.gwt.ui.shared.RaceLogSetFinishingAndEndTimeDTO; import com.sap.sailing.gwt.ui.shared.RaceLogSetStartTimeAndProcedureDTO; import com.sap.sailing.gwt.ui.shared.RegattaDTO; import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO; @@ -380,6 +381,8 @@ public class SmartphoneTrackingEventManagementPanel extends AbstractLeaderboardC refreshRaceLog(raceColumnDTOAndFleetDTO.getA(), raceColumnDTOAndFleetDTO.getB(), true); } else if (RaceLogTrackingEventManagementRaceImagesBarCell.ACTION_SET_STARTTIME.equals(value)) { setStartTime(getSelectedRaceColumnWithFleet().getA(), getSelectedRaceColumnWithFleet().getB()); + } else if (RaceLogTrackingEventManagementRaceImagesBarCell.ACTION_SET_FINISHING_AND_END_TIME.equals(value)) { + setEndTime(getSelectedRaceColumnWithFleet().getA(), getSelectedRaceColumnWithFleet().getB()); } else if (LeaderboardRaceConfigImagesBarCell.ACTION_SHOW_RACELOG.equals(value)) { showRaceLog(raceColumnDTOAndFleetDTO.getA(), raceColumnDTOAndFleetDTO.getB()); } else if (RaceLogTrackingEventManagementRaceImagesBarCell.ACTION_SET_TRACKING_TIMES.equals(value)) { @@ -756,6 +759,34 @@ public class SmartphoneTrackingEventManagementPanel extends AbstractLeaderboardC }).show(); } + private void setEndTime(RaceColumnDTO raceColumnDTO, FleetDTO fleetDTO) { + new SetEndTimeDialog(sailingService, errorReporter, getSelectedLeaderboardName(), raceColumnDTO.getName(), + fleetDTO.getName(), stringMessages, new DialogCallback() { + @Override + public void ok(RaceLogSetFinishingAndEndTimeDTO editedObject) { + sailingService.setFinishingAndEndTime(editedObject, new AsyncCallback>() { + @Override + public void onFailure(Throwable caught) { + errorReporter.reportError(caught.getMessage()); + } + + @Override + public void onSuccess(Pair result) { + if (!result.getA() || !result.getB()) { + Window.alert(stringMessages.failedToSetNewStartTime()); + } else { + trackedRacesListComposite.regattaRefresher.fillRegattas(); + } + } + }); + } + + @Override + public void cancel() { + } + }).show(); + } + private void refreshTrackingActionButtons(){ leaderboardSelectionChanged(); } From 38bbe08dda06e5a474ec5db8647c08f1ac0f657a Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Thu, 9 Nov 2017 15:59:21 +0100 Subject: [PATCH 103/290] Bug 4268: Improved several messages and message keys --- .../LeaderboardRaceConfigImagesBarCell.java | 2 +- ...ceLogTrackingEventManagementRaceImagesBarCell.java | 2 +- .../sailing/gwt/ui/adminconsole/SetEndTimeDialog.java | 11 +++++------ .../com/sap/sailing/gwt/ui/client/StringMessages.java | 7 ++++--- .../sailing/gwt/ui/client/StringMessages.properties | 7 ++++--- .../gwt/ui/client/StringMessages_de.properties | 5 +++-- 6 files changed, 18 insertions(+), 16 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardRaceConfigImagesBarCell.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardRaceConfigImagesBarCell.java index b8a8ecf0fd4..b7538f8779c 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardRaceConfigImagesBarCell.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardRaceConfigImagesBarCell.java @@ -40,7 +40,7 @@ public class LeaderboardRaceConfigImagesBarCell extends ImagesBarCell { } result.add(new ImageSpec(ACTION_REFRESH_RACELOG, stringMessages.refreshRaceLog(), makeImagePrototype(resources.reloadIcon()))); result.add(new ImageSpec(ACTION_SET_STARTTIME, stringMessages.setStartTime(), makeImagePrototype(resources.clockIcon()))); - result.add(new ImageSpec(ACTION_SET_ENDTIME, stringMessages.setEndTime(), makeImagePrototype(resources.clock2Icon()))); + result.add(new ImageSpec(ACTION_SET_ENDTIME, stringMessages.setFinishingAndEndTime(), makeImagePrototype(resources.clock2Icon()))); result.add(new ImageSpec(ACTION_SHOW_RACELOG, stringMessages.raceLog(), makeImagePrototype(resources.flagIcon()))); return result; } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingEventManagementRaceImagesBarCell.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingEventManagementRaceImagesBarCell.java index 32d19525286..bb79dda9fef 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingEventManagementRaceImagesBarCell.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingEventManagementRaceImagesBarCell.java @@ -51,7 +51,7 @@ public class RaceLogTrackingEventManagementRaceImagesBarCell extends ImagesBarCe result.add(new ImageSpec(ACTION_EDIT, stringMessages.actionEdit(), makeImagePrototype(resources.editIcon()))); result.add(new ImageSpec(ACTION_REFRESH_RACELOG, stringMessages.refreshRaceLog(), makeImagePrototype(resources.reloadIcon()))); result.add(new ImageSpec(ACTION_SET_STARTTIME, stringMessages.setStartTime(), makeImagePrototype(resources.clockIcon()))); - result.add(new ImageSpec(ACTION_SET_FINISHING_AND_END_TIME, stringMessages.setEndTime(), makeImagePrototype(resources.clock2Icon()))); + result.add(new ImageSpec(ACTION_SET_FINISHING_AND_END_TIME, stringMessages.setFinishingAndEndTime(), makeImagePrototype(resources.clock2Icon()))); result.add(new ImageSpec(ACTION_SHOW_RACELOG, stringMessages.raceLog(), makeImagePrototype(resources.flagIcon()))); result.add(new ImageSpec(ACTION_SET_TRACKING_TIMES, stringMessages.setTrackingTimes(), makeImagePrototype(resources.setTrackingTimes()))); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetEndTimeDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetEndTimeDialog.java index ee58276724b..f5475082589 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetEndTimeDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetEndTimeDialog.java @@ -18,8 +18,8 @@ public class SetEndTimeDialog extends SetTimeDialog callback) { - super(service, errorReporter, stringMessages.setEndTime(), stringMessages.setEndTimeDescription(), - stringMessages.setEndTime(), stringMessages.cancel(), leaderboardName, raceColumnName, fleetName, + super(service, errorReporter, stringMessages.setFinishingAndEndTime(), stringMessages.setFinishingAndEndTimeDescription(), + stringMessages.endTime(), stringMessages.cancel(), leaderboardName, raceColumnName, fleetName, stringMessages, new EndTimeValidator(stringMessages), callback); this.ensureDebugId("SetEndTimeDialog"); } @@ -117,7 +117,7 @@ public class SetEndTimeDialog extends SetTimeDialog Date: Thu, 9 Nov 2017 16:54:50 +0100 Subject: [PATCH 104/290] bug4210 Simplified references and event handler impl, improved JavaDoc --- .../DataEntryDialogWithDateTimeBox.java | 28 ++++++++----------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/DataEntryDialogWithDateTimeBox.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/DataEntryDialogWithDateTimeBox.java index 478bdbba6e5..2910f6a3a3d 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/DataEntryDialogWithDateTimeBox.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/DataEntryDialogWithDateTimeBox.java @@ -2,8 +2,6 @@ package com.sap.sailing.gwt.ui.client; import java.util.Date; -import com.google.gwt.event.logical.shared.ValueChangeEvent; -import com.google.gwt.event.logical.shared.ValueChangeHandler; import com.sap.sailing.gwt.ui.shared.HTML5DateTimeBox; import com.sap.sailing.gwt.ui.shared.HTML5DateTimeBox.Format; import com.sap.sse.gwt.client.dialog.DataEntryDialog; @@ -11,31 +9,29 @@ import com.sap.sse.gwt.client.dialog.DialogUtils; public abstract class DataEntryDialogWithDateTimeBox extends DataEntryDialog { - public DataEntryDialogWithDateTimeBox(String title, String message, String okButtonName, String cancelButtonName, - com.sap.sse.gwt.client.dialog.DataEntryDialog.Validator validator, boolean animationEnabled, - com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback callback) { + protected DataEntryDialogWithDateTimeBox(String title, String message, String okButtonName, String cancelButtonName, + Validator validator, boolean animationEnabled, DialogCallback callback) { super(title, message, okButtonName, cancelButtonName, validator, animationEnabled, callback); } protected DataEntryDialogWithDateTimeBox(String title, String message, String okButtonName, String cancelButtonName, - com.sap.sse.gwt.client.dialog.DataEntryDialog.Validator validator, - com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback callback) { + Validator validator, DialogCallback callback) { super(title, message, okButtonName, cancelButtonName, validator, callback); } /** - * Call the requested format will be honored by the underlying implementation if the native components can support it - * @param yearToMinute + * Creates a new {@link HTML5DateTimeBox} instance, where the requested {@link Format format} will be honored by the + * underlying implementation, if the native components can support it. + * + * @param initialValue + * the initial {@link Date value} to set to the created {@link HTML5DateTimeBox} + * @param format + * the {@link Format format} to set to the created {@link HTML5DateTimeBox} */ - public HTML5DateTimeBox createDateTimeBox(Date initialValue, Format format) { + protected HTML5DateTimeBox createDateTimeBox(Date initialValue, Format format) { final HTML5DateTimeBox result = new HTML5DateTimeBox(format); result.setValue(initialValue); - result.addValueChangeHandler(new ValueChangeHandler() { - @Override - public void onValueChange(ValueChangeEvent event) { - validateAndUpdate(); - } - }); + result.addValueChangeHandler(event -> validateAndUpdate()); DialogUtils.linkEnterToButton(getOkButton(), result); DialogUtils.linkEscapeToButton(getCancelButton(), result); return result; From 0de0230708ceb3195c484eabed8a356745b349dd Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Thu, 9 Nov 2017 17:43:23 +0100 Subject: [PATCH 105/290] added failing test case for unknown Igtimi fix types Change-Id: Idd7afa2ad6d68d7dbecb9c377f73088fdbe9d195 --- .../igtimiadapter/test/FixFactoryTest.java | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100755 java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/test/FixFactoryTest.java diff --git a/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/test/FixFactoryTest.java b/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/test/FixFactoryTest.java new file mode 100755 index 00000000000..808ba392812 --- /dev/null +++ b/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/test/FixFactoryTest.java @@ -0,0 +1,46 @@ +package com.sap.sailing.domain.igtimiadapter.test; + +import static org.junit.Assert.assertTrue; + +import java.util.ArrayList; +import java.util.List; + +import org.json.simple.JSONObject; +import org.json.simple.parser.JSONParser; +import org.json.simple.parser.ParseException; +import org.junit.Before; +import org.junit.Test; + +import com.sap.sailing.domain.igtimiadapter.datatypes.Fix; +import com.sap.sailing.domain.igtimiadapter.impl.FixFactory; +import com.sap.sse.common.Util; + +public class FixFactoryTest { + private FixFactory fixFactory; + + @Before + public void setUp() { + fixFactory = new FixFactory(); + } + + @Test + public void testUnknownFixTypes() throws ParseException { + final String[] messages = new String[] { + "{\"DC-FE-AAKG\":{\"1\":{\"t\":[1510174025500],\"1\":[170.5044476],\"2\":[-45.87697]}}}", + "{\"DC-FE-AAKG\":{\"2\":{\"t\":[1510174025500],\"1\":[1]}}}", + "{\"DC-FE-AAKG\":{\"3\":{\"t\":[1510174025500],\"1\":[10]}}}", + "{\"DC-FE-AAKG\":{\"7\":{\"t\":[1510174025500],\"1\":[187.7]}}}", + "{\"DC-FE-AAKG\":{\"11\":{\"t\":[1510174025500],\"1\":[54]}}}", + "{\"DC-FE-AAKG\":{\"12\":{\"t\":[1510174025500],\"1\":[1.852]}}}", + "{\"DC-FE-AAKG\":{\"22\":{\"t\":[1510174025500],\"1\":[263.4]}}}", + "{\"DC-FE-AAKG\":{\"23\":{\"t\":[1510174025500],\"1\":[1.852]}}}", + "{\"DC-FE-AAKG\":{\"6\":{\"t\":[1510174025500],\"1\":[0]}}}", + "{\"DC-FE-AAKG\":{\"9\":{\"t\":[1510174025500],\"1\":[0]}}}" }; + List fixes = new ArrayList<>(); + for (final String message : messages) { + JSONObject jsonObject = (JSONObject) new JSONParser().parse(message); + Util.addAll(fixFactory.createFixes(jsonObject), fixes); + } + assertTrue(!Util.isEmpty(fixes)); // this largely asserts that no exception was thrown although there were unknown fix types (22/23) + } +} From c09dc9fc6a65020fcdef94798db12dc511bbdb89 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Thu, 9 Nov 2017 17:44:42 +0100 Subject: [PATCH 106/290] fix for ignoring Igtimi fixes of unknown fix type Change-Id: Idf29655423586f9c827e56c09c5da4d90a431e9d --- .../sailing/domain/igtimiadapter/impl/FixFactory.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/impl/FixFactory.java b/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/impl/FixFactory.java index 71700a8136e..83d1e869d5b 100755 --- a/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/impl/FixFactory.java +++ b/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/impl/FixFactory.java @@ -54,9 +54,12 @@ public class FixFactory { Sensor sensor = new SensorImpl(deviceSerialNumber, fixTypeAndOptionalColonSeparatedSensorsSubId.length < 2 ? 0 : Long.valueOf(fixTypeAndOptionalColonSeparatedSensorsSubId[1])); - Fix fix = createFix(sensor, Type.valueOf(fixType), timePoint, valuesPerSubindex); - result.add(fix); - fixIndex++; + final Type ft = Type.valueOf(fixType); + if (ft != null) { + Fix fix = createFix(sensor, ft, timePoint, valuesPerSubindex); + result.add(fix); + fixIndex++; + } } } return result; From bc6b7e71e4dea91532b26dc5d418a6c39f34042e Mon Sep 17 00:00:00 2001 From: Benjamin Barth Date: Fri, 10 Nov 2017 15:21:47 +0100 Subject: [PATCH 107/290] bug4210 Refactored and renamed custom progress bar implementation, added JavaDoc --- .../ui/adminconsole/CustomProgressBar.java | 98 +++++++++++++++++++ .../gwt/ui/adminconsole/HTML5ProgressBar.java | 22 ----- .../MasterDataImportPanel.java | 21 ++-- 3 files changed, 106 insertions(+), 35 deletions(-) create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CustomProgressBar.java delete mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/HTML5ProgressBar.java diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CustomProgressBar.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CustomProgressBar.java new file mode 100644 index 00000000000..f482e60caad --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CustomProgressBar.java @@ -0,0 +1,98 @@ +package com.sap.sailing.gwt.ui.adminconsole; + +import java.util.Objects; + +import com.google.gwt.dom.client.Document; +import com.google.gwt.dom.client.Style.Unit; +import com.google.gwt.user.client.ui.Widget; + +/** + * Custom widget implementation wrapping an HTML progress tag, providing static factory methods for + * {@link CustomProgressBar#determinate() determinate} and {@link CustomProgressBar#indeterminate() indeterminate} + * instances as well as getter and setter methods for the {@code max} and {@code value} attributes. + */ +public class CustomProgressBar extends Widget { + + private static final String TAG = "progress", ATTR_MAX = "max", ATTR_VALUE = "value"; + + /** + * Creates a new {@link CustomProgressBar} instance in indeterminate state. + * + * @return the created {@link CustomProgressBar} instance + */ + public static CustomProgressBar indeterminate() { + return new CustomProgressBar(); + } + + /** + * Creates a new {@link CustomProgressBar} instance in determinate state with default {@code max} attribute. + * + * @return the created {@link CustomProgressBar} instance + */ + public static CustomProgressBar determinate() { + final CustomProgressBar progressBar = indeterminate(); + progressBar.setValue(0.0d); + return progressBar; + } + + /** + * Creates a new {@link CustomProgressBar} instance in determinate state with the provided {@code max} attribute. + * + * @param max + * numeric value for {@code max} attribute + * @return the created {@link CustomProgressBar} instance + * + * @see CustomProgressBar#determinate() + */ + public static CustomProgressBar determinate(double max) { + final CustomProgressBar progressBar = determinate(); + progressBar.setMax(max); + return progressBar; + } + + private CustomProgressBar() { + setElement(Document.get().createElement(TAG)); + getElement().getStyle().setWidth(100, Unit.PCT); + getElement().getStyle().setHeight(2, Unit.EM); + } + + /** + * @return numeric value of the {@link CustomProgressBar}'s {@code max} attribute + */ + public final double getMax() { + return this.getDoubleAttribute(ATTR_MAX); + } + + /** + * @param max + * numeric value for the {@link CustomProgressBar}'s {@code max} attribute + */ + public final void setMax(double max) { + this.setDoubleAtrribute(ATTR_MAX, max); + } + + /** + * @return numeric value of the {@link CustomProgressBar}'s {@code value} attribute + */ + public final double getValue() { + return this.getDoubleAttribute(ATTR_VALUE); + } + + /** + * @param max + * numeric value for the {@link CustomProgressBar}'s {@code value} attribute + */ + public final void setValue(double value) { + this.setDoubleAtrribute(ATTR_VALUE, value); + } + + private double getDoubleAttribute(String attrName) { + final String attrValue = getElement().getAttribute(attrName); + return (Objects.isNull(attrValue) || attrValue.isEmpty()) ? null : Double.parseDouble(attrValue); + } + + private void setDoubleAtrribute(String attrName, double attrValue) { + getElement().setAttribute(attrName, Double.toString(attrValue)); + } + +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/HTML5ProgressBar.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/HTML5ProgressBar.java deleted file mode 100644 index 88708a6a079..00000000000 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/HTML5ProgressBar.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.sap.sailing.gwt.ui.adminconsole; - -import com.google.gwt.dom.client.Element; -import com.google.gwt.dom.client.Style.Unit; -import com.google.gwt.user.client.DOM; -import com.google.gwt.user.client.ui.Widget; - -public class HTML5ProgressBar extends Widget { - private Element progress; - - public HTML5ProgressBar() { - progress = DOM.createElement("progress"); - progress.getStyle().setWidth(100, Unit.PCT); - progress.getStyle().setHeight(2, Unit.EM); - setElement(progress); - setPercent(0); - } - - public void setPercent(int percent) { - progress.setAttribute("value", Double.toString(percent/100f)); - } -} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/masterdataimport/MasterDataImportPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/masterdataimport/MasterDataImportPanel.java index f960652e5ac..8ed6cda01bf 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/masterdataimport/MasterDataImportPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/masterdataimport/MasterDataImportPanel.java @@ -20,6 +20,7 @@ import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.CheckBox; import com.google.gwt.user.client.ui.HorizontalPanel; +import com.google.gwt.user.client.ui.IsWidget; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.ListBox; import com.google.gwt.user.client.ui.ScrollPanel; @@ -27,7 +28,7 @@ import com.google.gwt.user.client.ui.TextBox; import com.google.gwt.user.client.ui.VerticalPanel; import com.sap.sailing.domain.common.DataImportProgress; import com.sap.sailing.domain.common.MasterDataImportObjectCreationCount; -import com.sap.sailing.gwt.ui.adminconsole.HTML5ProgressBar; +import com.sap.sailing.gwt.ui.adminconsole.CustomProgressBar; import com.sap.sailing.gwt.ui.client.EventsRefresher; import com.sap.sailing.gwt.ui.client.LeaderboardGroupsRefresher; import com.sap.sailing.gwt.ui.client.LeaderboardsRefresher; @@ -124,12 +125,12 @@ public class MasterDataImportPanel extends VerticalPanel { String[] groupNames = createLeaderBoardGroupNamesFromListBox(); final Label overallName = new Label(stringMessages.overallProgress() + ":"); this.add(overallName); - final HTML5ProgressBar overallProgressBar = new HTML5ProgressBar(); + final CustomProgressBar overallProgressBar = CustomProgressBar.determinate(); overallProgressBar.ensureDebugId("overallProgressBar"); this.add(overallProgressBar); final Label subProgressName = new Label(); this.add(subProgressName); - final HTML5ProgressBar subProgressBar = new HTML5ProgressBar(); + final CustomProgressBar subProgressBar = CustomProgressBar.determinate(); this.add(subProgressBar); if (groupNames.length >= 1) { disableAllButtons(); @@ -182,12 +183,10 @@ public class MasterDataImportPanel extends VerticalPanel { subProgressName, subProgressBar); showCreationMessage(creationCount); } else { - overallProgressBar.setPercent((int) (result - .getOverallProgressPct() * 100)); + overallProgressBar.setValue(result.getOverallProgressPct()); subProgressName.setText(result.getCurrentSubProgress() .getMessage(stringMessages)); - subProgressBar.setPercent((int) (result - .getCurrentSubProgressPct() * 100)); + subProgressBar.setValue(result.getCurrentSubProgressPct()); } } } @@ -414,12 +413,8 @@ public class MasterDataImportPanel extends VerticalPanel { changeButtonStateAccordingToApplicationState(); } - private void deleteProgressIndication(final Label overallName, final HTML5ProgressBar overallProgressBar, - final Label subProgressName, final HTML5ProgressBar subProgressBar) { - this.remove(overallProgressBar); - this.remove(subProgressBar); - this.remove(subProgressName); - this.remove(overallName); + private void deleteProgressIndication(IsWidget... widgetsToRemove) { + Arrays.asList(widgetsToRemove).forEach(this::remove); } } From 9e147b46df88b82a420f4780ec3f83b3e05799a8 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Fri, 10 Nov 2017 16:49:42 +0100 Subject: [PATCH 108/290] added TP52 boat class --- .../domain/common/BoatClassMasterdata.java | 1 + .../common/client/BoatClassImageResolver.java | 1 + .../common/client/BoatClassImageResources.java | 3 +++ .../racemap/BoatClassVectorGraphicsResolver.java | 2 +- .../gwt/ui/client/images/boatclass/TP52.png | Bin 0 -> 2019 bytes 5 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/client/images/boatclass/TP52.png diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/BoatClassMasterdata.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/BoatClassMasterdata.java index ea057864d5e..ddf0f98404a 100755 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/BoatClassMasterdata.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/BoatClassMasterdata.java @@ -112,6 +112,7 @@ public enum BoatClassMasterdata { TORNADO ("Tornado Catamaran", true, 6.10, 3.02, BoatHullType.CATAMARAN, true, "Tornado", "Tornado Cat"), TOM_28_MAX ("Tom 28 MAX", true, 8.48, 2.48, BoatHullType.MONOHULL, true, "Tom 28"), TRIAS ("Trias", true, 9.20, 2.12, BoatHullType.MONOHULL, true), + TP52 ("TP52", true, 15.85, 4.35, BoatHullType.MONOHULL, true, "TP 52", "Transpac 52", "Transpac52"), VIPER_640 ("Viper 640", true, 6.43, 2.49, BoatHullType.MONOHULL, true), VO60 ("VO60", true, 19.5, 5.25, BoatHullType.MONOHULL, true, "Volvo Ocean 60", "VolvoOcean60", "W60", "Whitbread60", "Whitbread 60"), VX_ONE ("VX ONE", true, 5.79, 2.19, BoatHullType.MONOHULL, true, "VX-ONE"), diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/common/client/BoatClassImageResolver.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/common/client/BoatClassImageResolver.java index c88495e58d6..0fe92e2e587 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/common/client/BoatClassImageResolver.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/common/client/BoatClassImageResolver.java @@ -123,6 +123,7 @@ public class BoatClassImageResolver { boatClassIconsMap.put(BoatClassMasterdata.TEENY.getDisplayName(), imageResources.TeenyIcon()); boatClassIconsMap.put(BoatClassMasterdata.TORNADO.getDisplayName(), imageResources.TornadoIcon()); boatClassIconsMap.put(BoatClassMasterdata.TOM_28_MAX.getDisplayName(), imageResources.Tom28MaxIcon()); + boatClassIconsMap.put(BoatClassMasterdata.TP52.getDisplayName(), imageResources.TP52Icon()); boatClassIconsMap.put(BoatClassMasterdata.TRIAS.getDisplayName(), imageResources.TriasIcon()); boatClassIconsMap.put(BoatClassMasterdata.VIPER_640.getDisplayName(), imageResources.Viper640Icon()); boatClassIconsMap.put(BoatClassMasterdata.VX_ONE.getDisplayName(), imageResources.VXOneIcon()); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/common/client/BoatClassImageResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/common/client/BoatClassImageResources.java index b249b1829a9..ee8b1e880fa 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/common/client/BoatClassImageResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/common/client/BoatClassImageResources.java @@ -313,6 +313,9 @@ public interface BoatClassImageResources extends ClientBundle { @Source("com/sap/sailing/gwt/ui/client/images/boatclass/TOM_28_MAX.png") ImageResource Tom28MaxIcon(); + @Source("com/sap/sailing/gwt/ui/client/images/boatclass/TP52.png") + ImageResource TP52Icon(); + @Source("com/sap/sailing/gwt/ui/client/images/boatclass/RUNNING.png") ImageResource RunningIcon(); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/BoatClassVectorGraphicsResolver.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/BoatClassVectorGraphicsResolver.java index 2c2bb228ac5..deccbcdb0a2 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/BoatClassVectorGraphicsResolver.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/BoatClassVectorGraphicsResolver.java @@ -44,7 +44,7 @@ public class BoatClassVectorGraphicsResolver { BoatClassMasterdata.A_CAT, BoatClassMasterdata.TORNADO, BoatClassMasterdata.FLYING_PHANTOM); BoatClassVectorGraphics keelBoatWithGennaker = new KeelBoatWithGennakerVectorGraphics(BoatClassMasterdata.J70, BoatClassMasterdata.B_ONE, BoatClassMasterdata.J80, BoatClassMasterdata.LASER_SB3, BoatClassMasterdata.LONGTZE, - BoatClassMasterdata.RS_FEVA, BoatClassMasterdata.RS100); + BoatClassMasterdata.RS_FEVA, BoatClassMasterdata.RS100, BoatClassMasterdata.TP52); BoatClassVectorGraphics dinghyWithSpinnaker = new DinghyWithSpinnakerVectorGraphics(BoatClassMasterdata._420, BoatClassMasterdata._470, BoatClassMasterdata._5O5, BoatClassMasterdata.CADET, BoatClassMasterdata.FLYING_DUTCHMAN, BoatClassMasterdata.FOLKBOAT, BoatClassMasterdata.DYAS, BoatClassMasterdata.DRAGON_INT, diff --git a/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/client/images/boatclass/TP52.png b/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/client/images/boatclass/TP52.png new file mode 100644 index 0000000000000000000000000000000000000000..9105a11c1ce8c53a3507261ef2a44898c53290f2 GIT binary patch literal 2019 zcma)-dpOe#8^?beqi9YslEd3_SQ<9chH@reCYR%=$7v4D`Lq&~M$KtbjvbsP9#TZg zN*gmZa!5JNVJRun3VWz2l~?ce{_(v3yw`i(*Z2Nj-|uz*asT(padSNel~R=g008Rb zXy?A|wBOnxvAvtw))w0)5$t@-4%qrV)vWrW?Ph13qi-SrNbmkF5OBR*WxJG2a>Ch5 z&Phwj8h{tq%ZIm{I43)6&*bUP6+*9htQ^-;h+uoh(KAex zsm)l~`)6)-IiFxoJXg)@ZJn;r{kqQy*)-tAe!b5N1ylDQeWVv()}_ih>Hfk41i!bW z0Aq#Gf8`vU6oT6}!LYX>^Ff;Z_C=HWgP4KY;-Y+(D0D6&vk&o~k>3`NBigEYB~?Gi(i5>dobOt^rJO(T>ibc# zmyY&$NduN-fjzvVz(BTB?n>SVYVAK8H?Q^s$b9sQSswow{$%*mD#Dkbj*|_gKpzc# zu;SgPqLXGE2fJkgWMO7!v#EnAh~X)%{FrpjJc$WruQP^w-}Q*!bNj5szTa%5@8)Kd zRp27R`O2wSM!QYqC|=<+l+*+S8Kr?LdvRyS9_z*)PlfI@=Q)2DlcVc-SEU+s%>MKq zowC%oI0M~$uk!o_u;WqETUe;Dn6yE=hfGXcEl-=F^uG+osl|S1bRhVdRaL?ME_S^2M*zg412y zt-F$1Y)2>>A0N|$DG6RS@inJo=ltLObi?&c<(gBrVxpy?y2_U{ae-a@x+Z#f3{4(q zLQ`W`=4J~ip)XwTUaUL2_Tj;?fX&+InH21U;}Kq}zTMT7Zy_?eD{s1KNAGZ7di&@h z7(iz#dqks8sotr>!U7v*5gF#4!WRswJ^19<(M~+8m37$Tb${cn-@n{?ZF( zQ(SBDhQGTs9+4R1onxN&s<3>h_G!YEf(M3=Z&W4`J7?lj()4CM?*f&Xe&*vN$Ww18 zBhym-UZEvXL{s7dQ|Owh)(-;>k};%|F5ZuGa|+Li8~8gnc)-2?jE@<0rP^kn@?=){%qA!5+GgvfSsNfu6{&%qX_Li z(uU-c$ipd0Y+i-$(E*8b+{am#EqB(e!Hw)SX!^|~Q7Z%C5Kj_oAe`A`zL;n=A(9#U z^+;>TKMu{{2bZ7s~FN&!B${6pW7mnF-V zK9PKQdzW@GV?U6M$JDvDdkQ;2j``>l7j;eH$i(6{PA73|>2g3Q`7gv$QBaU*xtm!h z2$5QN`0OkdrUZe|=5>a=wt{#)qG&`C4SFF0Gff|z$u}w()>1l%Uaro+L6^1N=c`f` ze6yJ(KXd6?+UXQqYA9xxe5o8&D+|*|YI5!@K4>L<)56-3b;cUc(JV9&3MvNcM=~>v zw2>5ZmL|2~73YV+kL%#j%6ie=M@#ysstwZv{okhzThfb;tVSy5C~qj;_Gkrph>a!} z1l(WPuZ>cy@c%c=YIf}UJD>hn+@{{&kN*=J;=X9+qSs#IvK%V5aSS-wyV^C|1ZMmT DzLluj literal 0 HcmV?d00001 From ce51bb0b9c24b5b07d91c13a270ec3872a735fd8 Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Mon, 13 Nov 2017 08:55:34 +0100 Subject: [PATCH 109/290] Bug 4268: Added current end time display to the set end time dialog --- .../gwt/ui/adminconsole/SetEndTimeDialog.java | 15 ++++++++++++--- .../gwt/ui/adminconsole/SetTimeDialog.java | 11 ++++++++--- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetEndTimeDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetEndTimeDialog.java index f5475082589..18573ec7581 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetEndTimeDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetEndTimeDialog.java @@ -5,6 +5,7 @@ import java.util.Date; import com.google.gwt.i18n.client.DateTimeFormat; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.Grid; +import com.google.gwt.user.client.ui.Label; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.BetterDateTimeBox; @@ -14,6 +15,7 @@ import com.sap.sse.gwt.client.dialog.DataEntryDialog; public class SetEndTimeDialog extends SetTimeDialog { private BetterDateTimeBox finishTimeBox; + private Label currentEndTimeLabel; public SetEndTimeDialog(SailingServiceAsync service, ErrorReporter errorReporter, String leaderboardName, String raceColumnName, String fleetName, StringMessages stringMessages, @@ -46,15 +48,15 @@ public class SetEndTimeDialog extends SetTimeDialog result) { if (result == null) { - currentStartOrEndTimeLabel.setText(stringMessages.notAvailable()); + currentEndTimeLabel.setText(stringMessages.notAvailable()); currentPassIdBox.setText(stringMessages.notAvailable()); } else { Date startTime = result.getA(); if (startTime == null) { - currentStartOrEndTimeLabel.setText(stringMessages.unknown()); + currentEndTimeLabel.setText(stringMessages.unknown()); } else { finishTimeBox.setValue(startTime); - currentStartOrEndTimeLabel.setText(DateTimeFormat + currentEndTimeLabel.setText(DateTimeFormat .getFormat(DateTimeFormat.PredefinedFormat.DATE_TIME_MEDIUM).format(startTime)); } currentPassId = result.getB().intValue(); @@ -119,6 +121,13 @@ public class SetEndTimeDialog extends SetTimeDialog extends DataEntryDialogWithBootstrap { CaptionPanel current = new CaptionPanel(stringMessages.liveData()); HorizontalPanel currentPanel = new HorizontalPanel(); currentPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE); - Grid grid = new Grid(2, 2); + Grid grid = new Grid(3, 2); currentStartOrEndTimeLabel = new Label(""); grid.setWidget(0, 0, createLabel(getTimeLabel())); grid.setWidget(0, 1, currentStartOrEndTimeLabel); + + additionalCurrentTimeLabel(grid); currentPassIdBox = new Label(""); - grid.setWidget(1, 0, createLabel(stringMessages.currentPass())); - grid.setWidget(1, 1, currentPassIdBox); + grid.setWidget(2, 0, createLabel(stringMessages.currentPass())); + grid.setWidget(2, 1, currentPassIdBox); currentPanel.add(grid); PushButton refreshButton = new PushButton(new Image(resources.reloadIcon())); @@ -122,6 +124,9 @@ public abstract class SetTimeDialog extends DataEntryDialogWithBootstrap { return content; } + + protected void additionalCurrentTimeLabel(Grid content) { + } protected abstract void additionalInput(Grid content); From 80db1e93186b610f17956a72c95a4bada2d55a8a Mon Sep 17 00:00:00 2001 From: Steffen Schaefer Date: Mon, 13 Nov 2017 09:04:16 +0100 Subject: [PATCH 110/290] Bug 4268: Added release notes --- java/com.sap.sailing.www/release_notes_admin.html | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/java/com.sap.sailing.www/release_notes_admin.html b/java/com.sap.sailing.www/release_notes_admin.html index e8f01e8ca99..15abd2846a9 100755 --- a/java/com.sap.sailing.www/release_notes_admin.html +++ b/java/com.sap.sailing.www/release_notes_admin.html @@ -22,6 +22,14 @@

    Release Notes - Administration Console

    +

    November 2017

    +
      +
    • In addition to the "Set start time" dialog there's now a "Set finishing and end time dialog". + This dialog makes it possible to set the finishing as well as the end time in the RaceLog. + It is intended to be used in cases where a race wasn't correctly finished using the race management app. +
    • +
    +

    September 2017