From 15f0ea04891765d6e18668a8857d1f609cfeaae4 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Wed, 5 Nov 2014 13:08:09 +0100 Subject: [PATCH 01/50] renamed com.sap.sailing.mongodb to com.sap.sse.mongodb and removed unnecessary dependency to com.sap.sailing.domain.common; fixes bug 2435 --- .../META-INF/MANIFEST.MF | 2 +- .../igtimiadapter/persistence/PersistenceFactory.java | 4 ++-- .../domain/igtimiadapter/persistence/impl/Activator.java | 2 +- .../persistence/impl/PersistenceFactoryImpl.java | 4 ++-- .../META-INF/MANIFEST.MF | 2 +- .../igtimiadapter/impl/WebSocketServerListTest.java | 4 ++-- .../sailing/domain/igtimiadapter/oauth/SignInTest.java | 4 ++-- .../igtimiadapter/persistence/IgtimiPersistenceTest.java | 2 +- .../domain/igtimiadapter/websocket/WebSocketTest.java | 4 ++-- .../META-INF/MANIFEST.MF | 2 +- .../sailing/domain/persistence/MongoWindStoreFactory.java | 2 +- .../sailing/domain/persistence/PersistenceFactory.java | 2 +- .../sap/sailing/domain/persistence/impl/Activator.java | 2 +- .../domain/persistence/impl/MongoWindStoreImpl.java | 2 +- .../domain/persistence/impl/PersistenceFactoryImpl.java | 2 +- .../sailing/domain/persistence/media/MediaDBFactory.java | 2 +- .../domain/persistence/media/impl/MediaDBFactoryImpl.java | 2 +- .../META-INF/MANIFEST.MF | 2 +- .../persistence/SwissTimingAdapterPersistence.java | 2 +- .../swisstimingadapter/persistence/impl/Activator.java | 2 +- .../impl/SwissTimingAdapterPersistenceImpl.java | 2 +- .../META-INF/MANIFEST.MF | 2 +- .../META-INF/MANIFEST.MF | 2 +- .../tractracadapter/persistence/MongoObjectFactory.java | 2 +- .../tractracadapter/persistence/impl/Activator.java | 2 +- java/com.sap.sailing.gwt.ui/META-INF/MANIFEST.MF | 2 +- .../META-INF/MANIFEST.MF | 2 +- .../media/persistence/test/AbstractMongoDBTest.java | 4 ++-- java/com.sap.sailing.mongodb.test/META-INF/MANIFEST.MF | 6 ++++-- .../com/sap/sailing/mongodb/test/AbstractMongoDBTest.java | 4 ++-- .../sailing/mongodb/test/CollectionNameServiceTest.java | 4 ++-- .../src/com/sap/sailing/mongodb/test/ConvertWindData.java | 2 +- ...ParseAndMigratePassingSideAndControlPointTwoMarks.java | 2 +- .../test/TestStoringAndRetrievingLeaderboardGroups.java | 2 +- .../test/TestStoringAndRetrievingWindTracksTest.java | 2 +- java/com.sap.sailing.selenium.test/META-INF/MANIFEST.MF | 2 +- .../META-INF/MANIFEST.MF | 2 +- .../META-INF/MANIFEST.MF | 2 +- .../server/gateway/test/support/ClearStateServlet.java | 7 ++----- .../server/gateway/test/AbstractJsonExportTest.java | 4 ++-- .../server/gateway/test/jaxrs/AbstractJaxRsApiTest.java | 4 ++-- java/com.sap.sailing.server.gateway/META-INF/MANIFEST.MF | 2 +- .../META-INF/MANIFEST.MF | 2 +- .../replication/test/AbstractServerReplicationTest.java | 2 +- .../DelayedLeaderboardCorrectionsReplicationTest.java | 2 +- .../test/InitialLoadReplicationObjectIdentityTest.java | 2 +- .../server/replication/test/RaceLogReplicationTest.java | 2 +- java/com.sap.sailing.server.test/META-INF/MANIFEST.MF | 2 +- .../sap/sailing/server/test/LeaderboardStorageTest.java | 2 +- .../com/sap/sailing/server/test/MasterDataImportTest.java | 4 ++-- .../server/test/OperationalTransformationTest.java | 2 +- .../sap/sailing/server/test/RaceLogInRaceColumnTest.java | 2 +- java/com.sap.sailing.server/META-INF/MANIFEST.MF | 2 +- .../sailing/server/impl/PersistentCompetitorStore.java | 2 +- .../.classpath | 0 .../.gitignore | 0 .../.project | 2 +- .../.settings/org.eclipse.jdt.core.prefs | 0 .../.settings/org.eclipse.m2e.core.prefs | 0 .../.settings/org.eclipse.pde.core.prefs | 0 .../META-INF/MANIFEST.MF | 7 +++---- .../build.properties | 0 .../pom.xml | 0 .../src/com/sap/sse}/mongodb/Activator.java | 4 ++-- .../com/sap/sse}/mongodb/AlreadyRegisteredException.java | 2 +- .../src/com/sap/sse}/mongodb/MongoDBConfiguration.java | 4 ++-- .../src/com/sap/sse}/mongodb/MongoDBService.java | 4 ++-- .../com/sap/sse}/mongodb/internal/MongoDBServiceImpl.java | 8 ++++---- java/com.sap.sse.security.test/META-INF/MANIFEST.MF | 2 +- .../src/com/sap/sse/security/test/LoginTest.java | 4 ++-- .../META-INF/MANIFEST.MF | 6 +++--- .../security/userstore/mongodb/PersistenceFactory.java | 2 +- .../sse/security/userstore/mongodb/impl/Activator.java | 2 +- .../userstore/mongodb/impl/PersistenceFactoryImpl.java | 2 +- 74 files changed, 93 insertions(+), 95 deletions(-) rename java/{com.sap.sailing.mongodb => com.sap.sse.mongodb}/.classpath (100%) rename java/{com.sap.sailing.mongodb => com.sap.sse.mongodb}/.gitignore (100%) rename java/{com.sap.sailing.mongodb => com.sap.sse.mongodb}/.project (90%) rename java/{com.sap.sailing.mongodb => com.sap.sse.mongodb}/.settings/org.eclipse.jdt.core.prefs (100%) rename java/{com.sap.sailing.mongodb => com.sap.sse.mongodb}/.settings/org.eclipse.m2e.core.prefs (100%) rename java/{com.sap.sailing.mongodb => com.sap.sse.mongodb}/.settings/org.eclipse.pde.core.prefs (100%) rename java/{com.sap.sailing.mongodb => com.sap.sse.mongodb}/META-INF/MANIFEST.MF (67%) rename java/{com.sap.sailing.mongodb => com.sap.sse.mongodb}/build.properties (100%) rename java/{com.sap.sailing.mongodb => com.sap.sse.mongodb}/pom.xml (100%) rename java/{com.sap.sailing.mongodb/src/com/sap/sailing => com.sap.sse.mongodb/src/com/sap/sse}/mongodb/Activator.java (92%) rename java/{com.sap.sailing.mongodb/src/com/sap/sailing => com.sap.sse.mongodb/src/com/sap/sse}/mongodb/AlreadyRegisteredException.java (79%) rename java/{com.sap.sailing.mongodb/src/com/sap/sailing => com.sap.sse.mongodb/src/com/sap/sse}/mongodb/MongoDBConfiguration.java (94%) rename java/{com.sap.sailing.mongodb/src/com/sap/sailing => com.sap.sse.mongodb/src/com/sap/sse}/mongodb/MongoDBService.java (91%) rename java/{com.sap.sailing.mongodb/src/com/sap/sailing => com.sap.sse.mongodb/src/com/sap/sse}/mongodb/internal/MongoDBServiceImpl.java (92%) diff --git a/java/com.sap.sailing.domain.igtimiadapter.persistence/META-INF/MANIFEST.MF b/java/com.sap.sailing.domain.igtimiadapter.persistence/META-INF/MANIFEST.MF index 6af9114da33..58103f9a1ff 100644 --- a/java/com.sap.sailing.domain.igtimiadapter.persistence/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.domain.igtimiadapter.persistence/META-INF/MANIFEST.MF @@ -5,7 +5,7 @@ Bundle-SymbolicName: com.sap.sailing.domain.igtimiadapter.persistence Bundle-Version: 1.0.0.qualifier Bundle-Vendor: SAP Bundle-RequiredExecutionEnvironment: JavaSE-1.8 -Require-Bundle: com.sap.sailing.mongodb, +Require-Bundle: com.sap.sse.mongodb, com.mongodb.driver;bundle-version="2.6.2" Export-Package: com.sap.sailing.domain.igtimiadapter.persistence Import-Package: org.osgi.framework diff --git a/java/com.sap.sailing.domain.igtimiadapter.persistence/src/com/sap/sailing/domain/igtimiadapter/persistence/PersistenceFactory.java b/java/com.sap.sailing.domain.igtimiadapter.persistence/src/com/sap/sailing/domain/igtimiadapter/persistence/PersistenceFactory.java index 7bbd429dc17..10099898181 100755 --- a/java/com.sap.sailing.domain.igtimiadapter.persistence/src/com/sap/sailing/domain/igtimiadapter/persistence/PersistenceFactory.java +++ b/java/com.sap.sailing.domain.igtimiadapter.persistence/src/com/sap/sailing/domain/igtimiadapter/persistence/PersistenceFactory.java @@ -1,8 +1,8 @@ package com.sap.sailing.domain.igtimiadapter.persistence; import com.sap.sailing.domain.igtimiadapter.persistence.impl.PersistenceFactoryImpl; -import com.sap.sailing.mongodb.MongoDBConfiguration; -import com.sap.sailing.mongodb.MongoDBService; +import com.sap.sse.mongodb.MongoDBConfiguration; +import com.sap.sse.mongodb.MongoDBService; public interface PersistenceFactory { PersistenceFactory INSTANCE = new PersistenceFactoryImpl(); diff --git a/java/com.sap.sailing.domain.igtimiadapter.persistence/src/com/sap/sailing/domain/igtimiadapter/persistence/impl/Activator.java b/java/com.sap.sailing.domain.igtimiadapter.persistence/src/com/sap/sailing/domain/igtimiadapter/persistence/impl/Activator.java index 256b1c5aaa7..b768a9867d5 100755 --- a/java/com.sap.sailing.domain.igtimiadapter.persistence/src/com/sap/sailing/domain/igtimiadapter/persistence/impl/Activator.java +++ b/java/com.sap.sailing.domain.igtimiadapter.persistence/src/com/sap/sailing/domain/igtimiadapter/persistence/impl/Activator.java @@ -3,7 +3,7 @@ package com.sap.sailing.domain.igtimiadapter.persistence.impl; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; -import com.sap.sailing.mongodb.MongoDBService; +import com.sap.sse.mongodb.MongoDBService; public class Activator implements BundleActivator { @Override diff --git a/java/com.sap.sailing.domain.igtimiadapter.persistence/src/com/sap/sailing/domain/igtimiadapter/persistence/impl/PersistenceFactoryImpl.java b/java/com.sap.sailing.domain.igtimiadapter.persistence/src/com/sap/sailing/domain/igtimiadapter/persistence/impl/PersistenceFactoryImpl.java index 30441922904..612c2cb66f3 100755 --- a/java/com.sap.sailing.domain.igtimiadapter.persistence/src/com/sap/sailing/domain/igtimiadapter/persistence/impl/PersistenceFactoryImpl.java +++ b/java/com.sap.sailing.domain.igtimiadapter.persistence/src/com/sap/sailing/domain/igtimiadapter/persistence/impl/PersistenceFactoryImpl.java @@ -3,8 +3,8 @@ package com.sap.sailing.domain.igtimiadapter.persistence.impl; import com.sap.sailing.domain.igtimiadapter.persistence.DomainObjectFactory; import com.sap.sailing.domain.igtimiadapter.persistence.MongoObjectFactory; import com.sap.sailing.domain.igtimiadapter.persistence.PersistenceFactory; -import com.sap.sailing.mongodb.MongoDBConfiguration; -import com.sap.sailing.mongodb.MongoDBService; +import com.sap.sse.mongodb.MongoDBConfiguration; +import com.sap.sse.mongodb.MongoDBService; public class PersistenceFactoryImpl implements PersistenceFactory { diff --git a/java/com.sap.sailing.domain.igtimiadapter.test/META-INF/MANIFEST.MF b/java/com.sap.sailing.domain.igtimiadapter.test/META-INF/MANIFEST.MF index d99de787500..f61ce095465 100644 --- a/java/com.sap.sailing.domain.igtimiadapter.test/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.domain.igtimiadapter.test/META-INF/MANIFEST.MF @@ -8,5 +8,5 @@ Bundle-Vendor: SAP Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Require-Bundle: org.junit4;bundle-version="4.8.2", com.sap.sailing.domain.common, - com.sap.sailing.mongodb, + com.sap.sse.mongodb, com.sap.sse.common diff --git a/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/impl/WebSocketServerListTest.java b/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/impl/WebSocketServerListTest.java index 014a61150ff..0349411a1a8 100755 --- a/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/impl/WebSocketServerListTest.java +++ b/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/impl/WebSocketServerListTest.java @@ -13,9 +13,9 @@ import org.junit.Test; import org.junit.rules.Timeout; import com.sap.sailing.domain.igtimiadapter.persistence.PersistenceFactory; -import com.sap.sailing.mongodb.MongoDBConfiguration; -import com.sap.sailing.mongodb.MongoDBService; import com.sap.sse.common.Util; +import com.sap.sse.mongodb.MongoDBConfiguration; +import com.sap.sse.mongodb.MongoDBService; public class WebSocketServerListTest { @Rule public Timeout AbstractTracTracLiveTestTimeout = new Timeout(2 * 60 * 1000); diff --git a/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/oauth/SignInTest.java b/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/oauth/SignInTest.java index a19667e5c1c..46b52a07481 100755 --- a/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/oauth/SignInTest.java +++ b/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/oauth/SignInTest.java @@ -23,8 +23,8 @@ import com.sap.sailing.domain.igtimiadapter.impl.Activator; import com.sap.sailing.domain.igtimiadapter.impl.ClientImpl; import com.sap.sailing.domain.igtimiadapter.impl.IgtimiConnectionFactoryImpl; import com.sap.sailing.domain.igtimiadapter.persistence.PersistenceFactory; -import com.sap.sailing.mongodb.MongoDBConfiguration; -import com.sap.sailing.mongodb.MongoDBService; +import com.sap.sse.mongodb.MongoDBConfiguration; +import com.sap.sse.mongodb.MongoDBService; public class SignInTest { private static final Logger logger = Logger.getLogger(SignInTest.class.getName()); diff --git a/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/persistence/IgtimiPersistenceTest.java b/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/persistence/IgtimiPersistenceTest.java index a5879cdfd94..80327628908 100755 --- a/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/persistence/IgtimiPersistenceTest.java +++ b/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/persistence/IgtimiPersistenceTest.java @@ -6,8 +6,8 @@ import static org.junit.Assert.assertTrue; import org.junit.Before; import org.junit.Test; -import com.sap.sailing.mongodb.MongoDBConfiguration; import com.sap.sse.common.Util; +import com.sap.sse.mongodb.MongoDBConfiguration; public class IgtimiPersistenceTest { private MongoObjectFactory mongoObjectFactory; diff --git a/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/websocket/WebSocketTest.java b/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/websocket/WebSocketTest.java index e981bee655d..03c2cc7ec4e 100755 --- a/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/websocket/WebSocketTest.java +++ b/java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/websocket/WebSocketTest.java @@ -40,9 +40,9 @@ import com.sap.sailing.domain.igtimiadapter.datatypes.Fix; import com.sap.sailing.domain.igtimiadapter.impl.ClientImpl; import com.sap.sailing.domain.igtimiadapter.impl.IgtimiConnectionFactoryImpl; import com.sap.sailing.domain.igtimiadapter.persistence.PersistenceFactory; -import com.sap.sailing.mongodb.MongoDBConfiguration; -import com.sap.sailing.mongodb.MongoDBService; import com.sap.sse.common.Util; +import com.sap.sse.mongodb.MongoDBConfiguration; +import com.sap.sse.mongodb.MongoDBService; public class WebSocketTest { private static final Logger logger = Logger.getLogger(WebSocketTest.class.getName()); diff --git a/java/com.sap.sailing.domain.persistence/META-INF/MANIFEST.MF b/java/com.sap.sailing.domain.persistence/META-INF/MANIFEST.MF index d00ba29d158..e6fc6caa0fe 100644 --- a/java/com.sap.sailing.domain.persistence/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.domain.persistence/META-INF/MANIFEST.MF @@ -6,7 +6,7 @@ Bundle-Version: 1.0.0.qualifier Bundle-Vendor: SAP Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Bundle-Activator: com.sap.sailing.domain.persistence.impl.Activator -Require-Bundle: com.sap.sailing.mongodb, +Require-Bundle: com.sap.sse.mongodb, com.sap.sailing.domain, com.mongodb.driver;bundle-version="2.6.2", com.sap.sailing.domain.common, diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/MongoWindStoreFactory.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/MongoWindStoreFactory.java index 696908ca6b0..47715675110 100755 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/MongoWindStoreFactory.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/MongoWindStoreFactory.java @@ -4,7 +4,7 @@ import java.net.UnknownHostException; import com.mongodb.MongoException; import com.sap.sailing.domain.persistence.impl.MongoWindStoreFactoryImpl; -import com.sap.sailing.mongodb.MongoDBService; +import com.sap.sse.mongodb.MongoDBService; public interface MongoWindStoreFactory { MongoWindStoreFactory INSTANCE = new MongoWindStoreFactoryImpl(MongoDBService.INSTANCE.getDB()); diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/PersistenceFactory.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/PersistenceFactory.java index c70f7cf4348..5d1fe46653c 100755 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/PersistenceFactory.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/PersistenceFactory.java @@ -3,7 +3,7 @@ package com.sap.sailing.domain.persistence; import com.sap.sailing.domain.base.DomainFactory; import com.sap.sailing.domain.common.racelog.tracking.TypeBasedServiceFinderFactory; import com.sap.sailing.domain.persistence.impl.PersistenceFactoryImpl; -import com.sap.sailing.mongodb.MongoDBService; +import com.sap.sse.mongodb.MongoDBService; public interface PersistenceFactory { PersistenceFactory INSTANCE = new PersistenceFactoryImpl(); diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/Activator.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/Activator.java index 2a95015d718..0bfc3754565 100644 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/Activator.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/Activator.java @@ -3,7 +3,7 @@ package com.sap.sailing.domain.persistence.impl; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; -import com.sap.sailing.mongodb.MongoDBService; +import com.sap.sse.mongodb.MongoDBService; public class Activator implements BundleActivator { @Override diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoWindStoreImpl.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoWindStoreImpl.java index 87d00a2fa49..20394fc553d 100755 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoWindStoreImpl.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoWindStoreImpl.java @@ -13,7 +13,7 @@ import com.sap.sailing.domain.persistence.MongoWindStore; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.WindTrack; import com.sap.sailing.domain.tracking.impl.EmptyWindStore; -import com.sap.sailing.mongodb.MongoDBService; +import com.sap.sse.mongodb.MongoDBService; /** * Stores wind tracks of sources that {@link WindSource#canBeStored() can be stored}. The {@link EmptyWindStore}'s diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/PersistenceFactoryImpl.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/PersistenceFactoryImpl.java index f6906190d71..ac85ec3a3cb 100755 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/PersistenceFactoryImpl.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/PersistenceFactoryImpl.java @@ -5,7 +5,7 @@ import com.sap.sailing.domain.common.racelog.tracking.TypeBasedServiceFinderFact import com.sap.sailing.domain.persistence.DomainObjectFactory; import com.sap.sailing.domain.persistence.MongoObjectFactory; import com.sap.sailing.domain.persistence.PersistenceFactory; -import com.sap.sailing.mongodb.MongoDBService; +import com.sap.sse.mongodb.MongoDBService; public class PersistenceFactoryImpl implements PersistenceFactory { private final DomainObjectFactory defaultDomainObjectFactory; diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/media/MediaDBFactory.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/media/MediaDBFactory.java index 155eb131e5e..aee44a157a8 100644 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/media/MediaDBFactory.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/media/MediaDBFactory.java @@ -1,7 +1,7 @@ package com.sap.sailing.domain.persistence.media; import com.sap.sailing.domain.persistence.media.impl.MediaDBFactoryImpl; -import com.sap.sailing.mongodb.MongoDBService; +import com.sap.sse.mongodb.MongoDBService; public interface MediaDBFactory { MediaDBFactory INSTANCE = new MediaDBFactoryImpl(); diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/media/impl/MediaDBFactoryImpl.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/media/impl/MediaDBFactoryImpl.java index b923eaa49b6..6bc7183fc9c 100644 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/media/impl/MediaDBFactoryImpl.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/media/impl/MediaDBFactoryImpl.java @@ -2,7 +2,7 @@ package com.sap.sailing.domain.persistence.media.impl; import com.sap.sailing.domain.persistence.media.MediaDB; import com.sap.sailing.domain.persistence.media.MediaDBFactory; -import com.sap.sailing.mongodb.MongoDBService; +import com.sap.sse.mongodb.MongoDBService; public class MediaDBFactoryImpl implements MediaDBFactory { private final MediaDB defaultMediaDB; diff --git a/java/com.sap.sailing.domain.swisstimingadapter.persistence/META-INF/MANIFEST.MF b/java/com.sap.sailing.domain.swisstimingadapter.persistence/META-INF/MANIFEST.MF index 9db73538e56..8223a8c384f 100644 --- a/java/com.sap.sailing.domain.swisstimingadapter.persistence/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.domain.swisstimingadapter.persistence/META-INF/MANIFEST.MF @@ -8,7 +8,7 @@ Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Bundle-ActivationPolicy: lazy Require-Bundle: com.sap.sailing.domain.swisstimingadapter, com.mongodb.driver;bundle-version="2.6.2", - com.sap.sailing.mongodb, + com.sap.sse.mongodb, com.sap.sailing.domain, com.sap.sailing.domain.common Export-Package: com.sap.sailing.domain.swisstimingadapter.persistence, diff --git a/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/SwissTimingAdapterPersistence.java b/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/SwissTimingAdapterPersistence.java index 9793172b08a..7a6469baf67 100644 --- a/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/SwissTimingAdapterPersistence.java +++ b/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/SwissTimingAdapterPersistence.java @@ -4,7 +4,7 @@ import com.sap.sailing.domain.swisstimingadapter.SwissTimingArchiveConfiguration import com.sap.sailing.domain.swisstimingadapter.SwissTimingConfiguration; import com.sap.sailing.domain.swisstimingadapter.SwissTimingFactory; import com.sap.sailing.domain.swisstimingadapter.persistence.impl.SwissTimingAdapterPersistenceImpl; -import com.sap.sailing.mongodb.MongoDBService; +import com.sap.sse.mongodb.MongoDBService; public interface SwissTimingAdapterPersistence { diff --git a/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/impl/Activator.java b/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/impl/Activator.java index 69ad2b57b0d..d2714ee33bc 100755 --- a/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/impl/Activator.java +++ b/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/impl/Activator.java @@ -3,7 +3,7 @@ package com.sap.sailing.domain.swisstimingadapter.persistence.impl; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; -import com.sap.sailing.mongodb.MongoDBService; +import com.sap.sse.mongodb.MongoDBService; public class Activator implements BundleActivator { @Override diff --git a/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/impl/SwissTimingAdapterPersistenceImpl.java b/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/impl/SwissTimingAdapterPersistenceImpl.java index ab2715c7880..ed986b6c4e0 100755 --- a/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/impl/SwissTimingAdapterPersistenceImpl.java +++ b/java/com.sap.sailing.domain.swisstimingadapter.persistence/src/com/sap/sailing/domain/swisstimingadapter/persistence/impl/SwissTimingAdapterPersistenceImpl.java @@ -14,7 +14,7 @@ import com.sap.sailing.domain.swisstimingadapter.SwissTimingArchiveConfiguration import com.sap.sailing.domain.swisstimingadapter.SwissTimingConfiguration; import com.sap.sailing.domain.swisstimingadapter.SwissTimingFactory; import com.sap.sailing.domain.swisstimingadapter.persistence.SwissTimingAdapterPersistence; -import com.sap.sailing.mongodb.MongoDBService; +import com.sap.sse.mongodb.MongoDBService; public class SwissTimingAdapterPersistenceImpl implements SwissTimingAdapterPersistence { diff --git a/java/com.sap.sailing.domain.swisstimingadapter.test/META-INF/MANIFEST.MF b/java/com.sap.sailing.domain.swisstimingadapter.test/META-INF/MANIFEST.MF index b82b78cccb7..398c58ff738 100644 --- a/java/com.sap.sailing.domain.swisstimingadapter.test/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.domain.swisstimingadapter.test/META-INF/MANIFEST.MF @@ -9,7 +9,7 @@ Fragment-Host: com.sap.sailing.domain.swisstimingadapter Require-Bundle: com.sap.sailing.domain, com.sap.sailing.udpconnector, com.mongodb.driver;bundle-version="2.6.2", - com.sap.sailing.mongodb, + com.sap.sse.mongodb, com.googlecode.java-diff-utils;bundle-version="1.3.0", com.sap.sailing.server, com.sap.sailing.domain.common, diff --git a/java/com.sap.sailing.domain.tractracadapter.persistence/META-INF/MANIFEST.MF b/java/com.sap.sailing.domain.tractracadapter.persistence/META-INF/MANIFEST.MF index 74e18866e03..953265121d1 100644 --- a/java/com.sap.sailing.domain.tractracadapter.persistence/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.domain.tractracadapter.persistence/META-INF/MANIFEST.MF @@ -7,7 +7,7 @@ Bundle-Vendor: SAP Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Bundle-ActivationPolicy: lazy Require-Bundle: com.mongodb.driver;bundle-version="2.6.2", - com.sap.sailing.mongodb, + com.sap.sse.mongodb, com.sap.sailing.domain.tractracadapter, com.sap.sailing.domain, com.sap.sailing.domain.common, diff --git a/java/com.sap.sailing.domain.tractracadapter.persistence/src/com/sap/sailing/domain/tractracadapter/persistence/MongoObjectFactory.java b/java/com.sap.sailing.domain.tractracadapter.persistence/src/com/sap/sailing/domain/tractracadapter/persistence/MongoObjectFactory.java index 7583a8975b7..39d09899fda 100755 --- a/java/com.sap.sailing.domain.tractracadapter.persistence/src/com/sap/sailing/domain/tractracadapter/persistence/MongoObjectFactory.java +++ b/java/com.sap.sailing.domain.tractracadapter.persistence/src/com/sap/sailing/domain/tractracadapter/persistence/MongoObjectFactory.java @@ -4,7 +4,7 @@ package com.sap.sailing.domain.tractracadapter.persistence; import com.mongodb.DBObject; import com.sap.sailing.domain.tractracadapter.TracTracConfiguration; import com.sap.sailing.domain.tractracadapter.persistence.impl.MongoObjectFactoryImpl; -import com.sap.sailing.mongodb.MongoDBService; +import com.sap.sse.mongodb.MongoDBService; /** * Offers methods to construct {@link DBObject MongoDB objects} from domain objects. diff --git a/java/com.sap.sailing.domain.tractracadapter.persistence/src/com/sap/sailing/domain/tractracadapter/persistence/impl/Activator.java b/java/com.sap.sailing.domain.tractracadapter.persistence/src/com/sap/sailing/domain/tractracadapter/persistence/impl/Activator.java index 60f6a86ce1e..46c4c82cd96 100755 --- a/java/com.sap.sailing.domain.tractracadapter.persistence/src/com/sap/sailing/domain/tractracadapter/persistence/impl/Activator.java +++ b/java/com.sap.sailing.domain.tractracadapter.persistence/src/com/sap/sailing/domain/tractracadapter/persistence/impl/Activator.java @@ -3,7 +3,7 @@ package com.sap.sailing.domain.tractracadapter.persistence.impl; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; -import com.sap.sailing.mongodb.MongoDBService; +import com.sap.sse.mongodb.MongoDBService; public class Activator implements BundleActivator { @Override 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 d83f96daa94..2c87d074640 100644 --- a/java/com.sap.sailing.gwt.ui/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.gwt.ui/META-INF/MANIFEST.MF @@ -9,7 +9,7 @@ Require-Bundle: com.sap.sailing.domain, com.sap.sailing.domain.shared.android;bundle-version="1.0.0", com.sap.sailing.server, com.sap.sailing.domain.tractracadapter, - com.sap.sailing.mongodb, + com.sap.sse.mongodb, com.mongodb.driver;bundle-version="2.6.2", com.sap.sailing.domain.swisstimingadapter, com.sap.sailing.domain.persistence, diff --git a/java/com.sap.sailing.media.persistence.test/META-INF/MANIFEST.MF b/java/com.sap.sailing.media.persistence.test/META-INF/MANIFEST.MF index c6ffbd7c0cf..95748dc45db 100644 --- a/java/com.sap.sailing.media.persistence.test/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.media.persistence.test/META-INF/MANIFEST.MF @@ -6,7 +6,7 @@ Bundle-Version: 1.0.0.qualifier Bundle-Vendor: SAP Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Require-Bundle: com.mongodb.driver;bundle-version="2.6.2", - com.sap.sailing.mongodb, + com.sap.sse.mongodb, org.json.simple;bundle-version="1.1.0", org.hamcrest.core;bundle-version="1.1.0", org.junit4;bundle-version="4.8.2", diff --git a/java/com.sap.sailing.media.persistence.test/src/com/sap/sailing/media/persistence/test/AbstractMongoDBTest.java b/java/com.sap.sailing.media.persistence.test/src/com/sap/sailing/media/persistence/test/AbstractMongoDBTest.java index a715395f1b1..2b575666043 100644 --- a/java/com.sap.sailing.media.persistence.test/src/com/sap/sailing/media/persistence/test/AbstractMongoDBTest.java +++ b/java/com.sap.sailing.media.persistence.test/src/com/sap/sailing/media/persistence/test/AbstractMongoDBTest.java @@ -9,8 +9,8 @@ import org.junit.Before; import com.mongodb.DB; import com.mongodb.Mongo; import com.mongodb.MongoException; -import com.sap.sailing.mongodb.MongoDBConfiguration; -import com.sap.sailing.mongodb.MongoDBService; +import com.sap.sse.mongodb.MongoDBConfiguration; +import com.sap.sse.mongodb.MongoDBService; public abstract class AbstractMongoDBTest { protected Mongo mongo; diff --git a/java/com.sap.sailing.mongodb.test/META-INF/MANIFEST.MF b/java/com.sap.sailing.mongodb.test/META-INF/MANIFEST.MF index b0a20a43c1a..72c44e981ec 100644 --- a/java/com.sap.sailing.mongodb.test/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.mongodb.test/META-INF/MANIFEST.MF @@ -5,7 +5,7 @@ Bundle-SymbolicName: com.sap.sailing.mongodb.test Bundle-Version: 1.0.0.qualifier Bundle-Vendor: SAP Bundle-RequiredExecutionEnvironment: JavaSE-1.8 -Fragment-Host: com.sap.sailing.mongodb +Fragment-Host: com.sap.sse.mongodb Require-Bundle: com.sap.sailing.domain, com.sap.sailing.domain.shared.android, com.sap.sailing.domain.test, @@ -23,6 +23,8 @@ Require-Bundle: com.sap.sailing.domain, com.sap.sailing.domain.racelogtrackingadapter.testsupport, com.sap.sailing.server.gateway;bundle-version="1.0.0", com.sap.sse.common -Import-Package: com.sap.sailing.domain.common.impl, +Import-Package: com.sap.sailing.domain.common, + com.sap.sailing.domain.common.impl, + com.sap.sailing.domain.common.racelog, com.sap.sailing.domain.common.racelog.tracking diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/AbstractMongoDBTest.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/AbstractMongoDBTest.java index 139d726ad7a..1093cdb29ed 100755 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/AbstractMongoDBTest.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/AbstractMongoDBTest.java @@ -10,8 +10,8 @@ import org.junit.Before; import com.mongodb.DB; import com.mongodb.Mongo; import com.mongodb.MongoException; -import com.sap.sailing.mongodb.MongoDBConfiguration; -import com.sap.sailing.mongodb.MongoDBService; +import com.sap.sse.mongodb.MongoDBConfiguration; +import com.sap.sse.mongodb.MongoDBService; public abstract class AbstractMongoDBTest { protected Mongo mongo; diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/CollectionNameServiceTest.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/CollectionNameServiceTest.java index 589954b3e9b..59b7e7fb086 100644 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/CollectionNameServiceTest.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/CollectionNameServiceTest.java @@ -2,8 +2,8 @@ package com.sap.sailing.mongodb.test; import org.junit.Test; -import com.sap.sailing.mongodb.AlreadyRegisteredException; -import com.sap.sailing.mongodb.MongoDBService; +import com.sap.sse.mongodb.AlreadyRegisteredException; +import com.sap.sse.mongodb.MongoDBService; public class CollectionNameServiceTest { diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/ConvertWindData.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/ConvertWindData.java index 49d73e1f638..ce152bb8b56 100755 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/ConvertWindData.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/ConvertWindData.java @@ -8,7 +8,7 @@ import com.mongodb.MongoException; import com.sap.sailing.domain.common.impl.DegreeBearingImpl; import com.sap.sailing.domain.persistence.impl.FieldNames; import com.sap.sailing.domain.persistence.impl.MongoObjectFactoryImpl; -import com.sap.sailing.mongodb.MongoDBService; +import com.sap.sse.mongodb.MongoDBService; /** * Reverses the wind directions of all wind records stored in the MongoDB that is obtained using diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestParseAndMigratePassingSideAndControlPointTwoMarks.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestParseAndMigratePassingSideAndControlPointTwoMarks.java index c1bcfc6245a..e415f6f693e 100755 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestParseAndMigratePassingSideAndControlPointTwoMarks.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestParseAndMigratePassingSideAndControlPointTwoMarks.java @@ -18,7 +18,7 @@ import com.sap.sailing.domain.common.PassingInstruction; import com.sap.sailing.domain.persistence.impl.DomainObjectFactoryImpl; import com.sap.sailing.domain.persistence.impl.FieldNames; import com.sap.sailing.domain.racelog.RaceLogCourseDesignChangedEvent; -import com.sap.sailing.mongodb.MongoDBConfiguration; +import com.sap.sse.mongodb.MongoDBConfiguration; public class TestParseAndMigratePassingSideAndControlPointTwoMarks { public TestParseAndMigratePassingSideAndControlPointTwoMarks() { diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingLeaderboardGroups.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingLeaderboardGroups.java index 6b19419b06d..e76795b0c62 100755 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingLeaderboardGroups.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingLeaderboardGroups.java @@ -52,11 +52,11 @@ import com.sap.sailing.domain.persistence.media.MediaDBFactory; import com.sap.sailing.domain.racelog.tracking.EmptyGPSFixStore; import com.sap.sailing.domain.test.mock.MockedTrackedRaceWithFixedRankAndManyCompetitors; import com.sap.sailing.domain.tracking.impl.EmptyWindStore; -import com.sap.sailing.mongodb.MongoDBService; import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.impl.RacingEventServiceImpl; import com.sap.sailing.server.operationaltransformation.UpdateLeaderboardScoreCorrection; import com.sap.sse.common.Util; +import com.sap.sse.mongodb.MongoDBService; public class TestStoringAndRetrievingLeaderboardGroups extends AbstractMongoDBTest { private MongoObjectFactory mongoObjectFactory = null; diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingWindTracksTest.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingWindTracksTest.java index 382ab5e52bc..38bd84784a0 100755 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingWindTracksTest.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingWindTracksTest.java @@ -42,9 +42,9 @@ import com.sap.sailing.domain.tracking.impl.WindImpl; import com.sap.sailing.domain.tractracadapter.DomainFactory; import com.sap.sailing.domain.tractracadapter.Receiver; import com.sap.sailing.domain.tractracadapter.ReceiverType; -import com.sap.sailing.mongodb.MongoDBConfiguration; import com.sap.sailing.server.impl.RacingEventServiceImpl; import com.sap.sse.common.Util; +import com.sap.sse.mongodb.MongoDBConfiguration; public class TestStoringAndRetrievingWindTracksTest extends AbstractTracTracLiveTest { diff --git a/java/com.sap.sailing.selenium.test/META-INF/MANIFEST.MF b/java/com.sap.sailing.selenium.test/META-INF/MANIFEST.MF index 73617617ef7..30df672565c 100644 --- a/java/com.sap.sailing.selenium.test/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.selenium.test/META-INF/MANIFEST.MF @@ -8,7 +8,7 @@ Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Require-Bundle: org.hamcrest;bundle-version="1.1.0", org.junit4;bundle-version="4.8.2", org.openqa.selenium.osgi;bundle-version="2.40.0", - com.sap.sailing.mongodb;bundle-version="1.0.0", + com.sap.sse.mongodb;bundle-version="1.0.0", com.mongodb.driver;bundle-version="2.6.2", com.sap.sailing.domain.common, com.sap.sse.common diff --git a/java/com.sap.sailing.server.gateway.ess40/META-INF/MANIFEST.MF b/java/com.sap.sailing.server.gateway.ess40/META-INF/MANIFEST.MF index e58fb0a09e1..a50950ece8b 100644 --- a/java/com.sap.sailing.server.gateway.ess40/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.server.gateway.ess40/META-INF/MANIFEST.MF @@ -12,7 +12,7 @@ Bundle-ActivationPolicy: lazy Require-Bundle: com.sap.sailing.domain, com.sap.sailing.domain.tractracadapter, com.sap.sailing.domain.persistence, - com.sap.sailing.mongodb, + com.sap.sse.mongodb, com.mongodb.driver;bundle-version="2.6.2", javax.servlet;bundle-version="2.6.0", com.sap.sailing.domain.common, diff --git a/java/com.sap.sailing.server.gateway.test.support/META-INF/MANIFEST.MF b/java/com.sap.sailing.server.gateway.test.support/META-INF/MANIFEST.MF index 370757418a7..1660ff8b997 100644 --- a/java/com.sap.sailing.server.gateway.test.support/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.server.gateway.test.support/META-INF/MANIFEST.MF @@ -9,7 +9,7 @@ Require-Bundle: javax.servlet;bundle-version="2.6.0", com.sap.sailing.domain;bundle-version="1.0.0", com.sap.sailing.domain.common;bundle-version="1.0.0", com.sap.sailing.server;bundle-version="1.0.0", - com.sap.sailing.mongodb;bundle-version="1.0.0", + com.sap.sse.mongodb;bundle-version="1.0.0", com.sap.sse.common Bundle-ClassPath: . Web-ContextPath: /sailingserver/test-support diff --git a/java/com.sap.sailing.server.gateway.test.support/src/com/sap/sailing/server/gateway/test/support/ClearStateServlet.java b/java/com.sap.sailing.server.gateway.test.support/src/com/sap/sailing/server/gateway/test/support/ClearStateServlet.java index 0163d1b1aed..3ec55402fbb 100644 --- a/java/com.sap.sailing.server.gateway.test.support/src/com/sap/sailing/server/gateway/test/support/ClearStateServlet.java +++ b/java/com.sap.sailing.server.gateway.test.support/src/com/sap/sailing/server/gateway/test/support/ClearStateServlet.java @@ -5,19 +5,16 @@ import java.io.IOException; import javax.servlet.ServletConfig; import javax.servlet.ServletContext; import javax.servlet.ServletException; - import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.osgi.framework.BundleContext; - import org.osgi.util.tracker.ServiceTracker; -import com.sap.sailing.mongodb.MongoDBConfiguration; -import com.sap.sailing.mongodb.MongoDBService; - import com.sap.sailing.server.test.support.RacingEventServiceWithTestSupport; +import com.sap.sse.mongodb.MongoDBConfiguration; +import com.sap.sse.mongodb.MongoDBService; public class ClearStateServlet extends HttpServlet { private static final long serialVersionUID = -880795218153271730L; diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/AbstractJsonExportTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/AbstractJsonExportTest.java index 2c8bed66f7f..6c715cdf302 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/AbstractJsonExportTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/AbstractJsonExportTest.java @@ -30,11 +30,11 @@ import com.sap.sailing.domain.base.impl.TeamImpl; import com.sap.sailing.domain.common.Color; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; -import com.sap.sailing.mongodb.MongoDBConfiguration; -import com.sap.sailing.mongodb.MongoDBService; import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.gateway.AbstractJsonHttpServlet; import com.sap.sailing.server.impl.RacingEventServiceImpl; +import com.sap.sse.mongodb.MongoDBConfiguration; +import com.sap.sse.mongodb.MongoDBService; public abstract class AbstractJsonExportTest { protected RacingEventService racingEventService; diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/AbstractJaxRsApiTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/AbstractJaxRsApiTest.java index 6a348ce53ae..dd573bde700 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/AbstractJaxRsApiTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/AbstractJaxRsApiTest.java @@ -24,11 +24,11 @@ import com.sap.sailing.domain.base.impl.TeamImpl; import com.sap.sailing.domain.common.Color; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; -import com.sap.sailing.mongodb.MongoDBConfiguration; -import com.sap.sailing.mongodb.MongoDBService; import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.gateway.jaxrs.AbstractSailingServerResource; import com.sap.sailing.server.impl.RacingEventServiceImpl; +import com.sap.sse.mongodb.MongoDBConfiguration; +import com.sap.sse.mongodb.MongoDBService; public abstract class AbstractJaxRsApiTest { protected RacingEventService racingEventService; diff --git a/java/com.sap.sailing.server.gateway/META-INF/MANIFEST.MF b/java/com.sap.sailing.server.gateway/META-INF/MANIFEST.MF index 2abe07bdcd6..d72735f394f 100644 --- a/java/com.sap.sailing.server.gateway/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.server.gateway/META-INF/MANIFEST.MF @@ -21,7 +21,7 @@ Require-Bundle: com.sap.sailing.domain, com.sap.sailing.declination, com.sap.sailing.domain.tractracadapter, com.sap.sailing.domain.persistence, - com.sap.sailing.mongodb, + com.sap.sse.mongodb, com.mongodb.driver;bundle-version="2.6.2", javax.servlet;bundle-version="2.6.0", com.sap.sailing.domain.common, diff --git a/java/com.sap.sailing.server.replication.test/META-INF/MANIFEST.MF b/java/com.sap.sailing.server.replication.test/META-INF/MANIFEST.MF index 493ee23dd4f..77f23b14242 100644 --- a/java/com.sap.sailing.server.replication.test/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.server.replication.test/META-INF/MANIFEST.MF @@ -11,7 +11,7 @@ Require-Bundle: com.sap.sailing.server, com.sap.sailing.domain.common, com.sap.sailing.domain, com.sap.sailing.domain.test, - com.sap.sailing.mongodb, + com.sap.sse.mongodb, com.mongodb.driver;bundle-version="2.6.2", com.sap.sailing.domain.persistence, com.sap.sailing.domain.tractracadapter, diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/AbstractServerReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/AbstractServerReplicationTest.java index 065b424c23b..fa2528b8e4c 100755 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/AbstractServerReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/AbstractServerReplicationTest.java @@ -34,7 +34,6 @@ import com.sap.sailing.domain.persistence.PersistenceFactory; import com.sap.sailing.domain.persistence.media.MediaDBFactory; import com.sap.sailing.domain.racelog.tracking.EmptyGPSFixStore; import com.sap.sailing.domain.tracking.impl.EmptyWindStore; -import com.sap.sailing.mongodb.MongoDBService; import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.impl.RacingEventServiceImpl; import com.sap.sailing.server.replication.ReplicationMasterDescriptor; @@ -47,6 +46,7 @@ import com.sap.sailing.server.replication.impl.ReplicationMasterDescriptorImpl; import com.sap.sailing.server.replication.impl.ReplicationServiceImpl; import com.sap.sailing.server.replication.impl.Replicator; import com.sap.sse.common.Util; +import com.sap.sse.mongodb.MongoDBService; public abstract class AbstractServerReplicationTest { protected static final int SERVLET_PORT = 9990; diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/DelayedLeaderboardCorrectionsReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/DelayedLeaderboardCorrectionsReplicationTest.java index 5ce2f762b2d..8071f493f85 100755 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/DelayedLeaderboardCorrectionsReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/DelayedLeaderboardCorrectionsReplicationTest.java @@ -35,7 +35,6 @@ import com.sap.sailing.domain.test.mock.MockedTrackedRaceWithFixedRank; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.impl.EmptyWindStore; -import com.sap.sailing.mongodb.MongoDBService; import com.sap.sailing.server.impl.RacingEventServiceImpl; import com.sap.sailing.server.operationaltransformation.AddColumnToLeaderboard; import com.sap.sailing.server.operationaltransformation.ConnectTrackedRaceToLeaderboardColumn; @@ -44,6 +43,7 @@ import com.sap.sailing.server.operationaltransformation.UpdateLeaderboardMaxPoin import com.sap.sailing.server.replication.ReplicationMasterDescriptor; import com.sap.sailing.server.replication.ReplicationService; import com.sap.sse.common.Util; +import com.sap.sse.mongodb.MongoDBService; public class DelayedLeaderboardCorrectionsReplicationTest extends AbstractServerReplicationTest { private static final Logger logger = Logger.getLogger(DelayedLeaderboardCorrectionsReplicationTest.class.getName()); diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/InitialLoadReplicationObjectIdentityTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/InitialLoadReplicationObjectIdentityTest.java index c63bf6610c7..42bd55f6354 100755 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/InitialLoadReplicationObjectIdentityTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/InitialLoadReplicationObjectIdentityTest.java @@ -45,7 +45,6 @@ import com.sap.sailing.domain.persistence.media.MediaDBFactory; import com.sap.sailing.domain.racelog.tracking.EmptyGPSFixStore; import com.sap.sailing.domain.test.TrackBasedTest; import com.sap.sailing.domain.tracking.impl.EmptyWindStore; -import com.sap.sailing.mongodb.MongoDBService; import com.sap.sailing.server.impl.RacingEventServiceImpl; import com.sap.sailing.server.operationaltransformation.AddDefaultRegatta; import com.sap.sailing.server.operationaltransformation.AddRaceDefinition; @@ -53,6 +52,7 @@ import com.sap.sailing.server.operationaltransformation.CreateFlexibleLeaderboar import com.sap.sailing.server.replication.ReplicationMasterDescriptor; import com.sap.sailing.server.replication.impl.Replicator; import com.sap.sse.common.Util; +import com.sap.sse.mongodb.MongoDBService; public class InitialLoadReplicationObjectIdentityTest extends AbstractServerReplicationTest { private Util.Pair replicationDescriptorPair; diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/RaceLogReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/RaceLogReplicationTest.java index d4042d03afe..b1a586120c5 100644 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/RaceLogReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/RaceLogReplicationTest.java @@ -51,7 +51,6 @@ import com.sap.sailing.domain.racelog.RaceLogEventFactory; import com.sap.sailing.domain.racelog.RaceLogIdentifier; import com.sap.sailing.domain.racelog.RaceLogRaceStatusEvent; import com.sap.sailing.domain.racelog.impl.RaceLogEventAuthorImpl; -import com.sap.sailing.mongodb.MongoDBService; import com.sap.sailing.server.impl.RacingEventServiceImpl; import com.sap.sailing.server.operationaltransformation.AddColumnToLeaderboard; import com.sap.sailing.server.operationaltransformation.AddColumnToSeries; @@ -61,6 +60,7 @@ import com.sap.sailing.server.operationaltransformation.CreateRegattaLeaderboard import com.sap.sailing.server.operationaltransformation.RenameLeaderboard; import com.sap.sailing.server.replication.ReplicationMasterDescriptor; import com.sap.sse.common.Util; +import com.sap.sse.mongodb.MongoDBService; public class RaceLogReplicationTest extends AbstractServerReplicationTest { private static final String BOAT_CLASS_NAME_49er = "49er"; diff --git a/java/com.sap.sailing.server.test/META-INF/MANIFEST.MF b/java/com.sap.sailing.server.test/META-INF/MANIFEST.MF index dd2beaa78c6..f6d2e5a7c65 100644 --- a/java/com.sap.sailing.server.test/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.server.test/META-INF/MANIFEST.MF @@ -12,7 +12,7 @@ Require-Bundle: com.sap.sailing.domain, com.sap.sailing.domain.common, com.sap.sailing.expeditionconnector, com.sap.sailing.operationaltransformation, - com.sap.sailing.mongodb, + com.sap.sse.mongodb, com.tractrac.clientmodule;bundle-version="2.0.0", com.mongodb.driver;bundle-version="2.6.2", org.hamcrest;bundle-version="1.1.0", diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/LeaderboardStorageTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/LeaderboardStorageTest.java index 4902c14560d..df63bd3332f 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/LeaderboardStorageTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/LeaderboardStorageTest.java @@ -23,9 +23,9 @@ import com.sap.sailing.domain.base.impl.PersonImpl; import com.sap.sailing.domain.base.impl.TeamImpl; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.impl.LowPoint; -import com.sap.sailing.mongodb.MongoDBService; import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.impl.RacingEventServiceImpl; +import com.sap.sse.mongodb.MongoDBService; public class LeaderboardStorageTest extends TestCase { 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 008945cc17f..4c418fccd9e 100755 --- 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 @@ -104,8 +104,6 @@ import com.sap.sailing.domain.tracking.Wind; import com.sap.sailing.domain.tracking.WindTrack; import com.sap.sailing.domain.tracking.impl.EmptyWindStore; import com.sap.sailing.domain.tracking.impl.WindImpl; -import com.sap.sailing.mongodb.MongoDBConfiguration; -import com.sap.sailing.mongodb.MongoDBService; import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.gateway.jaxrs.AbstractSailingServerResource; import com.sap.sailing.server.gateway.jaxrs.spi.MasterDataResource; @@ -113,6 +111,8 @@ import com.sap.sailing.server.impl.RacingEventServiceImpl; import com.sap.sailing.server.masterdata.DummyTrackedRace; import com.sap.sailing.server.masterdata.MasterDataImporter; import com.sap.sse.common.Util; +import com.sap.sse.mongodb.MongoDBConfiguration; +import com.sap.sse.mongodb.MongoDBService; public class MasterDataImportTest { diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/OperationalTransformationTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/OperationalTransformationTest.java index c5867934015..1ac4ceca5da 100755 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/OperationalTransformationTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/OperationalTransformationTest.java @@ -14,7 +14,6 @@ import com.sap.sailing.domain.common.LeaderboardNameConstants; import com.sap.sailing.domain.leaderboard.FlexibleLeaderboard; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.impl.LowPoint; -import com.sap.sailing.mongodb.MongoDBService; import com.sap.sailing.operationaltransformation.OperationalTransformer; import com.sap.sailing.operationaltransformation.Peer; import com.sap.sailing.operationaltransformation.Peer.Role; @@ -26,6 +25,7 @@ import com.sap.sailing.server.operationaltransformation.AddColumnToLeaderboard; import com.sap.sailing.server.operationaltransformation.CreateFlexibleLeaderboard; import com.sap.sailing.server.operationaltransformation.MoveLeaderboardColumnUp; import com.sap.sailing.server.operationaltransformation.RemoveLeaderboard; +import com.sap.sse.mongodb.MongoDBService; public class OperationalTransformationTest { private static final String LEADERBOARDNAME = "TESTBOARD"; diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceLogInRaceColumnTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceLogInRaceColumnTest.java index a0ba39a8743..8fb0fea4322 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceLogInRaceColumnTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceLogInRaceColumnTest.java @@ -18,7 +18,6 @@ import com.sap.sailing.domain.racelog.RaceLogEvent; import com.sap.sailing.domain.racelog.RaceLogEventAuthor; import com.sap.sailing.domain.racelog.RaceLogEventFactory; import com.sap.sailing.domain.racelog.impl.RaceLogEventAuthorImpl; -import com.sap.sailing.mongodb.MongoDBService; import com.sap.sailing.operationaltransformation.OperationalTransformer; import com.sap.sailing.operationaltransformation.Peer; import com.sap.sailing.operationaltransformation.Peer.Role; @@ -28,6 +27,7 @@ import com.sap.sailing.server.RacingEventServiceOperation; import com.sap.sailing.server.impl.RacingEventServiceImpl; import com.sap.sailing.server.operationaltransformation.AddColumnToLeaderboard; import com.sap.sailing.server.operationaltransformation.CreateFlexibleLeaderboard; +import com.sap.sse.mongodb.MongoDBService; public class RaceLogInRaceColumnTest { diff --git a/java/com.sap.sailing.server/META-INF/MANIFEST.MF b/java/com.sap.sailing.server/META-INF/MANIFEST.MF index 29d9b3442f9..1acdf927547 100644 --- a/java/com.sap.sailing.server/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.server/META-INF/MANIFEST.MF @@ -15,7 +15,7 @@ Bundle-ActivationPolicy: lazy Require-Bundle: com.sap.sailing.domain, com.sap.sailing.expeditionconnector, com.sap.sailing.declination, - com.sap.sailing.mongodb, + com.sap.sse.mongodb, com.mongodb.driver;bundle-version="2.6.2", com.sap.sailing.domain.persistence, com.sap.sailing.domain.common, diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/PersistentCompetitorStore.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/PersistentCompetitorStore.java index f7878449666..143c4144c4c 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/PersistentCompetitorStore.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/PersistentCompetitorStore.java @@ -15,7 +15,7 @@ import com.sap.sailing.domain.common.racelog.tracking.TypeBasedServiceFinderFact import com.sap.sailing.domain.persistence.DomainObjectFactory; import com.sap.sailing.domain.persistence.MongoObjectFactory; import com.sap.sailing.domain.persistence.PersistenceFactory; -import com.sap.sailing.mongodb.MongoDBService; +import com.sap.sse.mongodb.MongoDBService; /** * Manages a persistent set of {@link Competitor}s using a {@link MongoObjectFactory} to update the persistent store, diff --git a/java/com.sap.sailing.mongodb/.classpath b/java/com.sap.sse.mongodb/.classpath similarity index 100% rename from java/com.sap.sailing.mongodb/.classpath rename to java/com.sap.sse.mongodb/.classpath diff --git a/java/com.sap.sailing.mongodb/.gitignore b/java/com.sap.sse.mongodb/.gitignore similarity index 100% rename from java/com.sap.sailing.mongodb/.gitignore rename to java/com.sap.sse.mongodb/.gitignore diff --git a/java/com.sap.sailing.mongodb/.project b/java/com.sap.sse.mongodb/.project similarity index 90% rename from java/com.sap.sailing.mongodb/.project rename to java/com.sap.sse.mongodb/.project index 9156f5177f8..2bdad074e8d 100755 --- a/java/com.sap.sailing.mongodb/.project +++ b/java/com.sap.sse.mongodb/.project @@ -1,6 +1,6 @@ - com.sap.sailing.mongodb + com.sap.sse.mongodb diff --git a/java/com.sap.sailing.mongodb/.settings/org.eclipse.jdt.core.prefs b/java/com.sap.sse.mongodb/.settings/org.eclipse.jdt.core.prefs similarity index 100% rename from java/com.sap.sailing.mongodb/.settings/org.eclipse.jdt.core.prefs rename to java/com.sap.sse.mongodb/.settings/org.eclipse.jdt.core.prefs diff --git a/java/com.sap.sailing.mongodb/.settings/org.eclipse.m2e.core.prefs b/java/com.sap.sse.mongodb/.settings/org.eclipse.m2e.core.prefs similarity index 100% rename from java/com.sap.sailing.mongodb/.settings/org.eclipse.m2e.core.prefs rename to java/com.sap.sse.mongodb/.settings/org.eclipse.m2e.core.prefs diff --git a/java/com.sap.sailing.mongodb/.settings/org.eclipse.pde.core.prefs b/java/com.sap.sse.mongodb/.settings/org.eclipse.pde.core.prefs similarity index 100% rename from java/com.sap.sailing.mongodb/.settings/org.eclipse.pde.core.prefs rename to java/com.sap.sse.mongodb/.settings/org.eclipse.pde.core.prefs diff --git a/java/com.sap.sailing.mongodb/META-INF/MANIFEST.MF b/java/com.sap.sse.mongodb/META-INF/MANIFEST.MF similarity index 67% rename from java/com.sap.sailing.mongodb/META-INF/MANIFEST.MF rename to java/com.sap.sse.mongodb/META-INF/MANIFEST.MF index c38b6c91a96..d12bd5a9f90 100644 --- a/java/com.sap.sailing.mongodb/META-INF/MANIFEST.MF +++ b/java/com.sap.sse.mongodb/META-INF/MANIFEST.MF @@ -1,15 +1,14 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: Mongodb -Bundle-SymbolicName: com.sap.sailing.mongodb +Bundle-SymbolicName: com.sap.sse.mongodb Bundle-Version: 1.0.0.qualifier Bundle-Vendor: SAP Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Require-Bundle: com.mongodb.driver;bundle-version="2.6.2", - com.sap.sailing.domain.common, com.sap.sse.common -Export-Package: com.sap.sailing.mongodb +Export-Package: com.sap.sse.mongodb Bundle-ActivationPolicy: lazy Import-Package: com.sap.sailing.util, org.osgi.framework;version="1.6.0" -Bundle-Activator: com.sap.sailing.mongodb.Activator +Bundle-Activator: com.sap.sse.mongodb.Activator diff --git a/java/com.sap.sailing.mongodb/build.properties b/java/com.sap.sse.mongodb/build.properties similarity index 100% rename from java/com.sap.sailing.mongodb/build.properties rename to java/com.sap.sse.mongodb/build.properties diff --git a/java/com.sap.sailing.mongodb/pom.xml b/java/com.sap.sse.mongodb/pom.xml similarity index 100% rename from java/com.sap.sailing.mongodb/pom.xml rename to java/com.sap.sse.mongodb/pom.xml diff --git a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/Activator.java b/java/com.sap.sse.mongodb/src/com/sap/sse/mongodb/Activator.java similarity index 92% rename from java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/Activator.java rename to java/com.sap.sse.mongodb/src/com/sap/sse/mongodb/Activator.java index 687e0f3d445..e07625302bd 100755 --- a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/Activator.java +++ b/java/com.sap.sse.mongodb/src/com/sap/sse/mongodb/Activator.java @@ -1,4 +1,4 @@ -package com.sap.sailing.mongodb; +package com.sap.sse.mongodb; import java.util.logging.Level; import java.util.logging.Logger; @@ -6,7 +6,7 @@ import java.util.logging.Logger; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; -import com.sap.sailing.mongodb.internal.MongoDBServiceImpl; +import com.sap.sse.mongodb.internal.MongoDBServiceImpl; public class Activator implements BundleActivator { private static final Logger logger = Logger.getLogger(Activator.class.getName()); diff --git a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/AlreadyRegisteredException.java b/java/com.sap.sse.mongodb/src/com/sap/sse/mongodb/AlreadyRegisteredException.java similarity index 79% rename from java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/AlreadyRegisteredException.java rename to java/com.sap.sse.mongodb/src/com/sap/sse/mongodb/AlreadyRegisteredException.java index 0990fa1d676..5ba6b269cdf 100644 --- a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/AlreadyRegisteredException.java +++ b/java/com.sap.sse.mongodb/src/com/sap/sse/mongodb/AlreadyRegisteredException.java @@ -1,4 +1,4 @@ -package com.sap.sailing.mongodb; +package com.sap.sse.mongodb; public class AlreadyRegisteredException extends Exception { diff --git a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/MongoDBConfiguration.java b/java/com.sap.sse.mongodb/src/com/sap/sse/mongodb/MongoDBConfiguration.java similarity index 94% rename from java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/MongoDBConfiguration.java rename to java/com.sap.sse.mongodb/src/com/sap/sse/mongodb/MongoDBConfiguration.java index 4f9c9dee6a4..aca4eaeb74f 100644 --- a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/MongoDBConfiguration.java +++ b/java/com.sap.sse.mongodb/src/com/sap/sse/mongodb/MongoDBConfiguration.java @@ -1,6 +1,6 @@ -package com.sap.sailing.mongodb; +package com.sap.sse.mongodb; -import com.sap.sailing.mongodb.internal.MongoDBServiceImpl; +import com.sap.sse.mongodb.internal.MongoDBServiceImpl; /** * A readonly Mongo Database connection configuration diff --git a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/MongoDBService.java b/java/com.sap.sse.mongodb/src/com/sap/sse/mongodb/MongoDBService.java similarity index 91% rename from java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/MongoDBService.java rename to java/com.sap.sse.mongodb/src/com/sap/sse/mongodb/MongoDBService.java index 721209d0696..57179fa2581 100644 --- a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/MongoDBService.java +++ b/java/com.sap.sse.mongodb/src/com/sap/sse/mongodb/MongoDBService.java @@ -1,7 +1,7 @@ -package com.sap.sailing.mongodb; +package com.sap.sse.mongodb; import com.mongodb.DB; -import com.sap.sailing.mongodb.internal.MongoDBServiceImpl; +import com.sap.sse.mongodb.internal.MongoDBServiceImpl; public interface MongoDBService { diff --git a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/internal/MongoDBServiceImpl.java b/java/com.sap.sse.mongodb/src/com/sap/sse/mongodb/internal/MongoDBServiceImpl.java similarity index 92% rename from java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/internal/MongoDBServiceImpl.java rename to java/com.sap.sse.mongodb/src/com/sap/sse/mongodb/internal/MongoDBServiceImpl.java index d273f0a1547..12bfb61bd23 100644 --- a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/internal/MongoDBServiceImpl.java +++ b/java/com.sap.sse.mongodb/src/com/sap/sse/mongodb/internal/MongoDBServiceImpl.java @@ -1,4 +1,4 @@ -package com.sap.sailing.mongodb.internal; +package com.sap.sse.mongodb.internal; import java.net.UnknownHostException; import java.util.HashMap; @@ -8,9 +8,9 @@ import java.util.logging.Logger; import com.mongodb.DB; import com.mongodb.Mongo; -import com.sap.sailing.mongodb.AlreadyRegisteredException; -import com.sap.sailing.mongodb.MongoDBConfiguration; -import com.sap.sailing.mongodb.MongoDBService; +import com.sap.sse.mongodb.AlreadyRegisteredException; +import com.sap.sse.mongodb.MongoDBConfiguration; +import com.sap.sse.mongodb.MongoDBService; public class MongoDBServiceImpl implements MongoDBService { diff --git a/java/com.sap.sse.security.test/META-INF/MANIFEST.MF b/java/com.sap.sse.security.test/META-INF/MANIFEST.MF index c263646dd86..9aae4803ea5 100644 --- a/java/com.sap.sse.security.test/META-INF/MANIFEST.MF +++ b/java/com.sap.sse.security.test/META-INF/MANIFEST.MF @@ -9,4 +9,4 @@ Bundle-RequiredExecutionEnvironment: JavaSE-1.7 Require-Bundle: org.junit4;bundle-version="4.8.2", com.sap.sse.security.userstore.mongodb, com.mongodb.driver, - com.sap.sailing.mongodb + com.sap.sse.mongodb diff --git a/java/com.sap.sse.security.test/src/com/sap/sse/security/test/LoginTest.java b/java/com.sap.sse.security.test/src/com/sap/sse/security/test/LoginTest.java index 2b97c1c8877..3f8363d91e8 100644 --- a/java/com.sap.sse.security.test/src/com/sap/sse/security/test/LoginTest.java +++ b/java/com.sap.sse.security.test/src/com/sap/sse/security/test/LoginTest.java @@ -13,8 +13,8 @@ import org.junit.Test; import com.mongodb.DB; import com.mongodb.MongoException; -import com.sap.sailing.mongodb.MongoDBConfiguration; -import com.sap.sailing.mongodb.MongoDBService; +import com.sap.sse.mongodb.MongoDBConfiguration; +import com.sap.sse.mongodb.MongoDBService; import com.sap.sse.security.SecurityServiceImpl; import com.sap.sse.security.UsernamePasswordRealm; import com.sap.sse.security.impl.Activator; diff --git a/java/com.sap.sse.security.userstore.mongodb/META-INF/MANIFEST.MF b/java/com.sap.sse.security.userstore.mongodb/META-INF/MANIFEST.MF index dd9bb7ffb09..8485bd6328b 100644 --- a/java/com.sap.sse.security.userstore.mongodb/META-INF/MANIFEST.MF +++ b/java/com.sap.sse.security.userstore.mongodb/META-INF/MANIFEST.MF @@ -9,9 +9,9 @@ Bundle-RequiredExecutionEnvironment: JavaSE-1.7 Import-Package: org.osgi.framework;version="1.3.0" Bundle-ActivationPolicy: lazy Bundle-ClassPath: . -Require-Bundle: com.sap.sse.security;bundle-version="1.0.0", +Require-Bundle: com.sap.sse.security, com.mongodb.driver;bundle-version="2.6.2", - com.sap.sailing.mongodb, - org.apache.shiro.core;bundle-version="1.2.2" + org.apache.shiro.core;bundle-version="1.2.2", + com.sap.sse.mongodb Export-Package: com.sap.sse.security.userstore.mongodb, com.sap.sse.security.userstore.mongodb.impl;x-friends:="com.sap.sse.security.test" diff --git a/java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/PersistenceFactory.java b/java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/PersistenceFactory.java index ddb9b10ea7a..6660d25f12a 100644 --- a/java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/PersistenceFactory.java +++ b/java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/PersistenceFactory.java @@ -1,6 +1,6 @@ package com.sap.sse.security.userstore.mongodb; -import com.sap.sailing.mongodb.MongoDBService; +import com.sap.sse.mongodb.MongoDBService; import com.sap.sse.security.userstore.mongodb.impl.PersistenceFactoryImpl; public interface PersistenceFactory { diff --git a/java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/impl/Activator.java b/java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/impl/Activator.java index c0fba501b5c..1bf1b5eca8e 100644 --- a/java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/impl/Activator.java +++ b/java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/impl/Activator.java @@ -6,7 +6,7 @@ import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; import org.osgi.framework.ServiceRegistration; -import com.sap.sailing.mongodb.MongoDBService; +import com.sap.sse.mongodb.MongoDBService; import com.sap.sse.security.UserStore; import com.sap.sse.security.userstore.mongodb.UserStoreImpl; diff --git a/java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/impl/PersistenceFactoryImpl.java b/java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/impl/PersistenceFactoryImpl.java index 3bcba90ecac..d909ba2b66b 100644 --- a/java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/impl/PersistenceFactoryImpl.java +++ b/java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/impl/PersistenceFactoryImpl.java @@ -1,6 +1,6 @@ package com.sap.sse.security.userstore.mongodb.impl; -import com.sap.sailing.mongodb.MongoDBService; +import com.sap.sse.mongodb.MongoDBService; import com.sap.sse.security.userstore.mongodb.DomainObjectFactory; import com.sap.sse.security.userstore.mongodb.MongoObjectFactory; import com.sap.sse.security.userstore.mongodb.PersistenceFactory; From 67d61ad7909576b61c0a7f813dcf94c1d26cca94 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Wed, 5 Nov 2014 14:01:25 +0100 Subject: [PATCH 02/50] started implementing a ResetPasswordDialog; removed sailing specifics from sse's LoginView --- .../client/component/AbstractUserDialog.java | 24 +++++++++---- .../ui/client/component/EditEmailDialog.java | 3 +- .../client/component/ResetPasswordDialog.java | 26 ++++++++++++++ .../ui/client/component/UserDetailsView.java | 2 +- .../ui/client/i18n/StringMessages.java | 7 ++-- .../ui/client/i18n/StringMessages.properties | 11 +++--- .../client/i18n/StringMessages_de.properties | 13 +++---- .../ui/editprofile/EditProfileEntryPoint.java | 34 +------------------ .../sap/sse/security/ui/login/LoginView.java | 6 ---- .../sse/security/ui/login/LoginView.ui.xml | 6 ++-- .../security/ui/loginpanel/SignInDialog.java | 2 +- .../src/com/sap/sse/security/User.java | 32 +++++++++++++++-- 12 files changed, 97 insertions(+), 69 deletions(-) create mode 100755 java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/ResetPasswordDialog.java diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/AbstractUserDialog.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/AbstractUserDialog.java index 399d0160b3f..ebaee232e38 100755 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/AbstractUserDialog.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/AbstractUserDialog.java @@ -63,11 +63,22 @@ public class AbstractUserDialog extends DataEntryDialog { /** * Uses a default validator that validates the username and the two new passwords. */ - public AbstractUserDialog(final StringMessages stringMessages, String title, + public AbstractUserDialog(final StringMessages stringMessages, final String title, final UserManagementServiceAsync userManagementService, final UserDTO user, final DialogCallback callback) { - this(stringMessages, title, userManagementService, user, new DataEntryDialog.Validator() { + this(stringMessages, title, title, userManagementService, user, callback); + } + + /** + * Uses a default validator that validates the username and the two new passwords and allows + * callers to specify distinct title and message strings. + */ + public AbstractUserDialog(final StringMessages stringMessages, final String title, final String message, + final UserManagementServiceAsync userManagementService, + final UserDTO user, + final DialogCallback callback) { + this(stringMessages, title, message, userManagementService, user, new DataEntryDialog.Validator() { private final NewAccountValidator validator = new NewAccountValidator(stringMessages); @Override public String getErrorMessage(UserData valueToValidate) { @@ -81,11 +92,10 @@ public class AbstractUserDialog extends DataEntryDialog { * Allows the caller to provide their own validator, e.g., in order to skip password or username validation or to * add validation for the current password */ - public AbstractUserDialog(final StringMessages stringMessages, String title, - final UserManagementServiceAsync userManagementService, - final UserDTO user, DataEntryDialog.Validator validator, - final DialogCallback callback) { - super(title, title, stringMessages.ok(), stringMessages.cancel(), + public AbstractUserDialog(final StringMessages stringMessages, final String title, final String message, + final UserManagementServiceAsync userManagementService, final UserDTO user, + DataEntryDialog.Validator validator, final DialogCallback callback) { + super(title, message, stringMessages.ok(), stringMessages.cancel(), validator, callback); nameBox = createTextBox("", 30); emailBox = createTextBox("", 30); diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/EditEmailDialog.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/EditEmailDialog.java index 1421d6436d8..699494691a1 100755 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/EditEmailDialog.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/EditEmailDialog.java @@ -9,7 +9,8 @@ import com.sap.sse.security.ui.shared.UserManagementServiceAsync; public class EditEmailDialog extends AbstractUserDialog { public EditEmailDialog(final StringMessages stringMessages, UserManagementServiceAsync userManagementService, UserDTO user, DialogCallback callback) { - super(stringMessages, stringMessages.editEmail(), userManagementService, user, /* no validator; any address is considered valid */ null, callback); + super(stringMessages, stringMessages.editEmail(), stringMessages.editEmail(), userManagementService, + user, /* no validator; any address is considered valid */ null, callback); } @Override diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/ResetPasswordDialog.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/ResetPasswordDialog.java new file mode 100755 index 00000000000..3461cb13cf4 --- /dev/null +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/ResetPasswordDialog.java @@ -0,0 +1,26 @@ +package com.sap.sse.security.ui.client.component; + +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.sse.security.ui.client.i18n.StringMessages; +import com.sap.sse.security.ui.shared.UserDTO; +import com.sap.sse.security.ui.shared.UserManagementServiceAsync; + +public class ResetPasswordDialog extends AbstractUserDialog { + public ResetPasswordDialog(StringMessages stringMessages, UserManagementServiceAsync userManagementService, UserDTO user, + com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback callback) { + super(stringMessages, stringMessages.forgotPassword(), stringMessages.enterUsernameOrEmail(), + userManagementService, user, callback); + } + + @Override + protected Widget getAdditionalWidget() { + Grid result = new Grid(4, 2); + result.setWidget(0, 0, new Label(getStringMessages().username())); + result.setWidget(0, 1, getNameBox()); + result.setWidget(1, 0, new Label(getStringMessages().email())); + result.setWidget(1, 1, getEmailBox()); + return result; + } +} diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/UserDetailsView.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/UserDetailsView.java index e5210ce49b7..92598954758 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/UserDetailsView.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/UserDetailsView.java @@ -188,7 +188,7 @@ public class UserDetailsView extends FlowPanel { }); // only offer password reset if the user's e-mail address has successfully been validated if (UserDetailsView.this.user.isEmailValidated()) { - final Button resetPasswordButton = new Button(stringMessages.resetPassword()); + final Button resetPasswordButton = new Button(stringMessages.forgotPassword()); accountPanelContent.add(resetPasswordButton); resetPasswordButton.addClickHandler(new ClickHandler() { @Override diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.java index 3e1aff4d8f3..b1ac79da383 100755 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.java @@ -58,7 +58,7 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages { String editEmail(); String errorUpdatingEmail(String message); String successfullyUpdatedEmail(String username, String email); - String resetPassword(); + String forgotPassword(); String errorDuringPasswordReset(String message); String cannotResetPasswordWithoutValidatedEmail(String username); String newPasswordSent(String username); @@ -70,7 +70,8 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages { String emailValidationUnsuccessful(String username); String roles(); String signInWith(); - String welcomeToSapSailing(); - String newToSapSailing(); + String welcome(); + String newUser(); String pleaseSignIn(); + String enterUsernameOrEmail(); } diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.properties b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.properties index 510c5418b86..05be803ff21 100755 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.properties +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.properties @@ -1,4 +1,4 @@ -name=Name +forname=Name password=Password passwordRepeat=Repeat password loggedIn=Logged in as user {0}! @@ -51,7 +51,7 @@ invalidCredentials=Invalid credentials editEmail=Edit e-mail address errorUpdatingEmail=Error updating e-mail address: {0} successfullyUpdatedEmail=Successfully updated e-mail address for user {0}.\nValidation check sent to {1}. -resetPassword=Reset password +forgotPassword=Forgot password errorDuringPasswordReset=Error during password reset: {0} cannotResetPasswordWithoutValidatedEmail=Cannot reset password because user {0} does not have a validated e-mail address newPasswordSent=A new password has been sent to {0}''s validated e-mail address @@ -63,6 +63,7 @@ failedToSignIn=Failed to sign in. Check your credentials. emailValidationUnsuccessful=Validation of e-mail address for user {0} failed. Did you really use the latest validation code? roles=Roles signInWith=Sign in with... -welcomeToSapSailing=Welcome to SAP Sailing Analytics. -newToSapSailing=New to SAP Sailing Analytics? -pleaseSignIn=Please sign in. \ No newline at end of file +welcome=Welcome! +newUser=New here? +pleaseSignIn=Please sign in. +enterUsernameOrEmail=Enter user name or e-mail address \ No newline at end of file diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_de.properties b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_de.properties index 76e5c15b68c..c993b1c082b 100755 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_de.properties +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_de.properties @@ -40,7 +40,7 @@ edit=Bearbeiten errorUpdatingRoles=Fehler beim Aktualisieren der Rollen des Benutzers {0}: {1} enterRoleName=Rollennamen eingeben... errorCreatingUser=Fehler beim Anlegen des Benutzers mit Namen {0}: {1} -signedUpSuccessfully=Benutzer {0} erfolgreich angelegt. Bitte e-Mails prüfen, um e-Mail-Adresse zu validieren. +signedUpSuccessfully=Benutzer {0} erfolgreich angelegt. Bitte e-Mails pr�fen, um e-Mail-Adresse zu validieren. unknownErrorCreatingUser=Unbekannter Fehler beim Versuch, den Benutzer mit dem Namen {0} anzulegen. M�glicherweise existiert ein Benutzer gleichen Namens bereits. userAlreadyExists=Ein Benutzer mit dem Namen {0} existiert bereits currentPassword=Derzeitiges Passwort @@ -50,8 +50,8 @@ errorChangingPassword=Fehler beim Ändern des Passwortes: {0} invalidCredentials=Ungültige Zugangsdaten editEmail=e-Mail-Adresse bearbeiten errorUpdatingEmail=Fehler beim Aktualisieren der e-Mail-Adresse: {0} -successfullyUpdatedEmail=e-Mail-Adresse für Benutzer {0} erfolgreich aktualisiert.\nBestätigungs-e-Mail an {1} versandt. -resetPassword=Passwort zurücksetzen +successfullyUpdatedEmail=e-Mail-Adresse f�r Benutzer {0} erfolgreich aktualisiert.\nBest�tigungs-e-Mail an {1} versandt. +forgotPassword=Passwort vergessen errorDuringPasswordReset=Fehler beim Zurücksetzen des Passworts: {0} cannotResetPasswordWithoutValidatedEmail=Passwort für Benutzer {0} kann nicht zurückgesetzt werden, da keine validierte e-Mail-Adresse vorliegt newPasswordSent=Ein neues Passwort ist an die validierte e-Mail-Adresse des Benutzers {0} gesendet worden @@ -63,6 +63,7 @@ failedToSignIn=Anmeldung fehlgeschlagen. Zugangsdaten überprüfen. emailValidationUnsuccessful=Validierung der e-Mail-Adresse für Benutzer {0} fehlgeschlagen. Handelte es sich wirklich um den zuletzt ausgestellten Validierungs-Code? roles=Rollen signInWith=Anmelden mit... -welcomeToSapSailing=Willkommen bei SAP Sailing Analytics. -newToSapSailing=Neu bei SAP Sailing Analytics? -pleaseSignIn=Bitte melden Sie sich an. \ No newline at end of file +welcome=Herzlich Willkommen. +newUser=Neuer Benutzer? +pleaseSignIn=Bitte melden Sie sich an. +enterUsernameOrEmail=Benutzernamen oder e-Mail-Adresse angeben \ No newline at end of file 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 c52507fb768..58c9e79481a 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 @@ -23,7 +23,6 @@ import com.google.gwt.user.client.ui.RootLayoutPanel; import com.google.gwt.user.client.ui.SubmitButton; import com.google.gwt.user.client.ui.TextBox; import com.sap.sse.gwt.client.EntryPointHelper; -import com.sap.sse.gwt.client.async.MarkedAsyncCallback; import com.sap.sse.security.shared.UserManagementException; import com.sap.sse.security.ui.client.RemoteServiceMappingConstants; import com.sap.sse.security.ui.client.UserService; @@ -76,36 +75,8 @@ public class EditProfileEntryPoint implements EntryPoint { fp.add(emailTextBoxAndButtonPanel); Label currentPasswordLabel = new Label(stringMessages.currentPassword()); fp.add(currentPasswordLabel); - HorizontalPanel currentPasswordAndResetButtonPanel = new HorizontalPanel(); final TextBox currentPasswordText = new PasswordTextBox(); - currentPasswordAndResetButtonPanel.add(currentPasswordText); - final Button passwordReset = new Button(stringMessages.resetPassword()); - passwordReset.addClickHandler(new ClickHandler() { - @Override - public void onClick(ClickEvent event) { - userManagementService.resetPassword(nameText.getText(), new MarkedAsyncCallback(new AsyncCallback() { - @Override - public void onFailure(Throwable caught) { - if (caught instanceof UserManagementException) { - if (UserManagementException.CANNOT_RESET_PASSWORD_WITHOUT_VALIDATED_EMAIL.equals(caught.getMessage())) { - Window.alert(stringMessages.cannotResetPasswordWithoutValidatedEmail(nameText.getText())); - } else { - Window.alert(stringMessages.errorDuringPasswordReset(caught.getMessage())); - } - } else { - Window.alert(stringMessages.errorDuringPasswordReset(caught.getMessage())); - } - } - - @Override - public void onSuccess(Void result) { - Window.alert(stringMessages.newPasswordSent(nameText.getText())); - } - })); - } - }); - currentPasswordAndResetButtonPanel.add(passwordReset); - fp.add(currentPasswordAndResetButtonPanel); + fp.add(currentPasswordText); updateEmailButton.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { @@ -114,7 +85,6 @@ public class EditProfileEntryPoint implements EntryPoint { @Override public void onSuccess(UserData result) { emailText.setText(result.getEmail()); - passwordReset.setEnabled(false); // an updated e-mail first needs to be re-validated } @Override public void onFailure(Throwable caught) {} }).show(); @@ -127,12 +97,10 @@ public class EditProfileEntryPoint implements EntryPoint { nameText.setText(""); emailText.setText(""); rolesLabel.setText(""); - passwordReset.setEnabled(false); } else { nameText.setText(user.getName()); emailText.setText(user.getEmail()); rolesLabel.setText(user.getRoles().toString()); - passwordReset.setEnabled(user.isEmailValidated()); } } }); diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java index 385d7caf4d2..7c372fca195 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java @@ -42,19 +42,13 @@ public class LoginView extends Composite { public LoginView(UserManagementServiceAsync userManagementService, UserService userService) { this.userManagementService = userManagementService; this.userService = userService; - LoginViewResources.INSTANCE.css().ensureInjected(); - initWidget(uiBinder.createAndBindUi(this)); - userNameTextBox.setWatermark(StringMessages.INSTANCE.username()); passwordTextBox.setWatermark(StringMessages.INSTANCE.password()); - String registrationLink = EntryPointLinkFactory.createRegistrationLink(Collections. emptyMap()); signUpAnchor.setHref(registrationLink); - oAuthPanel.add(new OAuthLogin(userManagementService)); - userNameTextBox.setFocus(true); } diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.ui.xml b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.ui.xml index a458354d3f5..424520ae674 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.ui.xml +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.ui.xml @@ -10,11 +10,11 @@
-
+
- +
@@ -22,7 +22,7 @@
- +
diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/loginpanel/SignInDialog.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/loginpanel/SignInDialog.java index 0d923d396a6..7adefa261ce 100755 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/loginpanel/SignInDialog.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/loginpanel/SignInDialog.java @@ -10,7 +10,7 @@ import com.sap.sse.security.ui.shared.UserManagementServiceAsync; public class SignInDialog extends AbstractUserDialog { public SignInDialog(StringMessages stringMessages, UserManagementServiceAsync userManagementService, DialogCallback callback) { - super(stringMessages, stringMessages.signIn(), userManagementService, /* user */ null, /* validator */ null, callback); + super(stringMessages, stringMessages.signIn(), stringMessages.signIn(), userManagementService, /* user */ null, /* validator */ null, callback); } @Override diff --git a/java/com.sap.sse.security/src/com/sap/sse/security/User.java b/java/com.sap.sse.security/src/com/sap/sse/security/User.java index 81a5a25d34d..2fe0fe7fddc 100644 --- a/java/com.sap.sse.security/src/com/sap/sse/security/User.java +++ b/java/com.sap.sse.security/src/com/sap/sse/security/User.java @@ -28,6 +28,14 @@ public class User { */ private String validationSecret; + /** + * When someone has requested a password reset, only the owner of the validated e-mail address is + * permitted to actually carry out the reset. This is verified by sending a "reset secret" to the + * validated e-mail address, giving the user a link to an entry point for actually carrying out the + * reset. The reset is only accepted if the reset secret was provided correctly. + */ + private String passwordResetSecret; + private boolean emailValidated; private final Set roles; @@ -111,13 +119,31 @@ public class User { * can be used in a call to {@link #validate(String)} to validate the e-mail address. */ public String startEmailValidation() { + validationSecret = createRandomSecret(); + emailValidated = false; + return validationSecret; + } + + /** + * Creates, remembers and returns a new password reset secret. This secret can later again be obtained + * by calling {@link #getPasswordResetSecret()}. A user store should only allow a service call to reset + * a user's password in case the service can provide the correct password reset secret. + */ + public String startPasswordReset() { + passwordResetSecret = createRandomSecret(); + return passwordResetSecret; + } + + public String getPasswordResetSecret() { + return passwordResetSecret; + } + + private String createRandomSecret() { final byte[] bytes1 = new byte[64]; new Random().nextBytes(bytes1); final byte[] bytes2 = new byte[64]; new Random().nextBytes(bytes2); - validationSecret = new Sha256Hash(bytes1, bytes2, 1024).toBase64(); - emailValidated = false; - return validationSecret; + return new Sha256Hash(bytes1, bytes2, 1024).toBase64(); } /** From 49853ceb0163cde935252bed306ebf453fbf8727 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Wed, 5 Nov 2014 14:05:57 +0100 Subject: [PATCH 03/50] adjusted launch configurations to renamed com.sap.sse.mongodb bundle --- java/com.sap.sailing.server/SailingServer (No Proxy).launch | 2 +- .../SailingServer (No Proxy, Cached MTB).launch | 2 +- .../SailingServer (No Proxy, Jetty on 8889).launch | 2 +- .../SailingServer (No Proxy, Jetty on 8889, Cached MTB).launch | 2 +- .../SailingServer (No Proxy, Remote Debug SAP VM).launch | 2 +- .../SailingServer (No Proxy, winddbTest).launch | 2 +- java/com.sap.sailing.server/SailingServer (Proxy).launch | 2 +- .../SailingServer (Proxy, Jetty on 8889).launch | 2 +- .../SailingServer (Proxy, Remote Debug SAP VM).launch | 2 +- .../SailingServer (Proxy, SwissTiming Live Simulation).launch | 2 +- .../SailingServer (Proxy, winddbTest).launch | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/java/com.sap.sailing.server/SailingServer (No Proxy).launch b/java/com.sap.sailing.server/SailingServer (No Proxy).launch index 66efc992b43..4b4688fe427 100755 --- a/java/com.sap.sailing.server/SailingServer (No Proxy).launch +++ b/java/com.sap.sailing.server/SailingServer (No Proxy).launch @@ -33,5 +33,5 @@ - + diff --git a/java/com.sap.sailing.server/SailingServer (No Proxy, Cached MTB).launch b/java/com.sap.sailing.server/SailingServer (No Proxy, Cached MTB).launch index 1ca8e36dd9e..897ccb4758c 100644 --- a/java/com.sap.sailing.server/SailingServer (No Proxy, Cached MTB).launch +++ b/java/com.sap.sailing.server/SailingServer (No Proxy, Cached MTB).launch @@ -32,5 +32,5 @@ - + diff --git a/java/com.sap.sailing.server/SailingServer (No Proxy, Jetty on 8889).launch b/java/com.sap.sailing.server/SailingServer (No Proxy, Jetty on 8889).launch index 1b26c58ff3c..fc59da93dfb 100644 --- a/java/com.sap.sailing.server/SailingServer (No Proxy, Jetty on 8889).launch +++ b/java/com.sap.sailing.server/SailingServer (No Proxy, Jetty on 8889).launch @@ -26,6 +26,6 @@ - + diff --git a/java/com.sap.sailing.server/SailingServer (No Proxy, Jetty on 8889, Cached MTB).launch b/java/com.sap.sailing.server/SailingServer (No Proxy, Jetty on 8889, Cached MTB).launch index a2eec177214..60c33c092f6 100644 --- a/java/com.sap.sailing.server/SailingServer (No Proxy, Jetty on 8889, Cached MTB).launch +++ b/java/com.sap.sailing.server/SailingServer (No Proxy, Jetty on 8889, Cached MTB).launch @@ -27,6 +27,6 @@ - + diff --git a/java/com.sap.sailing.server/SailingServer (No Proxy, Remote Debug SAP VM).launch b/java/com.sap.sailing.server/SailingServer (No Proxy, Remote Debug SAP VM).launch index aee0498c589..8b71f54337d 100755 --- a/java/com.sap.sailing.server/SailingServer (No Proxy, Remote Debug SAP VM).launch +++ b/java/com.sap.sailing.server/SailingServer (No Proxy, Remote Debug SAP VM).launch @@ -26,5 +26,5 @@ - + diff --git a/java/com.sap.sailing.server/SailingServer (No Proxy, winddbTest).launch b/java/com.sap.sailing.server/SailingServer (No Proxy, winddbTest).launch index 9df60d7856f..86ed3f01ba2 100644 --- a/java/com.sap.sailing.server/SailingServer (No Proxy, winddbTest).launch +++ b/java/com.sap.sailing.server/SailingServer (No Proxy, winddbTest).launch @@ -32,5 +32,5 @@ - + diff --git a/java/com.sap.sailing.server/SailingServer (Proxy).launch b/java/com.sap.sailing.server/SailingServer (Proxy).launch index b3b05408979..1a9a9c0db2f 100644 --- a/java/com.sap.sailing.server/SailingServer (Proxy).launch +++ b/java/com.sap.sailing.server/SailingServer (Proxy).launch @@ -33,6 +33,6 @@ - + diff --git a/java/com.sap.sailing.server/SailingServer (Proxy, Jetty on 8889).launch b/java/com.sap.sailing.server/SailingServer (Proxy, Jetty on 8889).launch index f8c94f9b1df..8de486769e8 100644 --- a/java/com.sap.sailing.server/SailingServer (Proxy, Jetty on 8889).launch +++ b/java/com.sap.sailing.server/SailingServer (Proxy, Jetty on 8889).launch @@ -26,6 +26,6 @@ - + diff --git a/java/com.sap.sailing.server/SailingServer (Proxy, Remote Debug SAP VM).launch b/java/com.sap.sailing.server/SailingServer (Proxy, Remote Debug SAP VM).launch index 7ed49a89d09..8733922119e 100644 --- a/java/com.sap.sailing.server/SailingServer (Proxy, Remote Debug SAP VM).launch +++ b/java/com.sap.sailing.server/SailingServer (Proxy, Remote Debug SAP VM).launch @@ -26,5 +26,5 @@ - + diff --git a/java/com.sap.sailing.server/SailingServer (Proxy, SwissTiming Live Simulation).launch b/java/com.sap.sailing.server/SailingServer (Proxy, SwissTiming Live Simulation).launch index 3aa34217a72..8e966403474 100644 --- a/java/com.sap.sailing.server/SailingServer (Proxy, SwissTiming Live Simulation).launch +++ b/java/com.sap.sailing.server/SailingServer (Proxy, SwissTiming Live Simulation).launch @@ -25,5 +25,5 @@ - + diff --git a/java/com.sap.sailing.server/SailingServer (Proxy, winddbTest).launch b/java/com.sap.sailing.server/SailingServer (Proxy, winddbTest).launch index 6117f91b122..17317448558 100644 --- a/java/com.sap.sailing.server/SailingServer (Proxy, winddbTest).launch +++ b/java/com.sap.sailing.server/SailingServer (Proxy, winddbTest).launch @@ -26,6 +26,6 @@ - + From 01d5f3ea6c9f79316ee26f0a88fe4bee029340af Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Wed, 5 Nov 2014 14:07:44 +0100 Subject: [PATCH 04/50] renamed com.sap.sse.mongodb also in pom.xml files --- java/com.sap.sse.mongodb/pom.xml | 2 +- java/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/java/com.sap.sse.mongodb/pom.xml b/java/com.sap.sse.mongodb/pom.xml index d475121816f..5641ba7c0b2 100644 --- a/java/com.sap.sse.mongodb/pom.xml +++ b/java/com.sap.sse.mongodb/pom.xml @@ -7,6 +7,6 @@ com.sap.sailing 1.0.0-SNAPSHOT - com.sap.sailing.mongodb + com.sap.sse.mongodb eclipse-plugin diff --git a/java/pom.xml b/java/pom.xml index 94591a31a0a..9ec61be422b 100755 --- a/java/pom.xml +++ b/java/pom.xml @@ -15,6 +15,7 @@ com.sap.sse.common + com.sap.sse.mongodb com.sap.sse.gwt com.sap.sse.datamining com.sap.sse.datamining.shared @@ -57,7 +58,6 @@ com.sap.sailing.www.events com.sap.sailing.xmlexport com.google.gwt.osgi - com.sap.sailing.mongodb com.tractrac.clientmodule org.json.simple com.mongodb.driver From 5cabfbe65c8788a18549d41a39f9a0bb118cd9f8 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Wed, 5 Nov 2014 14:11:06 +0100 Subject: [PATCH 05/50] adjusted SailingGWT launch configs regarding the renaming of com.sap.sse.mongodb --- .../SailingGWT Remote Profiling (Run-Mode only).launch | 4 +--- java/com.sap.sailing.gwt.ui/SailingGWT.launch | 2 +- .../main/java/com/sap/sse/security/ui/login/LoginView.java | 6 ------ 3 files changed, 2 insertions(+), 10 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/SailingGWT Remote Profiling (Run-Mode only).launch b/java/com.sap.sailing.gwt.ui/SailingGWT Remote Profiling (Run-Mode only).launch index 4f72490703a..7b22e069710 100644 --- a/java/com.sap.sailing.gwt.ui/SailingGWT Remote Profiling (Run-Mode only).launch +++ b/java/com.sap.sailing.gwt.ui/SailingGWT Remote Profiling (Run-Mode only).launch @@ -32,7 +32,7 @@ - + @@ -47,8 +47,6 @@ - - diff --git a/java/com.sap.sailing.gwt.ui/SailingGWT.launch b/java/com.sap.sailing.gwt.ui/SailingGWT.launch index f0a6b792987..d0a079cb7fa 100755 --- a/java/com.sap.sailing.gwt.ui/SailingGWT.launch +++ b/java/com.sap.sailing.gwt.ui/SailingGWT.launch @@ -28,7 +28,7 @@ - + diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java index 385d7caf4d2..7c372fca195 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java @@ -42,19 +42,13 @@ public class LoginView extends Composite { public LoginView(UserManagementServiceAsync userManagementService, UserService userService) { this.userManagementService = userManagementService; this.userService = userService; - LoginViewResources.INSTANCE.css().ensureInjected(); - initWidget(uiBinder.createAndBindUi(this)); - userNameTextBox.setWatermark(StringMessages.INSTANCE.username()); passwordTextBox.setWatermark(StringMessages.INSTANCE.password()); - String registrationLink = EntryPointLinkFactory.createRegistrationLink(Collections. emptyMap()); signUpAnchor.setHref(registrationLink); - oAuthPanel.add(new OAuthLogin(userManagementService)); - userNameTextBox.setFocus(true); } From 59a0f608dd90ec167d11795090a7e67051efec1f Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Wed, 5 Nov 2014 14:28:55 +0100 Subject: [PATCH 06/50] removed a few sailing-specifics from LoginView --- .../Profile SailingGWT.launch | 22 ------ .../Profile SailingServer.launch | 22 ------ ...dDialog.java => ForgotPasswordDialog.java} | 4 +- .../ui/client/i18n/StringMessages.java | 2 +- .../ui/client/i18n/StringMessages.properties | 4 +- .../client/i18n/StringMessages_de.properties | 2 +- .../security/ui/login/LoginEntryPoint.java | 2 - .../sap/sse/security/ui/login/LoginView.java | 6 +- .../sse/security/ui/login/LoginView.ui.xml | 4 +- .../security/ui/login/LoginViewResources.css | 72 +++++++++---------- 10 files changed, 47 insertions(+), 93 deletions(-) delete mode 100644 java/com.sap.sailing.gwt.ui/Profile SailingGWT.launch delete mode 100644 java/com.sap.sailing.gwt.ui/Profile SailingServer.launch rename java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/{ResetPasswordDialog.java => ForgotPasswordDialog.java} (83%) diff --git a/java/com.sap.sailing.gwt.ui/Profile SailingGWT.launch b/java/com.sap.sailing.gwt.ui/Profile SailingGWT.launch deleted file mode 100644 index 32331edf760..00000000000 --- a/java/com.sap.sailing.gwt.ui/Profile SailingGWT.launch +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/java/com.sap.sailing.gwt.ui/Profile SailingServer.launch b/java/com.sap.sailing.gwt.ui/Profile SailingServer.launch deleted file mode 100644 index 1e5528ab27b..00000000000 --- a/java/com.sap.sailing.gwt.ui/Profile SailingServer.launch +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/ResetPasswordDialog.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/ForgotPasswordDialog.java similarity index 83% rename from java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/ResetPasswordDialog.java rename to java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/ForgotPasswordDialog.java index 3461cb13cf4..2a7e7e90042 100755 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/ResetPasswordDialog.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/ForgotPasswordDialog.java @@ -7,8 +7,8 @@ import com.sap.sse.security.ui.client.i18n.StringMessages; import com.sap.sse.security.ui.shared.UserDTO; import com.sap.sse.security.ui.shared.UserManagementServiceAsync; -public class ResetPasswordDialog extends AbstractUserDialog { - public ResetPasswordDialog(StringMessages stringMessages, UserManagementServiceAsync userManagementService, UserDTO user, +public class ForgotPasswordDialog extends AbstractUserDialog { + public ForgotPasswordDialog(StringMessages stringMessages, UserManagementServiceAsync userManagementService, UserDTO user, com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback callback) { super(stringMessages, stringMessages.forgotPassword(), stringMessages.enterUsernameOrEmail(), userManagementService, user, callback); diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.java index b1ac79da383..c392cc6baea 100755 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.java @@ -70,7 +70,7 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages { String emailValidationUnsuccessful(String username); String roles(); String signInWith(); - String welcome(); + String generalWelcome(); String newUser(); String pleaseSignIn(); String enterUsernameOrEmail(); diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.properties b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.properties index 05be803ff21..8a43a0a44ad 100755 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.properties +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.properties @@ -1,4 +1,4 @@ -forname=Name +name=Name password=Password passwordRepeat=Repeat password loggedIn=Logged in as user {0}! @@ -63,7 +63,7 @@ failedToSignIn=Failed to sign in. Check your credentials. emailValidationUnsuccessful=Validation of e-mail address for user {0} failed. Did you really use the latest validation code? roles=Roles signInWith=Sign in with... -welcome=Welcome! +generalWelcome=Welcome! newUser=New here? pleaseSignIn=Please sign in. enterUsernameOrEmail=Enter user name or e-mail address \ No newline at end of file diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_de.properties b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_de.properties index c993b1c082b..e4ced3c35f6 100755 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_de.properties +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_de.properties @@ -63,7 +63,7 @@ failedToSignIn=Anmeldung fehlgeschlagen. Zugangsdaten überprüfen. emailValidationUnsuccessful=Validierung der e-Mail-Adresse für Benutzer {0} fehlgeschlagen. Handelte es sich wirklich um den zuletzt ausgestellten Validierungs-Code? roles=Rollen signInWith=Anmelden mit... -welcome=Herzlich Willkommen. +generalWelcome=Herzlich Willkommen. newUser=Neuer Benutzer? pleaseSignIn=Bitte melden Sie sich an. enterUsernameOrEmail=Benutzernamen oder e-Mail-Adresse angeben \ No newline at end of file diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginEntryPoint.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginEntryPoint.java index 35803a5d45d..8496147728f 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginEntryPoint.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginEntryPoint.java @@ -19,9 +19,7 @@ public class LoginEntryPoint extends AbstractEntryPoint { userManagementService = GWT.create(UserManagementService.class); EntryPointHelper.registerASyncService((ServiceDefTarget) userManagementService, RemoteServiceMappingConstants.userManagementServiceRemotePath); userService = new UserService(userManagementService); - RootPanel rootPanel = RootPanel.get(); - rootPanel.add(new LoginView(userManagementService, userService)); } } diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java index 7c372fca195..c966cfbc79c 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java @@ -33,7 +33,7 @@ public class LoginView extends Composite { private final UserService userService; @UiField TextBoxWithWatermark userNameTextBox; - @UiField Anchor passwordResetAnchor; + @UiField Anchor forgotPasswordAnchor; @UiField PasswordTextBoxWithWatermark passwordTextBox; @UiField Button loginButton; @UiField Anchor signUpAnchor; @@ -79,8 +79,8 @@ public class LoginView extends Composite { }); } - @UiHandler("passwordResetAnchor") - void passwordResetClicked(ClickEvent e) { + @UiHandler("forgotPasswordAnchor") + void forgotPasswordClicked(ClickEvent e) { userManagementService.resetPassword(userNameTextBox.getText(), new MarkedAsyncCallback(new AsyncCallback() { @Override public void onFailure(Throwable caught) { diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.ui.xml b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.ui.xml index 424520ae674..ba3f7081ac7 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.ui.xml +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.ui.xml @@ -10,11 +10,11 @@
-
+
- +
diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginViewResources.css b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginViewResources.css index 13d29de3666..bab3e944d77 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginViewResources.css +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginViewResources.css @@ -1,19 +1,19 @@ body, html { - width: 100%; - height: 100%; - display:table; + width: 100%; + height: 100%; + display: table; } - + body { - display:table-cell; - vertical-align:middle; + display: table-cell; + vertical-align: middle; } .loginform { - display:table;/* shrinks to fit conntent */ - margin:auto; + display: table; /* shrinks to fit conntent */ + margin: auto; border: 1px solid gray; - line-height: 2.0; + line-height: 2.0; } .loginform_header { @@ -32,39 +32,39 @@ body { } .passwordTextInput_watermark { - color: ; + color:; } .glowing_border { - border: 2px solid #dadada; + border: 2px solid #dadada; } -.glowing_border:focus { - outline: none; - border-color: #9ecaed; - box-shadow: 0 0 10px #9ecaed; +.glowing_border:focus { + outline: none; + border-color: #9ecaed; + box-shadow: 0 0 10px #9ecaed; } .button { - font-size: 15px; - font-size: 1rem; - font-weight: 400; - line-height: 1.7em; - color: #fff; - border: none; - background-color: #f0ab00; - padding-left: 20px; - padding-right: 20px; - -webkit-transition: background-color 0.2s; - -moz-transition: background-color 0.2s; - -o-transition: background-color 0.2s; - -ms-transition: background-color 0.2s; - transition: background-color 0.2s; - text-decoration: none; -} -.button:hover, -.button:focus { - background-color: #d89a00; - outline: none; - text-decoration: none; + font-size: 15px; + font-size: 1rem; + font-weight: 400; + line-height: 1.7em; + color: #fff; + border: none; + background-color: #f0ab00; + padding-left: 20px; + padding-right: 20px; + -webkit-transition: background-color 0.2s; + -moz-transition: background-color 0.2s; + -o-transition: background-color 0.2s; + -ms-transition: background-color 0.2s; + transition: background-color 0.2s; + text-decoration: none; } + +.button:hover, .button:focus { + background-color: #d89a00; + outline: none; + text-decoration: none; +} \ No newline at end of file From 0467395f2f3cb7241de394d9fe40b055cea3e6bd Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Wed, 5 Nov 2014 14:42:04 +0100 Subject: [PATCH 07/50] pass application name into LoginView; layout is messy now --> Frank to fix --- .../src/main/resources/shiro.ini | 2 +- .../com/sap/sse/security/ui/login/LoginEntryPoint.java | 10 +++++++++- .../java/com/sap/sse/security/ui/login/LoginView.java | 5 ++++- .../com/sap/sse/security/ui/login/LoginView.ui.xml | 5 +++-- 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/resources/shiro.ini b/java/com.sap.sailing.gwt.ui/src/main/resources/shiro.ini index 3e68ea8df3d..a0c8e232fed 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/resources/shiro.ini +++ b/java/com.sap.sailing.gwt.ui/src/main/resources/shiro.ini @@ -25,7 +25,7 @@ securityManager.sessionManager = $sessionManager #securityManager.sessionManager.sessionIdCookie = $globalCookie authc = com.sap.sse.security.CustomFilter -authc.loginUrl = ../security/ui/Login.html +authc.loginUrl = ../security/ui/Login.html?app=Sailing%20Analytics authc.successUrl = /security/ui/UserManagement.html roles.loginUrl = ../security/ui/Login.html diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginEntryPoint.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginEntryPoint.java index 8496147728f..6801e61f40d 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginEntryPoint.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginEntryPoint.java @@ -1,25 +1,33 @@ package com.sap.sse.security.ui.login; import com.google.gwt.core.client.GWT; +import com.google.gwt.user.client.Window; import com.google.gwt.user.client.rpc.ServiceDefTarget; import com.google.gwt.user.client.ui.RootPanel; import com.sap.sse.gwt.client.AbstractEntryPoint; import com.sap.sse.gwt.client.EntryPointHelper; import com.sap.sse.security.ui.client.RemoteServiceMappingConstants; import com.sap.sse.security.ui.client.UserService; +import com.sap.sse.security.ui.client.i18n.StringMessages; import com.sap.sse.security.ui.shared.UserManagementService; import com.sap.sse.security.ui.shared.UserManagementServiceAsync; public class LoginEntryPoint extends AbstractEntryPoint { + /** + * The URL parameter name used to pass an application name to this entry point. This name + * will be put into the login view's header. + */ + private static final String PARAM_APP = "app"; private UserManagementServiceAsync userManagementService; private UserService userService; @Override public void doOnModuleLoad() { + final String appName = Window.Location.getParameter(PARAM_APP); userManagementService = GWT.create(UserManagementService.class); EntryPointHelper.registerASyncService((ServiceDefTarget) userManagementService, RemoteServiceMappingConstants.userManagementServiceRemotePath); userService = new UserService(userManagementService); RootPanel rootPanel = RootPanel.get(); - rootPanel.add(new LoginView(userManagementService, userService)); + rootPanel.add(new LoginView(userManagementService, userService, appName==null?StringMessages.INSTANCE.signIn():appName)); } } diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java index c966cfbc79c..412690ce38e 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java @@ -13,6 +13,7 @@ import com.google.gwt.user.client.ui.Anchor; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.HTMLPanel; +import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.Widget; import com.sap.sse.gwt.client.async.MarkedAsyncCallback; import com.sap.sse.security.shared.UserManagementException; @@ -33,17 +34,19 @@ public class LoginView extends Composite { private final UserService userService; @UiField TextBoxWithWatermark userNameTextBox; + @UiField Label appName; @UiField Anchor forgotPasswordAnchor; @UiField PasswordTextBoxWithWatermark passwordTextBox; @UiField Button loginButton; @UiField Anchor signUpAnchor; @UiField HTMLPanel oAuthPanel; - public LoginView(UserManagementServiceAsync userManagementService, UserService userService) { + public LoginView(UserManagementServiceAsync userManagementService, UserService userService, String appName) { this.userManagementService = userManagementService; this.userService = userService; LoginViewResources.INSTANCE.css().ensureInjected(); initWidget(uiBinder.createAndBindUi(this)); + this.appName.setText(appName); userNameTextBox.setWatermark(StringMessages.INSTANCE.username()); passwordTextBox.setWatermark(StringMessages.INSTANCE.password()); String registrationLink = EntryPointLinkFactory.createRegistrationLink(Collections. emptyMap()); diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.ui.xml b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.ui.xml index ba3f7081ac7..4f917735f30 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.ui.xml +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.ui.xml @@ -6,8 +6,9 @@ -
- +
+ +
From a6ebf81e8bfa441c2f50454f2a4798040d929b58 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Wed, 5 Nov 2014 15:02:00 +0100 Subject: [PATCH 08/50] removed static text "Sailing Analytics" from SSE SAP logo; placed text passed from app in header; styling yet to be done --- .../sse/security/ui/client/IconResources.java | 16 ++++++++-------- .../sse/security/ui/login/LoginView.ui.xml | 2 +- .../security/ui/login/LoginViewResources.css | 5 +++++ .../security/ui/login/LoginViewResources.java | 1 + .../com/sap/sse/security/ui/images/logo.png | Bin 4920 -> 2961 bytes 5 files changed, 15 insertions(+), 9 deletions(-) diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/IconResources.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/IconResources.java index b7d976f5836..489510d0ea0 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/IconResources.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/IconResources.java @@ -9,7 +9,7 @@ public interface IconResources extends ClientBundle { public static final IconResources INSTANCE = GWT.create(IconResources.class); @Source("com/sap/sse/security/ui/images/logo.png") - public ImageResource sapLogo(); + ImageResource sapLogo(); @Source("com/sap/sse/security/ui/images/user.png") ImageResource user(); @@ -21,23 +21,23 @@ public interface IconResources extends ClientBundle { ImageResource userIcon(); @Source("com/sap/sse/security/ui/images/status_red.png") - public ImageResource statusRed(); + ImageResource statusRed(); @Source("com/sap/sse/security/ui/images/status_green.png") - public ImageResource statusGreen(); + ImageResource statusGreen(); @Source("com/sap/sse/security/ui/images/status_yellow.png") - public ImageResource statusYellow(); + ImageResource statusYellow(); @Source("com/sap/sse/security/ui/images/status_blue.png") - public ImageResource statusBlue(); + ImageResource statusBlue(); @Source("com/sap/sse/security/ui/images/status_grey.png") - public ImageResource statusGrey(); + ImageResource statusGrey(); @Source("com/sap/sse/security/ui/images/delete.png") - public ImageResource delete(); + ImageResource delete(); @Source("com/sap/sse/gwt/client/images/remove.png") - public ImageResource remove(); + ImageResource remove(); } diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.ui.xml b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.ui.xml index 4f917735f30..e96b6901feb 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.ui.xml +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.ui.xml @@ -8,7 +8,7 @@
- +
diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginViewResources.css b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginViewResources.css index bab3e944d77..506acb3234d 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginViewResources.css +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginViewResources.css @@ -23,6 +23,11 @@ body { color: white; } +.loginform_header_appname { + display: inline; + font-size: 20px; +} + .loginform_content { padding: 10px; } diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginViewResources.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginViewResources.java index 2947dafc35b..547b04ed8ea 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginViewResources.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginViewResources.java @@ -13,6 +13,7 @@ public interface LoginViewResources extends ClientBundle { public interface LocalCss extends CssResource { String loginform(); String loginform_header(); + String loginform_header_appname(); String loginform_content(); String textInput_watermark(); String passwordTextInput_watermark(); diff --git a/java/com.sap.sse.security.ui/src/main/resources/com/sap/sse/security/ui/images/logo.png b/java/com.sap.sse.security.ui/src/main/resources/com/sap/sse/security/ui/images/logo.png index 4aa0213d89617a07918d95753eb7ee009399b184..10c9fb35aebe2cb7a1041936240711b32e07d9f6 100644 GIT binary patch literal 2961 zcmV;C3vTp@P)C zK~!ko?V4+hT~!swe`}w|ea+0hGo5y(w9`&)WhgDw78I-~U=<7&MQkBp5JRXM2r)77 zMZ|%j#P|g@Y7~gZM2t!-5j7G;ijVS;mPZTJ7Fs%`^xc`x0qicSMEarw5ftb2z4u_ZL8A*or+um#>T`d3>bJ+=~{&G1$1O-17K z@ZbL*0Oby&;wd~PhyrK~eqw)6))chKj#Lq1#k14@BGSwg}(x&vK)zgy0#qd93+wDn(a8{&<8h@(d7 z8E`G(%V*b-b=8=2r4$-^Jk6U!A#dbEcIHEh{_uDNP8v?>G?uKc)`~6BkttgWG)t!^ zxqV5F%V#FBRpsfru+d@J8A+HAzBX*?@maH@z$4uSx(C9z+p?-38qS}V;3rF)stz$D z@Xcp>aYun=3?vkMXK|LMgsS;4$wifc3`(nzS0NMrnn744}p+xX0! z6!jM9psW{aRJn~oUr*?bQ?{_U+2zjjb3A?3bZ$Ajo>D2ql*cpNeoaTDJAtn8>{yA` z6pA4?&#&hP7fmUf|B1={FZI)32(h$Av?dBPjjpirJ()4}&dj-7)RMsSBc!Y=VSIfu zGBsuKlZ%`A#^Nl+QW%4%Yd$)Gu3Gw0fv=g@VDr5XO*yFn|7UNBUu^0ltw2Qvi42|> z@!{44bF$93`YY#UFhK-mU5Rvjo&;LB`-4+h+LEB;Mdh}~JvvQ|00P*a7joTsIhras z{b3*TSa+V+`vMG*O(ReUkcY!G4a~-v1lvlK8n31;V zEk!sAL>nZM*f~~^elKF<0S^(#IEuMBmuwZ^=_uj0MLDkDwI^oqv5BVBSXS3WK9cQX zxOir|;>|%{v-06x{B=kE2v3zmi0K)d54WYcc~K*~^C5qKJx`sZ7!H|&NHeF-=Cbxo zO#^Ak*jzR%#V=p#$8}X1#Og2m!u}GMKDZOt7917puXp%)r9A1Fbn$tEpE2MayB_(b2$z8xKPiTOwMjMkfkz#gL2xTlV(*eCuy}nVz<}aZ#?~N19V_vmqbg z*fMDV0w@z|swFMWX^S;0+PJtaO`#MrSPY4R*zr0*gDohn@%#we7|p}@cuK>ti5qA4_`Bz>lS30np6xGLWT+fI*3r(U}*!xL{KJ_#nX~pSiwyg z;I1e3u{R$ccQ5TIJ~^)rZxjJkGezN8GSCodtT8QyiX?I}0FGGVqgw~YiGyHyN0wiG zb~aCc@l1ZbVm8+-$dMEnEDXnBM+O%75m$9IRP;S>_WS&PQ!mf%8mi3F3vy&E!3={~ zWjY%Tgc=iSbf_tnB6OhnbVozg_vjxAvGh^wf6@Q~sEh?`Humu1oNRzgNt@{crzke%h zHug@qk&D{v`NJ3HF+1zv`w=S^R$j8{846k7ohRccwjC(4p~{qAes+$jNjoNiYWcRS zSlF6kL2HV+QxanWs14k=Za?9A5$=*K#;eD%`lG^8qX zSrHI`Ai_whZf{>v^hj!e1*9w~*5POD6u ztJXP!F|cV@p7lEh`QhWc>6n)0Q;V9oX=w{n>nrENjcJ=NeW|;5&6C>)_|X%4Si7~4lw)-&8NV8H;vfzWQsT~4*-;CS zQbNiVv^H$sooB<20oH6d$iugs&CJHi#9@z71zLGtGb_()uB`%7=kW24EX69NutWKP zf4|y~Du+=eUvn@Yuw`F?_1%NKy1z)I4Rx;7iO^-A{K1U@Z44sdT8e}% zh?1J>fs-pmkXt`GgJ}&e05>dc;fAFx?CSN{ z+vhRlMJN%bH8{*aBg3f@kultZ0Wl^%j-wMgQPOp)RwL~&h?tReS#`-7$K7meO3>DH z^3!(H8+qze7PF=#v5rXv4-WY3>GL?Zt$t)(rsfs6a%3ULR%4WOaSFvQ`4L}VKARbD zk&i0{npF>MX3t@dGh5TNWL?s(g&%1S4F>EuP$Y;9>+U?C*4)I#Pyxg;fTwmn+;#Km;~+4-jcE#vmf7@^mfwntyIS%(Y8f zCl&-A6-Js)U+;utKb9h z=nDrac_FS6QkGEX2=%U_&JohK;EJG(;jxW}CN%Jbqekk16IoPxOMLgtRZsK)O@65H z0!=1qF}Een;yDeRH6uf7V}kmWjS?vOntgp9FTXL!lUw?DZSN47q|Fseno(68+PeQ9 zrZ*oP=L?U{Z4H@(#U%@xM&iEl0|*mZ)_hBerI!3&D!s(pD{re0tN`M>Zhzw2#=>KyeeWs& zyNuBFP8*bsG0wXMKtwv|k9_?T#DXjt_15T?|1 zka|m;IZb_1;tSx^g_o>tMK&WilYKE>SQ-r{f&&(ykH_4`nqo0d{+=CJRT>&PoD15D zY-MZ&b0pwpF~2afet064O+%x4&5ww2bi$gCFixV7ZDQ^rmCTd}E zE_wl8ShD~Vv}1sqqp}n5ni@dW4@Omh$C5DsKfJpK3FZd}{-qa2-TxAUfPlXsWH&hQ zZ>Ow`kpL}%7ZxBd3zl&ND?k7WaQfI$!_2&^ar0mI}KVPFX0p9@H} z=H=uJGezk9V~cu%194+y-3CFFm6btYCE9vXiN?nND)u1#lPGG+KzVDH!OZs&l_44k z=v8^Brj`~20@1#zsia8F-c?Oy2vkQ)TU-7&SKos~#&|elf7^AT+Wm(M`LA4!jmFzytouFwEsY zc%XwoC~9hJC_ojUkiQ~Vgy0sU%^|I;qNMbsYr zwf(pGsfT~Z2kSwd887N^Ox)}{qMR3%pz4Y*%1yo zLoe4Bx-ngh%$wC;-#D6?uy21fndxdIRfMlPHn&Zw9L+3a0Zz`M^Q>D=_++In!3$M} zSiW;(Yy|Y4q#nx@5Uvdi#^y}ghvQ8VgX;t#?8gUsPT?OENQl7%71p#O{=lts86577 z@+ZgJp?dxXmU!508zyy!{{9axO%N}EwgdFL1@xR}OWeJ)=5Tf&qqv+3Nn)vczWPfe z(NyNuGuk3@>D_ba_(Hp&V9C*&Uc#q|u8i`Jx?Bz}(zBZzKm71S!_vL@Ne``F*%jSY z(Xw`RltO1j;RV%K{`dJs>r580t?-hJ*qoIIbGHKNjhCBnu*+>i6Pv=3mV!)Eu@pk? z*~|7SQjFS{BC*|pOGHJr%@~frf;q~DMD;RH@~4`C zOAI{Ff+W7_$L=-yHF$mCAWiTZ1!pDK8!pbxHCq*ZNi%Ktt4d!^gy;hNo%`1_FMewB z*u;IG1V*SY}NJpz130co$4~w0JAB81zv5%rq+JadanMzjd z1!G&}V$;VZ20ucpQbkr`*I^OmJI`)0+QFK|yzWyhqLzhK#8~S(fwSCsd480ldsdR{ zZ*hoHnF!1yBC{$!@tkVjG-Z?66@BBObBCGIUe6BfzcOzv$~SX4=0UH|Z0jTiX^g6T z^sePjL7}Zulsoqm8Bu^Xt|cdXxuwWPhov+xBxkjGbMNK*uDgtRl>5+onvf~$FKt6d z6&ls&jrKI+T3$sx{+ieN(lR%(?+-jD7d!H>1a1&=tZ(?hBm6@x*{c945fjmE9V<1&aYRjpkX=26hu=k#y?4S9}MJROF^>{;w_Sda_2EQLaI$k|}WE+&5 z`2j;U{4I15SX>{RH@Xezx=uS8yKq_e_33X?LZCQdwrN-g#eC;jY2c#v!b91`crAXf zfV;J3q)aP|dBaknb4gtiiidOqT4J!4J4s`6d)X_^SvIlnTMKu7?3TY>ZNH#+@jd2F z@nmV`f~q9rt%RdE^@0h&Q<-4E{)d&A;E@3d#K7lw<7%=xi)Jke5sS<>*^jpJ6^?dq zF{&93hhh zpT_x@XlV`GZj2=AvX&02T{xS0KMdljPAT`fAok_-TyXp}CBMM#RdqRUrxsJSkCt`5s3$vDpvgqY7o2 zlq{ZoT({3-{H^4*xPd6G42Ljag$PFS%!jh^a^2sWb!P7T5U|y4Q|wtL70>|zc|H#; zUjDlFpq?W_BxTuFnhn>$5?hdeS~?VJ8BjHrdoSn17p6y=rH0o?Y)0n*qPadWW(%^t58**ycZuP$oA3_OZ+2L6O-jX~onPQgv>OueQi z)7jzi<}>ympd&F$SI_uAXI`f-5dI?ON-WPV|BGjmjiaCw`0KxSPkS7b5QZQ3p~| zdBG;FY$Uqx9M`+X*P)4L$EK4GRS$~uOAa^Wj6mB3M{eC>2j8c*_5DIKeb+}EacVQ| zkNBo{lU0rQmuegS+{~f(m)-FoF$Og8H57T1rDM!FkiLVS+9a_|U2CQHl$&uqf3}Zv zlS)XX^b!k)Zb=*bXx`Q>j$|0Qp0UgAJc{gUd}w*YHi0tQs3>T* z{p=O8#w*+V+Z**ES6@T!oIT~BTJAuO{?|(+CW$iTg(h`c$Iw*E%m;O79$ey`s5^l> zy;q4ydNW-$jMKnE8(q_h%T#Go!G;#r#|BBGejgs z%V$6+^>8}|#uc+S^w!~~BgGF17O4}`=k4NGCnO{svj#vHf%<(yx~kJ$O~RndZO0(N zrtjA$*rE#?J1fXZjD1t`?4tBV*re+>##K16CTwpUm~2Ein=>LOr28`FeHUs=l~p(E zIQleIUoME8?7FD%gXyE79;aOMY0T@QS(Ej@-7ZzKxYzyMw1d68P*vnsXO`)Uo`m~v z+mbBBDBED|9}`kz?ZTRDP#&!a4F+?ytt)6n#Q{msk`W7I*pHD-R)>zA%M0V{?N64i zEDdtY05r#+dp$pN)sFPmuEXQ9H_q5ka!2F*@S6?+ma3qQp2V@Q z2c9uu21S)w*r9#%|i05tCLEoU2S6(?Ee#x=>n#_ua6(0POqAmpVK)w>zM~yJk%7&vb?bB~%f&GEr0B+>7{|8F;jy2p z99nE7b#sx;bI9?<;Bi?7KJ5xR@%ox&9AoW3#vMvjZ$I0QB|dy4x9Nqy#u!yuZ&Jk4@O__`?jq=Bk(Byv;cxvcexV+ekfV( zUXqNi(3v~O4*^r`){-F`J%cm)>FB0ah z2m`U9Lw4nLijJZ>$@*{Hk`B1y>3ORpC0nmedEW`Dh=&iobg#Py`1UPpJJ z7@GPx4ELb#nFl z{As?`cL7=OHj|tuG6li@lRxVu`1sil_RJgmYU>k&+j_mf20u6s_Wffb_=4eG=OZpJs5o{7s?tQvH`GkR1z+9d_VfTA@bftcXrF4TiaJsXMOFH`D>=!b`2ScP@bmy4xly;T$%%Stc%hN z@B4vgZ*0>h_sPmJ%!6*>4Ds|)U-XET;n|{koqS3I)lmX#JBjv5W2xKK> z-8@(b7EBi<$%R`B5`FmTGP`Ye^yj`ydG`XE3apn*cW;$5jTI2C^KI6UzIHgsn=C7Z zx&y`)!juyn=CMYG4x97Nn;39|{U3Kuv{l*?^4@>CTXw#&Ds&(3QAR)y`}2RXbRJJp zRyV*JmpCka5O(u1ak42owUQnvR9)FSo)SH@k?y(~aPx`qLwp+V!>3gj*-#>7PeP!R y&?oqMYeQrwp~ENQ?`YO?DJ8t)^gn<7%hK02K~!np3i}^BUDUe( From 405464197be0db6b108fd28a0915bab1be908d1e Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Wed, 5 Nov 2014 15:06:53 +0100 Subject: [PATCH 09/50] managed to vertically center the app name in the login view's header --- .../com/sap/sse/security/ui/login/LoginViewResources.css | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginViewResources.css b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginViewResources.css index 506acb3234d..eb056d9d2fe 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginViewResources.css +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginViewResources.css @@ -21,11 +21,16 @@ body { background-color: #333333; border-bottom: 4px solid #f0ab00; color: white; + position: relative } .loginform_header_appname { display: inline; font-size: 20px; + margin: 0; + position: absolute; + top: 50%; + transform: translate(0, -50%) } .loginform_content { From 1ef688dc13204a1074631ab898b23a3ea4ab71fe Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Wed, 5 Nov 2014 16:17:11 +0100 Subject: [PATCH 10/50] added URL parameters to EditProfile to allow for passing a password reset secret, default user name and default e-mail address --- .../ui/client/EntryPointLinkFactory.java | 29 ++++++ .../ui/client/component/CreateUserDialog.java | 5 +- .../EditEmailDialogWithDefaultCallback.java | 4 +- .../component/ForgotPasswordDialog.java | 2 +- .../ui/client/component/UserDetailsView.java | 27 +----- .../ui/client/i18n/StringMessages.java | 2 +- .../ui/client/i18n/StringMessages.properties | 4 +- .../client/i18n/StringMessages_de.properties | 2 +- .../ui/editprofile/EditProfileEntryPoint.java | 27 ++++-- .../sap/sse/security/ui/login/LoginView.java | 54 ++++++++--- .../security/ui/loginpanel/LoginPanel.java | 4 +- .../ui/registration/RegisterEntryPoint.java | 4 +- .../ui/server/UserManagementServiceImpl.java | 14 ++- .../ui/shared/UserManagementService.java | 8 +- .../ui/shared/UserManagementServiceAsync.java | 4 +- .../userstore/mongodb/UserStoreImpl.java | 49 +++++++++- .../com.sap.sse.security/META-INF/MANIFEST.MF | 3 +- .../com/sap/sse/security/SecurityService.java | 7 +- .../sap/sse/security/SecurityServiceImpl.java | 91 ++++++++++++------- .../src/com/sap/sse/security/UserStore.java | 2 + 20 files changed, 239 insertions(+), 103 deletions(-) diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/EntryPointLinkFactory.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/EntryPointLinkFactory.java index 754ae79329a..15a64f224f0 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/EntryPointLinkFactory.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/EntryPointLinkFactory.java @@ -8,6 +8,9 @@ import com.sap.sse.gwt.client.AbstractEntryPointLinkFactory; public class EntryPointLinkFactory extends AbstractEntryPointLinkFactory { + private static final String PARAM_LOCALE = "locale"; + private static final String PARAM_GWT_CODESVR = "gwt.codesvr"; + public static String createRegistrationLink(Map parameters) { return createEntryPointLink("/security/ui/Register.html", parameters); } @@ -23,12 +26,38 @@ public class EntryPointLinkFactory extends AbstractEntryPointLinkFactory { public static String createUserManagementLink(Map parameters) { return createEntryPointLink("/security/ui/UserManagement.html", parameters); } + + private static void addGwtUrlParameters(final Map parameters) { + final String debugParam = Window.Location.getParameter(PARAM_GWT_CODESVR); + if (debugParam != null) { + parameters.put(PARAM_GWT_CODESVR, debugParam); + } + final String localeParam = Window.Location.getParameter(PARAM_LOCALE); + if (localeParam != null) { + parameters.put(PARAM_LOCALE, localeParam); + } + } /** * Produces an absolute base URL for the validation + * + * @param parameters must be a writable map because debug and locale parameters may be added to the map */ public static String createEmailValidationLink(Map parameters) { UrlBuilder builder = Window.Location.createUrlBuilder().setPath("/security/ui/EmailValidation.html"); + addGwtUrlParameters(parameters); + for (Map.Entry param : parameters.entrySet()) { + builder.setParameter(param.getKey(), param.getValue()); + } + return builder.buildString(); + } + + /** + * @param parameters must be a writable map because debug and locale parameters may be added to the map + */ + public static String createPasswordResetLink(Map parameters) { + UrlBuilder builder = Window.Location.createUrlBuilder().setPath("/security/ui/EditProfile.html"); + addGwtUrlParameters(parameters); for (Map.Entry param : parameters.entrySet()) { builder.setParameter(param.getKey(), param.getValue()); } diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/CreateUserDialog.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/CreateUserDialog.java index a9ec89d6e7e..a4aae011723 100755 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/CreateUserDialog.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/CreateUserDialog.java @@ -1,6 +1,6 @@ package com.sap.sse.security.ui.client.component; -import java.util.Collections; +import java.util.HashMap; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.rpc.AsyncCallback; @@ -26,8 +26,7 @@ public class CreateUserDialog extends AbstractUserDialog { userManagementService .createSimpleUser(usernameEmailPassword.getUsername(), usernameEmailPassword.getEmail(), usernameEmailPassword.getPassword(), - EntryPointLinkFactory.createEmailValidationLink(Collections - . emptyMap()), new AsyncCallback() { + EntryPointLinkFactory.createEmailValidationLink(new HashMap()), new AsyncCallback() { @Override public void onSuccess(UserDTO result) { for (UserCreatedEventHandler handler : handlers) { diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/EditEmailDialogWithDefaultCallback.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/EditEmailDialogWithDefaultCallback.java index 1cd5dbb2b93..d919f180924 100755 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/EditEmailDialogWithDefaultCallback.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/EditEmailDialogWithDefaultCallback.java @@ -1,6 +1,6 @@ package com.sap.sse.security.ui.client.component; -import java.util.Collections; +import java.util.HashMap; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.rpc.AsyncCallback; @@ -31,7 +31,7 @@ public class EditEmailDialogWithDefaultCallback extends EditEmailDialog { @Override public void ok(final UserData userData) { userManagementService.updateSimpleUserEmail(userData.getUsername(), userData.getEmail(), - EntryPointLinkFactory.createEmailValidationLink(Collections.emptyMap()), + EntryPointLinkFactory.createEmailValidationLink(new HashMap()), new MarkedAsyncCallback( new AsyncCallback() { @Override diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/ForgotPasswordDialog.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/ForgotPasswordDialog.java index 2a7e7e90042..f7cb9024a75 100755 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/ForgotPasswordDialog.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/ForgotPasswordDialog.java @@ -11,7 +11,7 @@ public class ForgotPasswordDialog extends AbstractUserDialog { public ForgotPasswordDialog(StringMessages stringMessages, UserManagementServiceAsync userManagementService, UserDTO user, com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback callback) { super(stringMessages, stringMessages.forgotPassword(), stringMessages.enterUsernameOrEmail(), - userManagementService, user, callback); + userManagementService, user, /* validator */ null, callback); } @Override diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/UserDetailsView.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/UserDetailsView.java index 92598954758..f488301bdac 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/UserDetailsView.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/UserDetailsView.java @@ -157,7 +157,8 @@ public class UserDetailsView extends FlowPanel { new ChangePasswordDialog(stringMessages, userManagementService, UserDetailsView.this.user, new DataEntryDialog.DialogCallback() { @Override public void ok(UserData userData) { - userManagementService.updateSimpleUserPassword(UserDetailsView.this.user.getName(), /* admin doesn't need to provide old password */ null, userData.getPassword(), new MarkedAsyncCallback( + userManagementService.updateSimpleUserPassword(UserDetailsView.this.user.getName(), /* admin doesn't need to provide old password */ null, + /* resetPasswordSecret */ null, userData.getPassword(), new MarkedAsyncCallback( new AsyncCallback() { @Override public void onFailure(Throwable caught) { @@ -186,30 +187,6 @@ public class UserDetailsView extends FlowPanel { }).show(); } }); - // only offer password reset if the user's e-mail address has successfully been validated - if (UserDetailsView.this.user.isEmailValidated()) { - final Button resetPasswordButton = new Button(stringMessages.forgotPassword()); - accountPanelContent.add(resetPasswordButton); - resetPasswordButton.addClickHandler(new ClickHandler() { - @Override - public void onClick(ClickEvent event) { - userManagementService.resetPassword(UserDetailsView.this.user.getName(), - new MarkedAsyncCallback(new AsyncCallback() { - @Override - public void onFailure(Throwable caught) { - Window.alert(stringMessages.errorResettingPassword( - UserDetailsView.this.user.getName(), caught.getMessage())); - } - - @Override - public void onSuccess(Void result) { - Window.alert(stringMessages - .successfullyResetPassword(UserDetailsView.this.user.getName())); - } - })); - } - }); - } } else if (a instanceof SocialUserDTO) { SocialUserDTO sua = (SocialUserDTO) a; FlexTable table = new FlexTable(); diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.java index c392cc6baea..d6f9f311915 100755 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.java @@ -61,7 +61,7 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages { String forgotPassword(); String errorDuringPasswordReset(String message); String cannotResetPasswordWithoutValidatedEmail(String username); - String newPasswordSent(String username); + String passwordResetLinkSent(String username); String errorValidatingEmail(String username, String message); String emailValidatedSuccessfully(String username); String errorResettingPassword(String username, String message); diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.properties b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.properties index 8a43a0a44ad..ac300d82487 100755 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.properties +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.properties @@ -54,7 +54,7 @@ successfullyUpdatedEmail=Successfully updated e-mail address for user {0}.\nVali forgotPassword=Forgot password errorDuringPasswordReset=Error during password reset: {0} cannotResetPasswordWithoutValidatedEmail=Cannot reset password because user {0} does not have a validated e-mail address -newPasswordSent=A new password has been sent to {0}''s validated e-mail address +passwordResetLinkSent=A link for resetting the password has been sent to {0}''s validated e-mail address errorValidatingEmail=Error validating e-mail address of user {0}: {1} emailValidatedSuccessfully=e-mail address of user {0} validated successfully errorResettingPassword=Error resetting password for user {0}: {1} @@ -66,4 +66,4 @@ signInWith=Sign in with... generalWelcome=Welcome! newUser=New here? pleaseSignIn=Please sign in. -enterUsernameOrEmail=Enter user name or e-mail address \ No newline at end of file +enterUsernameOrEmail=Enter user name or e-mail address diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_de.properties b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_de.properties index e4ced3c35f6..9c032f4d50f 100755 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_de.properties +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_de.properties @@ -54,7 +54,7 @@ successfullyUpdatedEmail=e-Mail-Adresse f�r Benutzer {0} erfolgreich aktualisi forgotPassword=Passwort vergessen errorDuringPasswordReset=Fehler beim Zurücksetzen des Passworts: {0} cannotResetPasswordWithoutValidatedEmail=Passwort für Benutzer {0} kann nicht zurückgesetzt werden, da keine validierte e-Mail-Adresse vorliegt -newPasswordSent=Ein neues Passwort ist an die validierte e-Mail-Adresse des Benutzers {0} gesendet worden +passwordResetLinkSent=Ein Link zum Setzen eines neuen Passwortes ist an die validierte e-Mail-Adresse des Benutzers {0} gesendet worden errorValidatingEmail=Fehler beim Validieren der e-Mail-Adresse für Benutzer {0}: {1} emailValidatedSuccessfully=e-Mail-Adresse für Benutzer {0} erfolgreich validiert errorResettingPassword=Fehler beim Zurücksetzen des Passworts für Benutzer {0}: {1} 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 58c9e79481a..67d6ff66df0 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 @@ -46,6 +46,9 @@ public class EditProfileEntryPoint implements EntryPoint { RemoteServiceMappingConstants.userManagementServiceRemotePath); final UserService userService = new UserService(userManagementService); final NewAccountValidator validator = new NewAccountValidator(stringMessages); + final String usernameFromURL = Window.Location.getParameter("u"); + final String emailFromURL = Window.Location.getParameter("e"); + final String passwordResetSecret = Window.Location.getParameter("s"); RootLayoutPanel rootPanel = RootLayoutPanel.get(); DockLayoutPanel dockPanel = new DockLayoutPanel(Unit.PX); rootPanel.add(dockPanel); @@ -58,7 +61,9 @@ public class EditProfileEntryPoint implements EntryPoint { nameText.setEnabled(false); fp.add(nameText); nameText.setEnabled(false); - fp.add(nameText); + if (usernameFromURL != null) { + nameText.setText(usernameFromURL); + } HorizontalPanel rolesPanel = new HorizontalPanel(); rolesPanel.add(new Label(stringMessages.roles())); final Label rolesLabel = new Label(); @@ -69,14 +74,22 @@ public class EditProfileEntryPoint implements EntryPoint { HorizontalPanel emailTextBoxAndButtonPanel = new HorizontalPanel(); final TextBox emailText = new TextBox(); emailText.setEnabled(false); + if (emailFromURL != null) { + emailText.setText(emailFromURL); + } emailTextBoxAndButtonPanel.add(emailText); final Button updateEmailButton = new Button(stringMessages.editEmail()); emailTextBoxAndButtonPanel.add(updateEmailButton); fp.add(emailTextBoxAndButtonPanel); - Label currentPasswordLabel = new Label(stringMessages.currentPassword()); - fp.add(currentPasswordLabel); - final TextBox currentPasswordText = new PasswordTextBox(); - fp.add(currentPasswordText); + final TextBox currentPasswordText; + if (passwordResetSecret == null) { + Label currentPasswordLabel = new Label(stringMessages.currentPassword()); + fp.add(currentPasswordLabel); + currentPasswordText = new PasswordTextBox(); + fp.add(currentPasswordText); + } else { + currentPasswordText = null; + } updateEmailButton.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { @@ -135,7 +148,9 @@ public class EditProfileEntryPoint implements EntryPoint { formPanel.addSubmitHandler(new SubmitHandler() { @Override public void onSubmit(SubmitEvent event) { - userManagementService.updateSimpleUserPassword(nameText.getText(), currentPasswordText.getText(), pwText.getText(), new AsyncCallback() { + userManagementService.updateSimpleUserPassword(nameText.getText(), + currentPasswordText==null?null:currentPasswordText.getText(), + passwordResetSecret, pwText.getText(), new AsyncCallback() { @Override public void onFailure(Throwable caught) { GWT.log(caught.getMessage()); diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java index 412690ce38e..961b75e4ef8 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java @@ -1,6 +1,7 @@ package com.sap.sse.security.ui.login; import java.util.Collections; +import java.util.HashMap; import com.google.gwt.core.client.GWT; import com.google.gwt.event.dom.client.ClickEvent; @@ -16,9 +17,12 @@ import com.google.gwt.user.client.ui.HTMLPanel; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.Widget; import com.sap.sse.gwt.client.async.MarkedAsyncCallback; +import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; import com.sap.sse.security.shared.UserManagementException; import com.sap.sse.security.ui.client.EntryPointLinkFactory; import com.sap.sse.security.ui.client.UserService; +import com.sap.sse.security.ui.client.component.AbstractUserDialog.UserData; +import com.sap.sse.security.ui.client.component.ForgotPasswordDialog; import com.sap.sse.security.ui.client.i18n.StringMessages; import com.sap.sse.security.ui.client.shared.oauthlogin.OAuthLogin; import com.sap.sse.security.ui.shared.SuccessInfo; @@ -84,24 +88,44 @@ public class LoginView extends Composite { @UiHandler("forgotPasswordAnchor") void forgotPasswordClicked(ClickEvent e) { - userManagementService.resetPassword(userNameTextBox.getText(), new MarkedAsyncCallback(new AsyncCallback() { + new ForgotPasswordDialog(StringMessages.INSTANCE, userManagementService, userService.getCurrentUser(), new DialogCallback() { @Override - public void onFailure(Throwable caught) { - if (caught instanceof UserManagementException) { - if (UserManagementException.CANNOT_RESET_PASSWORD_WITHOUT_VALIDATED_EMAIL.equals(caught.getMessage())) { - Window.alert(StringMessages.INSTANCE.cannotResetPasswordWithoutValidatedEmail(userNameTextBox.getText())); - } else { - Window.alert(StringMessages.INSTANCE.errorDuringPasswordReset(caught.getMessage())); + public void ok(final UserData userData) { + userManagementService.resetPassword(userData.getUsername(), userData.getEmail(), + EntryPointLinkFactory.createPasswordResetLink(new HashMap()), + new MarkedAsyncCallback(new AsyncCallback() { + @Override + public void onFailure(Throwable caught) { + if (caught instanceof UserManagementException) { + if (UserManagementException.CANNOT_RESET_PASSWORD_WITHOUT_VALIDATED_EMAIL.equals(caught.getMessage())) { + Window.alert(StringMessages.INSTANCE.cannotResetPasswordWithoutValidatedEmail(userNameTextBox.getText())); + } else { + Window.alert(StringMessages.INSTANCE.errorDuringPasswordReset(caught.getMessage())); + } + } else { + Window.alert(StringMessages.INSTANCE.errorDuringPasswordReset(caught.getMessage())); + } } - } else { - Window.alert(StringMessages.INSTANCE.errorDuringPasswordReset(caught.getMessage())); - } + + @Override + public void onSuccess(Void result) { + final StringBuilder nameOrEmail = new StringBuilder(); + if (userData.getUsername() != null && !userData.getUsername().isEmpty()) { + nameOrEmail.append(userData.getUsername()); + } + if (userData.getEmail() != null && !userData.getEmail().isEmpty()) { + if (nameOrEmail.length() > 0) { + nameOrEmail.append(" / "); + } + nameOrEmail.append(userData.getEmail()); + } + Window.alert(StringMessages.INSTANCE.passwordResetLinkSent(nameOrEmail.toString())); + } + })); } - @Override - public void onSuccess(Void result) { - Window.alert(StringMessages.INSTANCE.newPasswordSent(userNameTextBox.getText())); - } - })); + @Override public void cancel() {} + }).show(); + } } 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 f4ab4c44e9f..e6bc6fd9ba1 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 @@ -1,6 +1,6 @@ package com.sap.sse.security.ui.loginpanel; -import java.util.Collections; +import java.util.HashMap; import com.google.gwt.core.client.GWT; import com.google.gwt.event.dom.client.ClickEvent; @@ -74,7 +74,7 @@ public class LoginPanel extends HorizontalPanel implements UserStatusEventHandle @Override public void ok(final UserData userData) { userManagementService.createSimpleUser(userData.getUsername(), userData.getEmail(), userData.getPassword(), - EntryPointLinkFactory.createEmailValidationLink(Collections. emptyMap()), + EntryPointLinkFactory.createEmailValidationLink(new HashMap()), new MarkedAsyncCallback(new AsyncCallback() { @Override public void onFailure(Throwable caught) { diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/registration/RegisterEntryPoint.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/registration/RegisterEntryPoint.java index 48a83c274d1..a3c5fe66c3e 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/registration/RegisterEntryPoint.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/registration/RegisterEntryPoint.java @@ -1,6 +1,6 @@ package com.sap.sse.security.ui.registration; -import java.util.Collections; +import java.util.HashMap; import com.google.gwt.core.client.EntryPoint; import com.google.gwt.core.client.GWT; @@ -86,7 +86,7 @@ public class RegisterEntryPoint implements EntryPoint { @Override public void onSubmit(SubmitEvent event) { userManagementService.createSimpleUser(nameText.getText(), emailText.getText(), pwText.getText(), - EntryPointLinkFactory.createEmailValidationLink(Collections.emptyMap()), + EntryPointLinkFactory.createEmailValidationLink(new HashMap()), new AsyncCallback() { @Override public void onFailure(Throwable caught) { 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 680439bc56d..71458c7c440 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 @@ -141,11 +141,12 @@ public class UserManagementServiceImpl extends RemoteServiceServlet implements U @Override - public void updateSimpleUserPassword(final String username, String oldPassword, String newPassword) throws UserManagementException { + public void updateSimpleUserPassword(final String username, String oldPassword, String passwordResetSecret, String newPassword) throws UserManagementException { final Subject subject = SecurityUtils.getSubject(); if (!subject.hasRole(DefaultRoles.ADMIN.getRolename())) { - // validate old password before proceeding - if (!getSecurityService().checkPassword(username, oldPassword)) { + // validate old password or password reset secret before proceeding + if ((oldPassword == null || !getSecurityService().checkPassword(username, oldPassword)) && + (passwordResetSecret == null || !getSecurityService().checkPasswordResetSecret(username, passwordResetSecret))) { throw new UserManagementException(UserManagementException.INVALID_CREDENTIALS); } } @@ -176,8 +177,11 @@ public class UserManagementServiceImpl extends RemoteServiceServlet implements U } @Override - public void resetPassword(String username) throws UserManagementException { - getSecurityService().resetPassword(username); + public void resetPassword(String username, String email, String baseURL) throws UserManagementException, MailException { + if (username == null || username.isEmpty()) { + username = getSecurityService().getUserByEmail(email).getName(); + } + getSecurityService().resetPassword(username, baseURL); } @Override diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/shared/UserManagementService.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/shared/UserManagementService.java index ae1f8065e93..1b7db92f9f0 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/shared/UserManagementService.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/shared/UserManagementService.java @@ -21,11 +21,15 @@ public interface UserManagementService extends RemoteService { UserDTO createSimpleUser(String name, String email, String password, String validationBaseURL) throws UserManagementException, MailException; - void updateSimpleUserPassword(String name, String oldPassword, String newPassword) throws UserManagementException, MailException; + /** + * Either oldPassword or passwordResetSecret need to be provided, or the current user needs to have + * the {@link DefaultRoles#ADMIN} role to be able to set the new password. + */ + void updateSimpleUserPassword(String name, String oldPassword, String passwordResetSecret, String newPassword) throws UserManagementException; void updateSimpleUserEmail(String username, String newEmail, String validationBaseURL) throws UserManagementException, MailException; - void resetPassword(String username) throws UserManagementException; + void resetPassword(String username, String eMailAddress, String baseURL) throws UserManagementException, MailException; boolean validateEmail(String username, String validationSecret) throws UserManagementException; diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/shared/UserManagementServiceAsync.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/shared/UserManagementServiceAsync.java index 5367a213d89..a5908c866bf 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/shared/UserManagementServiceAsync.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/shared/UserManagementServiceAsync.java @@ -17,9 +17,9 @@ public interface UserManagementServiceAsync { void createSimpleUser(String name, String email, String password, String validationBaseURL, AsyncCallback callback); - void updateSimpleUserPassword(String name, String oldPassword, String newPassword, AsyncCallback callback); + void updateSimpleUserPassword(String name, String oldPassword, String passwordResetSecret, String newPassword, AsyncCallback callback); - void resetPassword(String username, AsyncCallback callback); + void resetPassword(String username, String eMailAddress, String baseURL, AsyncCallback callback); void validateEmail(String username, String validationSecret, AsyncCallback markedAsyncCallback); diff --git a/java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/UserStoreImpl.java b/java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/UserStoreImpl.java index 94c8ecc812c..fb167bc4833 100644 --- a/java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/UserStoreImpl.java +++ b/java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/UserStoreImpl.java @@ -2,6 +2,7 @@ package com.sap.sse.security.userstore.mongodb; import java.util.ArrayList; import java.util.Collection; +import java.util.HashSet; import java.util.Map; import java.util.Map.Entry; import java.util.Set; @@ -20,6 +21,8 @@ public class UserStoreImpl implements UserStore { private String name = "MongoDB user store"; private final ConcurrentHashMap users; + private final ConcurrentHashMap> usersByEmail; + private final ConcurrentHashMap emailForUser; private final ConcurrentHashMap settings; private final ConcurrentHashMap> settingTypes; private final ConcurrentHashMap> preferences; @@ -28,6 +31,8 @@ public class UserStoreImpl implements UserStore { public UserStoreImpl() { users = new ConcurrentHashMap<>(); + usersByEmail = new ConcurrentHashMap<>(); + emailForUser = new ConcurrentHashMap<>(); settings = new ConcurrentHashMap<>(); settingTypes = new ConcurrentHashMap>(); preferences = new ConcurrentHashMap<>(); @@ -50,9 +55,32 @@ public class UserStoreImpl implements UserStore { } for (User u : domainObjectFactory.loadAllUsers()) { users.put(u.getName(), u); + addToUsersByEmail(u); } } + private void addToUsersByEmail(User u) { + if (u.getEmail() != null && !u.getEmail().isEmpty()) { + Set set = usersByEmail.get(u.getEmail()); + if (set == null) { + set = new HashSet<>(); + usersByEmail.put(u.getEmail(), set); + } + set.add(u); + emailForUser.put(u, u.getEmail()); + } + } + + private void removeFromUsersByEmail(User u) { + if (u != null) { + Set set = usersByEmail.get(emailForUser.get(u)); // this also works if the user's e-mail has changed meanwhile + if (set != null) { + set.remove(u); + } + emailForUser.remove(u); + } + } + private boolean initSocialSettingsIfEmpty() { boolean changed = false; for (SocialSettingsKeys ssk : SocialSettingsKeys.values()) { @@ -79,12 +107,15 @@ public class UserStoreImpl implements UserStore { logger.info("Creating user: " + user); mongoObjectFactory.storeUser(user); users.put(name, user); + addToUsersByEmail(user); return user; } @Override public void updateUser(User user) { logger.info("Updating user "+user+" in DB"); + removeFromUsersByEmail(user); + addToUsersByEmail(user); mongoObjectFactory.storeUser(user); } @@ -101,6 +132,22 @@ public class UserStoreImpl implements UserStore { return users.get(name); } + @Override + public User getUserByEmail(String email) { + final User result; + if (email == null) { + result = null; + } else { + Set set = usersByEmail.get(email); + if (set.isEmpty()) { + result = null; + } else { + result = set.iterator().next(); + } + } + return result; + } + @Override public Set getRolesFromUser(String username) throws UserManagementException { if (users.get(username) == null) { @@ -135,7 +182,7 @@ public class UserStoreImpl implements UserStore { } logger.info("Deleting user: " + users.get(name).toString()); mongoObjectFactory.deleteUser(users.get(name)); - users.remove(name); + removeFromUsersByEmail(users.remove(name)); } @Override diff --git a/java/com.sap.sse.security/META-INF/MANIFEST.MF b/java/com.sap.sse.security/META-INF/MANIFEST.MF index c3eb5f5b548..36adb23e795 100644 --- a/java/com.sap.sse.security/META-INF/MANIFEST.MF +++ b/java/com.sap.sse.security/META-INF/MANIFEST.MF @@ -26,7 +26,8 @@ Require-Bundle: javax.servlet;bundle-version="2.5.0", org.apache.shiro.ehcache;bundle-version="1.2.3", org.apache.shiro.web;bundle-version="1.2.2", org.apache.servicemix.bundles.ehcache;bundle-version="2.6.9", - org.apache.servicemix.bundles.scribe;bundle-version="1.3.3" + org.apache.servicemix.bundles.scribe;bundle-version="1.3.3", + com.sap.sse.common Web-ContextPath: /security Export-Package: com.sap.sse.security, com.sap.sse.security.shared diff --git a/java/com.sap.sse.security/src/com/sap/sse/security/SecurityService.java b/java/com.sap.sse.security/src/com/sap/sse/security/SecurityService.java index 0658164c420..cd9dd874888 100644 --- a/java/com.sap.sse.security/src/com/sap/sse/security/SecurityService.java +++ b/java/com.sap.sse.security/src/com/sap/sse/security/SecurityService.java @@ -23,6 +23,8 @@ public interface SecurityService { User getUserByName(String username); + User getUserByEmail(String email); + User getCurrentUser(); /** @@ -100,11 +102,13 @@ public interface SecurityService { */ boolean checkPassword(String username, String password) throws UserManagementException; + boolean checkPasswordResetSecret(String username, String passwordResetSecret) throws UserManagementException; + /** * Generates a new random password for the user identified by username and sends it * to the user's e-mail address. */ - void resetPassword(String username) throws UserManagementException; + void resetPassword(String username, String baseURL) throws UserManagementException, MailException; boolean validateEmail(String username, String validationSecret) throws UserManagementException; @@ -127,4 +131,5 @@ public interface SecurityService { * @return null if no preference for the user identified by username is found */ String getPreference(String username, String key); + } diff --git a/java/com.sap.sse.security/src/com/sap/sse/security/SecurityServiceImpl.java b/java/com.sap.sse.security/src/com/sap/sse/security/SecurityServiceImpl.java index aad99b46d7b..e86e0a219c2 100644 --- a/java/com.sap.sse.security/src/com/sap/sse/security/SecurityServiceImpl.java +++ b/java/com.sap.sse.security/src/com/sap/sse/security/SecurityServiceImpl.java @@ -8,7 +8,6 @@ import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import java.util.Properties; -import java.util.Random; import java.util.Set; import java.util.UUID; import java.util.logging.Level; @@ -64,6 +63,7 @@ import org.scribe.model.Token; import org.scribe.oauth.OAuthService; import com.google.gwt.user.server.rpc.RemoteServiceServlet; +import com.sap.sse.common.Util; import com.sap.sse.security.shared.Account.AccountType; import com.sap.sse.security.shared.DefaultRoles; import com.sap.sse.security.shared.MailException; @@ -161,7 +161,7 @@ public class SecurityServiceImpl extends RemoteServiceServlet implements Securit } @Override - public void resetPassword(final String username) throws UserManagementException { + public void resetPassword(final String username, String baseURL) throws UserManagementException, MailException { final User user = store.getUserByName(username); if (user == null) { throw new UserManagementException(UserManagementException.USER_DOES_NOT_EXIST); @@ -169,21 +169,31 @@ public class SecurityServiceImpl extends RemoteServiceServlet implements Securit if (!user.isEmailValidated()) { throw new UserManagementException(UserManagementException.CANNOT_RESET_PASSWORD_WITHOUT_VALIDATED_EMAIL); } - byte[] randomBytes = new byte[16]; - new Random().nextBytes(randomBytes); - final String newPassword = new Sha256Hash(randomBytes).toBase64(); - updateSimpleUserPassword(user, newPassword); - new Thread("sending new password to user "+username+" by e-mail") { - @Override public void run() { - try { - sendMail(username, "Password Reset", "Your new password for your username "+username+ - " is \n "+newPassword+"\nPlease change after next sign-in."); - } catch (MailException e) { - // TODO Auto-generated catch block - e.printStackTrace(); + final String passwordResetSecret = user.startPasswordReset(); + Map urlParameters = new HashMap<>(); + try { + urlParameters.put("u", URLEncoder.encode(user.getName(), "UTF-8")); + urlParameters.put("e", URLEncoder.encode(user.getEmail(), "UTF-8")); + urlParameters.put("s", URLEncoder.encode(passwordResetSecret, "UTF-8")); + final StringBuilder url = buildURL(baseURL, urlParameters); + new Thread("sending password reset e-mail to user " + username) { + @Override + public void run() { + try { + sendMail(user.getName(), "Password Reset", + "Please click on the link below to reset your password for user " + user.getName() + + ".\n " + url.toString()); + } catch (MailException e) { + logger.log(Level.SEVERE, "Error sending mail for password reset of user " + user.getName() + + " to address " + user.getEmail(), e); + } } - } - }.start(); + }.start(); + } catch (UnsupportedEncodingException e) { + logger.log(Level.SEVERE, + "Internal error: encoding UTF-8 not found. Couldn't send e-mail to user " + user.getName() + + " at e-mail address " + user.getEmail(), e); + } } @Override @@ -227,6 +237,11 @@ public class SecurityServiceImpl extends RemoteServiceServlet implements Securit return store.getUserByName(name); } + @Override + public User getUserByEmail(String email) { + return store.getUserByEmail(email); + } + @Override public User createSimpleUser(final String username, final String email, String password, final String validationBaseURL) throws UserManagementException, MailException { @@ -291,9 +306,18 @@ public class SecurityServiceImpl extends RemoteServiceServlet implements Securit } final UsernamePasswordAccount account = (UsernamePasswordAccount) user.getAccount(AccountType.USERNAME_PASSWORD); String hashedOldPassword = hashPassword(password, account.getSalt()); - return hashedOldPassword.equals(account.getSaltedPassword()); + return Util.equalsWithNull(hashedOldPassword, account.getSaltedPassword()); } + @Override + public boolean checkPasswordResetSecret(String username, String passwordResetSecret) throws UserManagementException { + final User user = store.getUserByName(username); + if (user == null) { + throw new UserManagementException(UserManagementException.USER_DOES_NOT_EXIST); + } + return Util.equalsWithNull(user.getPasswordResetSecret(), passwordResetSecret); + } + @Override public void updateSimpleUserEmail(final String username, final String newEmail, final String validationBaseURL) throws UserManagementException { final User user = store.getUserByName(username); @@ -331,7 +355,7 @@ public class SecurityServiceImpl extends RemoteServiceServlet implements Securit * {@link User#startEmailValidation() Triggers} e-mail validation for the user object and sends out a * URL to the user's e-mail that has the validation secret ready for validation by clicking. * - * @param baserURL + * @param baseURL * the URL under which the user can reach the e-mail validation service; this URL is required to assemble a * validation URL that is sent by e-mail to the user, to make the user return the validation secret * to the right server again. @@ -342,19 +366,7 @@ public class SecurityServiceImpl extends RemoteServiceServlet implements Securit Map urlParameters = new HashMap<>(); urlParameters.put("u", URLEncoder.encode(user.getName(), "UTF-8")); urlParameters.put("v", URLEncoder.encode(secret, "UTF-8")); - StringBuilder url = new StringBuilder(baseURL); - boolean first = !baseURL.contains("?"); - for (Map.Entry e : urlParameters.entrySet()) { - if (first) { - url.append('?'); - first = false; - } else { - url.append('&'); - } - url.append(e.getKey()); - url.append('='); - url.append(e.getValue()); - } + StringBuilder url = buildURL(baseURL, urlParameters); sendMail(user.getName(), "e-Mail Validation", "Please click on the link below to validate your e-mail address for user "+user.getName()+".\n "+url.toString()); } catch (UnsupportedEncodingException e) { @@ -364,6 +376,23 @@ public class SecurityServiceImpl extends RemoteServiceServlet implements Securit } } + public StringBuilder buildURL(String baseURL, Map urlParameters) { + StringBuilder url = new StringBuilder(baseURL); + boolean first = !baseURL.contains("?"); + for (Map.Entry e : urlParameters.entrySet()) { + if (first) { + url.append('?'); + first = false; + } else { + url.append('&'); + } + url.append(e.getKey()); + url.append('='); + url.append(e.getValue()); + } + return url; + } + protected String hashPassword(String password, Object salt) { return new Sha256Hash(password, salt, 1024).toBase64(); } diff --git a/java/com.sap.sse.security/src/com/sap/sse/security/UserStore.java b/java/com.sap.sse.security/src/com/sap/sse/security/UserStore.java index 7be0b069fc0..2d32efa5d85 100644 --- a/java/com.sap.sse.security/src/com/sap/sse/security/UserStore.java +++ b/java/com.sap.sse.security/src/com/sap/sse/security/UserStore.java @@ -16,6 +16,8 @@ public interface UserStore { User getUserByName(String name); + User getUserByEmail(String email); + User createUser(String name, String email, Account... accounts) throws UserManagementException; void updateUser(User user); From 73ca6562212b2e25e8326a3e13471647c6a4c12b Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Wed, 5 Nov 2014 16:56:43 +0100 Subject: [PATCH 11/50] two-step password reset works, fixing bug 2442 --- .../ui/client/component/UserDetailsView.java | 2 +- .../ui/editprofile/EditProfileEntryPoint.java | 29 ++++++++++--------- .../ui/server/UserManagementServiceImpl.java | 14 ++++----- .../src/main/resources/shiro.ini | 2 +- .../mongodb/impl/DomainObjectFactoryImpl.java | 3 +- .../userstore/mongodb/impl/FieldNames.java | 1 + .../mongodb/impl/MongoObjectFactoryImpl.java | 1 + .../sap/sse/security/SecurityServiceImpl.java | 1 + .../src/com/sap/sse/security/User.java | 12 ++++++-- java/target/configuration/security.properties | 11 +++++-- 10 files changed, 47 insertions(+), 29 deletions(-) diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/UserDetailsView.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/UserDetailsView.java index f488301bdac..f312e22c3ee 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/UserDetailsView.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/UserDetailsView.java @@ -142,7 +142,7 @@ public class UserDetailsView extends FlowPanel { emailLabel.setText(""); } else { usernameLabel.setText(user.getName()); - emailLabel.setText(user.getEmail()); + emailLabel.setText(user.getEmail()+(user.isEmailValidated()?" \u2713":"")); for (AccountDTO a : user.getAccounts()) { DecoratorPanel accountPanelDecorator = new DecoratorPanel(); FlowPanel accountPanelContent = new FlowPanel(); 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 67d6ff66df0..769ae0b771a 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 @@ -103,20 +103,23 @@ public class EditProfileEntryPoint implements EntryPoint { }).show(); } }); - userService.addUserStatusEventHandler(new UserStatusEventHandler() { - @Override - public void onUserStatusChange(UserDTO user) { - if (user == null) { - nameText.setText(""); - emailText.setText(""); - rolesLabel.setText(""); - } else { - nameText.setText(user.getName()); - emailText.setText(user.getEmail()); - rolesLabel.setText(user.getRoles().toString()); + // when a username is provided through the URL, don't update the user display based on the signed-in user + if (usernameFromURL == null) { + userService.addUserStatusEventHandler(new UserStatusEventHandler() { + @Override + public void onUserStatusChange(UserDTO user) { + if (user == null) { + nameText.setText(""); + emailText.setText(""); + rolesLabel.setText(""); + } else { + nameText.setText(user.getName()); + emailText.setText(user.getEmail()); + rolesLabel.setText(user.getRoles().toString()); + } } - } - }); + }); + } Label pwLabel = new Label(stringMessages.password()); fp.add(pwLabel); final PasswordTextBox pwText = new PasswordTextBox(); 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 71458c7c440..50a106325d3 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 @@ -143,14 +143,12 @@ public class UserManagementServiceImpl extends RemoteServiceServlet implements U @Override public void updateSimpleUserPassword(final String username, String oldPassword, String passwordResetSecret, String newPassword) throws UserManagementException { final Subject subject = SecurityUtils.getSubject(); - if (!subject.hasRole(DefaultRoles.ADMIN.getRolename())) { - // validate old password or password reset secret before proceeding - if ((oldPassword == null || !getSecurityService().checkPassword(username, oldPassword)) && - (passwordResetSecret == null || !getSecurityService().checkPasswordResetSecret(username, passwordResetSecret))) { - throw new UserManagementException(UserManagementException.INVALID_CREDENTIALS); - } - } - if (subject.hasRole(DefaultRoles.ADMIN.getRolename()) || username.equals(SessionUtils.loadUsername())) { + // the signed-in subject has role ADMIN + if (subject.hasRole(DefaultRoles.ADMIN.getRolename()) + // someone knew a username and the correct password for that user + || (oldPassword != null && getSecurityService().checkPassword(username, oldPassword)) + // someone provided the correct password reset secret for the correct username + || (passwordResetSecret != null && getSecurityService().checkPasswordResetSecret(username, passwordResetSecret))) { getSecurityService().updateSimpleUserPassword(username, newPassword); new Thread("sending updated password to user "+username+" by e-mail") { @Override public void run() { diff --git a/java/com.sap.sse.security.ui/src/main/resources/shiro.ini b/java/com.sap.sse.security.ui/src/main/resources/shiro.ini index 6eff61c2e37..7c0466025e0 100755 --- a/java/com.sap.sse.security.ui/src/main/resources/shiro.ini +++ b/java/com.sap.sse.security.ui/src/main/resources/shiro.ini @@ -37,4 +37,4 @@ securityManager.cacheManager = $cacheManager [urls] /Login.html = anon /UserManagement.html = authc,roles[admin] -/EditProfile.html = authc +/EditProfile.html = anon diff --git a/java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/impl/DomainObjectFactoryImpl.java b/java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/impl/DomainObjectFactoryImpl.java index dd2a9a0968c..9f42e95bb6b 100644 --- a/java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/impl/DomainObjectFactoryImpl.java +++ b/java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/impl/DomainObjectFactoryImpl.java @@ -69,6 +69,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { String name = (String) userDBObject.get(FieldNames.User.NAME.name()); String email = (String) userDBObject.get(FieldNames.User.EMAIL.name()); Boolean emailValidated = (Boolean) userDBObject.get(FieldNames.User.EMAIL_VALIDATED.name()); + String passwordResetSecret = (String) userDBObject.get(FieldNames.User.PASSWORD_RESET_SECRET.name()); String validationSecret = (String) userDBObject.get(FieldNames.User.VALIDATION_SECRET.name()); Set roles = new HashSet(); BasicDBList rolesO = (BasicDBList) userDBObject.get(FieldNames.User.ROLES.name()); @@ -79,7 +80,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { } DBObject accountsMap = (DBObject) userDBObject.get(FieldNames.User.ACCOUNTS.name()); Map accounts = createAccountMapFromdDBObject(accountsMap); - User result = new User(name, email, emailValidated==null?false:emailValidated, validationSecret, accounts.values()); + User result = new User(name, email, emailValidated==null?false:emailValidated, passwordResetSecret, validationSecret, accounts.values()); for (String role : roles) { result.addRole(role); } diff --git a/java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/impl/FieldNames.java b/java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/impl/FieldNames.java index bddb28be6dd..d0c33505fe4 100644 --- a/java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/impl/FieldNames.java +++ b/java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/impl/FieldNames.java @@ -8,6 +8,7 @@ public class FieldNames { ACCOUNTS, ROLES, EMAIL_VALIDATED, + PASSWORD_RESET_SECRET, VALIDATION_SECRET; } diff --git a/java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/impl/MongoObjectFactoryImpl.java b/java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/impl/MongoObjectFactoryImpl.java index 252f7d3d61e..da9fab70fd7 100644 --- a/java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/impl/MongoObjectFactoryImpl.java +++ b/java/com.sap.sse.security.userstore.mongodb/src/com/sap/sse/security/userstore/mongodb/impl/MongoObjectFactoryImpl.java @@ -36,6 +36,7 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { dbUser.put(FieldNames.User.NAME.name(), user.getName()); dbUser.put(FieldNames.User.EMAIL.name(), user.getEmail()); dbUser.put(FieldNames.User.EMAIL_VALIDATED.name(), user.isEmailValidated()); + dbUser.put(FieldNames.User.PASSWORD_RESET_SECRET.name(), user.getPasswordResetSecret()); dbUser.put(FieldNames.User.VALIDATION_SECRET.name(), user.getValidationSecret()); dbUser.put(FieldNames.User.ACCOUNTS.name(), createAccountMapObject(user.getAllAccounts())); dbUser.put(FieldNames.User.ROLES.name(), user.getRoles()); diff --git a/java/com.sap.sse.security/src/com/sap/sse/security/SecurityServiceImpl.java b/java/com.sap.sse.security/src/com/sap/sse/security/SecurityServiceImpl.java index e86e0a219c2..7ca9242396b 100644 --- a/java/com.sap.sse.security/src/com/sap/sse/security/SecurityServiceImpl.java +++ b/java/com.sap.sse.security/src/com/sap/sse/security/SecurityServiceImpl.java @@ -295,6 +295,7 @@ public class SecurityServiceImpl extends RemoteServiceServlet implements Securit String hashedPasswordBase64 = hashPassword(newPassword, salt); account.setSalt(salt); account.setSaltedPassword(hashedPasswordBase64); + user.passwordWasReset(); store.updateUser(user); } diff --git a/java/com.sap.sse.security/src/com/sap/sse/security/User.java b/java/com.sap.sse.security/src/com/sap/sse/security/User.java index 2fe0fe7fddc..1c58c276849 100644 --- a/java/com.sap.sse.security/src/com/sap/sse/security/User.java +++ b/java/com.sap.sse.security/src/com/sap/sse/security/User.java @@ -46,15 +46,16 @@ public class User { } public User(String name, String email, Collection accounts) { - this(name, email, /* is email validated */ false, /* validation secret */ null, accounts); + this(name, email, /* is email validated */ false, /* password reset secret */ null, /* validation secret */ null, accounts); } - public User(String name, String email, Boolean emailValidated, String validationSecret, + public User(String name, String email, Boolean emailValidated, String passwordResetSecret, String validationSecret, Collection accounts) { super(); this.name = name; this.roles = new HashSet<>(); this.email = email; + this.passwordResetSecret = passwordResetSecret; this.validationSecret = validationSecret; this.emailValidated = emailValidated; this.accounts = new HashMap<>(); @@ -164,6 +165,13 @@ public class User { } return result; } + + /** + * Clears the {@link #passwordResetSecret}. + */ + public void passwordWasReset() { + passwordResetSecret = null; + } public boolean isEmailValidated() { return emailValidated; diff --git a/java/target/configuration/security.properties b/java/target/configuration/security.properties index d28061a9fe4..b0b761aad35 100644 --- a/java/target/configuration/security.properties +++ b/java/target/configuration/security.properties @@ -1,9 +1,14 @@ # mail configuration, e.g., for password recovery mail.enabled = false -mail.from = noreply@sapsailing.com +# For production: +#mail.from = noreply@sapsailing.com +# For testing: +mail.from = axel.uhl@sap.com mail.transport.protocol = smtp -#mail.smtp.host = mail.sap.corp -mail.smtp.host = 127.0.0.1 +# For production: +#mail.smtp.host = 127.0.0.1 +# For testing: +mail.smtp.host = mail.sap.corp mail.smtp.port = 25 mail.smtp.auth = true mail.smtp.user = From af644303f161564ec26c53af165ac1dc00f0e76b Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Wed, 5 Nov 2014 17:07:40 +0100 Subject: [PATCH 12/50] fixed selection style for Selenium tests --- .../src/com/sap/sailing/selenium/pages/gwt/CellTablePO.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/gwt/CellTablePO.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/gwt/CellTablePO.java index 4d2becf4f06..47feef3dc0e 100644 --- a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/gwt/CellTablePO.java +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/gwt/CellTablePO.java @@ -51,7 +51,7 @@ public abstract class CellTablePO extends PageArea { private static final String LOADING_ANIMATION_XPATH = "./td/div/div/div/img"; - protected static final String SELECTED_ROW_CSS_CLASS = "GDXNS0KDCQ"; //$NON-NLS-1$ + protected static final String SELECTED_ROW_CSS_CLASS = "GICBSJYCCQ"; //$NON-NLS-1$ private static final String LOADING_ANIMATION_IMAGE = "data:image/gif;base64," + //$NON-NLS-1$ "R0lGODlhKwALAPEAAP///0tKSqampktKSiH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGx" + //$NON-NLS-1$ From b0fafcf723ba1179c3eb8403f05039f70ae0b724 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Wed, 5 Nov 2014 18:05:02 +0100 Subject: [PATCH 13/50] store clearing of password reset secret once the user has changed the password --- .../src/main/resources/shiro.ini | 3 +- .../component/ForgotPasswordDialog.java | 52 +++++++++++++++++++ .../sap/sse/security/ui/login/LoginView.java | 45 +--------------- .../security/ui/loginpanel/LoginPanel.java | 8 ++- .../security/ui/loginpanel/SignInDialog.java | 20 ++++++- .../sap/sse/security/SecurityServiceImpl.java | 1 + java/target/configuration/security.properties | 4 +- 7 files changed, 83 insertions(+), 50 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/resources/shiro.ini b/java/com.sap.sailing.gwt.ui/src/main/resources/shiro.ini index a0c8e232fed..2958f1e5360 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/resources/shiro.ini +++ b/java/com.sap.sailing.gwt.ui/src/main/resources/shiro.ini @@ -46,4 +46,5 @@ securityManager.cacheManager = $cacheManager /security/ui/UserManagement.html = authc,roles[admin] /LeaderboardEditing.html = authc,anyofroles[admin,eventmanager] -/AdminConsole.html = authc,anyofroles[admin,eventmanager] +# The admin console displays its features based on the user's roles +/AdminConsole.html = authc diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/ForgotPasswordDialog.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/ForgotPasswordDialog.java index f7cb9024a75..e24b77d6211 100755 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/ForgotPasswordDialog.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/component/ForgotPasswordDialog.java @@ -1,8 +1,15 @@ package com.sap.sse.security.ui.client.component; +import java.util.HashMap; + +import com.google.gwt.user.client.Window; +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.google.gwt.user.client.ui.Widget; +import com.sap.sse.gwt.client.async.MarkedAsyncCallback; +import com.sap.sse.security.shared.UserManagementException; +import com.sap.sse.security.ui.client.EntryPointLinkFactory; import com.sap.sse.security.ui.client.i18n.StringMessages; import com.sap.sse.security.ui.shared.UserDTO; import com.sap.sse.security.ui.shared.UserManagementServiceAsync; @@ -13,6 +20,51 @@ public class ForgotPasswordDialog extends AbstractUserDialog { super(stringMessages, stringMessages.forgotPassword(), stringMessages.enterUsernameOrEmail(), userManagementService, user, /* validator */ null, callback); } + + /** + * Uses a default callback handler that triggers {@link UserManagementServiceAsync#resetPassword(String, String, String, AsyncCallback)} when + * the user confirms the dialog. + */ + public ForgotPasswordDialog(final StringMessages stringMessages, final UserManagementServiceAsync userManagementService, UserDTO user) { + this(stringMessages, userManagementService, user, new DialogCallback() { + @Override + public void ok(final UserData userData) { + userManagementService.resetPassword(userData.getUsername(), userData.getEmail(), + EntryPointLinkFactory.createPasswordResetLink(new HashMap()), + new MarkedAsyncCallback(new AsyncCallback() { + @Override + public void onFailure(Throwable caught) { + if (caught instanceof UserManagementException) { + if (UserManagementException.CANNOT_RESET_PASSWORD_WITHOUT_VALIDATED_EMAIL.equals(caught.getMessage())) { + Window.alert(StringMessages.INSTANCE.cannotResetPasswordWithoutValidatedEmail(userData.getUsername())); + } else { + Window.alert(StringMessages.INSTANCE.errorDuringPasswordReset(caught.getMessage())); + } + } else { + Window.alert(StringMessages.INSTANCE.errorDuringPasswordReset(caught.getMessage())); + } + } + + @Override + public void onSuccess(Void result) { + final StringBuilder nameOrEmail = new StringBuilder(); + if (userData.getUsername() != null && !userData.getUsername().isEmpty()) { + nameOrEmail.append(userData.getUsername()); + } + if (userData.getEmail() != null && !userData.getEmail().isEmpty()) { + if (nameOrEmail.length() > 0) { + nameOrEmail.append(" / "); + } + nameOrEmail.append(userData.getEmail()); + } + Window.alert(StringMessages.INSTANCE.passwordResetLinkSent(nameOrEmail.toString())); + } + })); + } + + @Override public void cancel() {} + }); + } @Override protected Widget getAdditionalWidget() { diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java index 961b75e4ef8..4bb767a663f 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java @@ -1,7 +1,6 @@ package com.sap.sse.security.ui.login; import java.util.Collections; -import java.util.HashMap; import com.google.gwt.core.client.GWT; import com.google.gwt.event.dom.client.ClickEvent; @@ -16,12 +15,8 @@ import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.HTMLPanel; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.Widget; -import com.sap.sse.gwt.client.async.MarkedAsyncCallback; -import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; -import com.sap.sse.security.shared.UserManagementException; import com.sap.sse.security.ui.client.EntryPointLinkFactory; import com.sap.sse.security.ui.client.UserService; -import com.sap.sse.security.ui.client.component.AbstractUserDialog.UserData; import com.sap.sse.security.ui.client.component.ForgotPasswordDialog; import com.sap.sse.security.ui.client.i18n.StringMessages; import com.sap.sse.security.ui.client.shared.oauthlogin.OAuthLogin; @@ -88,44 +83,6 @@ public class LoginView extends Composite { @UiHandler("forgotPasswordAnchor") void forgotPasswordClicked(ClickEvent e) { - new ForgotPasswordDialog(StringMessages.INSTANCE, userManagementService, userService.getCurrentUser(), new DialogCallback() { - @Override - public void ok(final UserData userData) { - userManagementService.resetPassword(userData.getUsername(), userData.getEmail(), - EntryPointLinkFactory.createPasswordResetLink(new HashMap()), - new MarkedAsyncCallback(new AsyncCallback() { - @Override - public void onFailure(Throwable caught) { - if (caught instanceof UserManagementException) { - if (UserManagementException.CANNOT_RESET_PASSWORD_WITHOUT_VALIDATED_EMAIL.equals(caught.getMessage())) { - Window.alert(StringMessages.INSTANCE.cannotResetPasswordWithoutValidatedEmail(userNameTextBox.getText())); - } else { - Window.alert(StringMessages.INSTANCE.errorDuringPasswordReset(caught.getMessage())); - } - } else { - Window.alert(StringMessages.INSTANCE.errorDuringPasswordReset(caught.getMessage())); - } - } - - @Override - public void onSuccess(Void result) { - final StringBuilder nameOrEmail = new StringBuilder(); - if (userData.getUsername() != null && !userData.getUsername().isEmpty()) { - nameOrEmail.append(userData.getUsername()); - } - if (userData.getEmail() != null && !userData.getEmail().isEmpty()) { - if (nameOrEmail.length() > 0) { - nameOrEmail.append(" / "); - } - nameOrEmail.append(userData.getEmail()); - } - Window.alert(StringMessages.INSTANCE.passwordResetLinkSent(nameOrEmail.toString())); - } - })); - } - - @Override public void cancel() {} - }).show(); - + new ForgotPasswordDialog(StringMessages.INSTANCE, userManagementService, userService.getCurrentUser()).show(); } } 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 e6bc6fd9ba1..d866e03b396 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 @@ -50,7 +50,7 @@ public class LoginPanel extends HorizontalPanel implements UserStatusEventHandle signInLink.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { - final SignInDialog signInDialog = new SignInDialog(stringMessages, userManagementService, new DialogCallback() { + final SignInDialog signInDialog = new SignInDialog(stringMessages, userManagementService, userService, new DialogCallback() { @Override public void ok(UserData userData) { userService.login(userData.getUsername(), userData.getPassword(), new MarkedAsyncCallback(new AsyncCallback() { @@ -58,7 +58,11 @@ public class LoginPanel extends HorizontalPanel implements UserStatusEventHandle public void onFailure(Throwable caught) { Window.alert(stringMessages.invalidCredentials()); } - @Override public void onSuccess(SuccessInfo result) {} + @Override public void onSuccess(SuccessInfo result) { + if (!result.isSuccessful()) { + Window.alert(stringMessages.invalidCredentials()); + } + } })); } @Override public void cancel() {} diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/loginpanel/SignInDialog.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/loginpanel/SignInDialog.java index 7adefa261ce..f7837a7a67a 100755 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/loginpanel/SignInDialog.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/loginpanel/SignInDialog.java @@ -1,26 +1,42 @@ package com.sap.sse.security.ui.loginpanel; +import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.event.dom.client.ClickHandler; +import com.google.gwt.user.client.ui.Anchor; 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.sse.security.ui.client.UserService; import com.sap.sse.security.ui.client.component.AbstractUserDialog; +import com.sap.sse.security.ui.client.component.ForgotPasswordDialog; import com.sap.sse.security.ui.client.i18n.StringMessages; import com.sap.sse.security.ui.client.shared.oauthlogin.OAuthLogin; import com.sap.sse.security.ui.shared.UserManagementServiceAsync; public class SignInDialog extends AbstractUserDialog { - public SignInDialog(StringMessages stringMessages, UserManagementServiceAsync userManagementService, DialogCallback callback) { + private final UserService userService; + + public SignInDialog(StringMessages stringMessages, UserManagementServiceAsync userManagementService, UserService userService, DialogCallback callback) { super(stringMessages, stringMessages.signIn(), stringMessages.signIn(), userManagementService, /* user */ null, /* validator */ null, callback); + this.userService = userService; } @Override protected Widget getAdditionalWidget() { - Grid result = new Grid(3, 2); + Grid result = new Grid(4, 2); result.setWidget(0, 0, new Label(getStringMessages().username())); result.setWidget(0, 1, getNameBox()); result.setWidget(1, 0, new Label(getStringMessages().password())); result.setWidget(1, 1, getPwBox()); result.setWidget(2, 0, new OAuthLogin(getUserManagementService())); + Anchor forgotPassword = new Anchor(getStringMessages().forgotPassword()); + result.setWidget(3, 0, forgotPassword); + forgotPassword.addClickHandler(new ClickHandler() { + @Override + public void onClick(ClickEvent event) { + new ForgotPasswordDialog(StringMessages.INSTANCE, getUserManagementService(), userService.getCurrentUser()).show(); + } + }); return result; } } diff --git a/java/com.sap.sse.security/src/com/sap/sse/security/SecurityServiceImpl.java b/java/com.sap.sse.security/src/com/sap/sse/security/SecurityServiceImpl.java index 7ca9242396b..34f8d5b8952 100644 --- a/java/com.sap.sse.security/src/com/sap/sse/security/SecurityServiceImpl.java +++ b/java/com.sap.sse.security/src/com/sap/sse/security/SecurityServiceImpl.java @@ -170,6 +170,7 @@ public class SecurityServiceImpl extends RemoteServiceServlet implements Securit throw new UserManagementException(UserManagementException.CANNOT_RESET_PASSWORD_WITHOUT_VALIDATED_EMAIL); } final String passwordResetSecret = user.startPasswordReset(); + store.updateUser(user); // durably storing the password reset secret Map urlParameters = new HashMap<>(); try { urlParameters.put("u", URLEncoder.encode(user.getName(), "UTF-8")); diff --git a/java/target/configuration/security.properties b/java/target/configuration/security.properties index b0b761aad35..9300c46c3aa 100644 --- a/java/target/configuration/security.properties +++ b/java/target/configuration/security.properties @@ -7,8 +7,10 @@ mail.from = axel.uhl@sap.com mail.transport.protocol = smtp # For production: #mail.smtp.host = 127.0.0.1 -# For testing: +# For testing internally: mail.smtp.host = mail.sap.corp +# For testing externally: +#mail.smtp.host = sapsailing.com mail.smtp.port = 25 mail.smtp.auth = true mail.smtp.user = From 0f05c0038401397a74a16559c09920103522fd03 Mon Sep 17 00:00:00 2001 From: fmittag Date: Wed, 5 Nov 2014 18:06:34 +0100 Subject: [PATCH 14/50] bind enter key to login button in login page --- .../src/main/java/com/sap/sse/security/ui/login/LoginView.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java index 961b75e4ef8..d107f92043c 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java @@ -18,6 +18,7 @@ import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.Widget; import com.sap.sse.gwt.client.async.MarkedAsyncCallback; import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; +import com.sap.sse.gwt.client.dialog.DialogUtils; import com.sap.sse.security.shared.UserManagementException; import com.sap.sse.security.ui.client.EntryPointLinkFactory; import com.sap.sse.security.ui.client.UserService; @@ -57,6 +58,8 @@ public class LoginView extends Composite { signUpAnchor.setHref(registrationLink); oAuthPanel.add(new OAuthLogin(userManagementService)); userNameTextBox.setFocus(true); + + DialogUtils.linkEnterToButton(loginButton, userNameTextBox, passwordTextBox); } @UiHandler("loginButton") From 7edf6b78f8e73476d85c1873a73957814a6c530b Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Wed, 5 Nov 2014 18:13:49 +0100 Subject: [PATCH 15/50] whitespace change only --- .../src/main/java/com/sap/sse/security/ui/login/LoginView.java | 1 - 1 file changed, 1 deletion(-) diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java index a1fcf089277..09a774f76a1 100755 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java @@ -53,7 +53,6 @@ public class LoginView extends Composite { signUpAnchor.setHref(registrationLink); oAuthPanel.add(new OAuthLogin(userManagementService)); userNameTextBox.setFocus(true); - DialogUtils.linkEnterToButton(loginButton, userNameTextBox, passwordTextBox); } From 680ef212075b70325b7403815650caf6b0c7f85e Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Wed, 5 Nov 2014 20:24:01 +0100 Subject: [PATCH 16/50] fixed UTF-8 encoding for german StringMessages in security bundle --- .../.settings/org.eclipse.core.resources.prefs | 2 ++ 1 file changed, 2 insertions(+) create mode 100755 java/com.sap.sse.security.ui/.settings/org.eclipse.core.resources.prefs diff --git a/java/com.sap.sse.security.ui/.settings/org.eclipse.core.resources.prefs b/java/com.sap.sse.security.ui/.settings/org.eclipse.core.resources.prefs new file mode 100755 index 00000000000..db751d38ff8 --- /dev/null +++ b/java/com.sap.sse.security.ui/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding//src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_de.properties=UTF-8 From 6299c81dda940b930f4737235d51b9e019870a38 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Thu, 6 Nov 2014 09:47:51 +0100 Subject: [PATCH 17/50] added validation-api to GWT projects' pom.xml to avoid warning regarding SimpleBeanEditorDriverGenerator --- java/com.sap.sailing.gwt.ui/pom.xml | 25 ++++++++++----- java/com.sap.sse.security.ui/pom.xml | 47 +++++++++++++++++----------- 2 files changed, 47 insertions(+), 25 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/pom.xml b/java/com.sap.sailing.gwt.ui/pom.xml index 0e23255133e..3fe626c8a82 100644 --- a/java/com.sap.sailing.gwt.ui/pom.xml +++ b/java/com.sap.sailing.gwt.ui/pom.xml @@ -23,17 +23,28 @@ + + javax.validation + validation-api + 1.0.0.GA + + + javax.validation + validation-api + 1.0.0.GA + sources + - com.github.branflake2267 - gwt-maps-api - 3.9.0-build-17 + com.github.branflake2267 + gwt-maps-api + 3.9.0-build-17 provided - - org.moxieapps.gwt - org.moxieapps.gwt.highcharts - 1.6.0-SNAPSHOT + + org.moxieapps.gwt + org.moxieapps.gwt.highcharts + 1.6.0-SNAPSHOT sources diff --git a/java/com.sap.sse.security.ui/pom.xml b/java/com.sap.sse.security.ui/pom.xml index 70fd5ab79a5..d492cf028c4 100644 --- a/java/com.sap.sse.security.ui/pom.xml +++ b/java/com.sap.sse.security.ui/pom.xml @@ -11,24 +11,35 @@ com.sap.sse.security.ui eclipse-plugin - - com.sap.sailing - com.sap.sse.common - 1.0.0-SNAPSHOT - sources - - - com.sap.sailing - com.sap.sse.gwt - 1.0.0-SNAPSHOT - sources - - - com.sap.sailing - com.sap.sse.security - 1.0.0-SNAPSHOT - sources - + + javax.validation + validation-api + 1.0.0.GA + + + javax.validation + validation-api + 1.0.0.GA + sources + + + com.sap.sailing + com.sap.sse.common + 1.0.0-SNAPSHOT + sources + + + com.sap.sailing + com.sap.sse.gwt + 1.0.0-SNAPSHOT + sources + + + com.sap.sailing + com.sap.sse.security + 1.0.0-SNAPSHOT + sources + From b8737e8225b12664f2fb785079b68822d6880d69 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Thu, 6 Nov 2014 10:06:05 +0100 Subject: [PATCH 18/50] enable spatialWind by default; to turn it off, -DspatialWind=false is now required --- .../common/confidence/impl/PositionAndTimePointWeigher.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/confidence/impl/PositionAndTimePointWeigher.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/confidence/impl/PositionAndTimePointWeigher.java index 73abdd3c034..1af891c679b 100755 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/confidence/impl/PositionAndTimePointWeigher.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/confidence/impl/PositionAndTimePointWeigher.java @@ -28,7 +28,7 @@ public class PositionAndTimePointWeigher implements Weigher Date: Thu, 6 Nov 2014 10:29:24 +0100 Subject: [PATCH 19/50] added i18n for server communication error message --- .../sap/sailing/gwt/ui/client/AbstractEntryPoint.java | 9 +-------- .../com/sap/sailing/gwt/ui/client/StringMessages.java | 1 + .../sap/sailing/gwt/ui/client/StringMessages.properties | 1 + .../sailing/gwt/ui/client/StringMessages_de.properties | 3 ++- .../sailing/gwt/ui/client/StringMessages_ru.properties | 3 ++- 5 files changed, 7 insertions(+), 10 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/AbstractEntryPoint.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/AbstractEntryPoint.java index 90a7cf8cd27..716117db96f 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/AbstractEntryPoint.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/AbstractEntryPoint.java @@ -25,13 +25,6 @@ public abstract class AbstractEntryPoint extends com.sap.sse.gwt.client.Abstract private UserService userService; private UserManagementServiceAsync userManagementService; - /** - * The message displayed to the user when the server cannot be reached or - * returns an error. - */ - private static final String SERVER_ERROR = "An error occurred while " //$NON-NLS-1$ - + "attempting to contact the server. Please check your network " + "connection and try again."; //$NON-NLS-1$ //$NON-NLS-2$ - protected void doOnModuleLoad() { super.doOnModuleLoad(); userManagementService = GWT.create(UserManagementService.class); @@ -55,7 +48,7 @@ public abstract class AbstractEntryPoint extends com.sap.sse.gwt.client.Abstract public void reportError(String message) { errorDialogBox.setText(message); serverResponseLabel.addStyleName("serverResponseLabelError"); //$NON-NLS-1$ - serverResponseLabel.setHTML(SERVER_ERROR); + serverResponseLabel.setHTML(stringMessages.serverError()); errorDialogBox.center(); dialogCloseButton.setFocus(true); } 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 3e6689d048c..8290e9c2f27 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 @@ -1106,4 +1106,5 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages { String enterRaceName(); String enterCourseName(); String scoringSchemeHighPointFirstGetsTenOrEightDescription(); + String serverError(); } 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 f94e3ea0b74..780a9a438c0 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 @@ -1088,3 +1088,4 @@ enterVideoURL=Enter video URL... enterSponsorImageURL=Enter sponsor image URL... enterRaceName=Enter race name... scoringSchemeHighPointFirstGetsTenOrEightDescription=Score in points. Winner scores 10 points, 2nd - 9 points, ..., boats coming 10th and after score 1 point each. A tie is broken in favour of the competitor having won most races, if tie remains then tie is broken by the rank in the last race scored. +serverError=An error occurred while attempting to contact the server. Please check your network connection and try again. \ 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 df27fbe613c..6a51e9de3dc 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 @@ -1081,4 +1081,5 @@ enterImageURL=Bild-URL eingeben... enterVideoURL=Video-URL eingeben... enterSponsorImageURL=Sponsorbild-URL eingeben... enterRaceName=Wettfahrtnamen eingeben... -scoringSchemeHighPointFirstGetsTenOrEightDescription=High Point System, der Gewinner erhält 10 Punkte, der Zweite 8 und so weiter. Die Plätze 10 und tiefer erhalten einen Punkt. \ No newline at end of file +scoringSchemeHighPointFirstGetsTenOrEightDescription=High Point System, der Gewinner erhält 10 Punkte, der Zweite 8 und so weiter. Die Plätze 10 und tiefer erhalten einen Punkt. +serverError=Es ist ein Fehler beim Versuch aufgetreten, den Server zu kontaktieren. Bitte Netzwerkverbindung prüfen und erneut versuchen. \ 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_ru.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ru.properties index 2f195aad1e8..e2c08c67f84 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ru.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ru.properties @@ -1030,4 +1030,5 @@ enterImageURL=Enter image URL... enterVideoURL=Enter video URL... enterSponsorImageURL=Enter sponsor image URL... enterRaceName=Enter race name... -scoringSchemeHighPointFirstGetsTenOrEightDescription=Score in points. Winner scores 10 points, 2nd - 9 points, ..., boats coming 10th and after score 1 point each. A tie is broken in favour of the competitor having won most races, if tie remains then tie is broken by the rank in the last race scored. \ No newline at end of file +scoringSchemeHighPointFirstGetsTenOrEightDescription=Score in points. Winner scores 10 points, 2nd - 9 points, ..., boats coming 10th and after score 1 point each. A tie is broken in favour of the competitor having won most races, if tie remains then tie is broken by the rank in the last race scored. +serverError=An error occurred while attempting to contact the server. Please check your network connection and try again. \ No newline at end of file From 08040f6e781bf2ab2654f413167c0e7db4212bc9 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Thu, 6 Nov 2014 11:00:51 +0100 Subject: [PATCH 20/50] removed obsolete Search sample entry point from com.sap.sailing.gwt.ui --- .../com.google.gwt.eclipse.core.prefs | 2 +- java/com.sap.sailing.gwt.ui/Search.html | 50 ---------- java/com.sap.sailing.gwt.ui/build.properties | 3 +- java/com.sap.sailing.gwt.ui/pom.xml | 1 - .../ui/client/search/SearchEntryPoint.java | 91 ------------------- .../gwt/ui/raceboard/RaceBoardEntryPoint.java | 2 +- 6 files changed, 3 insertions(+), 146 deletions(-) delete mode 100755 java/com.sap.sailing.gwt.ui/Search.html delete mode 100755 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/search/SearchEntryPoint.java diff --git a/java/com.sap.sailing.gwt.ui/.settings/com.google.gwt.eclipse.core.prefs b/java/com.sap.sailing.gwt.ui/.settings/com.google.gwt.eclipse.core.prefs index 9b309b0ce6b..26a2212e792 100755 --- a/java/com.sap.sailing.gwt.ui/.settings/com.google.gwt.eclipse.core.prefs +++ b/java/com.sap.sailing.gwt.ui/.settings/com.google.gwt.eclipse.core.prefs @@ -1,4 +1,4 @@ eclipse.preferences.version=1 entryPointModules= filesCopiedToWebInfLib=gwt-servlet.jar -gwtCompileSettings=PGd3dC1jb21waWxlLXNldHRpbmdzPjxsb2ctbGV2ZWw+SU5GTzwvbG9nLWxldmVsPjxvdXRwdXQtc3R5bGU+T0JGVVNDQVRFRDwvb3V0cHV0LXN0eWxlPjxleHRyYS1hcmdzPjwhW0NEQVRBWy13YXIgLiAtbG9jYWxXb3JrZXJzIDMgLXN0cmljdCAtbG9nTGV2ZWwgVFJBQ0VdXT48L2V4dHJhLWFyZ3M+PHZtLWFyZ3M+PCFbQ0RBVEFbLVhteDIwMjRtIC1EZ3d0LnVzZWFyY2hpdmVzPWZhbHNlXV0+PC92bS1hcmdzPjxlbnRyeS1wb2ludC1tb2R1bGU+Y29tLnNhcC5zYWlsaW5nLmd3dC51aS5TaW11bGF0b3I8L2VudHJ5LXBvaW50LW1vZHVsZT48ZW50cnktcG9pbnQtbW9kdWxlPmNvbS5zYXAuc2FpbGluZy5nd3QudWkuTGVhZGVyYm9hcmQ8L2VudHJ5LXBvaW50LW1vZHVsZT48ZW50cnktcG9pbnQtbW9kdWxlPmNvbS5zYXAuc2FpbGluZy5nd3QudWkuUG9sYXJTaGVldHM8L2VudHJ5LXBvaW50LW1vZHVsZT48ZW50cnktcG9pbnQtbW9kdWxlPmNvbS5zYXAuc2FpbGluZy5nd3QudWkuVmlkZW9Qb3B1cDwvZW50cnktcG9pbnQtbW9kdWxlPjxlbnRyeS1wb2ludC1tb2R1bGU+Y29tLnNhcC5zYWlsaW5nLmd3dC51aS5SZWdhdHRhT3ZlcnZpZXc8L2VudHJ5LXBvaW50LW1vZHVsZT48ZW50cnktcG9pbnQtbW9kdWxlPmNvbS5zYXAuc2FpbGluZy5nd3QudWkuU3BlY3RhdG9yPC9lbnRyeS1wb2ludC1tb2R1bGU+PGVudHJ5LXBvaW50LW1vZHVsZT5jb20uc2FwLnNhaWxpbmcuZ3d0LnVpLlR2VmlldzwvZW50cnktcG9pbnQtbW9kdWxlPjxlbnRyeS1wb2ludC1tb2R1bGU+Y29tLnNhcC5zYWlsaW5nLmd3dC51aS5Vc2VyTWFuYWdlbWVudDwvZW50cnktcG9pbnQtbW9kdWxlPjxlbnRyeS1wb2ludC1tb2R1bGU+Y29tLnNhcC5zYWlsaW5nLmd3dC51aS5TZWFyY2g8L2VudHJ5LXBvaW50LW1vZHVsZT48ZW50cnktcG9pbnQtbW9kdWxlPmNvbS5zYXAuc2FpbGluZy5nd3QudWkuQWRtaW5Db25zb2xlPC9lbnRyeS1wb2ludC1tb2R1bGU+PGVudHJ5LXBvaW50LW1vZHVsZT5jb20uc2FwLnNhaWxpbmcuZ3d0LnVpLkxlYWRlcmJvYXJkRWRpdGluZzwvZW50cnktcG9pbnQtbW9kdWxlPjxlbnRyeS1wb2ludC1tb2R1bGU+Y29tLnNhcC5zYWlsaW5nLmd3dC51aS5Zb3V0dWJlUG9wdXA8L2VudHJ5LXBvaW50LW1vZHVsZT48ZW50cnktcG9pbnQtbW9kdWxlPmNvbS5zYXAuc2FpbGluZy5nd3QudWkuRGF0YU1pbmluZzwvZW50cnktcG9pbnQtbW9kdWxlPjxlbnRyeS1wb2ludC1tb2R1bGU+Y29tLnNhcC5zYWlsaW5nLmd3dC5Ib21lPC9lbnRyeS1wb2ludC1tb2R1bGU+PGVudHJ5LXBvaW50LW1vZHVsZT5jb20uc2FwLnNhaWxpbmcuZ3d0LnVpLlJhY2VCb2FyZDwvZW50cnktcG9pbnQtbW9kdWxlPjxlbnRyeS1wb2ludC1tb2R1bGU+Y29tLnNhcC5zYWlsaW5nLmd3dC5BdXRvUGxheTwvZW50cnktcG9pbnQtbW9kdWxlPjwvZ3d0LWNvbXBpbGUtc2V0dGluZ3M+ +gwtCompileSettings=PGd3dC1jb21waWxlLXNldHRpbmdzPjxsb2ctbGV2ZWw+SU5GTzwvbG9nLWxldmVsPjxvdXRwdXQtc3R5bGU+T0JGVVNDQVRFRDwvb3V0cHV0LXN0eWxlPjxleHRyYS1hcmdzPjwhW0NEQVRBWy13YXIgLiAtbG9jYWxXb3JrZXJzIDMgLXN0cmljdCAtbG9nTGV2ZWwgVFJBQ0VdXT48L2V4dHJhLWFyZ3M+PHZtLWFyZ3M+PCFbQ0RBVEFbLVhteDIwMjRtIC1EZ3d0LnVzZWFyY2hpdmVzPWZhbHNlXV0+PC92bS1hcmdzPjxlbnRyeS1wb2ludC1tb2R1bGU+Y29tLnNhcC5zYWlsaW5nLmd3dC51aS5TaW11bGF0b3I8L2VudHJ5LXBvaW50LW1vZHVsZT48ZW50cnktcG9pbnQtbW9kdWxlPmNvbS5zYXAuc2FpbGluZy5nd3QudWkuTGVhZGVyYm9hcmQ8L2VudHJ5LXBvaW50LW1vZHVsZT48ZW50cnktcG9pbnQtbW9kdWxlPmNvbS5zYXAuc2FpbGluZy5nd3QudWkuUG9sYXJTaGVldHM8L2VudHJ5LXBvaW50LW1vZHVsZT48ZW50cnktcG9pbnQtbW9kdWxlPmNvbS5zYXAuc2FpbGluZy5nd3QudWkuVmlkZW9Qb3B1cDwvZW50cnktcG9pbnQtbW9kdWxlPjxlbnRyeS1wb2ludC1tb2R1bGU+Y29tLnNhcC5zYWlsaW5nLmd3dC51aS5SZWdhdHRhT3ZlcnZpZXc8L2VudHJ5LXBvaW50LW1vZHVsZT48ZW50cnktcG9pbnQtbW9kdWxlPmNvbS5zYXAuc2FpbGluZy5nd3QudWkuU3BlY3RhdG9yPC9lbnRyeS1wb2ludC1tb2R1bGU+PGVudHJ5LXBvaW50LW1vZHVsZT5jb20uc2FwLnNhaWxpbmcuZ3d0LnVpLlR2VmlldzwvZW50cnktcG9pbnQtbW9kdWxlPjxlbnRyeS1wb2ludC1tb2R1bGU+Y29tLnNhcC5zYWlsaW5nLmd3dC51aS5Vc2VyTWFuYWdlbWVudDwvZW50cnktcG9pbnQtbW9kdWxlPjxlbnRyeS1wb2ludC1tb2R1bGU+Y29tLnNhcC5zYWlsaW5nLmd3dC51aS5BZG1pbkNvbnNvbGU8L2VudHJ5LXBvaW50LW1vZHVsZT48ZW50cnktcG9pbnQtbW9kdWxlPmNvbS5zYXAuc2FpbGluZy5nd3QudWkuTGVhZGVyYm9hcmRFZGl0aW5nPC9lbnRyeS1wb2ludC1tb2R1bGU+PGVudHJ5LXBvaW50LW1vZHVsZT5jb20uc2FwLnNhaWxpbmcuZ3d0LnVpLllvdXR1YmVQb3B1cDwvZW50cnktcG9pbnQtbW9kdWxlPjxlbnRyeS1wb2ludC1tb2R1bGU+Y29tLnNhcC5zYWlsaW5nLmd3dC51aS5EYXRhTWluaW5nPC9lbnRyeS1wb2ludC1tb2R1bGU+PGVudHJ5LXBvaW50LW1vZHVsZT5jb20uc2FwLnNhaWxpbmcuZ3d0LkhvbWU8L2VudHJ5LXBvaW50LW1vZHVsZT48ZW50cnktcG9pbnQtbW9kdWxlPmNvbS5zYXAuc2FpbGluZy5nd3QudWkuUmFjZUJvYXJkPC9lbnRyeS1wb2ludC1tb2R1bGU+PGVudHJ5LXBvaW50LW1vZHVsZT5jb20uc2FwLnNhaWxpbmcuZ3d0LkF1dG9QbGF5PC9lbnRyeS1wb2ludC1tb2R1bGU+PC9nd3QtY29tcGlsZS1zZXR0aW5ncz4\= diff --git a/java/com.sap.sailing.gwt.ui/Search.html b/java/com.sap.sailing.gwt.ui/Search.html deleted file mode 100755 index 02da77912e7..00000000000 --- a/java/com.sap.sailing.gwt.ui/Search.html +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - SAP Sailing Analytics Search Demonstration - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/java/com.sap.sailing.gwt.ui/build.properties b/java/com.sap.sailing.gwt.ui/build.properties index cc459736911..a6a39a658ab 100755 --- a/java/com.sap.sailing.gwt.ui/build.properties +++ b/java/com.sap.sailing.gwt.ui/build.properties @@ -59,6 +59,5 @@ bin.includes = META-INF/,\ AutoPlay.html,\ Home.css,\ Home.html,\ - base.css,\ - com.sap.sailing.gwt.ui.Search/ + base.css output.. = WEB-INF/classes/ diff --git a/java/com.sap.sailing.gwt.ui/pom.xml b/java/com.sap.sailing.gwt.ui/pom.xml index 3fe626c8a82..d60f6f9e630 100644 --- a/java/com.sap.sailing.gwt.ui/pom.xml +++ b/java/com.sap.sailing.gwt.ui/pom.xml @@ -125,7 +125,6 @@ com.sap.sailing.gwt.ui.UserManagement com.sap.sailing.gwt.ui.VideoPopup com.sap.sailing.gwt.ui.YoutubePopup - com.sap.sailing.gwt.ui.Search com.sap.sailing.gwt.ui.Simulator com.sap.sailing.gwt.ui.RegattaOverview com.sap.sailing.gwt.ui.PolarSheets diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/search/SearchEntryPoint.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/search/SearchEntryPoint.java deleted file mode 100755 index 8b58edc27b7..00000000000 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/search/SearchEntryPoint.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.sap.sailing.gwt.ui.client.search; - -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.Window; -import com.google.gwt.user.client.rpc.AsyncCallback; -import com.google.gwt.user.client.rpc.ServiceDefTarget; -import com.google.gwt.user.client.ui.Button; -import com.google.gwt.user.client.ui.HorizontalPanel; -import com.google.gwt.user.client.ui.Label; -import com.google.gwt.user.client.ui.RootPanel; -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.sap.sailing.gwt.ui.client.AbstractEntryPoint; -import com.sap.sailing.gwt.ui.client.RemoteServiceMappingConstants; -import com.sap.sailing.gwt.ui.client.SailingService; -import com.sap.sailing.gwt.ui.client.SailingServiceAsync; -import com.sap.sailing.gwt.ui.shared.LeaderboardSearchResultDTO; -import com.sap.sse.common.search.KeywordQuery; -import com.sap.sse.gwt.client.EntryPointHelper; - -/** - * Sample entry point demonstrating the search capabilites of - * {@link SailingServiceAsync#search(String, com.sap.sse.common.search.KeywordQuery, AsyncCallback)} and - * {@link SailingServiceAsync#getSearchServerNames(AsyncCallback)}. - * - * @author Axel Uhl (D043530) - * - */ -public class SearchEntryPoint extends AbstractEntryPoint { - private final SailingServiceAsync sailingService = GWT.create(SailingService.class); - - @Override - protected void doOnModuleLoad() { - super.doOnModuleLoad(); - EntryPointHelper.registerASyncService((ServiceDefTarget) sailingService, RemoteServiceMappingConstants.sailingServiceRemotePath); - VerticalPanel searchAndResults = new VerticalPanel(); - searchAndResults.setSize("100%", "30em"); - RootPanel.get().add(searchAndResults); - HorizontalPanel searchPanel = new HorizontalPanel(); - searchAndResults.add(searchPanel); - searchPanel.add(new Label("Search")); - final TextBox searchBox = new TextBox(); - searchPanel.add(searchBox); - Button searchButton = new Button("Search"); - searchPanel.add(searchButton); - final TextArea resultsLabel = new TextArea(); - resultsLabel.setSize("90%", "70%"); - resultsLabel.setEnabled(false); - searchAndResults.add(resultsLabel); - searchButton.addClickHandler(new ClickHandler() { - @Override - public void onClick(ClickEvent event) { - final KeywordQuery query = new KeywordQuery(searchBox.getText().split(" ")); - resultsLabel.setText(""); - sailingService.getSearchServerNames(new AsyncCallback>() { - @Override - public void onSuccess(Iterable serverNames) { - search(resultsLabel, query, /* null meaning the "local" server */ null); - for (String serverName : serverNames) { - search(resultsLabel, query, serverName); - } - } - - @Override - public void onFailure(Throwable caught) { - Window.alert("Error: "+caught.getMessage()); - } - }); - } - }); - } - - private void search(final TextArea resultsLabel, final KeywordQuery query, final String serverName) { - sailingService.search(serverName, query, new AsyncCallback>() { - @Override - public void onFailure(Throwable caught) { - Window.alert("Error: "+caught.getMessage()); - } - - @Override - public void onSuccess(Iterable result) { - for (LeaderboardSearchResultDTO r : result) { - resultsLabel.setText(resultsLabel.getText()+"\n"+r); - } - } - }); - } -} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/RaceBoardEntryPoint.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/RaceBoardEntryPoint.java index 681d2509382..e0c736b6411 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/RaceBoardEntryPoint.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/RaceBoardEntryPoint.java @@ -145,7 +145,7 @@ public class RaceBoardEntryPoint extends AbstractEntryPoint { boolean showMapControls) { if (!leaderboardNames.contains(leaderboardName)) { createErrorPage(stringMessages.noSuchLeaderboard()); - return; + return; } if (eventId != null && event == null) { createErrorPage(stringMessages.noSuchEvent()); From 680af921e0b5040dfe6a4edefce41fb88da0a36f Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Thu, 6 Nov 2014 11:32:51 +0100 Subject: [PATCH 21/50] Refactored abstract entry points --- .../gwt/ui/test/LeaderboardPanelMock.java | 2 +- .../com.google.gwt.eclipse.core.prefs | 2 +- java/com.sap.sailing.gwt.ui/build.properties | 1 - java/com.sap.sailing.gwt.ui/pom.xml | 1 - .../place/player/AutoPlayController.java | 2 +- .../client/place/player/PlayerActivity.java | 2 +- .../regattaanalytics/RegattaAnalytics.java | 2 +- .../RegattaAnalyticsDataManager.java | 2 +- .../seriesanalytics/EventSeriesAnalytics.java | 2 +- .../EventSeriesAnalyticsDataManager.java | 2 +- .../place/leaderboard/AnalyticsView.java | 2 +- .../leaderboard/LeaderboardActivity.java | 2 +- .../TabletAndDesktopLeaderboardView.java | 2 +- .../actions/GetLeaderboardByNameAction.java | 2 +- .../AbstractEventManagementPanel.java | 2 +- .../AbstractLeaderboardConfigPanel.java | 2 +- .../AbstractRaceManagementPanel.java | 2 +- .../AbstractTrackedRacesListComposite.java | 2 +- .../adminconsole/AddDeviceMappingDialog.java | 2 +- .../adminconsole/AdminConsoleEntryPoint.java | 90 +++++++-------- .../AssignRacesToMediaDialog.java | 2 +- .../gwt/ui/adminconsole/CompetitorPanel.java | 2 +- .../adminconsole/CompetitorTableWrapper.java | 2 +- .../ControlPointTableWrapper.java | 2 +- .../adminconsole/CourseManagementWidget.java | 2 +- .../DeviceConfigurationDetailComposite.java | 2 +- .../DeviceConfigurationListComposite.java | 2 +- .../DeviceConfigurationPanel.java | 2 +- ...eviceConfigurationUserDetailComposite.java | 2 +- .../DeviceConfigurationUserListComposite.java | 2 +- .../DeviceConfigurationUserPanel.java | 2 +- .../DeviceIdentifierTableWrapper.java | 2 +- .../DeviceMappingTableWrapper.java | 2 +- .../adminconsole/EditCompetitorsDialog.java | 2 +- .../ui/adminconsole/EventManagementPanel.java | 2 +- .../FlexibleLeaderboardCreateDialog.java | 2 +- .../FlexibleLeaderboardDialog.java | 2 +- .../FlexibleLeaderboardEditDialog.java | 2 +- .../ui/adminconsole/GateCreationDialog.java | 2 +- .../ui/adminconsole/IgtimiAccountsPanel.java | 2 +- .../ImportFixesAndAddMappingsDialog.java | 2 +- .../adminconsole/LeaderboardConfigPanel.java | 2 +- .../LeaderboardGroupConfigPanel.java | 2 +- .../gwt/ui/adminconsole/MarkTableWrapper.java | 2 +- .../gwt/ui/adminconsole/MediaPanel.java | 2 +- .../RaceCourseManagementPanel.java | 2 +- ...TrackingCompetitorRegistrationsDialog.java | 2 +- ...RaceLogTrackingCourseDefinitionDialog.java | 2 +- .../RaceLogTrackingDeviceMappingsDialog.java | 2 +- .../adminconsole/RaceLogTrackingDialog.java | 2 +- .../RaceLogTrackingEventManagementPanel.java | 2 +- .../gwt/ui/adminconsole/RaceTableWrapper.java | 2 +- .../adminconsole/RegattaDetailsComposite.java | 2 +- .../RegattaLeaderboardCreateDialog.java | 2 +- .../RegattaLeaderboardDialog.java | 2 +- .../RegattaLeaderboardEditDialog.java | 2 +- .../ui/adminconsole/RegattaListComposite.java | 2 +- .../RegattaStructureManagementPanel.java | 2 +- ...SailingServerInstancesManagementPanel.java | 2 +- .../gwt/ui/adminconsole/ReplicationPanel.java | 2 +- .../ResultImportUrlsManagementPanel.java | 2 +- .../ui/adminconsole/SelectRacesDialog.java | 2 +- .../ui/adminconsole/SetStartTimeDialog.java | 2 +- .../SwissTimingEventManagementPanel.java | 2 +- .../SwissTimingReplayConnectorPanel.java | 2 +- .../gwt/ui/adminconsole/TableWrapper.java | 2 +- .../TracTracEventManagementPanel.java | 2 +- ...ileImportDeviceIdentifierTableWrapper.java | 2 +- .../adminconsole/TrackFileImportWidget.java | 2 +- .../TrackedRacesListComposite.java | 2 +- .../TrackedRacesManagementPanel.java | 2 +- .../adminconsole/WaypointCreationDialog.java | 2 +- .../ui/adminconsole/WaypointTableWrapper.java | 2 +- .../gwt/ui/adminconsole/WindPanel.java | 2 +- .../WindSourcesToExcludeSelectorPanel.java | 2 +- .../gwt/ui/client/AbstractEntryPoint.java | 109 ------------------ .../gwt/ui/client/AbstractRegattaPanel.java | 1 + .../ui/client/AbstractSailingEntryPoint.java | 10 ++ .../gwt/ui/client/LogoAndTitlePanel.java | 1 + .../gwt/ui/client/RaceTimesInfoProvider.java | 1 + .../gwt/ui/client/SmallWindHistoryPanel.java | 1 + .../ui/client/media/MediaPlayerManager.java | 2 +- .../media/MediaPlayerManagerComponent.java | 2 +- .../ui/client/media/MediaSynchControl.java | 2 +- .../NewMediaWithRaceSelectionDialog.java | 2 +- .../client/media/VideoFloatingContainer.java | 2 +- .../AbstractCompetitorLeaderboardChart.java | 2 +- .../charts/AbstractCompetitorRaceChart.java | 2 +- .../shared/charts/AbstractRaceChart.java | 2 +- .../MultiCompetitorLeaderboardChart.java | 2 +- .../charts/MultiCompetitorRaceChart.java | 2 +- .../ui/client/shared/charts/WindChart.java | 2 +- .../shared/panels/SystemInformationPanel.java | 2 +- .../gwt/ui/client/shared/racemap/RaceMap.java | 2 +- .../ui/datamining/DataMiningEntryPoint.java | 24 ++-- .../execution/SimpleQueryRunner.java | 2 +- .../presentation/BenchmarkResultsPanel.java | 2 +- .../AbstractQueryDefinitionProvider.java | 2 +- .../MultiDimensionalGroupingProvider.java | 2 +- .../QueryDefinitionProviderWithControls.java | 2 +- .../RefreshingSelectionTablesPanel.java | 2 +- ...eDataRetrieverChainDefinitionProvider.java | 2 +- .../selection/SimpleStatisticProvider.java | 2 +- .../ui/leaderboard/LeaderboardEntryPoint.java | 16 +-- .../gwt/ui/leaderboard/LeaderboardPanel.java | 2 +- .../gwt/ui/leaderboard/LeaderboardViewer.java | 2 +- .../ui/leaderboard/MetaLeaderboardViewer.java | 2 +- .../ui/leaderboard/MultiLeaderboardPanel.java | 2 +- .../EditableLeaderboardPanel.java | 2 +- .../leaderboardedit/LeaderboardEditPage.java | 10 +- .../MatchAndApplyScoreCorrectionsDialog.java | 2 +- .../ResultSelectionAndApplyDialog.java | 2 +- .../AbstractFilteredTrackedRacesList.java | 2 +- .../ui/polarsheets/PolarSheetsEntryPoint.java | 6 +- .../gwt/ui/polarsheets/PolarSheetsPanel.java | 2 +- .../PolarSheetsTrackedRacesList.java | 2 +- .../gwt/ui/raceboard/RaceBoardEntryPoint.java | 24 ++-- .../gwt/ui/raceboard/RaceBoardPanel.java | 2 +- .../RegattaOverviewEntryPoint.java | 10 +- .../regattaoverview/RegattaOverviewPanel.java | 2 +- .../RegattaRaceStatesComponent.java | 2 +- .../gwt/ui/simulator/PathPolyline.java | 2 +- .../gwt/ui/simulator/SimulatorEntryPoint.java | 8 +- .../gwt/ui/simulator/SimulatorMainPanel.java | 2 +- .../gwt/ui/simulator/SimulatorMap.java | 2 +- .../LeaderboardGroupOverviewPanel.java | 2 +- .../ui/spectator/LeaderboardGroupPanel.java | 2 +- .../gwt/ui/spectator/SpectatorEntryPoint.java | 20 ++-- .../sap/sailing/gwt/ui/tv/TVEntryPoint.java | 10 +- .../sailing/gwt/ui/tv/TVViewController.java | 2 +- .../ui/usermanagement/UserManagementPage.java | 48 -------- .../sse/gwt/client/AbstractEntryPoint.java | 81 ++++++++++++- .../sap/sse/gwt}/client/ErrorReporter.java | 2 +- .../sap/sse/gwt/client/StringMessages.java | 3 + .../sse/gwt}/client/WindowSizeDetector.java | 2 +- .../ui/client/AbstractSecureEntryPoint.java | 38 ++++++ 136 files changed, 363 insertions(+), 378 deletions(-) delete mode 100755 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/AbstractEntryPoint.java create mode 100755 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/AbstractSailingEntryPoint.java delete mode 100755 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/usermanagement/UserManagementPage.java rename java/{com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui => com.sap.sse.gwt/src/com/sap/sse/gwt}/client/ErrorReporter.java (80%) rename java/{com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui => com.sap.sse.gwt/src/com/sap/sse/gwt}/client/WindowSizeDetector.java (60%) create mode 100755 java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/AbstractSecureEntryPoint.java diff --git a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/LeaderboardPanelMock.java b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/LeaderboardPanelMock.java index 6ee5c04a7c8..12c631d599c 100644 --- a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/LeaderboardPanelMock.java +++ b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/LeaderboardPanelMock.java @@ -4,13 +4,13 @@ import com.sap.sailing.domain.common.dto.LeaderboardDTO; import com.sap.sailing.domain.common.dto.LeaderboardRowDTO; import com.sap.sailing.domain.common.dto.RaceColumnDTO; import com.sap.sailing.gwt.ui.client.CompetitorSelectionModel; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel; import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettingsFactory; import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSortableColumnWithMinMax; import com.sap.sailing.gwt.ui.leaderboard.SortedCellTable; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.async.AsyncActionsExecutor; import com.sap.sse.gwt.client.useragent.UserAgentDetails; diff --git a/java/com.sap.sailing.gwt.ui/.settings/com.google.gwt.eclipse.core.prefs b/java/com.sap.sailing.gwt.ui/.settings/com.google.gwt.eclipse.core.prefs index 26a2212e792..43b1302d8d3 100755 --- a/java/com.sap.sailing.gwt.ui/.settings/com.google.gwt.eclipse.core.prefs +++ b/java/com.sap.sailing.gwt.ui/.settings/com.google.gwt.eclipse.core.prefs @@ -1,4 +1,4 @@ eclipse.preferences.version=1 entryPointModules= filesCopiedToWebInfLib=gwt-servlet.jar -gwtCompileSettings=PGd3dC1jb21waWxlLXNldHRpbmdzPjxsb2ctbGV2ZWw+SU5GTzwvbG9nLWxldmVsPjxvdXRwdXQtc3R5bGU+T0JGVVNDQVRFRDwvb3V0cHV0LXN0eWxlPjxleHRyYS1hcmdzPjwhW0NEQVRBWy13YXIgLiAtbG9jYWxXb3JrZXJzIDMgLXN0cmljdCAtbG9nTGV2ZWwgVFJBQ0VdXT48L2V4dHJhLWFyZ3M+PHZtLWFyZ3M+PCFbQ0RBVEFbLVhteDIwMjRtIC1EZ3d0LnVzZWFyY2hpdmVzPWZhbHNlXV0+PC92bS1hcmdzPjxlbnRyeS1wb2ludC1tb2R1bGU+Y29tLnNhcC5zYWlsaW5nLmd3dC51aS5TaW11bGF0b3I8L2VudHJ5LXBvaW50LW1vZHVsZT48ZW50cnktcG9pbnQtbW9kdWxlPmNvbS5zYXAuc2FpbGluZy5nd3QudWkuTGVhZGVyYm9hcmQ8L2VudHJ5LXBvaW50LW1vZHVsZT48ZW50cnktcG9pbnQtbW9kdWxlPmNvbS5zYXAuc2FpbGluZy5nd3QudWkuUG9sYXJTaGVldHM8L2VudHJ5LXBvaW50LW1vZHVsZT48ZW50cnktcG9pbnQtbW9kdWxlPmNvbS5zYXAuc2FpbGluZy5nd3QudWkuVmlkZW9Qb3B1cDwvZW50cnktcG9pbnQtbW9kdWxlPjxlbnRyeS1wb2ludC1tb2R1bGU+Y29tLnNhcC5zYWlsaW5nLmd3dC51aS5SZWdhdHRhT3ZlcnZpZXc8L2VudHJ5LXBvaW50LW1vZHVsZT48ZW50cnktcG9pbnQtbW9kdWxlPmNvbS5zYXAuc2FpbGluZy5nd3QudWkuU3BlY3RhdG9yPC9lbnRyeS1wb2ludC1tb2R1bGU+PGVudHJ5LXBvaW50LW1vZHVsZT5jb20uc2FwLnNhaWxpbmcuZ3d0LnVpLlR2VmlldzwvZW50cnktcG9pbnQtbW9kdWxlPjxlbnRyeS1wb2ludC1tb2R1bGU+Y29tLnNhcC5zYWlsaW5nLmd3dC51aS5Vc2VyTWFuYWdlbWVudDwvZW50cnktcG9pbnQtbW9kdWxlPjxlbnRyeS1wb2ludC1tb2R1bGU+Y29tLnNhcC5zYWlsaW5nLmd3dC51aS5BZG1pbkNvbnNvbGU8L2VudHJ5LXBvaW50LW1vZHVsZT48ZW50cnktcG9pbnQtbW9kdWxlPmNvbS5zYXAuc2FpbGluZy5nd3QudWkuTGVhZGVyYm9hcmRFZGl0aW5nPC9lbnRyeS1wb2ludC1tb2R1bGU+PGVudHJ5LXBvaW50LW1vZHVsZT5jb20uc2FwLnNhaWxpbmcuZ3d0LnVpLllvdXR1YmVQb3B1cDwvZW50cnktcG9pbnQtbW9kdWxlPjxlbnRyeS1wb2ludC1tb2R1bGU+Y29tLnNhcC5zYWlsaW5nLmd3dC51aS5EYXRhTWluaW5nPC9lbnRyeS1wb2ludC1tb2R1bGU+PGVudHJ5LXBvaW50LW1vZHVsZT5jb20uc2FwLnNhaWxpbmcuZ3d0LkhvbWU8L2VudHJ5LXBvaW50LW1vZHVsZT48ZW50cnktcG9pbnQtbW9kdWxlPmNvbS5zYXAuc2FpbGluZy5nd3QudWkuUmFjZUJvYXJkPC9lbnRyeS1wb2ludC1tb2R1bGU+PGVudHJ5LXBvaW50LW1vZHVsZT5jb20uc2FwLnNhaWxpbmcuZ3d0LkF1dG9QbGF5PC9lbnRyeS1wb2ludC1tb2R1bGU+PC9nd3QtY29tcGlsZS1zZXR0aW5ncz4\= +gwtCompileSettings=PGd3dC1jb21waWxlLXNldHRpbmdzPjxsb2ctbGV2ZWw+SU5GTzwvbG9nLWxldmVsPjxvdXRwdXQtc3R5bGU+T0JGVVNDQVRFRDwvb3V0cHV0LXN0eWxlPjxleHRyYS1hcmdzPjwhW0NEQVRBWy13YXIgLiAtbG9jYWxXb3JrZXJzIDMgLXN0cmljdCAtbG9nTGV2ZWwgVFJBQ0VdXT48L2V4dHJhLWFyZ3M+PHZtLWFyZ3M+PCFbQ0RBVEFbLVhteDIwMjRtIC1EZ3d0LnVzZWFyY2hpdmVzPWZhbHNlXV0+PC92bS1hcmdzPjxlbnRyeS1wb2ludC1tb2R1bGU+Y29tLnNhcC5zYWlsaW5nLmd3dC51aS5TaW11bGF0b3I8L2VudHJ5LXBvaW50LW1vZHVsZT48ZW50cnktcG9pbnQtbW9kdWxlPmNvbS5zYXAuc2FpbGluZy5nd3QudWkuTGVhZGVyYm9hcmQ8L2VudHJ5LXBvaW50LW1vZHVsZT48ZW50cnktcG9pbnQtbW9kdWxlPmNvbS5zYXAuc2FpbGluZy5nd3QudWkuUG9sYXJTaGVldHM8L2VudHJ5LXBvaW50LW1vZHVsZT48ZW50cnktcG9pbnQtbW9kdWxlPmNvbS5zYXAuc2FpbGluZy5nd3QudWkuVmlkZW9Qb3B1cDwvZW50cnktcG9pbnQtbW9kdWxlPjxlbnRyeS1wb2ludC1tb2R1bGU+Y29tLnNhcC5zYWlsaW5nLmd3dC51aS5SZWdhdHRhT3ZlcnZpZXc8L2VudHJ5LXBvaW50LW1vZHVsZT48ZW50cnktcG9pbnQtbW9kdWxlPmNvbS5zYXAuc2FpbGluZy5nd3QudWkuU3BlY3RhdG9yPC9lbnRyeS1wb2ludC1tb2R1bGU+PGVudHJ5LXBvaW50LW1vZHVsZT5jb20uc2FwLnNhaWxpbmcuZ3d0LnVpLlR2VmlldzwvZW50cnktcG9pbnQtbW9kdWxlPjxlbnRyeS1wb2ludC1tb2R1bGU+Y29tLnNhcC5zYWlsaW5nLmd3dC51aS5BZG1pbkNvbnNvbGU8L2VudHJ5LXBvaW50LW1vZHVsZT48ZW50cnktcG9pbnQtbW9kdWxlPmNvbS5zYXAuc2FpbGluZy5nd3QudWkuTGVhZGVyYm9hcmRFZGl0aW5nPC9lbnRyeS1wb2ludC1tb2R1bGU+PGVudHJ5LXBvaW50LW1vZHVsZT5jb20uc2FwLnNhaWxpbmcuZ3d0LnVpLllvdXR1YmVQb3B1cDwvZW50cnktcG9pbnQtbW9kdWxlPjxlbnRyeS1wb2ludC1tb2R1bGU+Y29tLnNhcC5zYWlsaW5nLmd3dC51aS5EYXRhTWluaW5nPC9lbnRyeS1wb2ludC1tb2R1bGU+PGVudHJ5LXBvaW50LW1vZHVsZT5jb20uc2FwLnNhaWxpbmcuZ3d0LkhvbWU8L2VudHJ5LXBvaW50LW1vZHVsZT48ZW50cnktcG9pbnQtbW9kdWxlPmNvbS5zYXAuc2FpbGluZy5nd3QudWkuUmFjZUJvYXJkPC9lbnRyeS1wb2ludC1tb2R1bGU+PGVudHJ5LXBvaW50LW1vZHVsZT5jb20uc2FwLnNhaWxpbmcuZ3d0LkF1dG9QbGF5PC9lbnRyeS1wb2ludC1tb2R1bGU+PC9nd3QtY29tcGlsZS1zZXR0aW5ncz4\= diff --git a/java/com.sap.sailing.gwt.ui/build.properties b/java/com.sap.sailing.gwt.ui/build.properties index a6a39a658ab..9a09c11a784 100755 --- a/java/com.sap.sailing.gwt.ui/build.properties +++ b/java/com.sap.sailing.gwt.ui/build.properties @@ -14,7 +14,6 @@ bin.includes = META-INF/,\ com.sap.sailing.gwt.ui.AdminConsole/,\ com.sap.sailing.gwt.ui.Leaderboard/,\ com.sap.sailing.gwt.ui.LeaderboardEditing/,\ - com.sap.sailing.gwt.ui.UserManagement/,\ com.sap.sailing.gwt.Home/,\ com.sap.sailing.gwt.AutoPlay/,\ crossdomain.xml,\ diff --git a/java/com.sap.sailing.gwt.ui/pom.xml b/java/com.sap.sailing.gwt.ui/pom.xml index d60f6f9e630..8cc6e385acf 100644 --- a/java/com.sap.sailing.gwt.ui/pom.xml +++ b/java/com.sap.sailing.gwt.ui/pom.xml @@ -122,7 +122,6 @@ com.sap.sailing.gwt.ui.Spectator com.sap.sailing.gwt.ui.DataMining com.sap.sailing.gwt.ui.TvView - com.sap.sailing.gwt.ui.UserManagement com.sap.sailing.gwt.ui.VideoPopup com.sap.sailing.gwt.ui.YoutubePopup com.sap.sailing.gwt.ui.Simulator diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/place/player/AutoPlayController.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/place/player/AutoPlayController.java index 7fe07104231..bddc64aa4e8 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/place/player/AutoPlayController.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/place/player/AutoPlayController.java @@ -25,7 +25,6 @@ import com.sap.sailing.gwt.common.client.CSS3Util; import com.sap.sailing.gwt.common.client.FullscreenUtil; import com.sap.sailing.gwt.common.client.i18n.TextMessages; import com.sap.sailing.gwt.ui.client.CompetitorSelectionModel; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.MediaServiceAsync; import com.sap.sailing.gwt.ui.client.RaceSelectionModel; import com.sap.sailing.gwt.ui.client.RaceTimesInfoProvider; @@ -38,6 +37,7 @@ import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettingsFactory; import com.sap.sailing.gwt.ui.raceboard.RaceBoardPanel; import com.sap.sailing.gwt.ui.raceboard.RaceBoardViewConfiguration; import com.sap.sailing.gwt.ui.shared.RaceTimesInfoDTO; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.async.AsyncActionsExecutor; import com.sap.sse.gwt.client.player.Timer; import com.sap.sse.gwt.client.player.Timer.PlayModes; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/place/player/PlayerActivity.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/place/player/PlayerActivity.java index a5ced0dacaa..2b26e5adf96 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/place/player/PlayerActivity.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/place/player/PlayerActivity.java @@ -8,9 +8,9 @@ import com.google.gwt.user.client.Window; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.AcceptsOneWidget; import com.google.gwt.user.client.ui.RootLayoutPanel; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.raceboard.RaceBoardViewConfiguration; import com.sap.sailing.gwt.ui.shared.EventDTO; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.mvp.ErrorView; import com.sap.sse.gwt.client.useragent.UserAgentDetails; import com.sap.sse.gwt.shared.GwtHttpRequestUtils; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/event/regattaanalytics/RegattaAnalytics.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/event/regattaanalytics/RegattaAnalytics.java index f68e176ad6b..46b0a6d9bf2 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/event/regattaanalytics/RegattaAnalytics.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/event/regattaanalytics/RegattaAnalytics.java @@ -26,13 +26,13 @@ import com.sap.sailing.gwt.home.client.place.event.header.CompactEventHeader; import com.sap.sailing.gwt.home.client.place.event.oldcompetitorcharts.OldCompetitorCharts; import com.sap.sailing.gwt.home.client.place.event.oldleaderboard.OldLeaderboard; import com.sap.sailing.gwt.home.client.place.event.regattaleaderboard.EventRegattaLeaderboardResources; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.LeaderboardUpdateListener; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings; import com.sap.sailing.gwt.ui.shared.EventDTO; import com.sap.sse.common.Util.Pair; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.async.AsyncActionsExecutor; import com.sap.sse.gwt.client.player.Timer; import com.sap.sse.gwt.client.useragent.UserAgentDetails; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/event/regattaanalytics/RegattaAnalyticsDataManager.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/event/regattaanalytics/RegattaAnalyticsDataManager.java index 2249f864f6d..5e7ec9ea299 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/event/regattaanalytics/RegattaAnalyticsDataManager.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/event/regattaanalytics/RegattaAnalyticsDataManager.java @@ -4,7 +4,6 @@ import com.sap.sailing.domain.common.DetailType; import com.sap.sailing.domain.common.RaceIdentifier; import com.sap.sailing.gwt.ui.client.CompetitorSelectionModel; import com.sap.sailing.gwt.ui.client.DebugIdHelper; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.shared.charts.MultiCompetitorLeaderboardChart; @@ -13,6 +12,7 @@ import com.sap.sailing.gwt.ui.client.shared.components.Component; import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialog; import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel; import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.async.AsyncActionsExecutor; import com.sap.sse.gwt.client.player.Timer; import com.sap.sse.gwt.client.useragent.UserAgentDetails; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/event/seriesanalytics/EventSeriesAnalytics.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/event/seriesanalytics/EventSeriesAnalytics.java index 3772612c561..e7404f52745 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/event/seriesanalytics/EventSeriesAnalytics.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/event/seriesanalytics/EventSeriesAnalytics.java @@ -28,13 +28,13 @@ import com.sap.sailing.gwt.home.client.place.event.oldcompetitorcharts.OldCompet import com.sap.sailing.gwt.home.client.place.event.oldleaderboard.OldLeaderboard; import com.sap.sailing.gwt.home.client.place.event.oldmultileaderboard.OldMultiLeaderboard; import com.sap.sailing.gwt.home.client.place.event.regattaleaderboard.EventRegattaLeaderboardResources; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.LeaderboardUpdateListener; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings; import com.sap.sailing.gwt.ui.shared.EventDTO; import com.sap.sse.common.Util.Pair; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.async.AsyncActionsExecutor; import com.sap.sse.gwt.client.player.Timer; import com.sap.sse.gwt.client.useragent.UserAgentDetails; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/event/seriesanalytics/EventSeriesAnalyticsDataManager.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/event/seriesanalytics/EventSeriesAnalyticsDataManager.java index b70d91e8d9e..52669221b5b 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/event/seriesanalytics/EventSeriesAnalyticsDataManager.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/event/seriesanalytics/EventSeriesAnalyticsDataManager.java @@ -4,7 +4,6 @@ import com.sap.sailing.domain.common.DetailType; import com.sap.sailing.domain.common.RaceIdentifier; import com.sap.sailing.gwt.ui.client.CompetitorSelectionModel; import com.sap.sailing.gwt.ui.client.DebugIdHelper; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.shared.charts.MultiCompetitorLeaderboardChart; @@ -14,6 +13,7 @@ import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialog; import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel; import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings; import com.sap.sailing.gwt.ui.leaderboard.MultiLeaderboardPanel; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.async.AsyncActionsExecutor; import com.sap.sse.gwt.client.player.Timer; import com.sap.sse.gwt.client.useragent.UserAgentDetails; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/leaderboard/AnalyticsView.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/leaderboard/AnalyticsView.java index c1a2ce60d62..2ac02d0477f 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/leaderboard/AnalyticsView.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/leaderboard/AnalyticsView.java @@ -2,9 +2,9 @@ package com.sap.sailing.gwt.home.client.place.leaderboard; import com.google.gwt.user.client.ui.Widget; import com.sap.sailing.domain.common.RaceIdentifier; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.async.AsyncActionsExecutor; import com.sap.sse.gwt.client.player.Timer; import com.sap.sse.gwt.client.useragent.UserAgentDetails; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/leaderboard/LeaderboardActivity.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/leaderboard/LeaderboardActivity.java index 7d3ea75ba12..6ef4308e09f 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/leaderboard/LeaderboardActivity.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/leaderboard/LeaderboardActivity.java @@ -17,13 +17,13 @@ import com.sap.sailing.domain.common.RaceIdentifier; import com.sap.sailing.domain.common.RegattaNameAndRaceName; import com.sap.sailing.gwt.common.client.i18n.TextMessages; import com.sap.sailing.gwt.home.client.shared.placeholder.Placeholder; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings; import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings.RaceColumnSelectionStrategies; import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettingsFactory; import com.sap.sailing.gwt.ui.leaderboard.LeaderboardUrlSettings; import com.sap.sailing.gwt.ui.shared.EventDTO; import com.sap.sse.common.Util; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.async.AsyncActionsExecutor; import com.sap.sse.gwt.client.async.MarkedAsyncCallback; import com.sap.sse.gwt.client.mvp.ErrorView; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/leaderboard/TabletAndDesktopLeaderboardView.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/leaderboard/TabletAndDesktopLeaderboardView.java index e54c4eea3a3..1431d60a3a0 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/leaderboard/TabletAndDesktopLeaderboardView.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/leaderboard/TabletAndDesktopLeaderboardView.java @@ -9,10 +9,10 @@ import com.sap.sailing.domain.common.RaceIdentifier; import com.sap.sailing.gwt.home.client.app.HomePlacesNavigator; import com.sap.sailing.gwt.home.client.place.event.regattaanalytics.RegattaAnalytics; import com.sap.sailing.gwt.home.client.place.event.seriesanalytics.EventSeriesAnalytics; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings; import com.sap.sailing.gwt.ui.shared.EventDTO; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.async.AsyncActionsExecutor; import com.sap.sse.gwt.client.player.Timer; import com.sap.sse.gwt.client.useragent.UserAgentDetails; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/actions/GetLeaderboardByNameAction.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/actions/GetLeaderboardByNameAction.java index cf9315668b7..ad1abb272d7 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/actions/GetLeaderboardByNameAction.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/actions/GetLeaderboardByNameAction.java @@ -6,9 +6,9 @@ import java.util.Date; import com.google.gwt.user.client.rpc.AsyncCallback; import com.sap.sailing.domain.common.dto.IncrementalOrFullLeaderboardDTO; import com.sap.sailing.domain.common.dto.LeaderboardDTO; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.async.AsyncAction; import com.sap.sse.gwt.client.player.Timer; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractEventManagementPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractEventManagementPanel.java index b9137ee5c2b..26f51b7b5f5 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractEventManagementPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractEventManagementPanel.java @@ -13,7 +13,6 @@ import java.util.Set; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.ui.ListBox; import com.sap.sailing.gwt.ui.client.AbstractRegattaPanel; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.RaceSelectionProvider; import com.sap.sailing.gwt.ui.client.RegattaRefresher; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; @@ -21,6 +20,7 @@ import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.RaceRecordDTO; import com.sap.sailing.gwt.ui.shared.RegattaDTO; import com.sap.sse.common.Util; +import com.sap.sse.gwt.client.ErrorReporter; public abstract class AbstractEventManagementPanel extends AbstractRegattaPanel { protected final TrackedRacesListComposite trackedRacesListComposite; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractLeaderboardConfigPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractLeaderboardConfigPanel.java index c0a2f0e3223..0dfceac3dae 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractLeaderboardConfigPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractLeaderboardConfigPanel.java @@ -29,7 +29,6 @@ import com.sap.sailing.domain.common.RegattaNameAndRaceName; import com.sap.sailing.domain.common.dto.FleetDTO; import com.sap.sailing.domain.common.dto.NamedDTO; import com.sap.sailing.domain.common.dto.RaceColumnDTO; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.LeaderboardsDisplayer; import com.sap.sailing.gwt.ui.client.LeaderboardsRefresher; import com.sap.sailing.gwt.ui.client.RaceSelectionChangeListener; @@ -43,6 +42,7 @@ import com.sap.sailing.gwt.ui.client.shared.controls.SelectionCheckboxColumn; import com.sap.sailing.gwt.ui.shared.RegattaDTO; import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO; import com.sap.sse.common.Util; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.async.MarkedAsyncCallback; import com.sap.sse.gwt.client.panels.LabeledAbstractFilterablePanel; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractRaceManagementPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractRaceManagementPanel.java index 824284260a2..0fa58ada6eb 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractRaceManagementPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractRaceManagementPanel.java @@ -6,13 +6,13 @@ import com.google.gwt.user.client.ui.CaptionPanel; import com.google.gwt.user.client.ui.VerticalPanel; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.common.dto.RaceDTO; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.RaceSelectionChangeListener; import com.sap.sailing.gwt.ui.client.RaceSelectionModel; import com.sap.sailing.gwt.ui.client.RegattaRefresher; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.RegattaDTO; +import com.sap.sse.gwt.client.ErrorReporter; public abstract class AbstractRaceManagementPanel extends AbstractEventManagementPanel implements RaceSelectionChangeListener { protected RegattaAndRaceIdentifier singleSelectedRace; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractTrackedRacesListComposite.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractTrackedRacesListComposite.java index 54681a79bc7..a2301ec86ed 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractTrackedRacesListComposite.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractTrackedRacesListComposite.java @@ -34,7 +34,6 @@ import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.common.TrackedRaceStatusEnum; import com.sap.sailing.domain.common.dto.RaceDTO; import com.sap.sailing.domain.common.impl.NaturalComparator; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.RaceSelectionChangeListener; import com.sap.sailing.gwt.ui.client.RaceSelectionProvider; import com.sap.sailing.gwt.ui.client.RegattaRefresher; @@ -46,6 +45,7 @@ import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialogComponent; import com.sap.sailing.gwt.ui.client.shared.controls.SelectionCheckboxColumn; import com.sap.sailing.gwt.ui.common.client.DateAndTimeFormatterUtil; import com.sap.sailing.gwt.ui.shared.RegattaDTO; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.async.MarkedAsyncCallback; import com.sap.sse.gwt.client.panels.LabeledAbstractFilterablePanel; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AddDeviceMappingDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AddDeviceMappingDialog.java index ff0c67c3a6e..32f0f80b171 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AddDeviceMappingDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AddDeviceMappingDialog.java @@ -24,13 +24,13 @@ import com.google.gwt.view.client.SelectionModel; import com.google.gwt.view.client.SingleSelectionModel; import com.sap.sailing.domain.common.dto.CompetitorDTO; import com.sap.sailing.domain.common.racelog.tracking.DeviceMappingConstants; -import com.sap.sailing.gwt.ui.client.ErrorReporter; 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.DeviceIdentifierDTO; import com.sap.sailing.gwt.ui.shared.DeviceMappingDTO; import com.sap.sailing.gwt.ui.shared.MarkDTO; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.dialog.DataEntryDialog; public class AddDeviceMappingDialog extends DataEntryDialog { 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 b1fc7e8d3fd..893950ad34b 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 @@ -21,7 +21,7 @@ import com.google.gwt.user.client.ui.RootLayoutPanel; import com.google.gwt.user.client.ui.ScrollPanel; import com.google.gwt.user.client.ui.TabLayoutPanel; import com.google.gwt.user.client.ui.Widget; -import com.sap.sailing.gwt.ui.client.AbstractEntryPoint; +import com.sap.sailing.gwt.ui.client.AbstractSailingEntryPoint; import com.sap.sailing.gwt.ui.client.LeaderboardGroupsDisplayer; import com.sap.sailing.gwt.ui.client.LeaderboardGroupsRefresher; import com.sap.sailing.gwt.ui.client.LeaderboardsDisplayer; @@ -50,7 +50,7 @@ import com.sap.sse.security.ui.client.UserStatusEventHandler; import com.sap.sse.security.ui.loginpanel.LoginPanel; import com.sap.sse.security.ui.shared.UserDTO; -public class AdminConsoleEntryPoint extends AbstractEntryPoint implements RegattaRefresher, LeaderboardsRefresher, LeaderboardGroupsRefresher { +public class AdminConsoleEntryPoint extends AbstractSailingEntryPoint implements RegattaRefresher, LeaderboardsRefresher, LeaderboardGroupsRefresher { private Set regattasDisplayers; private Set leaderboardsDisplayers; private Set leaderboardGroupsDisplayers; @@ -119,14 +119,14 @@ public class AdminConsoleEntryPoint extends AbstractEntryPoint implements Regatt leaderboardsDisplayers = new HashSet<>(); leaderboardGroupsDisplayers = new HashSet<>(); - final EventManagementPanel eventManagementPanel = new EventManagementPanel(sailingService, this, stringMessages); - addToTabPanel(tabPanel, eventManagementPanel, stringMessages.events(), AdminConsoleFeatures.MANAGE_EVENTS); + final EventManagementPanel eventManagementPanel = new EventManagementPanel(sailingService, this, getStringMessages()); + addToTabPanel(tabPanel, eventManagementPanel, getStringMessages().events(), AdminConsoleFeatures.MANAGE_EVENTS); leaderboardGroupsDisplayers.add(eventManagementPanel); RegattaStructureManagementPanel regattaManagementPanel = new RegattaStructureManagementPanel( - sailingService, this, stringMessages, this); + sailingService, this, getStringMessages(), this); regattaManagementPanel.ensureDebugId("RegattaStructureManagement"); - addToTabPanel(tabPanel, regattaManagementPanel, stringMessages.regattas(), AdminConsoleFeatures.MANAGE_REGATTAS); + addToTabPanel(tabPanel, regattaManagementPanel, getStringMessages().regattas(), AdminConsoleFeatures.MANAGE_REGATTAS); regattasDisplayers.add(regattaManagementPanel); /* LEADERBOARDS */ @@ -135,19 +135,19 @@ public class AdminConsoleEntryPoint extends AbstractEntryPoint implements Regatt setTabPanelSize(leaderboardTabPanel, "100%", "100%"); leaderboardTabPanel.addSelectionHandler(tabSelectionHandler); leaderboardTabPanel.ensureDebugId("LeaderboardPanel"); - addToTabPanel(tabPanel, leaderboardTabPanel, stringMessages.leaderboards(), AdminConsoleFeatures.MANAGE_LEADERBOARDS); + addToTabPanel(tabPanel, leaderboardTabPanel, getStringMessages().leaderboards(), AdminConsoleFeatures.MANAGE_LEADERBOARDS); final LeaderboardConfigPanel leaderboardConfigPanel = new LeaderboardConfigPanel(sailingService, this, this, - stringMessages, /* showRaceDetails */true, this); + getStringMessages(), /* showRaceDetails */true, this); leaderboardConfigPanel.ensureDebugId("LeaderboardConfiguration"); - addToTabPanel(leaderboardTabPanel, leaderboardConfigPanel, stringMessages.leaderboardConfiguration(), AdminConsoleFeatures.MANAGE_LEADERBOARDS); + addToTabPanel(leaderboardTabPanel, leaderboardConfigPanel, getStringMessages().leaderboardConfiguration(), AdminConsoleFeatures.MANAGE_LEADERBOARDS); regattasDisplayers.add(leaderboardConfigPanel); leaderboardsDisplayers.add(leaderboardConfigPanel); final LeaderboardGroupConfigPanel leaderboardGroupConfigPanel = new LeaderboardGroupConfigPanel(sailingService, - this, this, this, this, stringMessages); + this, this, this, this, getStringMessages()); leaderboardGroupConfigPanel.ensureDebugId("LeaderboardGroupConfiguration"); - addToTabPanel(leaderboardTabPanel, leaderboardGroupConfigPanel, stringMessages.leaderboardGroups(), AdminConsoleFeatures.MANAGE_LEADERBOARD_GROUPS); + addToTabPanel(leaderboardTabPanel, leaderboardGroupConfigPanel, getStringMessages().leaderboardGroups(), AdminConsoleFeatures.MANAGE_LEADERBOARD_GROUPS); regattasDisplayers.add(leaderboardGroupConfigPanel); leaderboardGroupsDisplayers.add(leaderboardGroupConfigPanel); leaderboardsDisplayers.add(leaderboardGroupConfigPanel); @@ -158,29 +158,29 @@ public class AdminConsoleEntryPoint extends AbstractEntryPoint implements Regatt setTabPanelSize(racesTabPanel, "100%", "100%"); racesTabPanel.addSelectionHandler(tabSelectionHandler); racesTabPanel.ensureDebugId("RacesPanel"); - addToTabPanel(tabPanel, racesTabPanel, stringMessages.races(), AdminConsoleFeatures.MANAGE_TRACKED_RACES); + addToTabPanel(tabPanel, racesTabPanel, getStringMessages().races(), AdminConsoleFeatures.MANAGE_TRACKED_RACES); TrackedRacesManagementPanel trackedRacesManagementPanel = new TrackedRacesManagementPanel(sailingService, this, - this, stringMessages); + this, getStringMessages()); trackedRacesManagementPanel.ensureDebugId("TrackedRacesManagement"); - addToTabPanel(racesTabPanel, trackedRacesManagementPanel, stringMessages.trackedRaces(), AdminConsoleFeatures.SHOW_TRACKED_RACES); + addToTabPanel(racesTabPanel, trackedRacesManagementPanel, getStringMessages().trackedRaces(), AdminConsoleFeatures.SHOW_TRACKED_RACES); regattasDisplayers.add(trackedRacesManagementPanel); - final CompetitorPanel competitorPanel = new CompetitorPanel(sailingService, stringMessages, this); - addToTabPanel(racesTabPanel, competitorPanel, stringMessages.competitors(), AdminConsoleFeatures.MANAGE_ALL_COMPETITORS); + final CompetitorPanel competitorPanel = new CompetitorPanel(sailingService, getStringMessages(), this); + addToTabPanel(racesTabPanel, competitorPanel, getStringMessages().competitors(), AdminConsoleFeatures.MANAGE_ALL_COMPETITORS); - RaceCourseManagementPanel raceCourseManagementPanel = new RaceCourseManagementPanel(sailingService, this, this, stringMessages); - addToTabPanel(racesTabPanel, raceCourseManagementPanel, stringMessages.courseLayout(), AdminConsoleFeatures.MANAGE_COURSE_LAYOUT); + RaceCourseManagementPanel raceCourseManagementPanel = new RaceCourseManagementPanel(sailingService, this, this, getStringMessages()); + addToTabPanel(racesTabPanel, raceCourseManagementPanel, getStringMessages().courseLayout(), AdminConsoleFeatures.MANAGE_COURSE_LAYOUT); regattasDisplayers.add(raceCourseManagementPanel); final AsyncActionsExecutor asyncActionsExecutor = new AsyncActionsExecutor(); - WindPanel windPanel = new WindPanel(sailingService, asyncActionsExecutor, this, this, stringMessages); + WindPanel windPanel = new WindPanel(sailingService, asyncActionsExecutor, this, this, getStringMessages()); regattasDisplayers.add(windPanel); - addToTabPanel(racesTabPanel, windPanel, stringMessages.wind(), AdminConsoleFeatures.MANAGE_WIND); + addToTabPanel(racesTabPanel, windPanel, getStringMessages().wind(), AdminConsoleFeatures.MANAGE_WIND); - final MediaPanel mediaPanel = new MediaPanel(regattasDisplayers, sailingService, this, mediaService, this, stringMessages); - addToTabPanel(racesTabPanel, mediaPanel, stringMessages.mediaPanel(), AdminConsoleFeatures.MANAGE_MEDIA); + final MediaPanel mediaPanel = new MediaPanel(regattasDisplayers, sailingService, this, mediaService, this, getStringMessages()); + addToTabPanel(racesTabPanel, mediaPanel, getStringMessages().mediaPanel(), AdminConsoleFeatures.MANAGE_MEDIA); /* CONNECTORS */ @@ -188,36 +188,36 @@ public class AdminConsoleEntryPoint extends AbstractEntryPoint implements Regatt setTabPanelSize(connectorsTabPanel, "100%", "100%"); connectorsTabPanel.addSelectionHandler(tabSelectionHandler); connectorsTabPanel.ensureDebugId("TrackingProviderPanel"); - addToTabPanel(tabPanel, connectorsTabPanel, stringMessages.connectors(), AdminConsoleFeatures.MANAGE_TRACKED_RACES); + addToTabPanel(tabPanel, connectorsTabPanel, getStringMessages().connectors(), AdminConsoleFeatures.MANAGE_TRACKED_RACES); AbstractEventManagementPanel tractracEventManagementPanel = new TracTracEventManagementPanel(sailingService, - this, this, stringMessages); + this, this, getStringMessages()); tractracEventManagementPanel.ensureDebugId("TracTracEventManagement"); - addToTabPanel(connectorsTabPanel, tractracEventManagementPanel, stringMessages.tracTracEvents(), AdminConsoleFeatures.MANAGE_TRACKED_RACES); + addToTabPanel(connectorsTabPanel, tractracEventManagementPanel, getStringMessages().tracTracEvents(), AdminConsoleFeatures.MANAGE_TRACKED_RACES); regattasDisplayers.add(tractracEventManagementPanel); SwissTimingReplayConnectorPanel swissTimingReplayConnectorPanel = new SwissTimingReplayConnectorPanel( - sailingService, this, this, stringMessages); - addToTabPanel(connectorsTabPanel, swissTimingReplayConnectorPanel, stringMessages.swissTimingArchiveConnector(), AdminConsoleFeatures.MANAGE_TRACKED_RACES); + sailingService, this, this, getStringMessages()); + addToTabPanel(connectorsTabPanel, swissTimingReplayConnectorPanel, getStringMessages().swissTimingArchiveConnector(), AdminConsoleFeatures.MANAGE_TRACKED_RACES); regattasDisplayers.add(swissTimingReplayConnectorPanel); SwissTimingEventManagementPanel swisstimingEventManagementPanel = new SwissTimingEventManagementPanel( - sailingService, this, this, stringMessages); - addToTabPanel(connectorsTabPanel, swisstimingEventManagementPanel, stringMessages.swissTimingEvents(), AdminConsoleFeatures.MANAGE_TRACKED_RACES); + sailingService, this, this, getStringMessages()); + addToTabPanel(connectorsTabPanel, swisstimingEventManagementPanel, getStringMessages().swissTimingEvents(), AdminConsoleFeatures.MANAGE_TRACKED_RACES); regattasDisplayers.add(swisstimingEventManagementPanel); final RaceLogTrackingEventManagementPanel raceLogTrackingEventManagementPanel = new RaceLogTrackingEventManagementPanel( - sailingService, this, this, this, stringMessages); - addToTabPanel(connectorsTabPanel, raceLogTrackingEventManagementPanel, stringMessages.raceLogTracking(), AdminConsoleFeatures.MANAGE_RACELOG_TRACKING); + sailingService, this, this, this, getStringMessages()); + addToTabPanel(connectorsTabPanel, raceLogTrackingEventManagementPanel, getStringMessages().raceLogTracking(), AdminConsoleFeatures.MANAGE_RACELOG_TRACKING); regattasDisplayers.add(raceLogTrackingEventManagementPanel); leaderboardsDisplayers.add(raceLogTrackingEventManagementPanel); - IgtimiAccountsPanel igtimiAccountsPanel = new IgtimiAccountsPanel(sailingService, this, stringMessages); + IgtimiAccountsPanel igtimiAccountsPanel = new IgtimiAccountsPanel(sailingService, this, getStringMessages()); igtimiAccountsPanel.ensureDebugId("IgtimiAccounts"); - addToTabPanel(connectorsTabPanel, igtimiAccountsPanel, stringMessages.igtimiAccounts(), AdminConsoleFeatures.MANAGE_IGTIMI_ACCOUNTS); + addToTabPanel(connectorsTabPanel, igtimiAccountsPanel, getStringMessages().igtimiAccounts(), AdminConsoleFeatures.MANAGE_IGTIMI_ACCOUNTS); - ResultImportUrlsManagementPanel resultImportUrlsManagementPanel = new ResultImportUrlsManagementPanel(sailingService, this, stringMessages); - addToTabPanel(connectorsTabPanel, resultImportUrlsManagementPanel, stringMessages.resultImportUrls(), AdminConsoleFeatures.MANAGE_RESULT_IMPORT_URLS); + ResultImportUrlsManagementPanel resultImportUrlsManagementPanel = new ResultImportUrlsManagementPanel(sailingService, this, getStringMessages()); + addToTabPanel(connectorsTabPanel, resultImportUrlsManagementPanel, getStringMessages().resultImportUrls(), AdminConsoleFeatures.MANAGE_RESULT_IMPORT_URLS); /* ADVANCED */ @@ -225,21 +225,21 @@ public class AdminConsoleEntryPoint extends AbstractEntryPoint implements Regatt setTabPanelSize(advancedTabPanel, "100%", "100%"); advancedTabPanel.addSelectionHandler(tabSelectionHandler); advancedTabPanel.ensureDebugId("AdvancedPanel"); - addToTabPanel(tabPanel, advancedTabPanel, stringMessages.advanced(), AdminConsoleFeatures.MANAGE_REPLICATION); + addToTabPanel(tabPanel, advancedTabPanel, getStringMessages().advanced(), AdminConsoleFeatures.MANAGE_REPLICATION); - final ReplicationPanel replicationPanel = new ReplicationPanel(sailingService, this, stringMessages); - addToTabPanel(advancedTabPanel, replicationPanel, stringMessages.replication(), AdminConsoleFeatures.MANAGE_REPLICATION); + final ReplicationPanel replicationPanel = new ReplicationPanel(sailingService, this, getStringMessages()); + addToTabPanel(advancedTabPanel, replicationPanel, getStringMessages().replication(), AdminConsoleFeatures.MANAGE_REPLICATION); - final MasterDataImportPanel masterDataImportPanel = new MasterDataImportPanel(stringMessages, sailingService, + final MasterDataImportPanel masterDataImportPanel = new MasterDataImportPanel(getStringMessages(), sailingService, this, eventManagementPanel, this, this); - addToTabPanel(advancedTabPanel, masterDataImportPanel, stringMessages.masterDataImportPanel(), AdminConsoleFeatures.MANAGE_MASTERDATA_IMPORT); + addToTabPanel(advancedTabPanel, masterDataImportPanel, getStringMessages().masterDataImportPanel(), AdminConsoleFeatures.MANAGE_MASTERDATA_IMPORT); - RemoteSailingServerInstancesManagementPanel sailingServerInstancesManagementPanel = new RemoteSailingServerInstancesManagementPanel(sailingService, this, stringMessages); - addToTabPanel(advancedTabPanel, sailingServerInstancesManagementPanel, stringMessages.sailingServers(), AdminConsoleFeatures.MANAGE_SAILING_SERVER_INSTANCES); + RemoteSailingServerInstancesManagementPanel sailingServerInstancesManagementPanel = new RemoteSailingServerInstancesManagementPanel(sailingService, this, getStringMessages()); + addToTabPanel(advancedTabPanel, sailingServerInstancesManagementPanel, getStringMessages().sailingServers(), AdminConsoleFeatures.MANAGE_SAILING_SERVER_INSTANCES); final DeviceConfigurationPanel deviceConfigurationUserPanel = new DeviceConfigurationUserPanel(sailingService, - stringMessages, this); - addToTabPanel(advancedTabPanel, deviceConfigurationUserPanel, stringMessages.deviceConfiguration(), AdminConsoleFeatures.MANAGE_DEVICE_CONFIGURATION); + getStringMessages(), this); + addToTabPanel(advancedTabPanel, deviceConfigurationUserPanel, getStringMessages().deviceConfiguration(), AdminConsoleFeatures.MANAGE_DEVICE_CONFIGURATION); updateTabDisplayForCurrentUser(getUserService().getCurrentUser()); if (tabPanel.getWidgetCount() > 0) { tabPanel.selectTab(0); @@ -257,7 +257,7 @@ public class AdminConsoleEntryPoint extends AbstractEntryPoint implements Regatt SystemInformationPanel sysinfoPanel = new SystemInformationPanel(sailingService, this); sysinfoPanel.ensureDebugId("SystemInformation"); - final Anchor releaseNotesLink = new Anchor(new SafeHtmlBuilder().appendEscaped(stringMessages.releaseNotes()).toSafeHtml(), "/release_notes_admin.html"); + final Anchor releaseNotesLink = new Anchor(new SafeHtmlBuilder().appendEscaped(getStringMessages().releaseNotes()).toSafeHtml(), "/release_notes_admin.html"); sysinfoPanel.add(releaseNotesLink); informationPanel.add(sysinfoPanel, DockPanel.EAST); informationPanel.setCellHorizontalAlignment(sysinfoPanel, HasHorizontalAlignment.ALIGN_RIGHT); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AssignRacesToMediaDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AssignRacesToMediaDialog.java index e5bbb272214..725781884bb 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AssignRacesToMediaDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AssignRacesToMediaDialog.java @@ -14,13 +14,13 @@ import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.common.dto.RaceDTO; import com.sap.sailing.domain.common.dto.TrackedRaceDTO; import com.sap.sailing.domain.common.media.MediaTrack; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.RaceSelectionModel; import com.sap.sailing.gwt.ui.client.RegattaRefresher; import com.sap.sailing.gwt.ui.client.RegattasDisplayer; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.RegattaDTO; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.dialog.DataEntryDialog; public class AssignRacesToMediaDialog extends DataEntryDialog> implements RegattasDisplayer { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CompetitorPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CompetitorPanel.java index be554ca1c08..4b0dc656446 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CompetitorPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CompetitorPanel.java @@ -18,10 +18,10 @@ import com.google.gwt.view.client.SelectionChangeEvent; import com.google.gwt.view.client.SelectionChangeEvent.Handler; import com.sap.sailing.domain.common.dto.CompetitorDTO; import com.sap.sailing.domain.common.dto.CompetitorDTOImpl; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sse.common.Util; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; /** diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CompetitorTableWrapper.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CompetitorTableWrapper.java index 391a520b1ee..1a7d034733b 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CompetitorTableWrapper.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CompetitorTableWrapper.java @@ -20,10 +20,10 @@ import com.sap.sailing.domain.common.Color; import com.sap.sailing.domain.common.dto.CompetitorDTO; import com.sap.sailing.domain.common.impl.NaturalComparator; import com.sap.sailing.gwt.ui.adminconsole.ColorColumn.ColorRetriever; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.FlagImageResolver; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.panels.LabeledAbstractFilterablePanel; public class CompetitorTableWrapper> extends TableWrapper { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ControlPointTableWrapper.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ControlPointTableWrapper.java index ac683a24dc6..08ffbb2000a 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ControlPointTableWrapper.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ControlPointTableWrapper.java @@ -2,12 +2,12 @@ package com.sap.sailing.gwt.ui.adminconsole; import com.google.gwt.user.cellview.client.TextColumn; import com.google.gwt.view.client.SelectionModel; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.ControlPointDTO; import com.sap.sailing.gwt.ui.shared.GateDTO; import com.sap.sailing.gwt.ui.shared.MarkDTO; +import com.sap.sse.gwt.client.ErrorReporter; public class ControlPointTableWrapper> extends TableWrapper { public ControlPointTableWrapper(S selectionModel, SailingServiceAsync sailingService, final StringMessages stringMessages, diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CourseManagementWidget.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CourseManagementWidget.java index 3c53bc4aaa4..a34d0a393a8 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CourseManagementWidget.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CourseManagementWidget.java @@ -22,7 +22,6 @@ import com.google.gwt.view.client.SelectionChangeEvent.Handler; import com.google.gwt.view.client.SetSelectionModel; import com.google.gwt.view.client.SingleSelectionModel; import com.sap.sailing.domain.common.PassingInstruction; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.ControlPointDTO; @@ -30,6 +29,7 @@ import com.sap.sailing.gwt.ui.shared.GateDTO; import com.sap.sailing.gwt.ui.shared.MarkDTO; import com.sap.sailing.gwt.ui.shared.RaceCourseDTO; import com.sap.sailing.gwt.ui.shared.WaypointDTO; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.dialog.DataEntryDialog; public abstract class CourseManagementWidget implements IsWidget { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DeviceConfigurationDetailComposite.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DeviceConfigurationDetailComposite.java index 80e9fd406c6..f8b4eb7396e 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DeviceConfigurationDetailComposite.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DeviceConfigurationDetailComposite.java @@ -23,12 +23,12 @@ import com.google.gwt.user.client.ui.Image; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.TextBox; import com.google.gwt.user.client.ui.VerticalPanel; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.DeviceConfigurationDTO; import com.sap.sailing.gwt.ui.shared.DeviceConfigurationDTO.RegattaConfigurationDTO; import com.sap.sailing.gwt.ui.shared.DeviceConfigurationMatcherDTO; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.controls.listedit.ListEditorComposite; import com.sap.sse.gwt.client.controls.listedit.StringListEditorComposite; import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DeviceConfigurationListComposite.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DeviceConfigurationListComposite.java index 99ee948b363..e54c26c8d46 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DeviceConfigurationListComposite.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DeviceConfigurationListComposite.java @@ -18,11 +18,11 @@ import com.google.gwt.view.client.ListDataProvider; import com.google.gwt.view.client.MultiSelectionModel; import com.google.gwt.view.client.SelectionChangeEvent; import com.google.gwt.view.client.SelectionModel; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.SelectionProvider; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.DeviceConfigurationMatcherDTO; +import com.sap.sse.gwt.client.ErrorReporter; public class DeviceConfigurationListComposite extends Composite { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DeviceConfigurationPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DeviceConfigurationPanel.java index 112d36cd208..6f4fe6aee0c 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DeviceConfigurationPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DeviceConfigurationPanel.java @@ -14,7 +14,6 @@ import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.SimplePanel; import com.google.gwt.user.client.ui.VerticalPanel; import com.sap.sailing.gwt.ui.adminconsole.DeviceConfigurationDetailComposite.DeviceConfigurationCloneListener; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.SelectionChangeListener; import com.sap.sailing.gwt.ui.client.SelectionProvider; @@ -22,6 +21,7 @@ import com.sap.sailing.gwt.ui.client.SelectionProviderImpl; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.DeviceConfigurationDTO; import com.sap.sailing.gwt.ui.shared.DeviceConfigurationMatcherDTO; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.dialog.DataEntryDialog; import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; import com.sap.sse.gwt.client.dialog.DataEntryDialog.Validator; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DeviceConfigurationUserDetailComposite.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DeviceConfigurationUserDetailComposite.java index 6985905c447..0ed1ff39a40 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DeviceConfigurationUserDetailComposite.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DeviceConfigurationUserDetailComposite.java @@ -7,9 +7,9 @@ import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.DialogBox; import com.google.gwt.user.client.ui.Grid; import com.google.gwt.user.client.ui.HorizontalPanel; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; +import com.sap.sse.gwt.client.ErrorReporter; public class DeviceConfigurationUserDetailComposite extends DeviceConfigurationDetailComposite { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DeviceConfigurationUserListComposite.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DeviceConfigurationUserListComposite.java index ae4363c776b..bbb671b191f 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DeviceConfigurationUserListComposite.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DeviceConfigurationUserListComposite.java @@ -5,11 +5,11 @@ import java.util.Comparator; import com.google.gwt.user.cellview.client.CellTable; import com.google.gwt.user.cellview.client.ColumnSortEvent.ListHandler; import com.google.gwt.user.cellview.client.TextColumn; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.SelectionProvider; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.DeviceConfigurationMatcherDTO; +import com.sap.sse.gwt.client.ErrorReporter; public class DeviceConfigurationUserListComposite extends DeviceConfigurationListComposite { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DeviceConfigurationUserPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DeviceConfigurationUserPanel.java index d04418bcadf..b79cbad36dc 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DeviceConfigurationUserPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DeviceConfigurationUserPanel.java @@ -1,11 +1,11 @@ package com.sap.sailing.gwt.ui.adminconsole; import com.sap.sailing.gwt.ui.adminconsole.DeviceConfigurationDetailComposite.DeviceConfigurationCloneListener; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.SelectionProvider; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.DeviceConfigurationMatcherDTO; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.dialog.DataEntryDialog; import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; import com.sap.sse.gwt.client.dialog.DataEntryDialog.Validator; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DeviceIdentifierTableWrapper.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DeviceIdentifierTableWrapper.java index b2ad31452a2..a995b16b18a 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DeviceIdentifierTableWrapper.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DeviceIdentifierTableWrapper.java @@ -2,10 +2,10 @@ package com.sap.sailing.gwt.ui.adminconsole; import com.google.gwt.user.cellview.client.TextColumn; import com.google.gwt.view.client.MultiSelectionModel; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.DeviceIdentifierDTO; +import com.sap.sse.gwt.client.ErrorReporter; public class DeviceIdentifierTableWrapper extends TableWrapper> { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DeviceMappingTableWrapper.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DeviceMappingTableWrapper.java index effcbb7e1df..6d2b3e4ab00 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DeviceMappingTableWrapper.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/DeviceMappingTableWrapper.java @@ -13,11 +13,11 @@ import com.google.gwt.user.client.ui.CheckBox; import com.google.gwt.user.client.ui.Widget; import com.google.gwt.view.client.SingleSelectionModel; import com.sap.sailing.domain.common.dto.CompetitorDTO; -import com.sap.sailing.gwt.ui.client.ErrorReporter; 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.DeviceMappingDTO; +import com.sap.sse.gwt.client.ErrorReporter; public class DeviceMappingTableWrapper extends TableWrapper> { static interface FilterChangedHandler { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EditCompetitorsDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EditCompetitorsDialog.java index 26eecaad05d..ca764094bbf 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EditCompetitorsDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EditCompetitorsDialog.java @@ -4,9 +4,9 @@ import java.util.List; import com.google.gwt.user.client.ui.Widget; import com.sap.sailing.domain.common.dto.CompetitorDTO; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.dialog.DataEntryDialog; public class EditCompetitorsDialog extends DataEntryDialog> { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventManagementPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventManagementPanel.java index b0cbc9c7ada..5c64c6e5aa4 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventManagementPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/EventManagementPanel.java @@ -35,7 +35,6 @@ import com.google.gwt.view.client.ListDataProvider; import com.google.gwt.view.client.MultiSelectionModel; import com.google.gwt.view.client.SelectionChangeEvent; import com.sap.sailing.domain.common.impl.NaturalComparator; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.EventsRefresher; import com.sap.sailing.gwt.ui.client.LeaderboardGroupsDisplayer; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; @@ -48,6 +47,7 @@ import com.sap.sailing.gwt.ui.shared.RegattaDTO; 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.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.URLEncoder; import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; import com.sap.sse.gwt.client.panels.LabeledAbstractFilterablePanel; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/FlexibleLeaderboardCreateDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/FlexibleLeaderboardCreateDialog.java index d4458d1c004..e0e990f3240 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/FlexibleLeaderboardCreateDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/FlexibleLeaderboardCreateDialog.java @@ -2,10 +2,10 @@ package com.sap.sailing.gwt.ui.adminconsole; import java.util.Collection; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.EventDTO; import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO; +import com.sap.sse.gwt.client.ErrorReporter; public class FlexibleLeaderboardCreateDialog extends FlexibleLeaderboardDialog { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/FlexibleLeaderboardDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/FlexibleLeaderboardDialog.java index 2bcd87716fe..5b3087f60f5 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/FlexibleLeaderboardDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/FlexibleLeaderboardDialog.java @@ -9,11 +9,11 @@ import com.google.gwt.user.client.ui.Grid; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.ListBox; import com.google.gwt.user.client.ui.Widget; -import com.sap.sailing.gwt.ui.client.ErrorReporter; 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.StrippedLeaderboardDTO; +import com.sap.sse.gwt.client.ErrorReporter; public abstract class FlexibleLeaderboardDialog extends AbstractLeaderboardDialog { protected ListBox scoringSchemeListBox; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/FlexibleLeaderboardEditDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/FlexibleLeaderboardEditDialog.java index 995558c443a..b71009fd047 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/FlexibleLeaderboardEditDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/FlexibleLeaderboardEditDialog.java @@ -4,12 +4,12 @@ import java.util.Collection; import java.util.List; import com.sap.sailing.domain.common.ScoringSchemeType; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.leaderboard.ScoringSchemeTypeFormatter; import com.sap.sailing.gwt.ui.shared.CourseAreaDTO; import com.sap.sailing.gwt.ui.shared.EventDTO; import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO; +import com.sap.sse.gwt.client.ErrorReporter; public class FlexibleLeaderboardEditDialog extends FlexibleLeaderboardDialog { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/GateCreationDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/GateCreationDialog.java index 21093935d9b..897a6200ba8 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/GateCreationDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/GateCreationDialog.java @@ -12,11 +12,11 @@ import com.google.gwt.user.client.ui.Widget; import com.google.gwt.view.client.MultiSelectionModel; import com.google.gwt.view.client.SelectionChangeEvent; import com.google.gwt.view.client.SelectionChangeEvent.Handler; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.GateDTO; import com.sap.sailing.gwt.ui.shared.MarkDTO; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.dialog.DataEntryDialog; public class GateCreationDialog extends DataEntryDialog { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/IgtimiAccountsPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/IgtimiAccountsPanel.java index 909f3dd154f..375a7612bd4 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/IgtimiAccountsPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/IgtimiAccountsPanel.java @@ -31,10 +31,10 @@ import com.google.gwt.view.client.SelectionChangeEvent; import com.google.gwt.view.client.SelectionChangeEvent.Handler; import com.google.gwt.view.client.SingleSelectionModel; import com.sap.sailing.domain.common.impl.NaturalComparator; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.shared.components.ImagesBarCell; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.dialog.DataEntryDialog; import com.sap.sse.gwt.client.panels.LabeledAbstractFilterablePanel; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ImportFixesAndAddMappingsDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ImportFixesAndAddMappingsDialog.java index 76256bad4b4..7c0fc8d662b 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ImportFixesAndAddMappingsDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ImportFixesAndAddMappingsDialog.java @@ -15,13 +15,13 @@ import com.google.gwt.user.client.ui.Widget; import com.google.gwt.view.client.SelectionChangeEvent; import com.google.gwt.view.client.SingleSelectionModel; import com.sap.sailing.domain.common.dto.CompetitorDTO; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.DeviceIdentifierDTO; import com.sap.sailing.gwt.ui.shared.DeviceMappingDTO; import com.sap.sailing.gwt.ui.shared.MarkDTO; import com.sap.sailing.gwt.ui.shared.TrackFileImportDeviceIdentifierDTO; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.dialog.DataEntryDialog; public class ImportFixesAndAddMappingsDialog extends DataEntryDialog> { 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 cb9a0229e65..20bd6638151 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 @@ -37,7 +37,6 @@ import com.sap.sailing.domain.common.dto.FleetDTO; import com.sap.sailing.domain.common.dto.RaceColumnDTO; import com.sap.sailing.gwt.ui.adminconsole.DisablableCheckboxCell.IsEnabled; import com.sap.sailing.gwt.ui.adminconsole.RaceColumnInLeaderboardDialog.RaceColumnDescriptor; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.LeaderboardsDisplayer; import com.sap.sailing.gwt.ui.client.LeaderboardsRefresher; import com.sap.sailing.gwt.ui.client.ParallelExecutionCallback; @@ -55,6 +54,7 @@ import com.sap.sailing.gwt.ui.shared.RaceLogDTO; 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.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.URLEncoder; import com.sap.sse.gwt.client.async.MarkedAsyncCallback; import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardGroupConfigPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardGroupConfigPanel.java index ffb77e5bdd2..5cb6802b2ba 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardGroupConfigPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardGroupConfigPanel.java @@ -37,7 +37,6 @@ import com.sap.sailing.domain.common.impl.NaturalComparator; import com.sap.sailing.gwt.ui.adminconsole.LeaderboardConfigPanel.AnchorCell; import com.sap.sailing.gwt.ui.adminconsole.LeaderboardGroupDialog.LeaderboardGroupDescriptor; import com.sap.sailing.gwt.ui.client.AbstractRegattaPanel; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.LeaderboardGroupsDisplayer; import com.sap.sailing.gwt.ui.client.LeaderboardGroupsRefresher; import com.sap.sailing.gwt.ui.client.LeaderboardsDisplayer; @@ -51,6 +50,7 @@ import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO; import com.sap.sailing.gwt.ui.shared.RegattaDTO; import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO; import com.sap.sse.common.Util; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.URLEncoder; import com.sap.sse.gwt.client.async.MarkedAsyncCallback; import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/MarkTableWrapper.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/MarkTableWrapper.java index becc6551d7a..c525a3eee7b 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/MarkTableWrapper.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/MarkTableWrapper.java @@ -13,10 +13,10 @@ import com.sap.sailing.domain.common.Color; import com.sap.sailing.domain.common.impl.AbstractColor; import com.sap.sailing.domain.common.impl.RGBColor; import com.sap.sailing.gwt.ui.adminconsole.ColorColumn.ColorRetriever; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.MarkDTO; +import com.sap.sse.gwt.client.ErrorReporter; public class MarkTableWrapper> extends TableWrapper { public MarkTableWrapper(S selectionModel, SailingServiceAsync sailingService, StringMessages stringMessages, diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/MediaPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/MediaPanel.java index 019030f69b9..d5140da1321 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/MediaPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/MediaPanel.java @@ -43,7 +43,6 @@ import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.media.MediaTrack; import com.sap.sailing.domain.common.media.MediaUtil; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.MediaServiceAsync; import com.sap.sailing.gwt.ui.client.RegattaRefresher; import com.sap.sailing.gwt.ui.client.RegattasDisplayer; @@ -52,6 +51,7 @@ import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.media.NewMediaWithRaceSelectionDialog; import com.sap.sailing.gwt.ui.client.media.TimeFormatUtil; import com.sap.sailing.gwt.ui.shared.RegattaDTO; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.async.MarkedAsyncCallback; import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; import com.sap.sse.gwt.client.panels.LabeledAbstractFilterablePanel; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceCourseManagementPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceCourseManagementPanel.java index 01e1e53c308..89259e0ba1c 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceCourseManagementPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceCourseManagementPanel.java @@ -4,11 +4,11 @@ import java.util.Date; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.rpc.AsyncCallback; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.RegattaRefresher; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.RaceCourseDTO; +import com.sap.sse.gwt.client.ErrorReporter; /** * A panel that has a race selection (inherited from {@link AbstractRaceManagementPanel}) and which adds a table diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingCompetitorRegistrationsDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingCompetitorRegistrationsDialog.java index e4c15799514..d61fdea3dab 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingCompetitorRegistrationsDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingCompetitorRegistrationsDialog.java @@ -19,10 +19,10 @@ import com.google.gwt.user.client.ui.VerticalPanel; import com.google.gwt.view.client.MultiSelectionModel; import com.sap.sailing.domain.common.dto.CompetitorDTO; import com.sap.sailing.domain.common.dto.CompetitorDTOImpl; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sse.common.Util; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.dialog.DataEntryDialog; public class RaceLogTrackingCompetitorRegistrationsDialog extends RaceLogTrackingDialog { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingCourseDefinitionDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingCourseDefinitionDialog.java index ca1e07ac26e..53235b523fd 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingCourseDefinitionDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingCourseDefinitionDialog.java @@ -9,11 +9,11 @@ import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.Panel; import com.sap.sailing.domain.common.dto.PositionDTO; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.MarkDTO; import com.sap.sailing.gwt.ui.shared.RaceCourseDTO; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.dialog.DataEntryDialog; public class RaceLogTrackingCourseDefinitionDialog extends RaceLogTrackingDialog { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingDeviceMappingsDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingDeviceMappingsDialog.java index e1e7d6bb038..32bdac2fa2b 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingDeviceMappingsDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingDeviceMappingsDialog.java @@ -30,12 +30,12 @@ import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.Panel; import com.google.gwt.view.client.CellPreviewEvent; import com.sap.sailing.gwt.ui.adminconsole.DeviceMappingTableWrapper.FilterChangedHandler; -import com.sap.sailing.gwt.ui.client.ErrorReporter; 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.DeviceMappingDTO; import com.sap.sailing.gwt.ui.shared.MarkDTO; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.dialog.DataEntryDialog; public class RaceLogTrackingDeviceMappingsDialog extends RaceLogTrackingDialog { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingDialog.java index aaa8baddae4..7a8941c501c 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingDialog.java @@ -7,9 +7,9 @@ import com.google.gwt.user.client.ui.DialogBox; import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.Panel; import com.google.gwt.user.client.ui.VerticalPanel; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; +import com.sap.sse.gwt.client.ErrorReporter; public abstract class RaceLogTrackingDialog extends DialogBox { protected final SailingServiceAsync sailingService; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingEventManagementPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingEventManagementPanel.java index 8b847f9fe6b..812b96d75a8 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingEventManagementPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingEventManagementPanel.java @@ -24,7 +24,6 @@ import com.google.gwt.view.client.SelectionChangeEvent.Handler; import com.sap.sailing.domain.common.dto.FleetDTO; import com.sap.sailing.domain.common.dto.RaceColumnDTO; import com.sap.sailing.domain.common.racelog.tracking.RaceLogTrackingState; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.LeaderboardsDisplayer; import com.sap.sailing.gwt.ui.client.LeaderboardsRefresher; import com.sap.sailing.gwt.ui.client.RegattaRefresher; @@ -34,6 +33,7 @@ import com.sap.sailing.gwt.ui.client.shared.controls.SelectionCheckboxColumn; 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.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.dialog.DataEntryDialog; import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceTableWrapper.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceTableWrapper.java index fb34c0e8770..fbd5d7ca817 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceTableWrapper.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceTableWrapper.java @@ -14,9 +14,9 @@ import com.sap.sailing.gwt.ui.adminconsole.AbstractLeaderboardConfigPanel.RaceCo import com.sap.sailing.gwt.ui.adminconsole.LeaderboardConfigPanel.AnchorCell; import com.sap.sailing.gwt.ui.adminconsole.LeaderboardConfigPanel.AnchorTemplates; import com.sap.sailing.gwt.ui.client.EntryPointLinkFactory; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; +import com.sap.sse.gwt.client.ErrorReporter; public class RaceTableWrapper> extends TableWrapper { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDetailsComposite.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDetailsComposite.java index 8d2d7de9905..e699acb428e 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDetailsComposite.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDetailsComposite.java @@ -25,13 +25,13 @@ import com.sap.sailing.domain.common.ScoringSchemeType; import com.sap.sailing.domain.common.dto.FleetDTO; import com.sap.sailing.domain.common.dto.RaceColumnDTO; import com.sap.sailing.domain.common.dto.RaceColumnInSeriesDTO; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.RegattaRefresher; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.leaderboard.ScoringSchemeTypeFormatter; import com.sap.sailing.gwt.ui.shared.RegattaDTO; import com.sap.sailing.gwt.ui.shared.SeriesDTO; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.async.MarkedAsyncCallback; import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaLeaderboardCreateDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaLeaderboardCreateDialog.java index 829ee6b6211..fe7d1697396 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaLeaderboardCreateDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaLeaderboardCreateDialog.java @@ -4,10 +4,10 @@ import java.util.Collection; import com.google.gwt.event.dom.client.ChangeEvent; import com.google.gwt.event.dom.client.ChangeHandler; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.RegattaDTO; import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO; +import com.sap.sse.gwt.client.ErrorReporter; public class RegattaLeaderboardCreateDialog extends RegattaLeaderboardDialog { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaLeaderboardDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaLeaderboardDialog.java index 44bb374afee..bd45183c65a 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaLeaderboardDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaLeaderboardDialog.java @@ -10,10 +10,10 @@ import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.ListBox; import com.google.gwt.user.client.ui.VerticalPanel; import com.google.gwt.user.client.ui.Widget; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.RegattaDTO; import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO; +import com.sap.sse.gwt.client.ErrorReporter; public abstract class RegattaLeaderboardDialog extends AbstractLeaderboardDialog { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaLeaderboardEditDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaLeaderboardEditDialog.java index 777d720a0cc..4151d8b1d52 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaLeaderboardEditDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaLeaderboardEditDialog.java @@ -2,10 +2,10 @@ package com.sap.sailing.gwt.ui.adminconsole; import java.util.Collection; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.RegattaDTO; import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO; +import com.sap.sse.gwt.client.ErrorReporter; public class RegattaLeaderboardEditDialog extends RegattaLeaderboardDialog { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaListComposite.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaListComposite.java index af0538fd2d9..f3da6b31d49 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaListComposite.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaListComposite.java @@ -27,7 +27,6 @@ import com.google.gwt.view.client.SelectionModel; import com.sap.sailing.domain.common.RegattaIdentifier; import com.sap.sailing.domain.common.RegattaName; import com.sap.sailing.domain.common.impl.NaturalComparator; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.RegattaRefresher; import com.sap.sailing.gwt.ui.client.RegattaSelectionProvider; import com.sap.sailing.gwt.ui.client.RegattasDisplayer; @@ -36,6 +35,7 @@ import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.EventDTO; import com.sap.sailing.gwt.ui.shared.RegattaDTO; import com.sap.sailing.gwt.ui.shared.SeriesDTO; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.async.MarkedAsyncCallback; import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; import com.sap.sse.gwt.client.panels.LabeledAbstractFilterablePanel; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaStructureManagementPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaStructureManagementPanel.java index 562d8ffd027..f7be038e353 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaStructureManagementPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaStructureManagementPanel.java @@ -20,7 +20,6 @@ import com.google.gwt.user.client.ui.VerticalPanel; import com.sap.sailing.domain.common.RegattaIdentifier; import com.sap.sailing.domain.common.dto.RegattaCreationParametersDTO; import com.sap.sailing.domain.common.dto.SeriesCreationParametersDTO; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.RegattaRefresher; import com.sap.sailing.gwt.ui.client.RegattaSelectionChangeListener; import com.sap.sailing.gwt.ui.client.RegattaSelectionModel; @@ -31,6 +30,7 @@ import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.EventDTO; import com.sap.sailing.gwt.ui.shared.RegattaDTO; import com.sap.sailing.gwt.ui.shared.SeriesDTO; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; /** diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RemoteSailingServerInstancesManagementPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RemoteSailingServerInstancesManagementPanel.java index 7871c675d8b..b7e1ee908ad 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RemoteSailingServerInstancesManagementPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RemoteSailingServerInstancesManagementPanel.java @@ -25,11 +25,11 @@ import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.VerticalPanel; import com.google.gwt.view.client.ListDataProvider; import com.google.gwt.view.client.MultiSelectionModel; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.EventBaseDTO; import com.sap.sailing.gwt.ui.shared.RemoteSailingServerReferenceDTO; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; import com.sap.sse.gwt.client.panels.LabeledAbstractFilterablePanel; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ReplicationPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ReplicationPanel.java index 41ecaf78efd..2b14c5d7e66 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ReplicationPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ReplicationPanel.java @@ -14,13 +14,13 @@ import com.google.gwt.user.client.ui.Label; 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.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.ReplicaDTO; import com.sap.sailing.gwt.ui.shared.ReplicationMasterDTO; import com.sap.sailing.gwt.ui.shared.ReplicationStateDTO; import com.sap.sse.common.Util; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.controls.IntegerBox; import com.sap.sse.gwt.client.dialog.DataEntryDialog; import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ResultImportUrlsManagementPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ResultImportUrlsManagementPanel.java index af752c023ed..55c47f34faf 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ResultImportUrlsManagementPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ResultImportUrlsManagementPanel.java @@ -17,10 +17,10 @@ import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.ListBox; import com.google.gwt.user.client.ui.VerticalPanel; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.TextfieldEntryDialog; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.dialog.DataEntryDialog; import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SelectRacesDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SelectRacesDialog.java index 9f6ada40bf0..da232f4136b 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SelectRacesDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SelectRacesDialog.java @@ -8,9 +8,9 @@ import com.google.gwt.view.client.MultiSelectionModel; import com.google.gwt.view.client.SelectionChangeEvent; import com.google.gwt.view.client.SelectionChangeEvent.Handler; import com.sap.sailing.gwt.ui.adminconsole.AbstractLeaderboardConfigPanel.RaceColumnDTOAndFleetDTOWithNameBasedEquality; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.dialog.DataEntryDialog; public class SelectRacesDialog extends DataEntryDialog> { 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 8a37a64042a..1aeada7dfa3 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 @@ -21,11 +21,11 @@ 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.ErrorReporter; 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 { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SwissTimingEventManagementPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SwissTimingEventManagementPanel.java index 1f60ba22d16..9e67f798875 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SwissTimingEventManagementPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SwissTimingEventManagementPanel.java @@ -34,7 +34,6 @@ import com.google.gwt.view.client.MultiSelectionModel; import com.sap.sailing.domain.common.RegattaIdentifier; import com.sap.sailing.domain.common.RegattaName; import com.sap.sailing.domain.common.impl.NaturalComparator; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.RaceSelectionModel; import com.sap.sailing.gwt.ui.client.RegattaRefresher; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; @@ -43,6 +42,7 @@ import com.sap.sailing.gwt.ui.shared.RegattaDTO; import com.sap.sailing.gwt.ui.shared.SwissTimingConfigurationDTO; import com.sap.sailing.gwt.ui.shared.SwissTimingEventRecordDTO; import com.sap.sailing.gwt.ui.shared.SwissTimingRaceRecordDTO; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.panels.LabeledAbstractFilterablePanel; /** diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SwissTimingReplayConnectorPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SwissTimingReplayConnectorPanel.java index 61de9d83f9d..57b003f7550 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SwissTimingReplayConnectorPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SwissTimingReplayConnectorPanel.java @@ -34,7 +34,6 @@ import com.google.gwt.view.client.MultiSelectionModel; import com.sap.sailing.domain.common.RegattaIdentifier; import com.sap.sailing.domain.common.RegattaName; import com.sap.sailing.domain.common.impl.NaturalComparator; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.RaceSelectionModel; import com.sap.sailing.gwt.ui.client.RegattaRefresher; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; @@ -42,6 +41,7 @@ import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.RegattaDTO; import com.sap.sailing.gwt.ui.shared.SwissTimingArchiveConfigurationDTO; import com.sap.sailing.gwt.ui.shared.SwissTimingReplayRaceDTO; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.panels.LabeledAbstractFilterablePanel; /** diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/TableWrapper.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/TableWrapper.java index a660b821b05..9be6496a3a4 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/TableWrapper.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/TableWrapper.java @@ -10,9 +10,9 @@ import com.google.gwt.user.client.ui.VerticalPanel; import com.google.gwt.user.client.ui.Widget; import com.google.gwt.view.client.ListDataProvider; import com.google.gwt.view.client.SelectionModel; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; +import com.sap.sse.gwt.client.ErrorReporter; /** * Implementing classes still have to add the table to the main panel. diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/TracTracEventManagementPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/TracTracEventManagementPanel.java index bd9c6979648..892695fe7b9 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/TracTracEventManagementPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/TracTracEventManagementPanel.java @@ -36,7 +36,6 @@ import com.google.gwt.view.client.SelectionModel; import com.sap.sailing.domain.common.RegattaIdentifier; import com.sap.sailing.domain.common.RegattaName; import com.sap.sailing.domain.common.impl.NaturalComparator; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.RaceSelectionModel; import com.sap.sailing.gwt.ui.client.RegattaRefresher; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; @@ -45,6 +44,7 @@ import com.sap.sailing.gwt.ui.client.shared.controls.SelectionCheckboxColumn; import com.sap.sailing.gwt.ui.shared.RegattaDTO; import com.sap.sailing.gwt.ui.shared.TracTracConfigurationDTO; import com.sap.sailing.gwt.ui.shared.TracTracRaceRecordDTO; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.async.MarkedAsyncCallback; import com.sap.sse.gwt.client.panels.LabeledAbstractFilterablePanel; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/TrackFileImportDeviceIdentifierTableWrapper.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/TrackFileImportDeviceIdentifierTableWrapper.java index 3def8f1363d..6ded359fcd2 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/TrackFileImportDeviceIdentifierTableWrapper.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/TrackFileImportDeviceIdentifierTableWrapper.java @@ -2,11 +2,11 @@ package com.sap.sailing.gwt.ui.adminconsole; import com.google.gwt.user.cellview.client.TextColumn; import com.google.gwt.view.client.SingleSelectionModel; -import com.sap.sailing.gwt.ui.client.ErrorReporter; 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.TrackFileImportDeviceIdentifierDTO; +import com.sap.sse.gwt.client.ErrorReporter; public class TrackFileImportDeviceIdentifierTableWrapper extends TableWrapper> { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/TrackFileImportWidget.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/TrackFileImportWidget.java index a9b59236bb0..ddd508f66c4 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/TrackFileImportWidget.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/TrackFileImportWidget.java @@ -18,10 +18,10 @@ import com.google.gwt.user.client.ui.ListBox; import com.google.gwt.user.client.ui.Panel; import com.google.gwt.user.client.ui.VerticalPanel; import com.google.gwt.user.client.ui.Widget; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.TrackFileImportDeviceIdentifierDTO; +import com.sap.sse.gwt.client.ErrorReporter; public class TrackFileImportWidget implements IsWidget { private final Panel mainPanel = new VerticalPanel(); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/TrackedRacesListComposite.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/TrackedRacesListComposite.java index e7568b83637..9725e4e675d 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/TrackedRacesListComposite.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/TrackedRacesListComposite.java @@ -13,7 +13,6 @@ import com.google.gwt.user.client.ui.HorizontalPanel; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.common.RegattaNameAndRaceName; import com.sap.sailing.domain.common.dto.RaceDTO; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.RaceSelectionProvider; import com.sap.sailing.gwt.ui.client.RegattaRefresher; import com.sap.sailing.gwt.ui.client.RegattasDisplayer; @@ -21,6 +20,7 @@ import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialog; import com.sap.sailing.gwt.ui.shared.RegattaDTO; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.async.MarkedAsyncCallback; /** diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/TrackedRacesManagementPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/TrackedRacesManagementPanel.java index 2ab9955373e..7579a1bdff5 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/TrackedRacesManagementPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/TrackedRacesManagementPanel.java @@ -13,10 +13,10 @@ import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.Grid; import com.google.gwt.user.client.ui.HorizontalPanel; import com.sap.sailing.domain.common.dto.RaceDTO; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.RegattaRefresher; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; public class TrackedRacesManagementPanel extends AbstractRaceManagementPanel { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/WaypointCreationDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/WaypointCreationDialog.java index ba08d5e51c5..5a719ddcecb 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/WaypointCreationDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/WaypointCreationDialog.java @@ -11,12 +11,12 @@ import com.google.gwt.view.client.SelectionChangeEvent; import com.google.gwt.view.client.SelectionChangeEvent.Handler; import com.google.gwt.view.client.SingleSelectionModel; import com.sap.sailing.domain.common.PassingInstruction; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.ControlPointDTO; import com.sap.sailing.gwt.ui.shared.WaypointDTO; import com.sap.sse.common.Util; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.dialog.DataEntryDialog; public class WaypointCreationDialog extends DataEntryDialog { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/WaypointTableWrapper.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/WaypointTableWrapper.java index d207e02f2da..6e21681171f 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/WaypointTableWrapper.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/WaypointTableWrapper.java @@ -2,13 +2,13 @@ package com.sap.sailing.gwt.ui.adminconsole; import com.google.gwt.user.cellview.client.TextColumn; import com.google.gwt.view.client.SelectionModel; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.ControlPointDTO; import com.sap.sailing.gwt.ui.shared.GateDTO; import com.sap.sailing.gwt.ui.shared.MarkDTO; import com.sap.sailing.gwt.ui.shared.WaypointDTO; +import com.sap.sse.gwt.client.ErrorReporter; public class WaypointTableWrapper> extends TableWrapper { public WaypointTableWrapper(S selectionModel, SailingServiceAsync sailingService, final StringMessages stringMessages, diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/WindPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/WindPanel.java index fea21741f1e..eed0deabd09 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/WindPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/WindPanel.java @@ -51,7 +51,6 @@ import com.sap.sailing.domain.common.WindSourceType; import com.sap.sailing.domain.common.dto.RaceDTO; import com.sap.sailing.domain.common.impl.WindSourceImpl; import com.sap.sailing.gwt.ui.adminconsole.WindImportResult.RaceEntry; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.RaceSelectionChangeListener; import com.sap.sailing.gwt.ui.client.RaceSelectionModel; import com.sap.sailing.gwt.ui.client.RaceSelectionProvider; @@ -65,6 +64,7 @@ import com.sap.sailing.gwt.ui.shared.RegattaDTO; import com.sap.sailing.gwt.ui.shared.WindDTO; import com.sap.sailing.gwt.ui.shared.WindInfoForRaceDTO; import com.sap.sailing.gwt.ui.shared.WindTrackInfoDTO; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.async.AsyncActionsExecutor; import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/WindSourcesToExcludeSelectorPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/WindSourcesToExcludeSelectorPanel.java index 13906eb5507..f20a99e9fa8 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/WindSourcesToExcludeSelectorPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/WindSourcesToExcludeSelectorPanel.java @@ -13,10 +13,10 @@ import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.VerticalPanel; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.common.WindSource; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.WindSourceTypeFormatter; +import com.sap.sse.gwt.client.ErrorReporter; /** * A panel that allows users to select one or more wind sources from a list of wind sources which shall be diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/AbstractEntryPoint.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/AbstractEntryPoint.java deleted file mode 100755 index 716117db96f..00000000000 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/AbstractEntryPoint.java +++ /dev/null @@ -1,109 +0,0 @@ -package com.sap.sailing.gwt.ui.client; - -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.Window; -import com.google.gwt.user.client.rpc.ServiceDefTarget; -import com.google.gwt.user.client.ui.Button; -import com.google.gwt.user.client.ui.DialogBox; -import com.google.gwt.user.client.ui.HTML; -import com.google.gwt.user.client.ui.Label; -import com.google.gwt.user.client.ui.RootPanel; -import com.google.gwt.user.client.ui.VerticalPanel; -import com.sap.sse.gwt.client.EntryPointHelper; -import com.sap.sse.security.ui.client.UserService; -import com.sap.sse.security.ui.shared.UserManagementService; -import com.sap.sse.security.ui.shared.UserManagementServiceAsync; - -public abstract class AbstractEntryPoint extends com.sap.sse.gwt.client.AbstractEntryPoint implements ErrorReporter, WindowSizeDetector { - private DialogBox errorDialogBox; - private HTML serverResponseLabel; - private Button dialogCloseButton; - protected StringMessages stringMessages; - protected Label persistentAlertLabel; - private UserService userService; - private UserManagementServiceAsync userManagementService; - - protected void doOnModuleLoad() { - super.doOnModuleLoad(); - userManagementService = GWT.create(UserManagementService.class); - EntryPointHelper.registerASyncService((ServiceDefTarget) userManagementService, com.sap.sse.security.ui.client.RemoteServiceMappingConstants.userManagementServiceRemotePath); - userService = new UserService(userManagementService); - stringMessages = GWT.create(StringMessages.class); - errorDialogBox = createErrorDialog(); /* TODO: Make this more generic (e.g. make it support all kinds of messages) */ - persistentAlertLabel = new Label(""); - persistentAlertLabel.setStyleName("global-alert-message"); - } - - protected UserManagementServiceAsync getUserManagementService() { - return userManagementService; - } - - protected UserService getUserService() { - return userService; - } - - @Override - public void reportError(String message) { - errorDialogBox.setText(message); - serverResponseLabel.addStyleName("serverResponseLabelError"); //$NON-NLS-1$ - serverResponseLabel.setHTML(stringMessages.serverError()); - errorDialogBox.center(); - dialogCloseButton.setFocus(true); - } - - @Override - public void reportError(String message, boolean silentMode) { - if (silentMode) { - Window.setStatus(message); - } else { - reportError(message); - } - } - - @Override - public void reportPersistentInformation(String message) { - persistentAlertLabel.setText(message); - } - - @Override - public boolean isSmallWidth() { - int width = Window.getClientWidth(); - return width <= 720; - } - - public void createErrorPage(String message) { - LogoAndTitlePanel logoAndTitlePanel = new LogoAndTitlePanel(stringMessages, this, getUserService()); - logoAndTitlePanel.addStyleName("LogoAndTitlePanel"); - RootPanel.get().add(logoAndTitlePanel); - RootPanel.get().add(new Label(message)); - } - - private DialogBox createErrorDialog() { - // Create the popup dialog box - final DialogBox myErrorDialogBox = new DialogBox(); - myErrorDialogBox.setText("Remote Procedure Call"); //$NON-NLS-1$ - myErrorDialogBox.setAnimationEnabled(true); - dialogCloseButton = new Button("Close"); //$NON-NLS-1$ - // We can set the id of a widget by accessing its Element - dialogCloseButton.getElement().setId("closeButton"); //$NON-NLS-1$ - final Label textToServerLabel = new Label(); - serverResponseLabel = new HTML(); - VerticalPanel dialogVPanel = new VerticalPanel(); - dialogVPanel.add(new HTML("Error communicating with server")); //$NON-NLS-1$ - dialogVPanel.add(textToServerLabel); - dialogVPanel.add(new HTML("
Server replies:")); //$NON-NLS-1$ - dialogVPanel.add(serverResponseLabel); - dialogVPanel.setHorizontalAlignment(VerticalPanel.ALIGN_RIGHT); - dialogVPanel.add(dialogCloseButton); - myErrorDialogBox.setWidget(dialogVPanel); - // Add a handler to close the DialogBox - dialogCloseButton.addClickHandler(new ClickHandler() { - public void onClick(ClickEvent event) { - myErrorDialogBox.hide(); - } - }); - return myErrorDialogBox; - } -} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/AbstractRegattaPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/AbstractRegattaPanel.java index 5d0bb4fa956..ede362a551d 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/AbstractRegattaPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/AbstractRegattaPanel.java @@ -7,6 +7,7 @@ import com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat; import com.google.gwt.text.client.DateTimeFormatRenderer; import com.google.gwt.user.client.ui.FormPanel; import com.sap.sailing.gwt.ui.shared.RegattaDTO; +import com.sap.sse.gwt.client.ErrorReporter; //TODO: Do not inherit from FormPanel since the provided functionality is never used! public abstract class AbstractRegattaPanel extends FormPanel implements RegattasDisplayer { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/AbstractSailingEntryPoint.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/AbstractSailingEntryPoint.java new file mode 100755 index 00000000000..d512e05be6d --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/AbstractSailingEntryPoint.java @@ -0,0 +1,10 @@ +package com.sap.sailing.gwt.ui.client; + +import com.sap.sse.security.ui.client.AbstractSecureEntryPoint; + +public abstract class AbstractSailingEntryPoint extends AbstractSecureEntryPoint { + @Override + protected com.sap.sailing.gwt.ui.client.StringMessages getStringMessages() { + return (com.sap.sailing.gwt.ui.client.StringMessages) super.getStringMessages(); + } +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/LogoAndTitlePanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/LogoAndTitlePanel.java index 37b879881ec..da871c8459b 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/LogoAndTitlePanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/LogoAndTitlePanel.java @@ -5,6 +5,7 @@ import com.google.gwt.user.client.ui.Anchor; import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.RequiresResize; +import com.sap.sse.gwt.client.WindowSizeDetector; import com.sap.sse.security.ui.client.UserService; public class LogoAndTitlePanel extends FlowPanel implements RequiresResize { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/RaceTimesInfoProvider.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/RaceTimesInfoProvider.java index f01b507a3b1..9d059f1ddc5 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/RaceTimesInfoProvider.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/RaceTimesInfoProvider.java @@ -19,6 +19,7 @@ import com.sap.sailing.domain.common.dto.LeaderboardDTO; import com.sap.sailing.domain.common.dto.RaceColumnDTO; import com.sap.sailing.gwt.ui.actions.GetRaceTimesInfoAction; import com.sap.sailing.gwt.ui.shared.RaceTimesInfoDTO; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.async.AsyncActionsExecutor; public class RaceTimesInfoProvider { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SmallWindHistoryPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SmallWindHistoryPanel.java index aa7f9e09115..bbbc2ccf6ca 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SmallWindHistoryPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SmallWindHistoryPanel.java @@ -17,6 +17,7 @@ import com.sap.sailing.domain.common.dto.PositionDTO; import com.sap.sailing.gwt.ui.shared.WindDTO; import com.sap.sailing.gwt.ui.shared.WindInfoForRaceDTO; import com.sap.sailing.gwt.ui.shared.WindTrackInfoDTO; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.player.TimeListener; /** diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/media/MediaPlayerManager.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/media/MediaPlayerManager.java index f50218753f5..95d6a4253f1 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/media/MediaPlayerManager.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/media/MediaPlayerManager.java @@ -6,8 +6,8 @@ import java.util.Set; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.common.media.MediaTrack; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.MediaServiceAsync; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.useragent.UserAgentDetails; public interface MediaPlayerManager { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/media/MediaPlayerManagerComponent.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/media/MediaPlayerManagerComponent.java index fb564b9a459..eb498116778 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/media/MediaPlayerManagerComponent.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/media/MediaPlayerManagerComponent.java @@ -27,7 +27,6 @@ import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.media.MediaTrack; import com.sap.sailing.domain.common.media.MediaTrack.MediaType; import com.sap.sailing.domain.common.media.MediaTrack.Status; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.MediaServiceAsync; import com.sap.sailing.gwt.ui.client.RaceTimesInfoProvider; import com.sap.sailing.gwt.ui.client.StringMessages; @@ -41,6 +40,7 @@ import com.sap.sailing.gwt.ui.client.media.shared.VideoSynchPlayer; import com.sap.sailing.gwt.ui.client.shared.components.Component; import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialogComponent; import com.sap.sailing.gwt.ui.usermanagement.UserRoles; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; import com.sap.sse.gwt.client.player.PlayStateListener; import com.sap.sse.gwt.client.player.TimeListener; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/media/MediaSynchControl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/media/MediaSynchControl.java index 55b7a97e185..7da4f45691a 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/media/MediaSynchControl.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/media/MediaSynchControl.java @@ -11,9 +11,9 @@ import com.google.gwt.user.client.ui.FocusWidget; import com.google.gwt.user.client.ui.TextBox; import com.google.gwt.user.client.ui.Widget; import com.sap.sailing.domain.common.media.MediaTrack; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.MediaServiceAsync; import com.sap.sailing.gwt.ui.client.media.MediaSynchAdapter.EditFlag; +import com.sap.sse.gwt.client.ErrorReporter; public class MediaSynchControl implements EditFlag { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/media/NewMediaWithRaceSelectionDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/media/NewMediaWithRaceSelectionDialog.java index 9250c316120..c5d51a5ab60 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/media/NewMediaWithRaceSelectionDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/media/NewMediaWithRaceSelectionDialog.java @@ -9,11 +9,11 @@ import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.media.MediaTrack; import com.sap.sailing.gwt.ui.adminconsole.AssignRacesToMediaDialog; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.RegattaRefresher; import com.sap.sailing.gwt.ui.client.RegattasDisplayer; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; +import com.sap.sse.gwt.client.ErrorReporter; public class NewMediaWithRaceSelectionDialog extends NewMediaDialog { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/media/VideoFloatingContainer.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/media/VideoFloatingContainer.java index 84546a70d2b..718b5a37f23 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/media/VideoFloatingContainer.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/media/VideoFloatingContainer.java @@ -4,10 +4,10 @@ import com.google.gwt.event.logical.shared.CloseEvent; import com.google.gwt.event.logical.shared.CloseHandler; import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.PopupPanel; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.MediaServiceAsync; import com.sap.sailing.gwt.ui.client.media.popup.PopoutWindowPlayer.PlayerCloseListener; import com.sap.sailing.gwt.ui.client.media.shared.VideoSynchPlayer; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.dialog.WindowBox; public class VideoFloatingContainer extends AbstractVideoContainer implements VideoContainer { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/AbstractCompetitorLeaderboardChart.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/AbstractCompetitorLeaderboardChart.java index c4bad113fb0..feb71eaee46 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/AbstractCompetitorLeaderboardChart.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/AbstractCompetitorLeaderboardChart.java @@ -36,7 +36,6 @@ import com.sap.sailing.gwt.ui.actions.GetLeaderboardDataEntriesAction; import com.sap.sailing.gwt.ui.client.CompetitorSelectionChangeListener; import com.sap.sailing.gwt.ui.client.CompetitorSelectionProvider; import com.sap.sailing.gwt.ui.client.DetailTypeFormatter; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.shared.components.AbstractLazyComponent; @@ -44,6 +43,7 @@ import com.sap.sailing.gwt.ui.client.shared.components.Component; import com.sap.sse.common.Util; import com.sap.sse.common.filter.Filter; import com.sap.sse.common.filter.FilterSet; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.async.AsyncActionsExecutor; import com.sap.sse.gwt.client.player.TimeListener; import com.sap.sse.gwt.client.player.Timer; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/AbstractCompetitorRaceChart.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/AbstractCompetitorRaceChart.java index cb5b0dbc970..02ca5019efc 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/AbstractCompetitorRaceChart.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/AbstractCompetitorRaceChart.java @@ -45,7 +45,6 @@ import com.sap.sailing.gwt.ui.actions.GetCompetitorsRaceDataAction; import com.sap.sailing.gwt.ui.client.CompetitorSelectionChangeListener; import com.sap.sailing.gwt.ui.client.CompetitorSelectionProvider; import com.sap.sailing.gwt.ui.client.DetailTypeFormatter; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.RaceSelectionProvider; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; @@ -55,6 +54,7 @@ import com.sap.sailing.gwt.ui.shared.CompetitorsRaceDataDTO; import com.sap.sse.common.Util; import com.sap.sse.common.filter.Filter; import com.sap.sse.common.filter.FilterSet; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.async.AsyncActionsExecutor; import com.sap.sse.gwt.client.player.TimeRangeWithZoomProvider; import com.sap.sse.gwt.client.player.Timer; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/AbstractRaceChart.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/AbstractRaceChart.java index c4bd1a49dce..7808122f577 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/AbstractRaceChart.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/AbstractRaceChart.java @@ -18,12 +18,12 @@ import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.SimplePanel; import com.google.gwt.user.client.ui.Widget; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.RaceSelectionChangeListener; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.shared.charts.ChartCssResources.ChartsCss; import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialog; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.async.AsyncActionsExecutor; import com.sap.sse.gwt.client.controls.busyindicator.SimpleBusyIndicator; import com.sap.sse.gwt.client.player.TimeListener; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/MultiCompetitorLeaderboardChart.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/MultiCompetitorLeaderboardChart.java index f4bd57bd667..354a21c7ca9 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/MultiCompetitorLeaderboardChart.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/MultiCompetitorLeaderboardChart.java @@ -2,10 +2,10 @@ package com.sap.sailing.gwt.ui.client.shared.charts; import com.sap.sailing.domain.common.DetailType; import com.sap.sailing.gwt.ui.client.CompetitorSelectionProvider; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialogComponent; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.async.AsyncActionsExecutor; import com.sap.sse.gwt.client.player.Timer; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/MultiCompetitorRaceChart.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/MultiCompetitorRaceChart.java index 4796de5b3cd..c074e97e938 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/MultiCompetitorRaceChart.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/MultiCompetitorRaceChart.java @@ -4,7 +4,6 @@ import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.Button; import com.sap.sailing.domain.common.DetailType; import com.sap.sailing.gwt.ui.client.CompetitorSelectionProvider; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.RaceSelectionProvider; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; @@ -12,6 +11,7 @@ import com.sap.sailing.gwt.ui.client.shared.components.Component; import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialog; import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialogComponent; import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.async.AsyncActionsExecutor; import com.sap.sse.gwt.client.player.TimeRangeWithZoomProvider; import com.sap.sse.gwt.client.player.Timer; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/WindChart.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/WindChart.java index 5d829fb4f1c..be0306b8905 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/WindChart.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/WindChart.java @@ -44,7 +44,6 @@ import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.common.WindSource; import com.sap.sailing.domain.common.impl.ColorMapImpl; import com.sap.sailing.gwt.ui.actions.GetWindInfoAction; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.RaceSelectionProvider; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; @@ -56,6 +55,7 @@ import com.sap.sailing.gwt.ui.shared.WindDTO; import com.sap.sailing.gwt.ui.shared.WindInfoForRaceDTO; import com.sap.sailing.gwt.ui.shared.WindTrackInfoDTO; import com.sap.sse.common.Util; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.async.AsyncActionsExecutor; import com.sap.sse.gwt.client.player.TimeRangeWithZoomProvider; import com.sap.sse.gwt.client.player.Timer; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/panels/SystemInformationPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/panels/SystemInformationPanel.java index 5800234cd52..8aaf5b3f75b 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/panels/SystemInformationPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/panels/SystemInformationPanel.java @@ -5,8 +5,8 @@ import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.Widget; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; +import com.sap.sse.gwt.client.ErrorReporter; public class SystemInformationPanel extends FlowPanel { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMap.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMap.java index d94ec3d9c98..1f44563ee7b 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMap.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMap.java @@ -86,7 +86,6 @@ import com.sap.sailing.gwt.ui.actions.GetWindInfoAction; import com.sap.sailing.gwt.ui.client.ClientResources; import com.sap.sailing.gwt.ui.client.CompetitorSelectionChangeListener; import com.sap.sailing.gwt.ui.client.CompetitorSelectionProvider; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.NumberFormatterFactory; import com.sap.sailing.gwt.ui.client.RaceSelectionChangeListener; import com.sap.sailing.gwt.ui.client.RaceTimesInfoProviderListener; @@ -122,6 +121,7 @@ import com.sap.sse.common.Util; import com.sap.sse.common.Util.Triple; import com.sap.sse.common.filter.Filter; import com.sap.sse.common.filter.FilterSet; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.async.AsyncActionsExecutor; import com.sap.sse.gwt.client.player.TimeListener; import com.sap.sse.gwt.client.player.Timer; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/datamining/DataMiningEntryPoint.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/datamining/DataMiningEntryPoint.java index 49a3d2d12ed..08f85198d90 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/datamining/DataMiningEntryPoint.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/datamining/DataMiningEntryPoint.java @@ -14,7 +14,7 @@ import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.RootLayoutPanel; import com.google.gwt.user.client.ui.SplitLayoutPanel; import com.google.gwt.user.client.ui.Widget; -import com.sap.sailing.gwt.ui.client.AbstractEntryPoint; +import com.sap.sailing.gwt.ui.client.AbstractSailingEntryPoint; import com.sap.sailing.gwt.ui.client.GlobalNavigationPanel; import com.sap.sailing.gwt.ui.client.LogoAndTitlePanel; import com.sap.sailing.gwt.ui.client.RemoteServiceMappingConstants; @@ -31,7 +31,7 @@ import com.sap.sailing.gwt.ui.datamining.settings.RefreshingSelectionTablesSetti import com.sap.sse.gwt.client.EntryPointHelper; import com.sap.sse.gwt.shared.GwtHttpRequestUtils; -public class DataMiningEntryPoint extends AbstractEntryPoint { +public class DataMiningEntryPoint extends AbstractSailingEntryPoint { private final SailingServiceAsync sailingService = GWT.create(SailingService.class); private static DataMiningResources resources = GWT.create(DataMiningResources.class); @@ -51,13 +51,13 @@ public class DataMiningEntryPoint extends AbstractEntryPoint { DockLayoutPanel dockPanel = new DockLayoutPanel(Unit.PX); dockPanel.addNorth(createLogoAndTitlePanel(), 68); - QueryDefinitionProviderWithControls queryDefinitionProviderWithControls = new QueryDefinitionProviderWithControls(stringMessages, sailingService, dataMiningService, this); + QueryDefinitionProviderWithControls queryDefinitionProviderWithControls = new QueryDefinitionProviderWithControls(getStringMessages(), sailingService, dataMiningService, this); queryDefinitionProviderWithControls.getEntryWidget().addStyleName("dataMiningPanel"); dockPanel.add(queryDefinitionProviderWithControls.getEntryWidget()); - ResultsPresenter resultsPresenter = new ResultsChart(stringMessages); + ResultsPresenter resultsPresenter = new ResultsChart(getStringMessages()); if (GwtHttpRequestUtils.getBooleanParameter("benchmark", false)) { - BenchmarkResultsPanel benchmarkResultsPanel = new BenchmarkResultsPanel(stringMessages, dataMiningService, this, queryDefinitionProviderWithControls); + BenchmarkResultsPanel benchmarkResultsPanel = new BenchmarkResultsPanel(getStringMessages(), dataMiningService, this, queryDefinitionProviderWithControls); splitPanel.addSouth(benchmarkResultsPanel, 500); } else { splitPanel.addSouth(resultsPresenter.getWidget(), 400); @@ -65,15 +65,15 @@ public class DataMiningEntryPoint extends AbstractEntryPoint { splitPanel.add(dockPanel); - QueryRunner queryRunner = new SimpleQueryRunner(stringMessages, dataMiningService, this, queryDefinitionProviderWithControls, resultsPresenter); + QueryRunner queryRunner = new SimpleQueryRunner(getStringMessages(), dataMiningService, this, queryDefinitionProviderWithControls, resultsPresenter); queryDefinitionProviderWithControls.addControl(queryRunner.getEntryWidget()); queryDefinitionProviderWithControls.addControl(createSettingsControlWidget(queryRunner, queryDefinitionProviderWithControls)); } private LogoAndTitlePanel createLogoAndTitlePanel() { - LogoAndTitlePanel logoAndTitlePanel = new LogoAndTitlePanel(stringMessages.dataMining(), stringMessages, this, getUserService()); + LogoAndTitlePanel logoAndTitlePanel = new LogoAndTitlePanel(getStringMessages().dataMining(), getStringMessages(), this, getUserService()); logoAndTitlePanel.addStyleName("LogoAndTitlePanel"); - FlowPanel globalNavigationPanel = new GlobalNavigationPanel(stringMessages, true, null, null, /* event */ null, null); + FlowPanel globalNavigationPanel = new GlobalNavigationPanel(getStringMessages(), true, null, null, /* event */ null, null); logoAndTitlePanel.add(globalNavigationPanel); return logoAndTitlePanel; } @@ -85,11 +85,11 @@ public class DataMiningEntryPoint extends AbstractEntryPoint { Label runnerSettingsLabel = new Label(queryRunner.getLocalizedShortName() + ":"); panel.add(runnerSettingsLabel); Anchor runnerSettingsAnchor = new Anchor(AbstractImagePrototype.create(resources.settingsIcon()).getSafeHtml()); - runnerSettingsAnchor.setTitle(stringMessages.settings()); + runnerSettingsAnchor.setTitle(getStringMessages().settings()); runnerSettingsAnchor.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { - new SettingsDialog(queryRunner, stringMessages).show(); + new SettingsDialog(queryRunner, getStringMessages()).show(); } }); panel.add(runnerSettingsAnchor); @@ -97,12 +97,12 @@ public class DataMiningEntryPoint extends AbstractEntryPoint { Label selectionTablesSettingsLabel = new Label(queryDefinitionProvider.getSelectionProvider().getLocalizedShortName() + ":"); panel.add(selectionTablesSettingsLabel); Anchor selectionTablesSettingsAnchor = new Anchor(AbstractImagePrototype.create(resources.settingsIcon()).getSafeHtml()); - selectionTablesSettingsAnchor.setTitle(stringMessages.settings()); + selectionTablesSettingsAnchor.setTitle(getStringMessages().settings()); selectionTablesSettingsAnchor.addClickHandler(new ClickHandler() { @SuppressWarnings("unchecked") @Override public void onClick(ClickEvent event) { - new SettingsDialog((Component) queryDefinitionProvider.getSelectionProvider(), stringMessages).show(); + new SettingsDialog((Component) queryDefinitionProvider.getSelectionProvider(), getStringMessages()).show(); } }); panel.add(selectionTablesSettingsAnchor); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/datamining/execution/SimpleQueryRunner.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/datamining/execution/SimpleQueryRunner.java index ab79e4b2262..e07881551f0 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/datamining/execution/SimpleQueryRunner.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/datamining/execution/SimpleQueryRunner.java @@ -5,7 +5,6 @@ import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.Widget; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialogComponent; import com.sap.sailing.gwt.ui.datamining.DataMiningServiceAsync; @@ -16,6 +15,7 @@ import com.sap.sailing.gwt.ui.datamining.settings.QueryRunnerSettings; import com.sap.sailing.gwt.ui.datamining.settings.QueryRunnerSettingsDialogComponent; import com.sap.sse.datamining.shared.QueryDefinition; import com.sap.sse.datamining.shared.QueryResult; +import com.sap.sse.gwt.client.ErrorReporter; public class SimpleQueryRunner implements QueryRunner { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/datamining/presentation/BenchmarkResultsPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/datamining/presentation/BenchmarkResultsPanel.java index 384a3231789..1dd2b4d8f1e 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/datamining/presentation/BenchmarkResultsPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/datamining/presentation/BenchmarkResultsPanel.java @@ -8,11 +8,11 @@ import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.IntegerBox; import com.google.gwt.user.client.ui.Label; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.datamining.DataMiningServiceAsync; import com.sap.sailing.gwt.ui.datamining.QueryDefinitionProvider; import com.sap.sse.datamining.shared.QueryResult; +import com.sap.sse.gwt.client.ErrorReporter; public class BenchmarkResultsPanel extends FlowPanel { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/datamining/selection/AbstractQueryDefinitionProvider.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/datamining/selection/AbstractQueryDefinitionProvider.java index 51307ed3883..68dc62d9dba 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/datamining/selection/AbstractQueryDefinitionProvider.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/datamining/selection/AbstractQueryDefinitionProvider.java @@ -5,7 +5,6 @@ import java.util.Collection; import java.util.HashSet; import java.util.Set; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.datamining.DataMiningServiceAsync; @@ -13,6 +12,7 @@ import com.sap.sailing.gwt.ui.datamining.QueryDefinitionChangedListener; import com.sap.sailing.gwt.ui.datamining.QueryDefinitionProvider; import com.sap.sse.datamining.shared.QueryDefinition; import com.sap.sse.datamining.shared.dto.FunctionDTO; +import com.sap.sse.gwt.client.ErrorReporter; public abstract class AbstractQueryDefinitionProvider implements QueryDefinitionProvider { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/datamining/selection/MultiDimensionalGroupingProvider.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/datamining/selection/MultiDimensionalGroupingProvider.java index a63956e9b78..32a35dca35a 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/datamining/selection/MultiDimensionalGroupingProvider.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/datamining/selection/MultiDimensionalGroupingProvider.java @@ -16,7 +16,6 @@ import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.ValueListBox; import com.google.gwt.user.client.ui.Widget; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.shared.components.AbstractObjectRenderer; import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialogComponent; @@ -28,6 +27,7 @@ import com.sap.sailing.gwt.ui.datamining.StatisticProvider; import com.sap.sse.datamining.shared.QueryDefinition; import com.sap.sse.datamining.shared.components.AggregatorType; import com.sap.sse.datamining.shared.dto.FunctionDTO; +import com.sap.sse.gwt.client.ErrorReporter; public class MultiDimensionalGroupingProvider implements GroupingProvider, StatisticChangedListener { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/datamining/selection/QueryDefinitionProviderWithControls.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/datamining/selection/QueryDefinitionProviderWithControls.java index 0d5d66eab2d..e5c5a1e4eeb 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/datamining/selection/QueryDefinitionProviderWithControls.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/datamining/selection/QueryDefinitionProviderWithControls.java @@ -13,7 +13,6 @@ import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.RequiresResize; import com.google.gwt.user.client.ui.VerticalPanel; import com.google.gwt.user.client.ui.Widget; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialogComponent; @@ -31,6 +30,7 @@ import com.sap.sse.datamining.shared.components.AggregatorType; import com.sap.sse.datamining.shared.dto.FunctionDTO; import com.sap.sse.datamining.shared.impl.QueryDefinitionImpl; import com.sap.sse.datamining.shared.impl.dto.DataRetrieverChainDefinitionDTO; +import com.sap.sse.gwt.client.ErrorReporter; public class QueryDefinitionProviderWithControls extends AbstractQueryDefinitionProvider implements DataMiningControls { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/datamining/selection/RefreshingSelectionTablesPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/datamining/selection/RefreshingSelectionTablesPanel.java index b244ceff372..7a8a1149dba 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/datamining/selection/RefreshingSelectionTablesPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/datamining/selection/RefreshingSelectionTablesPanel.java @@ -22,7 +22,6 @@ import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.Widget; import com.google.gwt.view.client.SelectionChangeEvent; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialogComponent; import com.sap.sailing.gwt.ui.datamining.DataMiningServiceAsync; @@ -38,6 +37,7 @@ import com.sap.sse.datamining.shared.QueryResult; import com.sap.sse.datamining.shared.dto.FunctionDTO; import com.sap.sse.datamining.shared.impl.GenericGroupKey; import com.sap.sse.datamining.shared.impl.dto.DataRetrieverChainDefinitionDTO; +import com.sap.sse.gwt.client.ErrorReporter; public class RefreshingSelectionTablesPanel implements SelectionProvider, DataRetrieverChainDefinitionChangedListener { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/datamining/selection/SimpleDataRetrieverChainDefinitionProvider.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/datamining/selection/SimpleDataRetrieverChainDefinitionProvider.java index 13b267353b4..6ceb4c000be 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/datamining/selection/SimpleDataRetrieverChainDefinitionProvider.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/datamining/selection/SimpleDataRetrieverChainDefinitionProvider.java @@ -17,7 +17,6 @@ import com.google.gwt.user.client.ui.ValueListBox; import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.Widget; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialogComponent; import com.sap.sailing.gwt.ui.datamining.DataMiningServiceAsync; @@ -29,6 +28,7 @@ import com.sap.sse.datamining.shared.QueryDefinition; import com.sap.sse.datamining.shared.components.AggregatorType; import com.sap.sse.datamining.shared.dto.FunctionDTO; import com.sap.sse.datamining.shared.impl.dto.DataRetrieverChainDefinitionDTO; +import com.sap.sse.gwt.client.ErrorReporter; public class SimpleDataRetrieverChainDefinitionProvider implements DataRetrieverChainDefinitionProvider, StatisticChangedListener { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/datamining/selection/SimpleStatisticProvider.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/datamining/selection/SimpleStatisticProvider.java index 4e90e2ffe5f..00f861bcc5d 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/datamining/selection/SimpleStatisticProvider.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/datamining/selection/SimpleStatisticProvider.java @@ -16,7 +16,6 @@ import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.ValueListBox; import com.google.gwt.user.client.ui.Widget; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.shared.components.AbstractObjectRenderer; import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialogComponent; @@ -27,6 +26,7 @@ import com.sap.sailing.gwt.ui.datamining.StatisticProvider; import com.sap.sse.datamining.shared.QueryDefinition; import com.sap.sse.datamining.shared.components.AggregatorType; import com.sap.sse.datamining.shared.dto.FunctionDTO; +import com.sap.sse.gwt.client.ErrorReporter; public class SimpleStatisticProvider implements StatisticProvider { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardEntryPoint.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardEntryPoint.java index f73c0d6e4d5..a791464a6ac 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardEntryPoint.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardEntryPoint.java @@ -23,7 +23,7 @@ import com.sap.sailing.domain.common.LeaderboardType; import com.sap.sailing.domain.common.RaceIdentifier; import com.sap.sailing.domain.common.RegattaNameAndRaceName; import com.sap.sailing.domain.common.dto.AbstractLeaderboardDTO; -import com.sap.sailing.gwt.ui.client.AbstractEntryPoint; +import com.sap.sailing.gwt.ui.client.AbstractSailingEntryPoint; import com.sap.sailing.gwt.ui.client.GlobalNavigationPanel; import com.sap.sailing.gwt.ui.client.LogoAndTitlePanel; import com.sap.sailing.gwt.ui.client.RemoteServiceMappingConstants; @@ -43,7 +43,7 @@ import com.sap.sse.gwt.client.player.Timer.PlayStates; import com.sap.sse.gwt.shared.GwtHttpRequestUtils; -public class LeaderboardEntryPoint extends AbstractEntryPoint { +public class LeaderboardEntryPoint extends AbstractSailingEntryPoint { private static final Logger logger = Logger.getLogger(LeaderboardEntryPoint.class.getName()); private String leaderboardName; @@ -82,7 +82,7 @@ public class LeaderboardEntryPoint extends AbstractEntryPoint { leaderboardType = leaderboardNameAndType.getB(); createUI(showRaceDetails, embedded, hideToolbar, event); } else { - RootPanel.get().add(new Label(stringMessages.noSuchLeaderboard())); + RootPanel.get().add(new Label(getStringMessages().noSuchLeaderboard())); } } @@ -112,7 +112,7 @@ public class LeaderboardEntryPoint extends AbstractEntryPoint { })); } } else { - RootPanel.get().add(new Label(stringMessages.noSuchLeaderboard())); + RootPanel.get().add(new Label(getStringMessages().noSuchLeaderboard())); } final String zoomTo = Window.Location.getParameter(LeaderboardUrlSettings.PARAM_ZOOM_TO); if (zoomTo != null) { @@ -135,8 +135,8 @@ public class LeaderboardEntryPoint extends AbstractEntryPoint { if (leaderboardDisplayName == null || leaderboardDisplayName.isEmpty()) { leaderboardDisplayName = leaderboardName; } - globalNavigationPanel = new GlobalNavigationPanel(stringMessages, true, null, leaderboardGroupName, event, null); - logoAndTitlePanel = new LogoAndTitlePanel(leaderboardGroupName, leaderboardDisplayName, stringMessages, this, getUserService()) { + globalNavigationPanel = new GlobalNavigationPanel(getStringMessages(), true, null, leaderboardGroupName, event, null); + logoAndTitlePanel = new LogoAndTitlePanel(leaderboardGroupName, leaderboardDisplayName, getStringMessages(), this, getUserService()) { @Override public void onResize() { super.onResize(); @@ -178,11 +178,11 @@ public class LeaderboardEntryPoint extends AbstractEntryPoint { final Widget leaderboardViewer; if (leaderboardType.isMetaLeaderboard()) { leaderboardViewer = new MetaLeaderboardViewer(sailingService, new AsyncActionsExecutor(), - timer, leaderboardSettings, null, preselectedRace, leaderboardGroupName, leaderboardName, this, stringMessages, + timer, leaderboardSettings, null, preselectedRace, leaderboardGroupName, leaderboardName, this, getStringMessages(), userAgent, showRaceDetails, hideToolbar, autoExpandLastRaceColumn, showCharts, chartDetailType, showSeriesLeaderboards); } else { leaderboardViewer = new LeaderboardViewer(sailingService, new AsyncActionsExecutor(), - timer, leaderboardSettings, preselectedRace, leaderboardGroupName, leaderboardName, this, stringMessages, + timer, leaderboardSettings, preselectedRace, leaderboardGroupName, leaderboardName, this, getStringMessages(), userAgent, showRaceDetails, hideToolbar, autoExpandLastRaceColumn, showCharts, chartDetailType, showOverallLeaderboard); } contentScrollPanel.setWidget(leaderboardViewer); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardPanel.java index e24617e6520..21931be8c1e 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardPanel.java @@ -79,7 +79,6 @@ import com.sap.sailing.gwt.ui.actions.GetLeaderboardByNameAction; import com.sap.sailing.gwt.ui.client.Collator; import com.sap.sailing.gwt.ui.client.CompetitorSelectionChangeListener; import com.sap.sailing.gwt.ui.client.CompetitorSelectionProvider; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.FlagImageResolver; import com.sap.sailing.gwt.ui.client.LeaderboardUpdateListener; import com.sap.sailing.gwt.ui.client.RaceTimesInfoProvider; @@ -103,6 +102,7 @@ import com.sap.sse.common.Util; import com.sap.sse.common.filter.BinaryOperator; import com.sap.sse.common.filter.Filter; import com.sap.sse.common.filter.FilterSet; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.async.AsyncActionsExecutor; import com.sap.sse.gwt.client.async.MarkedAsyncCallback; import com.sap.sse.gwt.client.controls.busyindicator.BusyIndicator; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardViewer.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardViewer.java index 7b52b856edb..20d2bf1248d 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardViewer.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardViewer.java @@ -8,10 +8,10 @@ import com.google.gwt.user.client.ui.FlowPanel; import com.sap.sailing.domain.common.DetailType; import com.sap.sailing.domain.common.RaceIdentifier; import com.sap.sailing.gwt.ui.client.CompetitorSelectionModel; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.shared.charts.MultiCompetitorLeaderboardChart; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.async.AsyncActionsExecutor; import com.sap.sse.gwt.client.async.MarkedAsyncCallback; import com.sap.sse.gwt.client.player.Timer; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/MetaLeaderboardViewer.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/MetaLeaderboardViewer.java index f886e778c12..1c9a3b6a772 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/MetaLeaderboardViewer.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/MetaLeaderboardViewer.java @@ -6,10 +6,10 @@ import com.google.gwt.user.client.ui.Label; import com.sap.sailing.domain.common.DetailType; import com.sap.sailing.domain.common.RaceIdentifier; import com.sap.sailing.gwt.ui.client.CompetitorSelectionModel; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.shared.charts.MultiCompetitorLeaderboardChart; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.async.AsyncActionsExecutor; import com.sap.sse.gwt.client.player.Timer; import com.sap.sse.gwt.client.useragent.UserAgentDetails; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/MultiLeaderboardPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/MultiLeaderboardPanel.java index 5077532526d..73fb17665b5 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/MultiLeaderboardPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/MultiLeaderboardPanel.java @@ -18,13 +18,13 @@ import com.google.gwt.user.client.ui.VerticalPanel; import com.google.gwt.user.client.ui.Widget; import com.sap.sailing.domain.common.RaceIdentifier; import com.sap.sailing.gwt.ui.client.CompetitorSelectionModel; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.LeaderboardUpdateListener; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.shared.components.AbstractLazyComponent; import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialogComponent; import com.sap.sse.common.Util; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.async.AsyncActionsExecutor; import com.sap.sse.gwt.client.player.TimeListener; import com.sap.sse.gwt.client.player.Timer; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboardedit/EditableLeaderboardPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboardedit/EditableLeaderboardPanel.java index d1966ea34c1..a8697655558 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboardedit/EditableLeaderboardPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboardedit/EditableLeaderboardPanel.java @@ -55,7 +55,6 @@ import com.sap.sailing.domain.common.impl.InvertibleComparatorAdapter; import com.sap.sailing.gwt.ui.adminconsole.AdminConsoleTableResources; import com.sap.sailing.gwt.ui.client.Collator; import com.sap.sailing.gwt.ui.client.CompetitorSelectionModel; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.FlagImageResolver; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; @@ -67,6 +66,7 @@ import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings; import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettingsFactory; import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSortableColumnWithMinMax; import com.sap.sse.common.Util; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.async.AsyncActionsExecutor; import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; import com.sap.sse.gwt.client.useragent.UserAgentDetails; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboardedit/LeaderboardEditPage.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboardedit/LeaderboardEditPage.java index 6e697f702b0..e858e5bb2af 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboardedit/LeaderboardEditPage.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboardedit/LeaderboardEditPage.java @@ -8,7 +8,7 @@ import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.rpc.ServiceDefTarget; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.RootPanel; -import com.sap.sailing.gwt.ui.client.AbstractEntryPoint; +import com.sap.sailing.gwt.ui.client.AbstractSailingEntryPoint; import com.sap.sailing.gwt.ui.client.LogoAndTitlePanel; import com.sap.sailing.gwt.ui.client.RemoteServiceMappingConstants; import com.sap.sailing.gwt.ui.client.SailingService; @@ -17,7 +17,7 @@ import com.sap.sse.gwt.client.EntryPointHelper; import com.sap.sse.gwt.client.async.AsyncActionsExecutor; import com.sap.sse.gwt.client.async.MarkedAsyncCallback; -public class LeaderboardEditPage extends AbstractEntryPoint { +public class LeaderboardEditPage extends AbstractSailingEntryPoint { private final SailingServiceAsync sailingService = GWT.create(SailingService.class); @Override @@ -32,15 +32,15 @@ public class LeaderboardEditPage extends AbstractEntryPoint { public void onSuccess(List leaderboardNames) { String leaderboardName = Window.Location.getParameter("name"); if (leaderboardNames.contains(leaderboardName)) { - LogoAndTitlePanel logoAndTitlePanel = new LogoAndTitlePanel(stringMessages.editScores(), stringMessages, LeaderboardEditPage.this, getUserService()); + LogoAndTitlePanel logoAndTitlePanel = new LogoAndTitlePanel(getStringMessages().editScores(), getStringMessages(), LeaderboardEditPage.this, getUserService()); logoAndTitlePanel.addStyleName("LogoAndTitlePanel"); EditableLeaderboardPanel leaderboardPanel = new EditableLeaderboardPanel(sailingService, new AsyncActionsExecutor(), leaderboardName, null, - LeaderboardEditPage.this, stringMessages, userAgent); + LeaderboardEditPage.this, getStringMessages(), userAgent); leaderboardPanel.ensureDebugId("EditableLeaderboardPanel"); RootPanel.get().add(logoAndTitlePanel); RootPanel.get().add(leaderboardPanel); } else { - RootPanel.get().add(new Label(stringMessages.noSuchLeaderboard())); + RootPanel.get().add(new Label(getStringMessages().noSuchLeaderboard())); } } @Override diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboardedit/MatchAndApplyScoreCorrectionsDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboardedit/MatchAndApplyScoreCorrectionsDialog.java index 4f4a72f13c7..61bf83687bb 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboardedit/MatchAndApplyScoreCorrectionsDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboardedit/MatchAndApplyScoreCorrectionsDialog.java @@ -31,13 +31,13 @@ import com.sap.sailing.domain.common.dto.LeaderboardDTO; import com.sap.sailing.domain.common.dto.LeaderboardEntryDTO; import com.sap.sailing.domain.common.dto.LeaderboardRowDTO; import com.sap.sailing.domain.common.dto.RaceColumnDTO; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.BulkScoreCorrectionDTO; import com.sap.sailing.gwt.ui.shared.RegattaScoreCorrectionDTO; import com.sap.sailing.gwt.ui.shared.RegattaScoreCorrectionDTO.ScoreCorrectionEntryDTO; import com.sap.sse.common.Util; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.dialog.DataEntryDialog; public class MatchAndApplyScoreCorrectionsDialog extends DataEntryDialog { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboardedit/ResultSelectionAndApplyDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboardedit/ResultSelectionAndApplyDialog.java index 5eb532f3848..ffe969fe32e 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboardedit/ResultSelectionAndApplyDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboardedit/ResultSelectionAndApplyDialog.java @@ -17,12 +17,12 @@ import com.google.gwt.user.client.ui.ListBox; import com.google.gwt.user.client.ui.VerticalPanel; import com.google.gwt.user.client.ui.Widget; import com.sap.sailing.domain.common.dto.BoatClassDTO; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.RegattaScoreCorrectionDTO; import com.sap.sailing.gwt.ui.shared.ScoreCorrectionProviderDTO; import com.sap.sse.common.Util; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.controls.busyindicator.BusyIndicator; import com.sap.sse.gwt.client.controls.busyindicator.SimpleBusyIndicator; import com.sap.sse.gwt.client.dialog.DataEntryDialog; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/polarsheets/AbstractFilteredTrackedRacesList.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/polarsheets/AbstractFilteredTrackedRacesList.java index b04eafdda09..3d11d02a878 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/polarsheets/AbstractFilteredTrackedRacesList.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/polarsheets/AbstractFilteredTrackedRacesList.java @@ -2,11 +2,11 @@ package com.sap.sailing.gwt.ui.polarsheets; import com.sap.sailing.domain.common.dto.RaceDTO; import com.sap.sailing.gwt.ui.adminconsole.AbstractTrackedRacesListComposite; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.RaceSelectionProvider; import com.sap.sailing.gwt.ui.client.RegattaRefresher; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; +import com.sap.sse.gwt.client.ErrorReporter; public abstract class AbstractFilteredTrackedRacesList extends AbstractTrackedRacesListComposite { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/polarsheets/PolarSheetsEntryPoint.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/polarsheets/PolarSheetsEntryPoint.java index acf809620aa..64fedc4b3aa 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/polarsheets/PolarSheetsEntryPoint.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/polarsheets/PolarSheetsEntryPoint.java @@ -8,7 +8,7 @@ import com.google.gwt.core.client.GWT; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.rpc.ServiceDefTarget; import com.google.gwt.user.client.ui.RootLayoutPanel; -import com.sap.sailing.gwt.ui.client.AbstractEntryPoint; +import com.sap.sailing.gwt.ui.client.AbstractSailingEntryPoint; import com.sap.sailing.gwt.ui.client.RegattaRefresher; import com.sap.sailing.gwt.ui.client.RegattasDisplayer; import com.sap.sailing.gwt.ui.client.RemoteServiceMappingConstants; @@ -17,7 +17,7 @@ import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.shared.RegattaDTO; import com.sap.sse.gwt.client.EntryPointHelper; -public class PolarSheetsEntryPoint extends AbstractEntryPoint implements RegattaRefresher { +public class PolarSheetsEntryPoint extends AbstractSailingEntryPoint implements RegattaRefresher { private Set regattaDisplayers; @@ -36,7 +36,7 @@ public class PolarSheetsEntryPoint extends AbstractEntryPoint implements Regatta private void createUI() { RootLayoutPanel rootPanel = RootLayoutPanel.get(); - PolarSheetsPanel polarSheetsPanel = new PolarSheetsPanel(sailingService, this, stringMessages, this); + PolarSheetsPanel polarSheetsPanel = new PolarSheetsPanel(sailingService, this, getStringMessages(), this); polarSheetsPanel.addStyleName(PolarSheetsPanel.POLARSHEETS_STYLE); regattaDisplayers.add(polarSheetsPanel); rootPanel.add(polarSheetsPanel); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/polarsheets/PolarSheetsPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/polarsheets/PolarSheetsPanel.java index bd442944d0f..3939dd0434e 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/polarsheets/PolarSheetsPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/polarsheets/PolarSheetsPanel.java @@ -27,7 +27,6 @@ import com.sap.sailing.domain.common.PolarSheetsHistogramData; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.common.WindStepping; import com.sap.sailing.domain.common.impl.PolarSheetGenerationSettingsImpl; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.RaceSelectionChangeListener; import com.sap.sailing.gwt.ui.client.RaceSelectionModel; import com.sap.sailing.gwt.ui.client.RegattasDisplayer; @@ -36,6 +35,7 @@ import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.shared.components.Component; import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialogComponent; import com.sap.sailing.gwt.ui.shared.RegattaDTO; +import com.sap.sse.gwt.client.ErrorReporter; /** * A panel containing a list of tracked races (not the ones without gps or wind data), a polar chart and a histogram chart. diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/polarsheets/PolarSheetsTrackedRacesList.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/polarsheets/PolarSheetsTrackedRacesList.java index 64bad09c127..6fb5e2555f1 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/polarsheets/PolarSheetsTrackedRacesList.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/polarsheets/PolarSheetsTrackedRacesList.java @@ -12,13 +12,13 @@ import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.HorizontalPanel; import com.sap.sailing.domain.common.PolarSheetGenerationSettings; import com.sap.sailing.domain.common.dto.RaceDTO; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.RaceSelectionProvider; import com.sap.sailing.gwt.ui.client.RegattaRefresher; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialog; import com.sap.sailing.gwt.ui.shared.RegattaDTO; +import com.sap.sse.gwt.client.ErrorReporter; public class PolarSheetsTrackedRacesList extends AbstractFilteredTrackedRacesList { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/RaceBoardEntryPoint.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/RaceBoardEntryPoint.java index e0c736b6411..7b7032ede70 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/RaceBoardEntryPoint.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/RaceBoardEntryPoint.java @@ -15,10 +15,13 @@ import com.google.gwt.user.client.rpc.ServiceDefTarget; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.DockLayoutPanel; import com.google.gwt.user.client.ui.FlowPanel; +import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.RootLayoutPanel; +import com.google.gwt.user.client.ui.RootPanel; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.common.dto.RaceDTO; -import com.sap.sailing.gwt.ui.client.AbstractEntryPoint; +import com.sap.sailing.gwt.ui.client.AbstractSailingEntryPoint; +import com.sap.sailing.gwt.ui.client.LogoAndTitlePanel; import com.sap.sailing.gwt.ui.client.MediaService; import com.sap.sailing.gwt.ui.client.MediaServiceAsync; import com.sap.sailing.gwt.ui.client.ParallelExecutionCallback; @@ -38,7 +41,7 @@ import com.sap.sse.gwt.client.player.Timer; import com.sap.sse.gwt.client.player.Timer.PlayModes; import com.sap.sse.gwt.shared.GwtHttpRequestUtils; -public class RaceBoardEntryPoint extends AbstractEntryPoint { +public class RaceBoardEntryPoint extends AbstractSailingEntryPoint { private RaceDTO selectedRace; private static final String PARAM_REGATTA_NAME = "regattaName"; @@ -139,16 +142,23 @@ public class RaceBoardEntryPoint extends AbstractEntryPoint { sailingService.getLeaderboardGroupByName(leaderboardGroupNameParamValue, false /*withGeoLocationData*/, getLeaderboardGroupByNameCallback); } } + + private void createErrorPage(String message) { + LogoAndTitlePanel logoAndTitlePanel = new LogoAndTitlePanel(getStringMessages(), this, getUserService()); + logoAndTitlePanel.addStyleName("LogoAndTitlePanel"); + RootPanel.get().add(logoAndTitlePanel); + RootPanel.get().add(new Label(message)); + } private void checkUrlParameters(List leaderboardNames, LeaderboardGroupDTO leaderboardGroup, boolean canReplayWhileLiveIsPossible, List regattas, EventDTO event, boolean showMapControls) { if (!leaderboardNames.contains(leaderboardName)) { - createErrorPage(stringMessages.noSuchLeaderboard()); + createErrorPage(getStringMessages().noSuchLeaderboard()); return; } if (eventId != null && event == null) { - createErrorPage(stringMessages.noSuchEvent()); + createErrorPage(getStringMessages().noSuchEvent()); } if (leaderboardGroupName != null && leaderboardGroup != null) { boolean foundLeaderboard = false; @@ -159,7 +169,7 @@ public class RaceBoardEntryPoint extends AbstractEntryPoint { } } if (!foundLeaderboard) { - createErrorPage(stringMessages.leaderboardNotContainedInLeaderboardGroup(leaderboardName, leaderboardGroupName)); + createErrorPage(getStringMessages().leaderboardNotContainedInLeaderboardGroup(leaderboardName, leaderboardGroupName)); return; } if (event != null) { @@ -171,7 +181,7 @@ public class RaceBoardEntryPoint extends AbstractEntryPoint { } } if (!foundLeaderboardGroupInEvent) { - createErrorPage(stringMessages.leaderboardGroupNotContainedInEvent(leaderboardGroupName, event.getName())); + createErrorPage(getStringMessages().leaderboardGroupNotContainedInEvent(leaderboardGroupName, event.getName())); } } } @@ -189,7 +199,7 @@ public class RaceBoardEntryPoint extends AbstractEntryPoint { AsyncActionsExecutor asyncActionsExecutor = new AsyncActionsExecutor(); RaceTimesInfoProvider raceTimesInfoProvider = new RaceTimesInfoProvider(sailingService, asyncActionsExecutor, this, singletonList, 5000l /* requestInterval*/); RaceBoardPanel raceBoardPanel = new RaceBoardPanel(sailingService, mediaService, getUserService(), asyncActionsExecutor, timer, raceSelectionModel, - leaderboardName, leaderboardGroupName, event, raceboardViewConfig, RaceBoardEntryPoint.this, stringMessages, userAgent, raceTimesInfoProvider, showMapControls); + leaderboardName, leaderboardGroupName, event, raceboardViewConfig, RaceBoardEntryPoint.this, getStringMessages(), userAgent, raceTimesInfoProvider, showMapControls); raceBoardPanel.fillRegattas(regattas); createRaceBoardInOneScreenMode(raceBoardPanel, raceboardViewConfig); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/RaceBoardPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/RaceBoardPanel.java index 03a1cdc56df..34572524cca 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/RaceBoardPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/RaceBoardPanel.java @@ -25,7 +25,6 @@ import com.sap.sailing.domain.common.dto.LeaderboardDTO; import com.sap.sailing.domain.common.dto.RaceColumnDTO; import com.sap.sailing.domain.common.dto.RaceDTO; import com.sap.sailing.gwt.ui.client.CompetitorSelectionModel; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.GlobalNavigationPanel; import com.sap.sailing.gwt.ui.client.LeaderboardUpdateListener; import com.sap.sailing.gwt.ui.client.MediaServiceAsync; @@ -55,6 +54,7 @@ import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettingsFactory; import com.sap.sailing.gwt.ui.shared.EventDTO; import com.sap.sailing.gwt.ui.shared.RegattaDTO; import com.sap.sse.common.filter.FilterSet; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.async.AsyncActionsExecutor; import com.sap.sse.gwt.client.player.TimeRangeWithZoomModel; import com.sap.sse.gwt.client.player.Timer; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/regattaoverview/RegattaOverviewEntryPoint.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/regattaoverview/RegattaOverviewEntryPoint.java index b8a8a8e48f0..cdd46351774 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/regattaoverview/RegattaOverviewEntryPoint.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/regattaoverview/RegattaOverviewEntryPoint.java @@ -16,7 +16,7 @@ import com.google.gwt.user.client.ui.Panel; import com.google.gwt.user.client.ui.RootLayoutPanel; import com.google.gwt.user.client.ui.RootPanel; import com.google.gwt.user.client.ui.ScrollPanel; -import com.sap.sailing.gwt.ui.client.AbstractEntryPoint; +import com.sap.sailing.gwt.ui.client.AbstractSailingEntryPoint; import com.sap.sailing.gwt.ui.client.LogoAndTitlePanel; import com.sap.sailing.gwt.ui.client.RemoteServiceMappingConstants; import com.sap.sailing.gwt.ui.client.SailingService; @@ -26,7 +26,7 @@ import com.sap.sailing.gwt.ui.shared.RegattaOverviewEntryDTO; import com.sap.sse.gwt.client.EntryPointHelper; import com.sap.sse.gwt.client.URLEncoder; -public class RegattaOverviewEntryPoint extends AbstractEntryPoint { +public class RegattaOverviewEntryPoint extends AbstractSailingEntryPoint { private final static String PARAM_EVENT = "event"; private final static String PARAM_ONLY_RUNNING_RACES = "onlyrunningraces"; @@ -53,7 +53,7 @@ public class RegattaOverviewEntryPoint extends AbstractEntryPoint { boolean embedded = Window.Location.getParameter("embedded") != null && Window.Location.getParameter("embedded").equalsIgnoreCase("true"); if (!embedded) { - LogoAndTitlePanel logoAndTitlePanel = new LogoAndTitlePanel(stringMessages.eventOverview(), stringMessages, this, getUserService()); + LogoAndTitlePanel logoAndTitlePanel = new LogoAndTitlePanel(getStringMessages().eventOverview(), getStringMessages(), this, getUserService()); logoAndTitlePanel.addStyleName("LogoAndTitlePanel"); containerPanel.addNorth(logoAndTitlePanel, 68); } else { @@ -91,7 +91,7 @@ public class RegattaOverviewEntryPoint extends AbstractEntryPoint { private void createAndAddRegattaPanel(UUID eventId) { RegattaRaceStatesSettings settings = createRegattaRaceStatesSettingsFromURL(); - regattaPanel = new RegattaOverviewPanel(sailingService, this, stringMessages, eventId, settings, userAgent); + regattaPanel = new RegattaOverviewPanel(sailingService, this, getStringMessages(), eventId, settings, userAgent); Panel centerPanel = new FlowPanel(); centerPanel.add(regattaPanel); ScrollPanel scrollPanel = new ScrollPanel(centerPanel); @@ -99,7 +99,7 @@ public class RegattaOverviewEntryPoint extends AbstractEntryPoint { } private void createAndAddDetailPanel() { - detailPanel = new RaceDetailPanel(stringMessages, new ClickHandler() { + detailPanel = new RaceDetailPanel(getStringMessages(), new ClickHandler() { @Override public void onClick(ClickEvent event) { toggleDetailPanel(false); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/regattaoverview/RegattaOverviewPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/regattaoverview/RegattaOverviewPanel.java index 5caf4e49efe..9607a0451a5 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/regattaoverview/RegattaOverviewPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/regattaoverview/RegattaOverviewPanel.java @@ -25,7 +25,6 @@ import com.google.gwt.user.client.ui.SimplePanel; import com.google.gwt.user.client.ui.TabPanel; import com.google.gwt.user.client.ui.VerticalPanel; import com.sap.sailing.gwt.ui.client.CompetitorSelectionModel; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialog; @@ -36,6 +35,7 @@ import com.sap.sailing.gwt.ui.regattaoverview.RegattaRaceStatesComponent.EntryHa import com.sap.sailing.gwt.ui.shared.EventDTO; import com.sap.sailing.gwt.ui.shared.RaceGroupDTO; import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.async.AsyncActionsExecutor; import com.sap.sse.gwt.client.async.MarkedAsyncCallback; import com.sap.sse.gwt.client.player.TimeListener; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/regattaoverview/RegattaRaceStatesComponent.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/regattaoverview/RegattaRaceStatesComponent.java index 8e0f0e875d0..06fa41b486b 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/regattaoverview/RegattaRaceStatesComponent.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/regattaoverview/RegattaRaceStatesComponent.java @@ -50,7 +50,6 @@ import com.sap.sailing.domain.common.racelog.Flags; import com.sap.sailing.domain.common.racelog.RaceLogRaceStatus; import com.sap.sailing.gwt.ui.client.AnchorCell; import com.sap.sailing.gwt.ui.client.EntryPointLinkFactory; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.GwtJsonDeSerializer; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; @@ -65,6 +64,7 @@ import com.sap.sailing.gwt.ui.shared.RaceGroupSeriesDTO; import com.sap.sailing.gwt.ui.shared.RaceInfoDTO; import com.sap.sailing.gwt.ui.shared.RegattaOverviewEntryDTO; import com.sap.sailing.gwt.ui.shared.WaypointDTO; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.async.MarkedAsyncCallback; import com.sap.sse.gwt.client.player.Timer; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/PathPolyline.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/PathPolyline.java index f224ab26776..b234bd0773f 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/PathPolyline.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/PathPolyline.java @@ -23,7 +23,6 @@ import com.sap.sailing.domain.common.Position; import com.sap.sailing.domain.common.dto.PositionDTO; import com.sap.sailing.domain.common.impl.DegreePosition; import com.sap.sailing.domain.common.impl.RadianPosition; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SimulatorServiceAsync; import com.sap.sailing.gwt.ui.shared.RequestTotalTimeDTO; import com.sap.sailing.gwt.ui.shared.ResponseTotalTimeDTO; @@ -32,6 +31,7 @@ import com.sap.sailing.gwt.ui.shared.SimulatorWindDTO; import com.sap.sailing.gwt.ui.simulator.racemap.TwoDPoint; import com.sap.sailing.gwt.ui.simulator.racemap.TwoDSegment; import com.sap.sailing.gwt.ui.simulator.racemap.TwoDVector; +import com.sap.sse.gwt.client.ErrorReporter; /** * This class represents the path polyline overlay on the GWT map. This polyline is constructed with an array of turn diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/SimulatorEntryPoint.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/SimulatorEntryPoint.java index 55f403b72cb..b9865de34c4 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/SimulatorEntryPoint.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/SimulatorEntryPoint.java @@ -9,7 +9,7 @@ import com.google.gwt.user.client.rpc.ServiceDefTarget; import com.google.gwt.user.client.ui.DockLayoutPanel; import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.RootLayoutPanel; -import com.sap.sailing.gwt.ui.client.AbstractEntryPoint; +import com.sap.sailing.gwt.ui.client.AbstractSailingEntryPoint; import com.sap.sailing.gwt.ui.client.LogoAndTitlePanel; import com.sap.sailing.gwt.ui.client.RemoteServiceMappingConstants; import com.sap.sailing.gwt.ui.client.SimulatorService; @@ -17,7 +17,7 @@ import com.sap.sailing.gwt.ui.client.SimulatorServiceAsync; import com.sap.sailing.simulator.util.SailingSimulatorConstants; import com.sap.sse.gwt.client.EntryPointHelper; -public class SimulatorEntryPoint extends AbstractEntryPoint { +public class SimulatorEntryPoint extends AbstractSailingEntryPoint { private final String titleName = "Strategy Simulator"; @@ -182,7 +182,7 @@ public class SimulatorEntryPoint extends AbstractEntryPoint { } private FlowPanel createLogoAndTitlePanel(SimulatorMainPanel simulatorPanel) { - LogoAndTitlePanel logoAndTitlePanel = new LogoAndTitlePanel(titleName, null, stringMessages, this, getUserService()); + LogoAndTitlePanel logoAndTitlePanel = new LogoAndTitlePanel(titleName, null, getStringMessages(), this, getUserService()); /*{ @Override public void onResize() { @@ -200,7 +200,7 @@ public class SimulatorEntryPoint extends AbstractEntryPoint { } private void createSimulatorPanel() { - SimulatorMainPanel simulatorPanel = new SimulatorMainPanel(simulatorService, stringMessages, this, xRes, yRes, border, streamletPars, + SimulatorMainPanel simulatorPanel = new SimulatorMainPanel(simulatorService, getStringMessages(), this, xRes, yRes, border, streamletPars, autoUpdate, mode, event, showGrid, showLines, seedLines, showArrows, showLineGuides, showStreamlets, showMapControls); DockLayoutPanel p = new DockLayoutPanel(Unit.PX); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/SimulatorMainPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/SimulatorMainPanel.java index e3cb4a02aa1..70944141cea 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/SimulatorMainPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/SimulatorMainPanel.java @@ -45,7 +45,6 @@ import com.google.gwt.user.client.ui.VerticalPanel; import com.sap.sailing.domain.common.Duration; import com.sap.sailing.domain.common.dto.BoatClassDTO; import com.sap.sailing.domain.common.impl.MillisecondsDurationImpl; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SimulatorServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.TimePanel; @@ -58,6 +57,7 @@ import com.sap.sailing.gwt.ui.shared.WindPatternDTO; import com.sap.sailing.gwt.ui.simulator.windpattern.WindPatternDisplay; import com.sap.sailing.gwt.ui.simulator.windpattern.WindPatternSetting; import com.sap.sailing.simulator.util.SailingSimulatorConstants; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.controls.busyindicator.SimpleBusyIndicator; import com.sap.sse.gwt.client.controls.slider.SliderBar; import com.sap.sse.gwt.client.player.TimeRangeWithZoomModel; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/SimulatorMap.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/SimulatorMap.java index 7ee176c71b7..c7a5f2a81c7 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/SimulatorMap.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/SimulatorMap.java @@ -37,7 +37,6 @@ import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.AbsolutePanel; import com.sap.sailing.domain.common.dto.PositionDTO; import com.sap.sailing.domain.common.impl.RGBColor; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.RequiresDataInitialization; import com.sap.sailing.gwt.ui.client.SimulatorServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; @@ -55,6 +54,7 @@ import com.sap.sailing.gwt.ui.simulator.util.ColorPaletteGenerator; import com.sap.sailing.gwt.ui.simulator.util.SimulatorResources; import com.sap.sailing.gwt.ui.simulator.windpattern.WindPatternDisplay; import com.sap.sailing.simulator.util.SailingSimulatorConstants; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.controls.busyindicator.SimpleBusyIndicator; import com.sap.sse.gwt.client.player.Timer; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/spectator/LeaderboardGroupOverviewPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/spectator/LeaderboardGroupOverviewPanel.java index 0abd950a30f..b032c37e280 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/spectator/LeaderboardGroupOverviewPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/spectator/LeaderboardGroupOverviewPanel.java @@ -40,13 +40,13 @@ import com.sap.sailing.domain.common.dto.PlacemarkOrderDTO; import com.sap.sailing.domain.common.dto.RaceColumnDTO; import com.sap.sailing.domain.common.impl.NaturalComparator; import com.sap.sailing.gwt.ui.adminconsole.LeaderboardConfigPanel.AnchorCell; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.shared.components.CollapsablePanel; import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO; import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO; import com.sap.sse.common.Util; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.URLEncoder; import com.sap.sse.gwt.client.player.Timer; import com.sap.sse.gwt.client.player.Timer.PlayModes; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/spectator/LeaderboardGroupPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/spectator/LeaderboardGroupPanel.java index b6becd130b0..9aa2f8199e1 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/spectator/LeaderboardGroupPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/spectator/LeaderboardGroupPanel.java @@ -34,7 +34,6 @@ import com.sap.sailing.domain.common.dto.RaceColumnDTO; import com.sap.sailing.domain.common.dto.RaceDTO; import com.sap.sailing.gwt.ui.adminconsole.LeaderboardConfigPanel.AnchorCell; import com.sap.sailing.gwt.ui.client.EntryPointLinkFactory; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.HasWelcomeWidget; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; @@ -45,6 +44,7 @@ import com.sap.sailing.gwt.ui.shared.RegattaDTO; import com.sap.sailing.gwt.ui.shared.SeriesDTO; import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO; import com.sap.sse.common.Util; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.player.Timer; import com.sap.sse.gwt.client.player.Timer.PlayModes; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/spectator/SpectatorEntryPoint.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/spectator/SpectatorEntryPoint.java index 58d6b3c6606..2c8b4d7d749 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/spectator/SpectatorEntryPoint.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/spectator/SpectatorEntryPoint.java @@ -10,7 +10,7 @@ import com.google.gwt.user.client.ui.Anchor; import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.RootPanel; import com.google.gwt.user.client.ui.SimplePanel; -import com.sap.sailing.gwt.ui.client.AbstractEntryPoint; +import com.sap.sailing.gwt.ui.client.AbstractSailingEntryPoint; import com.sap.sailing.gwt.ui.client.GlobalNavigationPanel; import com.sap.sailing.gwt.ui.client.LogoAndTitlePanel; import com.sap.sailing.gwt.ui.client.RegattaRefresher; @@ -28,7 +28,7 @@ import com.sap.sse.gwt.shared.GwtHttpRequestUtils; * @author Lennart Hensler (D054527) * */ -public class SpectatorEntryPoint extends AbstractEntryPoint implements RegattaRefresher { +public class SpectatorEntryPoint extends AbstractSailingEntryPoint implements RegattaRefresher { private final SailingServiceAsync sailingService = GWT.create(SailingService.class); @Override @@ -56,7 +56,7 @@ public class SpectatorEntryPoint extends AbstractEntryPoint implements RegattaRe sailingService.getLeaderboardGroupByName(groupName, false /*withGeoLocationData*/, new AsyncCallback() { @Override public void onFailure(Throwable t) { - reportError(stringMessages.noLeaderboardGroupWithNameFound(groupName)); + reportError(getStringMessages().noLeaderboardGroupWithNameFound(groupName)); } @Override public void onSuccess(LeaderboardGroupDTO group) { } @@ -73,10 +73,10 @@ public class SpectatorEntryPoint extends AbstractEntryPoint implements RegattaRe boolean embedded = Window.Location.getParameter("embedded") != null && Window.Location.getParameter("embedded").equalsIgnoreCase("true"); if (!embedded) { - String title = groupName != null ? groupName : stringMessages.overview(); - LogoAndTitlePanel logoAndTitlePanel = new LogoAndTitlePanel(title, stringMessages, this, getUserService()); + String title = groupName != null ? groupName : getStringMessages().overview(); + LogoAndTitlePanel logoAndTitlePanel = new LogoAndTitlePanel(title, getStringMessages(), this, getUserService()); logoAndTitlePanel.addStyleName("LogoAndTitlePanel"); - FlowPanel globalNavigationPanel = new GlobalNavigationPanel(stringMessages, true, null, null, /* event */ null, null); + FlowPanel globalNavigationPanel = new GlobalNavigationPanel(getStringMessages(), true, null, null, /* event */ null, null); logoAndTitlePanel.add(globalNavigationPanel); rootPanel.add(logoAndTitlePanel); @@ -90,17 +90,17 @@ public class SpectatorEntryPoint extends AbstractEntryPoint implements RegattaRe // DON'T DELETE -> the EventOverviewPanel will replace the LeaderboardGroupOverviewPanel later on // EventOverviewPanel eventOverviewPanel = new EventOverviewPanel(sailingService, this, stringMessages, showRaceDetails); // groupOverviewPanel.add( eventOverviewPanel); - LeaderboardGroupOverviewPanel leaderboardGroupOverviewPanel = new LeaderboardGroupOverviewPanel(sailingService, this, stringMessages, showRaceDetails); + LeaderboardGroupOverviewPanel leaderboardGroupOverviewPanel = new LeaderboardGroupOverviewPanel(sailingService, this, getStringMessages(), showRaceDetails); groupOverviewPanel.add(leaderboardGroupOverviewPanel); rootPanel.add(groupOverviewPanel); } else { - LeaderboardGroupPanel groupPanel = new LeaderboardGroupPanel(sailingService, stringMessages, this, + LeaderboardGroupPanel groupPanel = new LeaderboardGroupPanel(sailingService, getStringMessages(), this, groupName, root, viewModeParamValue, embedded, showRaceDetails, canReplayDuringLiveRaces, showMapControls, showNavigationPanel); groupAndFeedbackPanel.add(groupPanel); if (!embedded) { - groupPanel.setWelcomeWidget(new SimpleWelcomeWidget(stringMessages.welcomeToSailingAnalytics(), - stringMessages.welcomeToSailingAnalyticsBody())); + groupPanel.setWelcomeWidget(new SimpleWelcomeWidget(getStringMessages().welcomeToSailingAnalytics(), + getStringMessages().welcomeToSailingAnalyticsBody())); SimplePanel feedbackPanel = new SimplePanel(); feedbackPanel.getElement().getStyle().setProperty("clear", "right"); feedbackPanel.addStyleName("feedbackPanel"); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/tv/TVEntryPoint.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/tv/TVEntryPoint.java index b1fd0d787f9..bd59f8926cd 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/tv/TVEntryPoint.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/tv/TVEntryPoint.java @@ -11,7 +11,7 @@ import com.google.gwt.user.client.ui.DockLayoutPanel; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.RootLayoutPanel; import com.google.gwt.user.client.ui.RootPanel; -import com.sap.sailing.gwt.ui.client.AbstractEntryPoint; +import com.sap.sailing.gwt.ui.client.AbstractSailingEntryPoint; import com.sap.sailing.gwt.ui.client.LogoAndTitlePanel; import com.sap.sailing.gwt.ui.client.MediaService; import com.sap.sailing.gwt.ui.client.MediaServiceAsync; @@ -22,7 +22,7 @@ import com.sap.sailing.gwt.ui.raceboard.RaceBoardViewConfiguration; import com.sap.sse.gwt.client.EntryPointHelper; import com.sap.sse.gwt.shared.GwtHttpRequestUtils; -public class TVEntryPoint extends AbstractEntryPoint { +public class TVEntryPoint extends AbstractSailingEntryPoint { private static final String PARAM_LEADERBOARD_NAME = "name"; private static final String PARAM_LEADERBOARD_GROUP_NAME = "leaderboardGroupName"; @@ -72,7 +72,7 @@ public class TVEntryPoint extends AbstractEntryPoint { if (leaderboardNames.contains(leaderboardName)) { createUI(showRaceDetails, embedded, delayToLiveMillis); } else { - RootPanel.get().add(new Label(stringMessages.noSuchLeaderboard())); + RootPanel.get().add(new Label(getStringMessages().noSuchLeaderboard())); } } @@ -92,12 +92,12 @@ public class TVEntryPoint extends AbstractEntryPoint { if(leaderboardDisplayName == null || leaderboardDisplayName.isEmpty()) { leaderboardDisplayName = leaderboardName; } - logoAndTitlePanel = new LogoAndTitlePanel(leaderboardGroupName, leaderboardDisplayName, stringMessages, this, getUserService()); + logoAndTitlePanel = new LogoAndTitlePanel(leaderboardGroupName, leaderboardDisplayName, getStringMessages(), this, getUserService()); logoAndTitlePanel.addStyleName("LogoAndTitlePanel"); mainPanel.addNorth(logoAndTitlePanel, 68); } - tvViewController = new TVViewController(sailingService, mediaService, getUserService(), stringMessages, + tvViewController = new TVViewController(sailingService, mediaService, getUserService(), getStringMessages(), this, leaderboardGroupName, leaderboardName, userAgent, logoAndTitlePanel, mainPanel, delayToLiveMillis, showRaceDetails, raceboardViewConfig); tvViewController.updateTvView(TVViews.Leaderboard); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/tv/TVViewController.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/tv/TVViewController.java index e93498860ef..ae36f35b534 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/tv/TVViewController.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/tv/TVViewController.java @@ -16,7 +16,6 @@ import com.sap.sailing.domain.common.dto.FleetDTO; import com.sap.sailing.domain.common.dto.LeaderboardDTO; import com.sap.sailing.domain.common.dto.RaceColumnDTO; import com.sap.sailing.gwt.ui.client.CompetitorSelectionModel; -import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.LogoAndTitlePanel; import com.sap.sailing.gwt.ui.client.MediaServiceAsync; import com.sap.sailing.gwt.ui.client.RaceSelectionModel; @@ -30,6 +29,7 @@ import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettingsFactory; import com.sap.sailing.gwt.ui.raceboard.RaceBoardPanel; import com.sap.sailing.gwt.ui.raceboard.RaceBoardViewConfiguration; import com.sap.sailing.gwt.ui.shared.RaceTimesInfoDTO; +import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.async.AsyncActionsExecutor; import com.sap.sse.gwt.client.player.Timer; import com.sap.sse.gwt.client.player.Timer.PlayModes; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/usermanagement/UserManagementPage.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/usermanagement/UserManagementPage.java deleted file mode 100755 index 311b332446f..00000000000 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/usermanagement/UserManagementPage.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.sap.sailing.gwt.ui.usermanagement; - -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; - -import com.google.gwt.event.dom.client.ClickEvent; -import com.google.gwt.event.dom.client.ClickHandler; -import com.google.gwt.user.client.ui.Button; -import com.google.gwt.user.client.ui.Label; -import com.google.gwt.user.client.ui.PasswordTextBox; -import com.google.gwt.user.client.ui.RootPanel; -import com.google.gwt.user.client.ui.TextBox; -import com.google.gwt.user.client.ui.VerticalPanel; -import com.sap.sailing.domain.common.Base64Utils; -import com.sap.sailing.gwt.ui.client.AbstractEntryPoint; -import com.sap.sse.gwt.client.dialog.DialogUtils; - -public class UserManagementPage extends AbstractEntryPoint { - - @Override - protected void doOnModuleLoad() { - super.doOnModuleLoad(); - VerticalPanel vp = new VerticalPanel(); - RootPanel.get().add(vp); - TextBox usernameField = new TextBox(); - vp.add(usernameField); - final PasswordTextBox passwordField = new PasswordTextBox(); - vp.add(passwordField); - final Label md5Display = new Label(); - vp.add(md5Display); - Button ok = new Button("OK"); - ok.addClickHandler(new ClickHandler() { - @Override - public void onClick(ClickEvent event) { - String password = passwordField.getValue(); - try { - MessageDigest digest = MessageDigest.getInstance("MD5"); - byte[] md5 = digest.digest(password.getBytes()); - md5Display.setText(Base64Utils.toBase64(md5)); - } catch (NoSuchAlgorithmException e) { - reportError("Error creating digest: "+e.getMessage()); - } - } - }); - vp.add(ok); - DialogUtils.linkEnterToButton(ok, usernameField, passwordField); - } -} \ No newline at end of file diff --git a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/AbstractEntryPoint.java b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/AbstractEntryPoint.java index 27e7395c945..b63bc91f047 100755 --- a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/AbstractEntryPoint.java +++ b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/AbstractEntryPoint.java @@ -3,18 +3,30 @@ package com.sap.sse.gwt.client; import com.google.gwt.core.client.EntryPoint; import com.google.gwt.core.client.GWT; import com.google.gwt.debug.client.DebugInfo; +import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.logical.shared.AttachEvent; import com.google.gwt.event.logical.shared.AttachEvent.Handler; import com.google.gwt.resources.client.TextResource; import com.google.gwt.user.client.Window; +import com.google.gwt.user.client.ui.Button; +import com.google.gwt.user.client.ui.DialogBox; +import com.google.gwt.user.client.ui.HTML; +import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.TabLayoutPanel; +import com.google.gwt.user.client.ui.VerticalPanel; import com.sap.sse.gwt.client.async.MarkedAsyncCallback; import com.sap.sse.gwt.client.async.PendingAjaxCallMarker; import com.sap.sse.gwt.client.useragent.UserAgentDetails; import com.sap.sse.gwt.shared.DebugConstants; -public abstract class AbstractEntryPoint implements EntryPoint { +public abstract class AbstractEntryPoint implements EntryPoint, ErrorReporter, WindowSizeDetector { protected UserAgentDetails userAgent; + private DialogBox errorDialogBox; + private HTML serverResponseLabel; + private Button dialogCloseButton; + private StringMessages stringMessages; + protected Label persistentAlertLabel; @Override public final void onModuleLoad() { @@ -33,6 +45,9 @@ public abstract class AbstractEntryPoint implements EntryPoint { protected void doOnModuleLoad() { userAgent = new UserAgentDetails(Window.Navigator.getUserAgent()); + errorDialogBox = createErrorDialog(); /* TODO: Make this more generic (e.g. make it support all kinds of messages) */ + persistentAlertLabel = new Label(""); + persistentAlertLabel.setStyleName("global-alert-message"); } /** @@ -47,4 +62,68 @@ public abstract class AbstractEntryPoint implements EntryPoint { } }); } + + @Override + public void reportError(String message) { + errorDialogBox.setText(message); + serverResponseLabel.addStyleName("serverResponseLabelError"); //$NON-NLS-1$ + serverResponseLabel.setHTML(getStringMessages().serverError()); + errorDialogBox.center(); + dialogCloseButton.setFocus(true); + } + + @Override + public void reportError(String message, boolean silentMode) { + if (silentMode) { + Window.setStatus(message); + } else { + reportError(message); + } + } + + @Override + public void reportPersistentInformation(String message) { + persistentAlertLabel.setText(message); + } + + @Override + public boolean isSmallWidth() { + int width = Window.getClientWidth(); + return width <= 720; + } + + private DialogBox createErrorDialog() { + // Create the popup dialog box + final DialogBox myErrorDialogBox = new DialogBox(); + myErrorDialogBox.setText("Remote Procedure Call"); //$NON-NLS-1$ + myErrorDialogBox.setAnimationEnabled(true); + dialogCloseButton = new Button(getStringMessages().close()); //$NON-NLS-1$ + // We can set the id of a widget by accessing its Element + dialogCloseButton.getElement().setId("closeButton"); //$NON-NLS-1$ + final Label textToServerLabel = new Label(); + serverResponseLabel = new HTML(); + VerticalPanel dialogVPanel = new VerticalPanel(); + dialogVPanel.add(new HTML("Error communicating with server")); //$NON-NLS-1$ + dialogVPanel.add(textToServerLabel); + dialogVPanel.add(new HTML("
Server replies:")); //$NON-NLS-1$ + dialogVPanel.add(serverResponseLabel); + dialogVPanel.setHorizontalAlignment(VerticalPanel.ALIGN_RIGHT); + dialogVPanel.add(dialogCloseButton); + myErrorDialogBox.setWidget(dialogVPanel); + // Add a handler to close the DialogBox + dialogCloseButton.addClickHandler(new ClickHandler() { + public void onClick(ClickEvent event) { + myErrorDialogBox.hide(); + } + }); + return myErrorDialogBox; + } + + protected StringMessages getStringMessages() { + return stringMessages; + } + + protected void setStringMessages(StringMessages stringMessages) { + this.stringMessages = stringMessages; + } } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/ErrorReporter.java b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/ErrorReporter.java similarity index 80% rename from java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/ErrorReporter.java rename to java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/ErrorReporter.java index 250b6646694..c97efbac32d 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/ErrorReporter.java +++ b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/ErrorReporter.java @@ -1,4 +1,4 @@ -package com.sap.sailing.gwt.ui.client; +package com.sap.sse.gwt.client; public interface ErrorReporter { void reportError(String message); diff --git a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/StringMessages.java b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/StringMessages.java index 5b422d5001b..95a87f29461 100755 --- a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/StringMessages.java +++ b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/StringMessages.java @@ -18,4 +18,7 @@ public interface StringMessages extends Messages { String edit(); + String serverError(); + + String close(); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/WindowSizeDetector.java b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/WindowSizeDetector.java similarity index 60% rename from java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/WindowSizeDetector.java rename to java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/WindowSizeDetector.java index 651030c55aa..1bdcb704eb5 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/WindowSizeDetector.java +++ b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/WindowSizeDetector.java @@ -1,4 +1,4 @@ -package com.sap.sailing.gwt.ui.client; +package com.sap.sse.gwt.client; public interface WindowSizeDetector { diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/AbstractSecureEntryPoint.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/AbstractSecureEntryPoint.java new file mode 100755 index 00000000000..2700ad43326 --- /dev/null +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/AbstractSecureEntryPoint.java @@ -0,0 +1,38 @@ +package com.sap.sse.security.ui.client; + +import com.google.gwt.core.client.EntryPoint; +import com.google.gwt.core.client.GWT; +import com.google.gwt.user.client.rpc.ServiceDefTarget; +import com.sap.sse.gwt.client.EntryPointHelper; +import com.sap.sse.security.ui.shared.UserManagementService; +import com.sap.sse.security.ui.shared.UserManagementServiceAsync; + +/** + * Adds user management service and user service for security management to the general abstract entry point. + * Entry points that want to benefit from security and user management features should extend this abstract class. + * Subclasses don't need to provide an {@link EntryPoint#onModuleLoad()} implementation. If they still decide to do so, + * they must invoke super.onModuleLoad() as their first statement. + * + * @author Axel Uhl (D043530) + * + */ +public abstract class AbstractSecureEntryPoint extends com.sap.sse.gwt.client.AbstractEntryPoint { + private UserService userService; + private UserManagementServiceAsync userManagementService; + + protected void doOnModuleLoad() { + super.doOnModuleLoad(); + userManagementService = GWT.create(UserManagementService.class); + EntryPointHelper.registerASyncService((ServiceDefTarget) userManagementService, com.sap.sse.security.ui.client.RemoteServiceMappingConstants.userManagementServiceRemotePath); + userService = new UserService(userManagementService); + } + + protected UserManagementServiceAsync getUserManagementService() { + return userManagementService; + } + + protected UserService getUserService() { + return userService; + } + +} From 9e3cc3066bac9fc231141ba1b18338b395cd3436 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Thu, 6 Nov 2014 12:27:30 +0100 Subject: [PATCH 22/50] removed Search and UserManagement entry points from SailingGWT launch configurations --- ...GWT Remote Profiling (Run-Mode only).launch | 2 +- java/com.sap.sailing.gwt.ui/SailingGWT.launch | 18 +++++++++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/SailingGWT Remote Profiling (Run-Mode only).launch b/java/com.sap.sailing.gwt.ui/SailingGWT Remote Profiling (Run-Mode only).launch index 7b22e069710..81a64367136 100644 --- a/java/com.sap.sailing.gwt.ui/SailingGWT Remote Profiling (Run-Mode only).launch +++ b/java/com.sap.sailing.gwt.ui/SailingGWT Remote Profiling (Run-Mode only).launch @@ -52,7 +52,7 @@ - + diff --git a/java/com.sap.sailing.gwt.ui/SailingGWT.launch b/java/com.sap.sailing.gwt.ui/SailingGWT.launch index d0a079cb7fa..45c92865529 100755 --- a/java/com.sap.sailing.gwt.ui/SailingGWT.launch +++ b/java/com.sap.sailing.gwt.ui/SailingGWT.launch @@ -3,6 +3,22 @@ + + + + + + + + + + + + + + + + @@ -50,7 +66,7 @@ - + From a2c5ed1bf1cd4c69b63ac5d77c97a75599814eac Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Thu, 6 Nov 2014 12:31:23 +0100 Subject: [PATCH 23/50] added missing com.sap.sse.security.ui.UserManagement entry point to SailingGWT launch configurations --- ...GWT Remote Profiling (Run-Mode only).launch | 6 +----- java/com.sap.sailing.gwt.ui/SailingGWT.launch | 18 +----------------- 2 files changed, 2 insertions(+), 22 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/SailingGWT Remote Profiling (Run-Mode only).launch b/java/com.sap.sailing.gwt.ui/SailingGWT Remote Profiling (Run-Mode only).launch index 81a64367136..8641ee5db2f 100644 --- a/java/com.sap.sailing.gwt.ui/SailingGWT Remote Profiling (Run-Mode only).launch +++ b/java/com.sap.sailing.gwt.ui/SailingGWT Remote Profiling (Run-Mode only).launch @@ -3,10 +3,6 @@ - - - - @@ -52,7 +48,7 @@ - + diff --git a/java/com.sap.sailing.gwt.ui/SailingGWT.launch b/java/com.sap.sailing.gwt.ui/SailingGWT.launch index 45c92865529..1dd5ac1c087 100755 --- a/java/com.sap.sailing.gwt.ui/SailingGWT.launch +++ b/java/com.sap.sailing.gwt.ui/SailingGWT.launch @@ -3,22 +3,6 @@ - - - - - - - - - - - - - - - - @@ -66,7 +50,7 @@ - + From 0b70fe6fac323653c6150ee855f73f845c559a41 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Thu, 6 Nov 2014 12:35:41 +0100 Subject: [PATCH 24/50] added serverError string message also to security.ui's StringMessages bundles --- .../sap/sse/security/ui/client/i18n/StringMessages.properties | 1 + .../sse/security/ui/client/i18n/StringMessages_de.properties | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.properties b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.properties index ac300d82487..10db9425d6c 100755 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.properties +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.properties @@ -67,3 +67,4 @@ generalWelcome=Welcome! newUser=New here? pleaseSignIn=Please sign in. enterUsernameOrEmail=Enter user name or e-mail address +serverError=An error occurred while attempting to contact the server. Please check your network connection and try again. \ No newline at end of file diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_de.properties b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_de.properties index 9c032f4d50f..3868a30fcdf 100755 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_de.properties +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_de.properties @@ -66,4 +66,5 @@ signInWith=Anmelden mit... generalWelcome=Herzlich Willkommen. newUser=Neuer Benutzer? pleaseSignIn=Bitte melden Sie sich an. -enterUsernameOrEmail=Benutzernamen oder e-Mail-Adresse angeben \ No newline at end of file +enterUsernameOrEmail=Benutzernamen oder e-Mail-Adresse angeben +serverError=Es ist ein Fehler beim Versuch aufgetreten, den Server zu kontaktieren. Bitte Netzwerkverbindung prüfen und erneut versuchen. \ No newline at end of file From 66190738ad42723c588ce088d06d367806b68512 Mon Sep 17 00:00:00 2001 From: fmittag Date: Thu, 6 Nov 2014 12:41:38 +0100 Subject: [PATCH 25/50] moved TextBoxWithWatermark and PasswordTextBoxWithWatermark to com.sap.see.gwt.client.controls --- .../shared/SecurityStylesheetResources.java | 4 +-- .../PasswordTextBoxWithWatermark.java | 24 ++++++++++++++---- .../controls}/TextBoxWithWatermark.java | 25 ++++++++++++++----- .../sap/sse/security/ui/client/Resources.java | 6 ++--- .../sap/sse/security/ui/login/LoginView.java | 2 ++ .../sse/security/ui/login/LoginView.ui.xml | 2 +- .../security/ui/loginpanel}/LoginPanel.css | 0 .../security/ui/loginpanel/LoginPanel.java | 2 +- .../{Css.java => LoginPanelCss.java} | 2 +- .../UserManagementEntryPoint.java | 2 +- 10 files changed, 49 insertions(+), 20 deletions(-) rename java/{com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login => com.sap.sse.gwt/src/com/sap/sse/gwt/client/controls}/PasswordTextBoxWithWatermark.java (73%) rename java/{com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login => com.sap.sse.gwt/src/com/sap/sse/gwt/client/controls}/TextBoxWithWatermark.java (72%) rename java/com.sap.sse.security.ui/src/main/{resources/com/sap/sse/security/ui/client/css => java/com/sap/sse/security/ui/loginpanel}/LoginPanel.css (100%) rename java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/loginpanel/{Css.java => LoginPanelCss.java} (88%) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/SecurityStylesheetResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/SecurityStylesheetResources.java index e54c668b136..5db5b37c0b6 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/SecurityStylesheetResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/SecurityStylesheetResources.java @@ -2,11 +2,11 @@ package com.sap.sailing.gwt.ui.shared; import com.google.gwt.core.client.GWT; import com.google.gwt.resources.client.ClientBundle; -import com.sap.sse.security.ui.loginpanel.Css; +import com.sap.sse.security.ui.loginpanel.LoginPanelCss; public interface SecurityStylesheetResources extends ClientBundle { public static final SecurityStylesheetResources INSTANCE = GWT.create(SecurityStylesheetResources.class); @Source("LoginPanel.css") - public Css css(); + public LoginPanelCss css(); } diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/PasswordTextBoxWithWatermark.java b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/controls/PasswordTextBoxWithWatermark.java similarity index 73% rename from java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/PasswordTextBoxWithWatermark.java rename to java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/controls/PasswordTextBoxWithWatermark.java index 36fc064ce50..6238f5cb5cb 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/PasswordTextBoxWithWatermark.java +++ b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/controls/PasswordTextBoxWithWatermark.java @@ -1,4 +1,4 @@ -package com.sap.sse.security.ui.login; +package com.sap.sse.gwt.client.controls; import com.google.gwt.event.dom.client.BlurEvent; import com.google.gwt.event.dom.client.BlurHandler; @@ -7,8 +7,14 @@ import com.google.gwt.event.dom.client.FocusHandler; import com.google.gwt.user.client.ui.PasswordTextBox; import com.google.web.bindery.event.shared.HandlerRegistration; +/** + * A password textbox with a watermark property (HTML5 placeholder attribute) + * @author Frank + * + */ public class PasswordTextBoxWithWatermark extends PasswordTextBox implements BlurHandler, FocusHandler { private String watermark; + private String watermarkStyleName; private HandlerRegistration blurHandler; private HandlerRegistration focusHandler; @@ -27,7 +33,7 @@ public class PasswordTextBoxWithWatermark extends PasswordTextBox implements Blu } /** - * Adds a watermark if the parameter is not NULL or EMPTY + * Adds a watermark if the parameter is not Null * * @param watermark */ @@ -45,23 +51,31 @@ public class PasswordTextBoxWithWatermark extends PasswordTextBox implements Blu } } + public void setWatermarkStyleName(String styleName) { + this.watermarkStyleName = styleName; + } + @Override public void onBlur(BlurEvent event) { enableWatermark(); } - void enableWatermark() { + private void enableWatermark() { String text = getText(); if ((text.length() == 0) || (text.equalsIgnoreCase(watermark))) { // Show watermark setText(watermark); - addStyleName(LoginViewResources.INSTANCE.css().passwordTextInput_watermark()); + if(watermarkStyleName != null && !watermarkStyleName.isEmpty()) { + addStyleName(watermarkStyleName); + } } } @Override public void onFocus(FocusEvent event) { - removeStyleName(LoginViewResources.INSTANCE.css().passwordTextInput_watermark()); + if(watermarkStyleName != null && !watermarkStyleName.isEmpty()) { + removeStyleName(watermarkStyleName); + } if (getText().equalsIgnoreCase(watermark)) { // Hide watermark diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/TextBoxWithWatermark.java b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/controls/TextBoxWithWatermark.java similarity index 72% rename from java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/TextBoxWithWatermark.java rename to java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/controls/TextBoxWithWatermark.java index e2c6bfe5cb8..536920799c6 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/TextBoxWithWatermark.java +++ b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/controls/TextBoxWithWatermark.java @@ -1,4 +1,4 @@ -package com.sap.sse.security.ui.login; +package com.sap.sse.gwt.client.controls; import com.google.gwt.event.dom.client.BlurEvent; import com.google.gwt.event.dom.client.BlurHandler; @@ -7,8 +7,14 @@ import com.google.gwt.event.dom.client.FocusHandler; import com.google.gwt.user.client.ui.TextBox; import com.google.web.bindery.event.shared.HandlerRegistration; +/** + * A textbox with a watermark property (HTML5 placeholder attribute) + * @author Frank + * + */ public class TextBoxWithWatermark extends TextBox implements BlurHandler, FocusHandler { private String watermark; + private String watermarkStyleName; private HandlerRegistration blurHandler; private HandlerRegistration focusHandler; @@ -27,8 +33,7 @@ public class TextBoxWithWatermark extends TextBox implements BlurHandler, FocusH } /** - * Adds a watermark if the parameter is not NULL or EMPTY - * + * Adds a watermark if the parameter is not Null * @param watermark */ public void setWatermark(final String watermark) { @@ -45,23 +50,31 @@ public class TextBoxWithWatermark extends TextBox implements BlurHandler, FocusH } } + public void setWatermarkStyleName(String styleName) { + this.watermarkStyleName = styleName; + } + @Override public void onBlur(BlurEvent event) { enableWatermark(); } - void enableWatermark() { + private void enableWatermark() { String text = getText(); if ((text.length() == 0) || (text.equalsIgnoreCase(watermark))) { // Show watermark setText(watermark); - addStyleName(LoginViewResources.INSTANCE.css().textInput_watermark()); + if(watermarkStyleName != null && !watermarkStyleName.isEmpty()) { + addStyleName(watermarkStyleName); + } } } @Override public void onFocus(FocusEvent event) { - removeStyleName(LoginViewResources.INSTANCE.css().textInput_watermark()); + if(watermarkStyleName != null && !watermarkStyleName.isEmpty()) { + removeStyleName(watermarkStyleName); + } if (getText().equalsIgnoreCase(watermark)) { // Hide watermark diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/Resources.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/Resources.java index 4d9d2b1c7f2..b658f852a3b 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/Resources.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/Resources.java @@ -2,12 +2,12 @@ package com.sap.sse.security.ui.client; import com.google.gwt.core.client.GWT; import com.google.gwt.resources.client.ClientBundle; -import com.sap.sse.security.ui.loginpanel.Css; +import com.sap.sse.security.ui.loginpanel.LoginPanelCss; public interface Resources extends ClientBundle { public static final Resources INSTANCE = GWT.create(Resources.class); - @Source("css/LoginPanel.css") - public Css css(); + @Source("com/sap/sse/security/ui/loginpanel/LoginPanel.css") + LoginPanelCss loginPanelCss(); } diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java index 09a774f76a1..60f6f44ab6b 100755 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java @@ -15,6 +15,8 @@ import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.HTMLPanel; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.Widget; +import com.sap.sse.gwt.client.controls.PasswordTextBoxWithWatermark; +import com.sap.sse.gwt.client.controls.TextBoxWithWatermark; import com.sap.sse.gwt.client.dialog.DialogUtils; import com.sap.sse.security.ui.client.EntryPointLinkFactory; import com.sap.sse.security.ui.client.UserService; diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.ui.xml b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.ui.xml index e96b6901feb..d067b8f70c4 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.ui.xml +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.ui.xml @@ -1,7 +1,7 @@ + xmlns:s="urn:import:com.sap.sse.gwt.client.controls"> diff --git a/java/com.sap.sse.security.ui/src/main/resources/com/sap/sse/security/ui/client/css/LoginPanel.css b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/loginpanel/LoginPanel.css similarity index 100% rename from java/com.sap.sse.security.ui/src/main/resources/com/sap/sse/security/ui/client/css/LoginPanel.css rename to java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/loginpanel/LoginPanel.css 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 d866e03b396..bda90d9d2f0 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 @@ -40,7 +40,7 @@ public class LoginPanel extends HorizontalPanel implements UserStatusEventHandle private final OAuthLogin oAuthPanel; - public LoginPanel(final Css css, final UserService userService) { + public LoginPanel(final LoginPanelCss css, final UserService userService) { this.userManagementService = userService.getUserManagementService(); this.userService = userService; css.ensureInjected(); diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/loginpanel/Css.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/loginpanel/LoginPanelCss.java similarity index 88% rename from java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/loginpanel/Css.java rename to java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/loginpanel/LoginPanelCss.java index 19e14439987..6cf39df33d2 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/loginpanel/Css.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/loginpanel/LoginPanelCss.java @@ -2,7 +2,7 @@ package com.sap.sse.security.ui.loginpanel; import com.google.gwt.resources.client.CssResource; -public interface Css extends CssResource { +public interface LoginPanelCss extends CssResource { String loginPanel(); @ClassName("loginPanel-welcomeMessage") 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 2aabf3f8de7..d8f5f7ef0c5 100644 --- 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 @@ -54,7 +54,7 @@ public class UserManagementEntryPoint extends AbstractEntryPoint { final SettingsPanel settingsPanel = new SettingsPanel(userManagementService, stringMessages); center.add(new ScrollPanel(settingsPanel), stringMessages.settings()); RootLayoutPanel.get().add(center); - RootPanel.get().add(new LoginPanel(Resources.INSTANCE.css(), userService)); + RootPanel.get().add(new LoginPanel(Resources.INSTANCE.loginPanelCss(), userService)); setTabPanelSize(center, ""+Window.getClientWidth()+"px", ""+Window.getClientHeight()+"px"); } From cbbe9ced6b7455ee48c703315be3c5efb41269fe Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Thu, 6 Nov 2014 13:02:16 +0100 Subject: [PATCH 26/50] create StringMessages instance and pass through --- ...WT Remote Profiling (Run-Mode only).launch | 2 +- java/com.sap.sailing.gwt.ui/SailingGWT.launch | 2 +- .../ui/client/AbstractSailingEntryPoint.java | 7 ++++ .../sailing/gwt/ui/client/StringMessages.java | 3 ++ .../gwt/ui/client/StringMessages.properties | 5 ++- .../ui/client/StringMessages_de.properties | 5 ++- .../ui/client/StringMessages_ru.properties | 5 ++- .../sse/gwt/client/AbstractEntryPoint.java | 19 +++++---- .../sap/sse/gwt/client/StringMessages.java | 6 +++ .../ui/client/AbstractSecurityEntryPoint.java | 25 ++++++++++++ .../ui/client/i18n/StringMessages.java | 4 ++ .../ui/client/i18n/StringMessages.properties | 5 ++- .../client/i18n/StringMessages_de.properties | 5 ++- .../EmailValidationEntryPoint.java | 31 ++++---------- .../security/ui/login/LoginEntryPoint.java | 19 ++------- .../ui/registration/RegisterEntryPoint.java | 40 +++++++------------ .../UserManagementEntryPoint.java | 32 ++++----------- 17 files changed, 112 insertions(+), 103 deletions(-) create mode 100755 java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/AbstractSecurityEntryPoint.java diff --git a/java/com.sap.sailing.gwt.ui/SailingGWT Remote Profiling (Run-Mode only).launch b/java/com.sap.sailing.gwt.ui/SailingGWT Remote Profiling (Run-Mode only).launch index 8641ee5db2f..b675f2f4101 100644 --- a/java/com.sap.sailing.gwt.ui/SailingGWT Remote Profiling (Run-Mode only).launch +++ b/java/com.sap.sailing.gwt.ui/SailingGWT Remote Profiling (Run-Mode only).launch @@ -48,7 +48,7 @@ - + diff --git a/java/com.sap.sailing.gwt.ui/SailingGWT.launch b/java/com.sap.sailing.gwt.ui/SailingGWT.launch index 1dd5ac1c087..51ee2154b4f 100755 --- a/java/com.sap.sailing.gwt.ui/SailingGWT.launch +++ b/java/com.sap.sailing.gwt.ui/SailingGWT.launch @@ -50,7 +50,7 @@ - + diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/AbstractSailingEntryPoint.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/AbstractSailingEntryPoint.java index d512e05be6d..c9f3ebb56a2 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/AbstractSailingEntryPoint.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/AbstractSailingEntryPoint.java @@ -1,8 +1,15 @@ package com.sap.sailing.gwt.ui.client; +import com.google.gwt.core.client.GWT; +import com.sap.sse.gwt.client.StringMessages; import com.sap.sse.security.ui.client.AbstractSecureEntryPoint; public abstract class AbstractSailingEntryPoint extends AbstractSecureEntryPoint { + @Override + protected StringMessages createStringMessages() { + return GWT.create(com.sap.sailing.gwt.ui.client.StringMessages.class); + } + @Override protected com.sap.sailing.gwt.ui.client.StringMessages getStringMessages() { return (com.sap.sailing.gwt.ui.client.StringMessages) super.getStringMessages(); 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 8290e9c2f27..c54d4a9ac3b 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 @@ -1107,4 +1107,7 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages { String enterCourseName(); String scoringSchemeHighPointFirstGetsTenOrEightDescription(); String serverError(); + String remoteProcedureCall(); + String serverReplies(); + String errorCommunicatingWithServer(); } 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 780a9a438c0..ad35b6d7193 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 @@ -1088,4 +1088,7 @@ enterVideoURL=Enter video URL... enterSponsorImageURL=Enter sponsor image URL... enterRaceName=Enter race name... scoringSchemeHighPointFirstGetsTenOrEightDescription=Score in points. Winner scores 10 points, 2nd - 9 points, ..., boats coming 10th and after score 1 point each. A tie is broken in favour of the competitor having won most races, if tie remains then tie is broken by the rank in the last race scored. -serverError=An error occurred while attempting to contact the server. Please check your network connection and try again. \ No newline at end of file +serverError=An error occurred while attempting to contact the server. Please check your network connection and try again. +remoteProcedureCall=Remote Procedure Call +serverReplies=Server replies +errorCommunicatingWithServer=Error communicating with server \ 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 6a51e9de3dc..b5fd9b5db96 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 @@ -1082,4 +1082,7 @@ enterVideoURL=Video-URL eingeben... enterSponsorImageURL=Sponsorbild-URL eingeben... enterRaceName=Wettfahrtnamen eingeben... scoringSchemeHighPointFirstGetsTenOrEightDescription=High Point System, der Gewinner erhält 10 Punkte, der Zweite 8 und so weiter. Die Plätze 10 und tiefer erhalten einen Punkt. -serverError=Es ist ein Fehler beim Versuch aufgetreten, den Server zu kontaktieren. Bitte Netzwerkverbindung prüfen und erneut versuchen. \ No newline at end of file +serverError=Es ist ein Fehler beim Versuch aufgetreten, den Server zu kontaktieren. Bitte Netzwerkverbindung prüfen und erneut versuchen. +remoteProcedureCall=Entfernter Prozeduraufruf +serverReplies=Server antwortet +errorCommunicatingWithServer=Fehler bei der Kommunikation mit dem Server \ 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_ru.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ru.properties index e2c08c67f84..e16cd7e8c7a 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ru.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ru.properties @@ -1031,4 +1031,7 @@ enterVideoURL=Enter video URL... enterSponsorImageURL=Enter sponsor image URL... enterRaceName=Enter race name... scoringSchemeHighPointFirstGetsTenOrEightDescription=Score in points. Winner scores 10 points, 2nd - 9 points, ..., boats coming 10th and after score 1 point each. A tie is broken in favour of the competitor having won most races, if tie remains then tie is broken by the rank in the last race scored. -serverError=An error occurred while attempting to contact the server. Please check your network connection and try again. \ No newline at end of file +serverError=An error occurred while attempting to contact the server. Please check your network connection and try again. +remoteProcedureCall=Remote Procedure Call +serverReplies=Server replies +errorCommunicatingWithServer=Error communicating with server \ No newline at end of file diff --git a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/AbstractEntryPoint.java b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/AbstractEntryPoint.java index b63bc91f047..3d1ee89c82c 100755 --- a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/AbstractEntryPoint.java +++ b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/AbstractEntryPoint.java @@ -30,6 +30,7 @@ public abstract class AbstractEntryPoint implements EntryPoint, ErrorReporter, W @Override public final void onModuleLoad() { + this.stringMessages = createStringMessages(); if (DebugInfo.isDebugIdEnabled()) { PendingAjaxCallBundle bundle = GWT.create(PendingAjaxCallBundle.class); TextResource script = bundle.ajaxSemaphoreJS(); @@ -43,6 +44,12 @@ public abstract class AbstractEntryPoint implements EntryPoint, ErrorReporter, W } } + /** + * Provides the concrete implementation the opportunity to specify a concrete subclass of the {@link StringMessages} type to + * use for i18n support. + */ + protected abstract StringMessages createStringMessages(); + protected void doOnModuleLoad() { userAgent = new UserAgentDetails(Window.Navigator.getUserAgent()); errorDialogBox = createErrorDialog(); /* TODO: Make this more generic (e.g. make it support all kinds of messages) */ @@ -95,17 +102,17 @@ public abstract class AbstractEntryPoint implements EntryPoint, ErrorReporter, W private DialogBox createErrorDialog() { // Create the popup dialog box final DialogBox myErrorDialogBox = new DialogBox(); - myErrorDialogBox.setText("Remote Procedure Call"); //$NON-NLS-1$ + myErrorDialogBox.setText(getStringMessages().remoteProcedureCall()); myErrorDialogBox.setAnimationEnabled(true); - dialogCloseButton = new Button(getStringMessages().close()); //$NON-NLS-1$ + dialogCloseButton = new Button(getStringMessages().close()); // We can set the id of a widget by accessing its Element dialogCloseButton.getElement().setId("closeButton"); //$NON-NLS-1$ final Label textToServerLabel = new Label(); serverResponseLabel = new HTML(); VerticalPanel dialogVPanel = new VerticalPanel(); - dialogVPanel.add(new HTML("Error communicating with server")); //$NON-NLS-1$ + dialogVPanel.add(new HTML(""+stringMessages.errorCommunicatingWithServer()+"")); //$NON-NLS-1$ dialogVPanel.add(textToServerLabel); - dialogVPanel.add(new HTML("
Server replies:")); //$NON-NLS-1$ + dialogVPanel.add(new HTML("
"+stringMessages.serverReplies()+"")); //$NON-NLS-1$ dialogVPanel.add(serverResponseLabel); dialogVPanel.setHorizontalAlignment(VerticalPanel.ALIGN_RIGHT); dialogVPanel.add(dialogCloseButton); @@ -122,8 +129,4 @@ public abstract class AbstractEntryPoint implements EntryPoint, ErrorReporter, W protected StringMessages getStringMessages() { return stringMessages; } - - protected void setStringMessages(StringMessages stringMessages) { - this.stringMessages = stringMessages; - } } diff --git a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/StringMessages.java b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/StringMessages.java index 95a87f29461..913d62075fe 100755 --- a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/StringMessages.java +++ b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/StringMessages.java @@ -21,4 +21,10 @@ public interface StringMessages extends Messages { String serverError(); String close(); + + String remoteProcedureCall(); + + String serverReplies(); + + String errorCommunicatingWithServer(); } diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/AbstractSecurityEntryPoint.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/AbstractSecurityEntryPoint.java new file mode 100755 index 00000000000..4b66b2b4589 --- /dev/null +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/AbstractSecurityEntryPoint.java @@ -0,0 +1,25 @@ +package com.sap.sse.security.ui.client; + +import com.google.gwt.core.client.GWT; +import com.sap.sse.gwt.client.StringMessages; + +/** + * Abstract entry point class, using this bundle's {@link com.sap.sse.security.ui.client.i18n.StringMessages} + * for i18n support. + * + * @author Axel Uhl (D043530) + * + */ +public abstract class AbstractSecurityEntryPoint extends AbstractSecureEntryPoint { + + @Override + protected StringMessages createStringMessages() { + return GWT.create(com.sap.sse.security.ui.client.i18n.StringMessages.class); + } + + @Override + protected com.sap.sse.security.ui.client.i18n.StringMessages getStringMessages() { + return (com.sap.sse.security.ui.client.i18n.StringMessages) super.getStringMessages(); + } + +} diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.java index d6f9f311915..4abb03d6e6c 100755 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.java @@ -74,4 +74,8 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages { String newUser(); String pleaseSignIn(); String enterUsernameOrEmail(); + String serverError(); + String remoteProcedureCall(); + String serverReplies(); + String errorCommunicatingWithServer(); } diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.properties b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.properties index 10db9425d6c..b9bb5a19e65 100755 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.properties +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.properties @@ -67,4 +67,7 @@ generalWelcome=Welcome! newUser=New here? pleaseSignIn=Please sign in. enterUsernameOrEmail=Enter user name or e-mail address -serverError=An error occurred while attempting to contact the server. Please check your network connection and try again. \ No newline at end of file +serverError=An error occurred while attempting to contact the server. Please check your network connection and try again. +remoteProcedureCall=Remote Procedure Call +serverReplies=Server replies +errorCommunicatingWithServer=Error communicating with server \ No newline at end of file diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_de.properties b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_de.properties index 3868a30fcdf..a70c70db082 100755 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_de.properties +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_de.properties @@ -67,4 +67,7 @@ generalWelcome=Herzlich Willkommen. newUser=Neuer Benutzer? pleaseSignIn=Bitte melden Sie sich an. enterUsernameOrEmail=Benutzernamen oder e-Mail-Adresse angeben -serverError=Es ist ein Fehler beim Versuch aufgetreten, den Server zu kontaktieren. Bitte Netzwerkverbindung prüfen und erneut versuchen. \ No newline at end of file +serverError=Es ist ein Fehler beim Versuch aufgetreten, den Server zu kontaktieren. Bitte Netzwerkverbindung prüfen und erneut versuchen. +remoteProcedureCall=Entfernter Prozeduraufruf +serverReplies=Server antwortet +errorCommunicatingWithServer=Fehler bei der Kommunikation mit dem Server \ No newline at end of file diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/emailvalidation/EmailValidationEntryPoint.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/emailvalidation/EmailValidationEntryPoint.java index 090bcce556a..2d9ad58a2fc 100755 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/emailvalidation/EmailValidationEntryPoint.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/emailvalidation/EmailValidationEntryPoint.java @@ -1,47 +1,32 @@ package com.sap.sse.security.ui.emailvalidation; -import com.google.gwt.core.client.EntryPoint; -import com.google.gwt.core.client.GWT; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.rpc.AsyncCallback; -import com.google.gwt.user.client.rpc.ServiceDefTarget; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.RootLayoutPanel; -import com.sap.sse.gwt.client.EntryPointHelper; import com.sap.sse.gwt.client.async.MarkedAsyncCallback; -import com.sap.sse.security.ui.client.RemoteServiceMappingConstants; -import com.sap.sse.security.ui.client.UserService; -import com.sap.sse.security.ui.client.i18n.StringMessages; -import com.sap.sse.security.ui.shared.UserManagementService; -import com.sap.sse.security.ui.shared.UserManagementServiceAsync; - -public class EmailValidationEntryPoint implements EntryPoint { - private final UserManagementServiceAsync userManagementService = GWT.create(UserManagementService.class); - private final StringMessages stringMessages = GWT.create(StringMessages.class); +import com.sap.sse.security.ui.client.AbstractSecurityEntryPoint; +public class EmailValidationEntryPoint extends AbstractSecurityEntryPoint { @Override - public void onModuleLoad() { - EntryPointHelper.registerASyncService((ServiceDefTarget) userManagementService, - RemoteServiceMappingConstants.WEB_CONTEXT_PATH, - RemoteServiceMappingConstants.userManagementServiceRemotePath); - final UserService userService = new UserService(userManagementService); + public void doOnModuleLoad() { final String username = Window.Location.getParameter("u"); final String validationSecret = Window.Location.getParameter("v"); RootLayoutPanel rootPanel = RootLayoutPanel.get(); final Label resultLabel = new Label(); - userManagementService.validateEmail(username, validationSecret, new MarkedAsyncCallback(new AsyncCallback() { + getUserManagementService().validateEmail(username, validationSecret, new MarkedAsyncCallback(new AsyncCallback() { @Override public void onFailure(Throwable caught) { - resultLabel.setText(stringMessages.errorValidatingEmail(username, caught.getMessage())); + resultLabel.setText(getStringMessages().errorValidatingEmail(username, caught.getMessage())); } @Override public void onSuccess(Boolean result) { if (result) { - userService.updateUser(/* notifyOtherInstances */ true); - resultLabel.setText(stringMessages.emailValidatedSuccessfully(username)); + getUserService().updateUser(/* notifyOtherInstances */ true); + resultLabel.setText(getStringMessages().emailValidatedSuccessfully(username)); } else { - resultLabel.setText(stringMessages.emailValidationUnsuccessful(username)); + resultLabel.setText(getStringMessages().emailValidationUnsuccessful(username)); } } })); diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginEntryPoint.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginEntryPoint.java index 6801e61f40d..f1ac6c2376b 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginEntryPoint.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginEntryPoint.java @@ -1,33 +1,22 @@ package com.sap.sse.security.ui.login; -import com.google.gwt.core.client.GWT; import com.google.gwt.user.client.Window; -import com.google.gwt.user.client.rpc.ServiceDefTarget; import com.google.gwt.user.client.ui.RootPanel; -import com.sap.sse.gwt.client.AbstractEntryPoint; -import com.sap.sse.gwt.client.EntryPointHelper; -import com.sap.sse.security.ui.client.RemoteServiceMappingConstants; -import com.sap.sse.security.ui.client.UserService; +import com.sap.sse.security.ui.client.AbstractSecurityEntryPoint; import com.sap.sse.security.ui.client.i18n.StringMessages; -import com.sap.sse.security.ui.shared.UserManagementService; -import com.sap.sse.security.ui.shared.UserManagementServiceAsync; -public class LoginEntryPoint extends AbstractEntryPoint { +public class LoginEntryPoint extends AbstractSecurityEntryPoint { /** * The URL parameter name used to pass an application name to this entry point. This name * will be put into the login view's header. */ private static final String PARAM_APP = "app"; - private UserManagementServiceAsync userManagementService; - private UserService userService; @Override public void doOnModuleLoad() { + super.doOnModuleLoad(); final String appName = Window.Location.getParameter(PARAM_APP); - userManagementService = GWT.create(UserManagementService.class); - EntryPointHelper.registerASyncService((ServiceDefTarget) userManagementService, RemoteServiceMappingConstants.userManagementServiceRemotePath); - userService = new UserService(userManagementService); RootPanel rootPanel = RootPanel.get(); - rootPanel.add(new LoginView(userManagementService, userService, appName==null?StringMessages.INSTANCE.signIn():appName)); + rootPanel.add(new LoginView(getUserManagementService(), getUserService(), appName==null?StringMessages.INSTANCE.signIn():appName)); } } diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/registration/RegisterEntryPoint.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/registration/RegisterEntryPoint.java index a3c5fe66c3e..30d095b6764 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/registration/RegisterEntryPoint.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/registration/RegisterEntryPoint.java @@ -2,14 +2,12 @@ package com.sap.sse.security.ui.registration; import java.util.HashMap; -import com.google.gwt.core.client.EntryPoint; import com.google.gwt.core.client.GWT; import com.google.gwt.dom.client.Style.Unit; import com.google.gwt.event.dom.client.KeyUpEvent; import com.google.gwt.event.dom.client.KeyUpHandler; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.rpc.AsyncCallback; -import com.google.gwt.user.client.rpc.ServiceDefTarget; import com.google.gwt.user.client.ui.DockLayoutPanel; import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.FormPanel; @@ -20,49 +18,39 @@ import com.google.gwt.user.client.ui.PasswordTextBox; import com.google.gwt.user.client.ui.RootLayoutPanel; import com.google.gwt.user.client.ui.SubmitButton; import com.google.gwt.user.client.ui.TextBox; -import com.sap.sse.gwt.client.EntryPointHelper; import com.sap.sse.security.shared.UserManagementException; +import com.sap.sse.security.ui.client.AbstractSecurityEntryPoint; import com.sap.sse.security.ui.client.EntryPointLinkFactory; -import com.sap.sse.security.ui.client.RemoteServiceMappingConstants; import com.sap.sse.security.ui.client.component.NewAccountValidator; -import com.sap.sse.security.ui.client.i18n.StringMessages; import com.sap.sse.security.ui.shared.UserDTO; -import com.sap.sse.security.ui.shared.UserManagementService; -import com.sap.sse.security.ui.shared.UserManagementServiceAsync; - -public class RegisterEntryPoint implements EntryPoint { - private final UserManagementServiceAsync userManagementService = GWT.create(UserManagementService.class); - private final StringMessages stringMessages = GWT.create(StringMessages.class); +public class RegisterEntryPoint extends AbstractSecurityEntryPoint { @Override - public void onModuleLoad() { - EntryPointHelper.registerASyncService((ServiceDefTarget) userManagementService, - RemoteServiceMappingConstants.WEB_CONTEXT_PATH, - RemoteServiceMappingConstants.userManagementServiceRemotePath); - final NewAccountValidator validator = new NewAccountValidator(stringMessages); + public void doOnModuleLoad() { + final NewAccountValidator validator = new NewAccountValidator(getStringMessages()); RootLayoutPanel rootPanel = RootLayoutPanel.get(); DockLayoutPanel dockPanel = new DockLayoutPanel(Unit.PX); rootPanel.add(dockPanel); FlowPanel fp = new FlowPanel(); final Label errorLabel = new Label(); fp.add(errorLabel); - Label nameLabel = new Label(stringMessages.username()); + Label nameLabel = new Label(getStringMessages().username()); fp.add(nameLabel); final TextBox nameText = new TextBox(); fp.add(nameText); - Label emailLabel = new Label(stringMessages.email()); + Label emailLabel = new Label(getStringMessages().email()); fp.add(emailLabel); final TextBox emailText = new TextBox(); fp.add(emailText); - Label pwLabel = new Label(stringMessages.password()); + Label pwLabel = new Label(getStringMessages().password()); fp.add(pwLabel); final PasswordTextBox pwText = new PasswordTextBox(); fp.add(pwText); - Label pw2Label = new Label(stringMessages.passwordRepeat()); + Label pw2Label = new Label(getStringMessages().passwordRepeat()); fp.add(pw2Label); final PasswordTextBox pw2Text = new PasswordTextBox(); fp.add(pw2Text); - final SubmitButton submit = new SubmitButton(stringMessages.signUp()); + final SubmitButton submit = new SubmitButton(getStringMessages().signUp()); fp.add(submit); KeyUpHandler keyUpHandler = new KeyUpHandler() { @Override @@ -85,7 +73,7 @@ public class RegisterEntryPoint implements EntryPoint { formPanel.addSubmitHandler(new SubmitHandler() { @Override public void onSubmit(SubmitEvent event) { - userManagementService.createSimpleUser(nameText.getText(), emailText.getText(), pwText.getText(), + getUserManagementService().createSimpleUser(nameText.getText(), emailText.getText(), pwText.getText(), EntryPointLinkFactory.createEmailValidationLink(new HashMap()), new AsyncCallback() { @Override @@ -94,20 +82,20 @@ public class RegisterEntryPoint implements EntryPoint { if (caught instanceof UserManagementException) { String message = ((UserManagementException) caught).getMessage(); if (UserManagementException.USER_ALREADY_EXISTS.equals(message)) { - Window.alert(stringMessages.userAlreadyExists(nameText.getText())); + Window.alert(getStringMessages().userAlreadyExists(nameText.getText())); } } else { - Window.alert(stringMessages.errorCreatingUser(nameText.getText(), caught.getMessage())); + Window.alert(getStringMessages().errorCreatingUser(nameText.getText(), caught.getMessage())); } } @Override public void onSuccess(UserDTO result) { if (result != null) { - Window.alert(stringMessages.signedUpSuccessfully(result.getName())); + Window.alert(getStringMessages().signedUpSuccessfully(result.getName())); } else { - Window.alert(stringMessages.unknownErrorCreatingUser(nameText.getText())); + Window.alert(getStringMessages().unknownErrorCreatingUser(nameText.getText())); } } 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 2aabf3f8de7..9b5acbf664b 100644 --- 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 @@ -1,34 +1,21 @@ package com.sap.sse.security.ui.usermanagement; -import com.google.gwt.core.client.GWT; import com.google.gwt.dom.client.Style.Unit; import com.google.gwt.user.client.Window; -import com.google.gwt.user.client.rpc.ServiceDefTarget; import com.google.gwt.user.client.ui.RootLayoutPanel; import com.google.gwt.user.client.ui.RootPanel; import com.google.gwt.user.client.ui.ScrollPanel; import com.google.gwt.user.client.ui.TabLayoutPanel; -import com.sap.sse.gwt.client.AbstractEntryPoint; -import com.sap.sse.gwt.client.EntryPointHelper; import com.sap.sse.security.shared.DefaultRoles; -import com.sap.sse.security.ui.client.RemoteServiceMappingConstants; +import com.sap.sse.security.ui.client.AbstractSecurityEntryPoint; import com.sap.sse.security.ui.client.Resources; -import com.sap.sse.security.ui.client.UserService; import com.sap.sse.security.ui.client.UserStatusEventHandler; import com.sap.sse.security.ui.client.component.SettingsPanel; import com.sap.sse.security.ui.client.component.UserManagementPanel; -import com.sap.sse.security.ui.client.i18n.StringMessages; import com.sap.sse.security.ui.loginpanel.LoginPanel; import com.sap.sse.security.ui.shared.UserDTO; -import com.sap.sse.security.ui.shared.UserManagementService; -import com.sap.sse.security.ui.shared.UserManagementServiceAsync; -public class UserManagementEntryPoint extends AbstractEntryPoint { - - private final UserManagementServiceAsync userManagementService = GWT.create(UserManagementService.class); - - private final StringMessages stringMessages = GWT.create(StringMessages.class); - +public class UserManagementEntryPoint extends AbstractSecurityEntryPoint { private TabLayoutPanel center; private UserDTO user; @@ -36,11 +23,8 @@ public class UserManagementEntryPoint extends AbstractEntryPoint { @Override public void doOnModuleLoad() { super.doOnModuleLoad(); - EntryPointHelper.registerASyncService((ServiceDefTarget) userManagementService, - RemoteServiceMappingConstants.userManagementServiceRemotePath); - UserService userService = new UserService(userManagementService); center = new TabLayoutPanel(2.5, Unit.EM); - userService.addUserStatusEventHandler(new UserStatusEventHandler() { + getUserService().addUserStatusEventHandler(new UserStatusEventHandler() { @Override public void onUserStatusChange(UserDTO user) { if (!hasRequiredRole(user) && hasRequiredRole(UserManagementEntryPoint.this.user)) { @@ -49,12 +33,12 @@ public class UserManagementEntryPoint extends AbstractEntryPoint { UserManagementEntryPoint.this.user = user; } }); - UserManagementPanel userManagementPanel = new UserManagementPanel(userService, stringMessages); - center.add(new ScrollPanel(userManagementPanel), stringMessages.users()); - final SettingsPanel settingsPanel = new SettingsPanel(userManagementService, stringMessages); - center.add(new ScrollPanel(settingsPanel), stringMessages.settings()); + UserManagementPanel userManagementPanel = new UserManagementPanel(getUserService(), getStringMessages()); + center.add(new ScrollPanel(userManagementPanel), getStringMessages().users()); + final SettingsPanel settingsPanel = new SettingsPanel(getUserManagementService(), getStringMessages()); + center.add(new ScrollPanel(settingsPanel), getStringMessages().settings()); RootLayoutPanel.get().add(center); - RootPanel.get().add(new LoginPanel(Resources.INSTANCE.css(), userService)); + RootPanel.get().add(new LoginPanel(Resources.INSTANCE.css(), getUserService())); setTabPanelSize(center, ""+Window.getClientWidth()+"px", ""+Window.getClientHeight()+"px"); } From 3633d8f8dcb3faec8486b38019c76b204c2217ae Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Thu, 6 Nov 2014 13:08:39 +0100 Subject: [PATCH 27/50] introduced type parameter S for StringMessages, avoiding a few downcasts and overrides --- .../gwt/ui/client/AbstractSailingEntryPoint.java | 10 ++-------- .../com/sap/sse/gwt/client/AbstractEntryPoint.java | 8 ++++---- .../ui/client/AbstractSecureEntryPoint.java | 3 ++- .../ui/client/AbstractSecurityEntryPoint.java | 13 +++---------- 4 files changed, 11 insertions(+), 23 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/AbstractSailingEntryPoint.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/AbstractSailingEntryPoint.java index c9f3ebb56a2..774f725ac58 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/AbstractSailingEntryPoint.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/AbstractSailingEntryPoint.java @@ -1,17 +1,11 @@ package com.sap.sailing.gwt.ui.client; import com.google.gwt.core.client.GWT; -import com.sap.sse.gwt.client.StringMessages; import com.sap.sse.security.ui.client.AbstractSecureEntryPoint; -public abstract class AbstractSailingEntryPoint extends AbstractSecureEntryPoint { +public abstract class AbstractSailingEntryPoint extends AbstractSecureEntryPoint { @Override protected StringMessages createStringMessages() { - return GWT.create(com.sap.sailing.gwt.ui.client.StringMessages.class); - } - - @Override - protected com.sap.sailing.gwt.ui.client.StringMessages getStringMessages() { - return (com.sap.sailing.gwt.ui.client.StringMessages) super.getStringMessages(); + return GWT.create(StringMessages.class); } } diff --git a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/AbstractEntryPoint.java b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/AbstractEntryPoint.java index 3d1ee89c82c..9401e1bcf11 100755 --- a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/AbstractEntryPoint.java +++ b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/AbstractEntryPoint.java @@ -20,12 +20,12 @@ import com.sap.sse.gwt.client.async.PendingAjaxCallMarker; import com.sap.sse.gwt.client.useragent.UserAgentDetails; import com.sap.sse.gwt.shared.DebugConstants; -public abstract class AbstractEntryPoint implements EntryPoint, ErrorReporter, WindowSizeDetector { +public abstract class AbstractEntryPoint implements EntryPoint, ErrorReporter, WindowSizeDetector { protected UserAgentDetails userAgent; private DialogBox errorDialogBox; private HTML serverResponseLabel; private Button dialogCloseButton; - private StringMessages stringMessages; + private S stringMessages; protected Label persistentAlertLabel; @Override @@ -48,7 +48,7 @@ public abstract class AbstractEntryPoint implements EntryPoint, ErrorReporter, W * Provides the concrete implementation the opportunity to specify a concrete subclass of the {@link StringMessages} type to * use for i18n support. */ - protected abstract StringMessages createStringMessages(); + protected abstract S createStringMessages(); protected void doOnModuleLoad() { userAgent = new UserAgentDetails(Window.Navigator.getUserAgent()); @@ -126,7 +126,7 @@ public abstract class AbstractEntryPoint implements EntryPoint, ErrorReporter, W return myErrorDialogBox; } - protected StringMessages getStringMessages() { + protected S getStringMessages() { return stringMessages; } } diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/AbstractSecureEntryPoint.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/AbstractSecureEntryPoint.java index 2700ad43326..0e9af047ad0 100755 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/AbstractSecureEntryPoint.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/AbstractSecureEntryPoint.java @@ -4,6 +4,7 @@ import com.google.gwt.core.client.EntryPoint; import com.google.gwt.core.client.GWT; import com.google.gwt.user.client.rpc.ServiceDefTarget; import com.sap.sse.gwt.client.EntryPointHelper; +import com.sap.sse.gwt.client.StringMessages; import com.sap.sse.security.ui.shared.UserManagementService; import com.sap.sse.security.ui.shared.UserManagementServiceAsync; @@ -16,7 +17,7 @@ import com.sap.sse.security.ui.shared.UserManagementServiceAsync; * @author Axel Uhl (D043530) * */ -public abstract class AbstractSecureEntryPoint extends com.sap.sse.gwt.client.AbstractEntryPoint { +public abstract class AbstractSecureEntryPoint extends com.sap.sse.gwt.client.AbstractEntryPoint { private UserService userService; private UserManagementServiceAsync userManagementService; diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/AbstractSecurityEntryPoint.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/AbstractSecurityEntryPoint.java index 4b66b2b4589..1548ba1a2b0 100755 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/AbstractSecurityEntryPoint.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/AbstractSecurityEntryPoint.java @@ -1,7 +1,7 @@ package com.sap.sse.security.ui.client; import com.google.gwt.core.client.GWT; -import com.sap.sse.gwt.client.StringMessages; +import com.sap.sse.security.ui.client.i18n.StringMessages; /** * Abstract entry point class, using this bundle's {@link com.sap.sse.security.ui.client.i18n.StringMessages} @@ -10,16 +10,9 @@ import com.sap.sse.gwt.client.StringMessages; * @author Axel Uhl (D043530) * */ -public abstract class AbstractSecurityEntryPoint extends AbstractSecureEntryPoint { - +public abstract class AbstractSecurityEntryPoint extends AbstractSecureEntryPoint { @Override protected StringMessages createStringMessages() { - return GWT.create(com.sap.sse.security.ui.client.i18n.StringMessages.class); + return GWT.create(StringMessages.class); } - - @Override - protected com.sap.sse.security.ui.client.i18n.StringMessages getStringMessages() { - return (com.sap.sse.security.ui.client.i18n.StringMessages) super.getStringMessages(); - } - } From 39f6ff92a9fa3f619f99c8bd6dedf1cd62eec442 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Thu, 6 Nov 2014 13:22:33 +0100 Subject: [PATCH 28/50] added missing super.doOnModuleLoad() call in security entry points --- .../security/ui/emailvalidation/EmailValidationEntryPoint.java | 1 + .../com/sap/sse/security/ui/registration/RegisterEntryPoint.java | 1 + 2 files changed, 2 insertions(+) diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/emailvalidation/EmailValidationEntryPoint.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/emailvalidation/EmailValidationEntryPoint.java index 2d9ad58a2fc..251adf95e58 100755 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/emailvalidation/EmailValidationEntryPoint.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/emailvalidation/EmailValidationEntryPoint.java @@ -10,6 +10,7 @@ import com.sap.sse.security.ui.client.AbstractSecurityEntryPoint; public class EmailValidationEntryPoint extends AbstractSecurityEntryPoint { @Override public void doOnModuleLoad() { + super.doOnModuleLoad(); final String username = Window.Location.getParameter("u"); final String validationSecret = Window.Location.getParameter("v"); RootLayoutPanel rootPanel = RootLayoutPanel.get(); diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/registration/RegisterEntryPoint.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/registration/RegisterEntryPoint.java index 30d095b6764..2cf9abee44f 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/registration/RegisterEntryPoint.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/registration/RegisterEntryPoint.java @@ -27,6 +27,7 @@ import com.sap.sse.security.ui.shared.UserDTO; public class RegisterEntryPoint extends AbstractSecurityEntryPoint { @Override public void doOnModuleLoad() { + super.doOnModuleLoad(); final NewAccountValidator validator = new NewAccountValidator(getStringMessages()); RootLayoutPanel rootPanel = RootLayoutPanel.get(); DockLayoutPanel dockPanel = new DockLayoutPanel(Unit.PX); From b62d566953ebb596eb17d75b62d2131ecb55c15a Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Thu, 6 Nov 2014 15:03:56 +0100 Subject: [PATCH 29/50] broken interims commit; has some parts of the refactoring of the AdminConsolePanel already --- .../domain/base/impl/BoatClassImpl.java | 2 +- .../sailing/domain/base/impl/BoatImpl.java | 2 +- .../domain/base/impl/CourseAreaImpl.java | 2 +- .../domain/base/impl/CourseDataImpl.java | 2 +- .../sailing/domain/base/impl/FleetImpl.java | 2 +- .../sailing/domain/base/impl/MarkImpl.java | 2 +- .../sailing/domain/base/impl/PersonImpl.java | 2 +- .../domain/base/impl/SidelineImpl.java | 2 +- .../sailing/domain/base/impl/TeamImpl.java | 2 +- .../base/racegroup/impl/RaceCellImpl.java | 2 +- .../base/racegroup/impl/RaceGroupImpl.java | 2 +- .../racelog/impl/RaceLogEventAuthorImpl.java | 2 +- .../impl/SwissTimingReplayRaceImpl.java | 2 +- .../impl/MetadataParserImpl.java | 2 +- .../sailing/domain/base/impl/CourseImpl.java | 2 +- .../domain/base/impl/RaceDefinitionImpl.java | 2 +- .../sailing/domain/base/impl/RegattaImpl.java | 2 +- .../RemoteSailingServerReferenceImpl.java | 2 +- .../META-INF/MANIFEST.MF | 3 +- ...WT Remote Profiling (Run-Mode only).launch | 2 +- java/com.sap.sailing.gwt.ui/SailingGWT.launch | 2 +- .../adminconsole/AdminConsoleEntryPoint.java | 4 +- .../impl/RabbitInputStreamProvider.java | 2 +- java/com.sap.sse.common/META-INF/MANIFEST.MF | 1 + .../com/sap/sse}/common/impl/NamedImpl.java | 3 +- java/com.sap.sse.gwt.adminconsole/.classpath | 11 + java/com.sap.sse.gwt.adminconsole/.project | 28 ++ .../.settings/org.eclipse.jdt.core.prefs | 7 + .../.settings/org.eclipse.pde.core.prefs | 3 + .../META-INF/MANIFEST.MF | 12 + .../build.properties | 4 + java/com.sap.sse.gwt.adminconsole/pom.xml | 40 +++ .../adminconsole/AdminConsoleFeatures.java | 27 ++ .../gwt/adminconsole/AdminConsolePanel.java | 244 ++++++++++++++++++ .../adminconsole/BuildVersionRetriever.java | 7 + .../RefreshableAdminConsolePanel.java | 16 ++ .../adminconsole}/SystemInformationPanel.java | 10 +- java/com.sap.sse.gwt/.classpath | 18 +- .../META-INF/MANIFEST.MF | 2 +- 39 files changed, 441 insertions(+), 41 deletions(-) rename java/{com.sap.sailing.domain.common/src/com/sap/sailing/domain => com.sap.sse.common/src/com/sap/sse}/common/impl/NamedImpl.java (86%) create mode 100755 java/com.sap.sse.gwt.adminconsole/.classpath create mode 100755 java/com.sap.sse.gwt.adminconsole/.project create mode 100755 java/com.sap.sse.gwt.adminconsole/.settings/org.eclipse.jdt.core.prefs create mode 100755 java/com.sap.sse.gwt.adminconsole/.settings/org.eclipse.pde.core.prefs create mode 100755 java/com.sap.sse.gwt.adminconsole/META-INF/MANIFEST.MF create mode 100755 java/com.sap.sse.gwt.adminconsole/build.properties create mode 100755 java/com.sap.sse.gwt.adminconsole/pom.xml create mode 100755 java/com.sap.sse.gwt.adminconsole/src/com/sap/sse/gwt/adminconsole/AdminConsoleFeatures.java create mode 100755 java/com.sap.sse.gwt.adminconsole/src/com/sap/sse/gwt/adminconsole/AdminConsolePanel.java create mode 100755 java/com.sap.sse.gwt.adminconsole/src/com/sap/sse/gwt/adminconsole/BuildVersionRetriever.java create mode 100755 java/com.sap.sse.gwt.adminconsole/src/com/sap/sse/gwt/adminconsole/RefreshableAdminConsolePanel.java rename java/{com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/panels => com.sap.sse.gwt.adminconsole/src/com/sap/sse/gwt/adminconsole}/SystemInformationPanel.java (72%) diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/BoatClassImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/BoatClassImpl.java index 1b213785fef..7caeb1daed3 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/BoatClassImpl.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/BoatClassImpl.java @@ -6,7 +6,7 @@ import com.sap.sailing.domain.common.BoatClassMasterdata; import com.sap.sailing.domain.common.BoatHullType; import com.sap.sailing.domain.common.Distance; import com.sap.sailing.domain.common.impl.MeterDistance; -import com.sap.sailing.domain.common.impl.NamedImpl; +import com.sap.sse.common.impl.NamedImpl; public class BoatClassImpl extends NamedImpl implements BoatClass { private static final long serialVersionUID = 7194912853476256420L; diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/BoatImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/BoatImpl.java index eefb80ce6c8..22385b0d39a 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/BoatImpl.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/BoatImpl.java @@ -7,8 +7,8 @@ import java.util.Set; import com.sap.sailing.domain.base.BoatChangeListener; import com.sap.sailing.domain.base.BoatClass; -import com.sap.sailing.domain.common.impl.NamedImpl; import com.sap.sse.common.Util; +import com.sap.sse.common.impl.NamedImpl; public class BoatImpl extends NamedImpl implements DynamicBoat { private static final long serialVersionUID = 3489730487528955788L; diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/CourseAreaImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/CourseAreaImpl.java index 1f6642d9a2d..2584d86b401 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/CourseAreaImpl.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/CourseAreaImpl.java @@ -5,7 +5,7 @@ import java.util.UUID; import com.sap.sailing.domain.base.CourseArea; import com.sap.sailing.domain.base.IsManagedBySharedDomainFactory; import com.sap.sailing.domain.base.SharedDomainFactory; -import com.sap.sailing.domain.common.impl.NamedImpl; +import com.sap.sse.common.impl.NamedImpl; public class CourseAreaImpl extends NamedImpl implements CourseArea { private static final long serialVersionUID = 5912385360170509150L; diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/CourseDataImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/CourseDataImpl.java index 530dfa83173..55b482d480e 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/CourseDataImpl.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/CourseDataImpl.java @@ -7,7 +7,7 @@ import com.sap.sailing.domain.base.ControlPoint; import com.sap.sailing.domain.base.CourseBase; import com.sap.sailing.domain.base.Leg; import com.sap.sailing.domain.base.Waypoint; -import com.sap.sailing.domain.common.impl.NamedImpl; +import com.sap.sse.common.impl.NamedImpl; public class CourseDataImpl extends NamedImpl implements CourseBase { diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/FleetImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/FleetImpl.java index 2261461f0de..6c1158b2150 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/FleetImpl.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/FleetImpl.java @@ -2,7 +2,7 @@ package com.sap.sailing.domain.base.impl; import com.sap.sailing.domain.base.Fleet; import com.sap.sailing.domain.common.Color; -import com.sap.sailing.domain.common.impl.NamedImpl; +import com.sap.sse.common.impl.NamedImpl; /** * The comparability is implemented by an integer field. For fleets of a series to compare equal, the constructor diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/MarkImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/MarkImpl.java index 98d4a1447c5..9242bc49b5a 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/MarkImpl.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/MarkImpl.java @@ -6,7 +6,7 @@ import java.util.Collections; import com.sap.sailing.domain.base.Mark; import com.sap.sailing.domain.base.SharedDomainFactory; import com.sap.sailing.domain.common.MarkType; -import com.sap.sailing.domain.common.impl.NamedImpl; +import com.sap.sse.common.impl.NamedImpl; public class MarkImpl extends NamedImpl implements Mark { private static final long serialVersionUID = 1900673146064411979L; diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/PersonImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/PersonImpl.java index c42d1373194..0de82d7c137 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/PersonImpl.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/PersonImpl.java @@ -9,8 +9,8 @@ import java.util.Set; import com.sap.sailing.domain.base.Nationality; import com.sap.sailing.domain.base.NationalityChangeListener; -import com.sap.sailing.domain.common.impl.NamedImpl; import com.sap.sse.common.Util; +import com.sap.sse.common.impl.NamedImpl; public class PersonImpl extends NamedImpl implements DynamicPerson { private static final long serialVersionUID = -2104903799224233508L; diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/SidelineImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/SidelineImpl.java index 0921f2cde1d..9c531893c5a 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/SidelineImpl.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/SidelineImpl.java @@ -6,8 +6,8 @@ import java.util.List; import com.sap.sailing.domain.base.Mark; import com.sap.sailing.domain.base.Sideline; -import com.sap.sailing.domain.common.impl.NamedImpl; import com.sap.sse.common.Util; +import com.sap.sse.common.impl.NamedImpl; public class SidelineImpl extends NamedImpl implements Sideline { private static final long serialVersionUID = -8145721464971358691L; diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/TeamImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/TeamImpl.java index c5238230ded..f5036307ef2 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/TeamImpl.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/TeamImpl.java @@ -9,8 +9,8 @@ import com.sap.sailing.domain.base.Nationality; import com.sap.sailing.domain.base.NationalityChangeListener; import com.sap.sailing.domain.base.Person; import com.sap.sailing.domain.base.WithNationality; -import com.sap.sailing.domain.common.impl.NamedImpl; import com.sap.sse.common.Util; +import com.sap.sse.common.impl.NamedImpl; public class TeamImpl extends NamedImpl implements DynamicTeam { private static final long serialVersionUID = 4646922280429210183L; diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/racegroup/impl/RaceCellImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/racegroup/impl/RaceCellImpl.java index 82fdd4a2fa7..2f13b47f0ee 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/racegroup/impl/RaceCellImpl.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/racegroup/impl/RaceCellImpl.java @@ -1,8 +1,8 @@ package com.sap.sailing.domain.base.racegroup.impl; import com.sap.sailing.domain.base.racegroup.RaceCell; -import com.sap.sailing.domain.common.impl.NamedImpl; import com.sap.sailing.domain.racelog.RaceLog; +import com.sap.sse.common.impl.NamedImpl; public class RaceCellImpl extends NamedImpl implements RaceCell { private static final long serialVersionUID = 971598420407273594L; diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/racegroup/impl/RaceGroupImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/racegroup/impl/RaceGroupImpl.java index 9267c6cde17..2f6eac28f39 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/racegroup/impl/RaceGroupImpl.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/racegroup/impl/RaceGroupImpl.java @@ -5,7 +5,7 @@ import com.sap.sailing.domain.base.CourseArea; import com.sap.sailing.domain.base.configuration.RegattaConfiguration; import com.sap.sailing.domain.base.racegroup.RaceGroup; import com.sap.sailing.domain.base.racegroup.SeriesWithRows; -import com.sap.sailing.domain.common.impl.NamedImpl; +import com.sap.sse.common.impl.NamedImpl; public class RaceGroupImpl extends NamedImpl implements RaceGroup { diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogEventAuthorImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogEventAuthorImpl.java index 5eace2388eb..b60091116c3 100755 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogEventAuthorImpl.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogEventAuthorImpl.java @@ -1,7 +1,7 @@ package com.sap.sailing.domain.racelog.impl; -import com.sap.sailing.domain.common.impl.NamedImpl; import com.sap.sailing.domain.racelog.RaceLogEventAuthor; +import com.sap.sse.common.impl.NamedImpl; public class RaceLogEventAuthorImpl extends NamedImpl implements RaceLogEventAuthor { private static final long serialVersionUID = -5602802911563685812L; diff --git a/java/com.sap.sailing.domain.swisstimingreplayadapter/src/com/sap/sailing/domain/swisstimingreplayadapter/impl/SwissTimingReplayRaceImpl.java b/java/com.sap.sailing.domain.swisstimingreplayadapter/src/com/sap/sailing/domain/swisstimingreplayadapter/impl/SwissTimingReplayRaceImpl.java index 4bc822730d2..a753b1d94a5 100644 --- a/java/com.sap.sailing.domain.swisstimingreplayadapter/src/com/sap/sailing/domain/swisstimingreplayadapter/impl/SwissTimingReplayRaceImpl.java +++ b/java/com.sap.sailing.domain.swisstimingreplayadapter/src/com/sap/sailing/domain/swisstimingreplayadapter/impl/SwissTimingReplayRaceImpl.java @@ -2,8 +2,8 @@ package com.sap.sailing.domain.swisstimingreplayadapter.impl; import java.util.Date; -import com.sap.sailing.domain.common.impl.NamedImpl; import com.sap.sailing.domain.swisstimingreplayadapter.SwissTimingReplayRace; +import com.sap.sse.common.impl.NamedImpl; public class SwissTimingReplayRaceImpl extends NamedImpl implements SwissTimingReplayRace { private static final long serialVersionUID = -8863753739203404760L; diff --git a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/MetadataParserImpl.java b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/MetadataParserImpl.java index 6d875016c17..41f3ffabc97 100755 --- a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/MetadataParserImpl.java +++ b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/MetadataParserImpl.java @@ -15,9 +15,9 @@ import java.util.UUID; import com.sap.sailing.domain.common.MarkType; import com.sap.sailing.domain.common.PassingInstruction; -import com.sap.sailing.domain.common.impl.NamedImpl; import com.sap.sailing.domain.tractracadapter.MetadataParser; import com.sap.sailing.domain.tractracadapter.TracTracControlPoint; +import com.sap.sse.common.impl.NamedImpl; /** * TracTrac objects can be augmented by what TracTrac calls a "DataSheet." These optional data sheets can provide diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/CourseImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/CourseImpl.java index cb8032a102a..9f2e350dbfd 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/CourseImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/CourseImpl.java @@ -22,11 +22,11 @@ import com.sap.sailing.domain.base.DomainFactory; import com.sap.sailing.domain.base.Leg; import com.sap.sailing.domain.base.Waypoint; import com.sap.sailing.domain.common.PassingInstruction; -import com.sap.sailing.domain.common.impl.NamedImpl; import com.sap.sailing.util.CourseAsWaypointList; import com.sap.sailing.util.impl.LockUtil; import com.sap.sailing.util.impl.NamedReentrantReadWriteLock; import com.sap.sse.common.Util; +import com.sap.sse.common.impl.NamedImpl; import difflib.DiffUtils; import difflib.Patch; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/RaceDefinitionImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/RaceDefinitionImpl.java index 4aad9851975..b4ac93865e0 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/RaceDefinitionImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/RaceDefinitionImpl.java @@ -7,7 +7,7 @@ import com.sap.sailing.domain.base.BoatClass; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.Course; import com.sap.sailing.domain.base.RaceDefinition; -import com.sap.sailing.domain.common.impl.NamedImpl; +import com.sap.sse.common.impl.NamedImpl; public class RaceDefinitionImpl extends NamedImpl implements RaceDefinition { private static final long serialVersionUID = -1900955198751393727L; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/RegattaImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/RegattaImpl.java index 5d44fad3f45..aea5a989e91 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/RegattaImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/RegattaImpl.java @@ -27,7 +27,6 @@ import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.common.RegattaIdentifier; import com.sap.sailing.domain.common.RegattaName; import com.sap.sailing.domain.common.RegattaNameAndRaceName; -import com.sap.sailing.domain.common.impl.NamedImpl; import com.sap.sailing.domain.leaderboard.ResultDiscardingRule; import com.sap.sailing.domain.leaderboard.ScoringScheme; import com.sap.sailing.domain.racelog.RaceLogEvent; @@ -42,6 +41,7 @@ import com.sap.sailing.domain.tracking.TrackedRegatta; import com.sap.sailing.domain.tracking.TrackedRegattaRegistry; import com.sap.sailing.util.impl.RaceColumnListeners; import com.sap.sse.common.Util; +import com.sap.sse.common.impl.NamedImpl; public class RegattaImpl extends NamedImpl implements Regatta, RaceColumnListener { diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/RemoteSailingServerReferenceImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/RemoteSailingServerReferenceImpl.java index 2e72132ed97..738015be1c6 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/RemoteSailingServerReferenceImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/RemoteSailingServerReferenceImpl.java @@ -3,7 +3,7 @@ package com.sap.sailing.domain.base.impl; import java.net.URL; import com.sap.sailing.domain.base.RemoteSailingServerReference; -import com.sap.sailing.domain.common.impl.NamedImpl; +import com.sap.sse.common.impl.NamedImpl; public class RemoteSailingServerReferenceImpl extends NamedImpl implements RemoteSailingServerReference { private static final long serialVersionUID = 3561284977118738878L; 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 2c87d074640..a41b9e4dcc0 100644 --- a/java/com.sap.sailing.gwt.ui/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.gwt.ui/META-INF/MANIFEST.MF @@ -38,7 +38,8 @@ Require-Bundle: com.sap.sailing.domain, com.sap.sse.security;bundle-version="1.0.0", com.sap.sse.security.ui;bundle-version="1.0.0", org.apache.shiro.web;bundle-version="1.2.2", - org.apache.shiro.ehcache;bundle-version="1.2.3" + org.apache.shiro.ehcache;bundle-version="1.2.3", + com.sap.sse.gwt.adminconsole;bundle-version="1.0.0" Bundle-Activator: com.sap.sailing.gwt.ui.server.Activator Bundle-ActivationPolicy: lazy Import-Package: javax.jms;version="1.1.0", diff --git a/java/com.sap.sailing.gwt.ui/SailingGWT Remote Profiling (Run-Mode only).launch b/java/com.sap.sailing.gwt.ui/SailingGWT Remote Profiling (Run-Mode only).launch index b675f2f4101..a280e6d9965 100644 --- a/java/com.sap.sailing.gwt.ui/SailingGWT Remote Profiling (Run-Mode only).launch +++ b/java/com.sap.sailing.gwt.ui/SailingGWT Remote Profiling (Run-Mode only).launch @@ -48,7 +48,7 @@ - + diff --git a/java/com.sap.sailing.gwt.ui/SailingGWT.launch b/java/com.sap.sailing.gwt.ui/SailingGWT.launch index 51ee2154b4f..d66b933a46d 100755 --- a/java/com.sap.sailing.gwt.ui/SailingGWT.launch +++ b/java/com.sap.sailing.gwt.ui/SailingGWT.launch @@ -50,7 +50,7 @@ - + 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 893950ad34b..88318593914 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 @@ -33,7 +33,6 @@ import com.sap.sailing.gwt.ui.client.RegattasDisplayer; import com.sap.sailing.gwt.ui.client.RemoteServiceMappingConstants; import com.sap.sailing.gwt.ui.client.SailingService; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; -import com.sap.sailing.gwt.ui.client.shared.panels.SystemInformationPanel; import com.sap.sailing.gwt.ui.masterdataimport.MasterDataImportPanel; import com.sap.sailing.gwt.ui.shared.BetterDateTimeBox; import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO; @@ -42,6 +41,8 @@ import com.sap.sailing.gwt.ui.shared.SecurityStylesheetResources; import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO; import com.sap.sailing.gwt.ui.usermanagement.UserRoles; import com.sap.sse.common.Util.Triple; +import com.sap.sse.gwt.adminconsole.AdminConsolePanel; +import com.sap.sse.gwt.adminconsole.SystemInformationPanel; import com.sap.sse.gwt.client.EntryPointHelper; import com.sap.sse.gwt.client.async.AsyncActionsExecutor; import com.sap.sse.gwt.client.async.MarkedAsyncCallback; @@ -80,6 +81,7 @@ public class AdminConsoleEntryPoint extends AbstractSailingEntryPoint implements } private void createUI() { + AdminConsolePanel panel = new AdminConsolePanel(getUserService(), sailingService, "/release_notes_admin.html"); /* Generic selection handler that forwards selected tabs to a refresher that ensures * that data gets reloaded. If you add a new tab then make sure to have a look at * #refreshDataFor(Widget widget) to ensure that upon selection your tab gets the diff --git a/java/com.sap.sailing.server.replication/src/com/sap/sailing/server/replication/impl/RabbitInputStreamProvider.java b/java/com.sap.sailing.server.replication/src/com/sap/sailing/server/replication/impl/RabbitInputStreamProvider.java index caa2bbc84b2..fed0384eb40 100755 --- a/java/com.sap.sailing.server.replication/src/com/sap/sailing/server/replication/impl/RabbitInputStreamProvider.java +++ b/java/com.sap.sailing.server.replication/src/com/sap/sailing/server/replication/impl/RabbitInputStreamProvider.java @@ -13,7 +13,7 @@ import com.rabbitmq.client.ConsumerCancelledException; import com.rabbitmq.client.QueueingConsumer; import com.rabbitmq.client.QueueingConsumer.Delivery; import com.rabbitmq.client.ShutdownSignalException; -import com.sap.sailing.domain.common.impl.NamedImpl; +import com.sap.sse.common.impl.NamedImpl; /** * Input stream that reads messages from a RabbitMQ queue filled by a {@link RabbitOutputStream} and lets a client read diff --git a/java/com.sap.sse.common/META-INF/MANIFEST.MF b/java/com.sap.sse.common/META-INF/MANIFEST.MF index ebd5881e055..3fcb980a366 100644 --- a/java/com.sap.sse.common/META-INF/MANIFEST.MF +++ b/java/com.sap.sse.common/META-INF/MANIFEST.MF @@ -7,5 +7,6 @@ Bundle-Vendor: SAP Bundle-RequiredExecutionEnvironment: JavaSE-1.6 Export-Package: com.sap.sse.common, com.sap.sse.common.filter, + com.sap.sse.common.impl, com.sap.sse.common.search Require-Bundle: com.sap.sse.datamining.shared;bundle-version="1.0.0" diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/NamedImpl.java b/java/com.sap.sse.common/src/com/sap/sse/common/impl/NamedImpl.java similarity index 86% rename from java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/NamedImpl.java rename to java/com.sap.sse.common/src/com/sap/sse/common/impl/NamedImpl.java index ad46af369a6..2a05ed46b40 100755 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/NamedImpl.java +++ b/java/com.sap.sse.common/src/com/sap/sse/common/impl/NamedImpl.java @@ -1,7 +1,8 @@ -package com.sap.sailing.domain.common.impl; +package com.sap.sse.common.impl; import com.sap.sse.common.Named; + public class NamedImpl implements Named { private static final long serialVersionUID = -4815125282671451300L; private final String name; diff --git a/java/com.sap.sse.gwt.adminconsole/.classpath b/java/com.sap.sse.gwt.adminconsole/.classpath new file mode 100755 index 00000000000..44064a32c8d --- /dev/null +++ b/java/com.sap.sse.gwt.adminconsole/.classpath @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/java/com.sap.sse.gwt.adminconsole/.project b/java/com.sap.sse.gwt.adminconsole/.project new file mode 100755 index 00000000000..b3e5583a7ca --- /dev/null +++ b/java/com.sap.sse.gwt.adminconsole/.project @@ -0,0 +1,28 @@ + + + com.sap.sse.gwt.adminconsole + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/java/com.sap.sse.gwt.adminconsole/.settings/org.eclipse.jdt.core.prefs b/java/com.sap.sse.gwt.adminconsole/.settings/org.eclipse.jdt.core.prefs new file mode 100755 index 00000000000..11f6e462df7 --- /dev/null +++ b/java/com.sap.sse.gwt.adminconsole/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,7 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.7 diff --git a/java/com.sap.sse.gwt.adminconsole/.settings/org.eclipse.pde.core.prefs b/java/com.sap.sse.gwt.adminconsole/.settings/org.eclipse.pde.core.prefs new file mode 100755 index 00000000000..b7e72d019c2 --- /dev/null +++ b/java/com.sap.sse.gwt.adminconsole/.settings/org.eclipse.pde.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +pluginProject.extensions=false +resolve.requirebundle=false diff --git a/java/com.sap.sse.gwt.adminconsole/META-INF/MANIFEST.MF b/java/com.sap.sse.gwt.adminconsole/META-INF/MANIFEST.MF new file mode 100755 index 00000000000..8acc163b94d --- /dev/null +++ b/java/com.sap.sse.gwt.adminconsole/META-INF/MANIFEST.MF @@ -0,0 +1,12 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Adminconsole +Bundle-SymbolicName: com.sap.sse.gwt.adminconsole +Bundle-Version: 1.0.0.qualifier +Bundle-Vendor: SAP +Bundle-RequiredExecutionEnvironment: JavaSE-1.7 +Require-Bundle: com.sap.sse.gwt, + com.sap.sse.security.ui, + com.sap.sse.common, + com.sap.sailing.gwt.ui +Export-Package: com.sap.sse.gwt.adminconsole diff --git a/java/com.sap.sse.gwt.adminconsole/build.properties b/java/com.sap.sse.gwt.adminconsole/build.properties new file mode 100755 index 00000000000..41eb6ade2b4 --- /dev/null +++ b/java/com.sap.sse.gwt.adminconsole/build.properties @@ -0,0 +1,4 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + . diff --git a/java/com.sap.sse.gwt.adminconsole/pom.xml b/java/com.sap.sse.gwt.adminconsole/pom.xml new file mode 100755 index 00000000000..cd1554a7678 --- /dev/null +++ b/java/com.sap.sse.gwt.adminconsole/pom.xml @@ -0,0 +1,40 @@ + + + 4.0.0 + + root + com.sap.sailing + 1.0.0-SNAPSHOT + + com.sap.sse.gwt.adminconsole + eclipse-plugin + + + + + org.eclipse.tycho + tycho-compiler-plugin + ${tycho-version} + + 1.6 + 1.6 + + + + org.eclipse.tycho + tycho-source-plugin + ${tycho-version} + + + plugin-source + generate-sources + + plugin-source + + + + + + + diff --git a/java/com.sap.sse.gwt.adminconsole/src/com/sap/sse/gwt/adminconsole/AdminConsoleFeatures.java b/java/com.sap.sse.gwt.adminconsole/src/com/sap/sse/gwt/adminconsole/AdminConsoleFeatures.java new file mode 100755 index 00000000000..80a7677cfe6 --- /dev/null +++ b/java/com.sap.sse.gwt.adminconsole/src/com/sap/sse/gwt/adminconsole/AdminConsoleFeatures.java @@ -0,0 +1,27 @@ +package com.sap.sse.gwt.adminconsole; + +import com.sap.sse.common.impl.NamedImpl; + +/** + * Specifies a feature with a name and the role names, one of which is required in order to be allowed + * to see and use the feature. + * + * @author Axel Uhl (D043530) + * + */ +public class AdminConsoleFeatures extends NamedImpl { + private static final long serialVersionUID = 7441608351911944793L; + private String[] enabledRoles; + + AdminConsoleFeatures(String name, String... enabledRoles) { + super(name); + this.enabledRoles = enabledRoles; + } + + /** + * If the user has at least one of these roles, he/she is permitted to use this feature. + */ + public String[] getEnabledRoles() { + return enabledRoles; + } +} 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 new file mode 100755 index 00000000000..c475faf9f7c --- /dev/null +++ b/java/com.sap.sse.gwt.adminconsole/src/com/sap/sse/gwt/adminconsole/AdminConsolePanel.java @@ -0,0 +1,244 @@ +package com.sap.sse.gwt.adminconsole; + +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.Map; + +import com.google.gwt.dom.client.Style.Unit; +import com.google.gwt.event.logical.shared.SelectionEvent; +import com.google.gwt.event.logical.shared.SelectionHandler; +import com.google.gwt.user.client.ui.Anchor; +import com.google.gwt.user.client.ui.DockPanel; +import com.google.gwt.user.client.ui.Label; +import com.google.gwt.user.client.ui.ScrollPanel; +import com.google.gwt.user.client.ui.TabLayoutPanel; +import com.google.gwt.user.client.ui.Widget; +import com.sap.sailing.gwt.ui.adminconsole.AdminConsoleFeatures; +import com.sap.sailing.gwt.ui.shared.SecurityStylesheetResources; +import com.sap.sse.common.Util.Triple; +import com.sap.sse.gwt.client.AbstractEntryPoint; +import com.sap.sse.gwt.client.EntryPointHelper; +import com.sap.sse.gwt.client.ErrorReporter; +import com.sap.sse.gwt.client.panels.VerticalTabLayoutPanel; +import com.sap.sse.security.ui.client.UserService; +import com.sap.sse.security.ui.client.UserStatusEventHandler; +import com.sap.sse.security.ui.loginpanel.LoginPanel; +import com.sap.sse.security.ui.shared.UserDTO; + +public class AdminConsolePanel extends DockPanel { + private final UserService userService; + + /** + * The administration console's UI depends on the user's roles. When the roles change then so shall the display of + * tabs. {@link AdminConsoleFeatures} list the roles to which they are made available. This map keeps track of the + * dependencies and allows the UI to adjust to role changes. + */ + private final LinkedHashMap, AdminConsoleFeatures> roleSpecificTabs; + + private final SelectionHandler tabSelectionHandler; + + /** + * The top-level vertical tab panel + */ + private final VerticalTabLayoutPanel topLevelTabPanel; + + private final VerticalOrHorizontalTabLayoutPanel topLevelTabPanelWrapper; + + /** + * Keys are the results of calling {@link RefreshableAdminConsolePanel#getWidget()} on their associated values. This + * allows the panel to find the refresh target when a widget has been selected in a tab panel. + */ + private final Map panelsByWidget; + + /** + * Generic selection handler that forwards selected tabs to a refresher that ensures that data gets reloaded. If + * you add a new tab then make sure to have a look at #refreshDataFor(Widget widget) to ensure that upon + * selection your tab gets the data refreshed. + */ + private class TabSelectionHandler implements SelectionHandler { + @Override + public void onSelection(SelectionEvent event) { + Object source = event.getSource(); + if (source != null) { + if (source instanceof TabLayoutPanel) { + final TabLayoutPanel tabPanel = ((TabLayoutPanel) source); + final Widget selectedPanel = tabPanel.getWidget(event.getSelectedItem()); + refreshDataFor(selectedPanel); + } else if (source instanceof VerticalTabLayoutPanel) { + final VerticalTabLayoutPanel verticalTabLayoutPanel = (VerticalTabLayoutPanel) source; + Widget widgetAssociatedToVerticalTab = verticalTabLayoutPanel.getWidget(verticalTabLayoutPanel + .getSelectedIndex()); + if (widgetAssociatedToVerticalTab instanceof TabLayoutPanel) { + TabLayoutPanel selectedTabLayoutPanel = (TabLayoutPanel) widgetAssociatedToVerticalTab; + final int selectedIndex = selectedTabLayoutPanel.getSelectedIndex(); + if (selectedIndex >= 0) { + widgetAssociatedToVerticalTab = selectedTabLayoutPanel.getWidget(selectedIndex); + } + } + refreshDataFor(widgetAssociatedToVerticalTab); + } + } + } + + private void refreshDataFor(Widget widgetAssociatedToVerticalTab) { + RefreshableAdminConsolePanel refreshTarget = panelsByWidget.get(widgetAssociatedToVerticalTab); + if (refreshTarget != null) { + refreshTarget.refreshAfterBecomingVisible(); + } + } + } + + public AdminConsolePanel(UserService userService, BuildVersionRetriever buildVersionRetriever, Label persistentAlertLabel, String releaseNotesURL, ErrorReporter errorReporter) { + this.userService = userService; + roleSpecificTabs = new LinkedHashMap<>(); + this.panelsByWidget = new HashMap<>(); + getUserService().addUserStatusEventHandler(new UserStatusEventHandler() { + @Override + public void onUserStatusChange(UserDTO user) { + updateTabDisplayForCurrentUser(user); + } + }); + tabSelectionHandler = new TabSelectionHandler(); + topLevelTabPanel = new VerticalTabLayoutPanel(2.5, Unit.EM); + topLevelTabPanel.addSelectionHandler(tabSelectionHandler); + topLevelTabPanel.ensureDebugId("AdministrationTabs"); + topLevelTabPanelWrapper = new VerticalOrHorizontalTabLayoutPanel() { + @Override + public void add(Widget child, String text, boolean asHtml) { + topLevelTabPanel.add(child, text, asHtml); + topLevelTabPanel.forceLayout(); + } + + @Override + public void remove(Widget child) { + topLevelTabPanel.remove(child); + } + }; + final DockPanel informationPanel = new DockPanel(); + informationPanel.setSize("100%", "95%"); + informationPanel.setSpacing(10); + informationPanel.add(new LoginPanel(SecurityStylesheetResources.INSTANCE.css(), getUserService()), + DockPanel.WEST); + informationPanel.add(persistentAlertLabel, DockPanel.CENTER); + SystemInformationPanel sysinfoPanel = new SystemInformationPanel(buildVersionRetriever, errorReporter); + sysinfoPanel.ensureDebugId("SystemInformation"); + final Anchor releaseNotesLink = new Anchor(new SafeHtmlBuilder().appendEscaped( + getStringMessages().releaseNotes()).toSafeHtml(), releaseNotesURL); + sysinfoPanel.add(releaseNotesLink); + informationPanel.add(sysinfoPanel, DockPanel.EAST); + informationPanel.setCellHorizontalAlignment(sysinfoPanel, HasHorizontalAlignment.ALIGN_RIGHT); + + this.addSouth(informationPanel, 2.5); + this.add(topLevelTabPanel); + createUI(releaseNotesURL); + } + + private UserService getUserService() { + return userService; + } + + private void createUI(String releaseNotesURL) { + updateTabDisplayForCurrentUser(getUserService().getCurrentUser()); + if (topLevelTabPanel.getWidgetCount() > 0) { + topLevelTabPanel.selectTab(0); + } + } + + private static interface VerticalOrHorizontalTabLayoutPanel { + void add(Widget child, String text, boolean asHtml); + + void remove(Widget child); + } + + /** + * Adds a new horizontal tab panel to the top-level vertical tab panel. + * + * @return the horizontal tab panel that was created and added to the top-level vertical tab panel; the panel returned can be specified + * as argument to {@link #addToTabPanel(TabLayoutPanel, Widget, String, AdminConsoleFeatures)}. + */ + public TabLayoutPanel addVerticalTab(RefreshableAdminConsolePanel panelToAdd, String tabTitle, String tabDebugId, AdminConsoleFeatures feature) { + final TabLayoutPanel newTabPanel = new TabLayoutPanel(2.5, Unit.EM); + AbstractEntryPoint.setTabPanelSize(newTabPanel, "100%", "100%"); + newTabPanel.addSelectionHandler(tabSelectionHandler); + newTabPanel.ensureDebugId(tabDebugId); + VerticalOrHorizontalTabLayoutPanel wrapper = new VerticalOrHorizontalTabLayoutPanel() { + @Override + public void add(Widget child, String text, boolean asHtml) { + newTabPanel.add(child, text, asHtml); + newTabPanel.forceLayout(); + } + + @Override + public void remove(Widget child) { + newTabPanel.remove(child); + } + }; + addToTabPanel(wrapper, panelToAdd.getWidget(), tabTitle, feature); + return newTabPanel; + } + + /** + * Adds an administration panel as an entry to the top-level vertical panel, without an intermediary horizontal tab panel. + * This is useful for panels that form a top-level category of its own but don't require multiple panels to represent this + * top-level category. + */ + public void addToVerticalTabPanel(final RefreshableAdminConsolePanel panelToAdd, String tabTitle, AdminConsoleFeatures feature) { + addToTabPanel(topLevelTabPanelWrapper, panelToAdd.getWidget(), tabTitle, feature); + } + + private ScrollPanel wrapInScrollPanel(Widget panelToAdd) { + ScrollPanel scrollPanel = new ScrollPanel(); + scrollPanel.add(panelToAdd); + panelToAdd.setSize("100%", "100%"); + return scrollPanel; + } + + public void addToTabPanel(final TabLayoutPanel tabPanel, Widget panelToAdd, String tabTitle, AdminConsoleFeatures feature) { + VerticalOrHorizontalTabLayoutPanel wrapper = new VerticalOrHorizontalTabLayoutPanel() { + @Override + public void add(Widget child, String text, boolean asHtml) { + tabPanel.add(child, text, asHtml); + tabPanel.forceLayout(); + } + + @Override + public void remove(Widget child) { + tabPanel.remove(child); + } + }; + addToTabPanel(wrapper, panelToAdd, tabTitle, feature); + } + + private void addToTabPanel(VerticalOrHorizontalTabLayoutPanel tabPanel, Widget panelToAdd, String tabTitle, AdminConsoleFeatures feature) { + roleSpecificTabs.put(new Triple(tabPanel, + wrapInScrollPanel(panelToAdd), tabTitle), feature); + } + + /** + * After initialization or whenever the user changes, the tab display is adjusted based on which roles are required + * to see which tabs. See {@link #roleSpecificTabs}. + */ + private void updateTabDisplayForCurrentUser(UserDTO user) { + for (Map.Entry, AdminConsoleFeatures> e : roleSpecificTabs + .entrySet()) { + final Widget panelToAdd = e.getKey().getB(); + if (user != null && isUserInRole(e.getValue().getEnabledRoles())) { + e.getKey().getA().add(panelToAdd, e.getKey().getC(), /* asHtml */false); + } else { + e.getKey().getA().remove(panelToAdd); + } + } + } + + private boolean isUserInRole(String... roles) { + boolean result = false; + UserDTO user = getUserService().getCurrentUser(); + for (String enabledRole : roles) { + if (user.hasRole(enabledRole)) { + result = true; + break; + } + } + return result; + } +} diff --git a/java/com.sap.sse.gwt.adminconsole/src/com/sap/sse/gwt/adminconsole/BuildVersionRetriever.java b/java/com.sap.sse.gwt.adminconsole/src/com/sap/sse/gwt/adminconsole/BuildVersionRetriever.java new file mode 100755 index 00000000000..a67ef0950bd --- /dev/null +++ b/java/com.sap.sse.gwt.adminconsole/src/com/sap/sse/gwt/adminconsole/BuildVersionRetriever.java @@ -0,0 +1,7 @@ +package com.sap.sse.gwt.adminconsole; + +import com.google.gwt.user.client.rpc.AsyncCallback; + +public interface BuildVersionRetriever { + void getBuildVersion(AsyncCallback callback); +} diff --git a/java/com.sap.sse.gwt.adminconsole/src/com/sap/sse/gwt/adminconsole/RefreshableAdminConsolePanel.java b/java/com.sap.sse.gwt.adminconsole/src/com/sap/sse/gwt/adminconsole/RefreshableAdminConsolePanel.java new file mode 100755 index 00000000000..0032178cb4c --- /dev/null +++ b/java/com.sap.sse.gwt.adminconsole/src/com/sap/sse/gwt/adminconsole/RefreshableAdminConsolePanel.java @@ -0,0 +1,16 @@ +package com.sap.sse.gwt.adminconsole; + +import com.google.gwt.user.client.ui.Widget; + +public interface RefreshableAdminConsolePanel { + /** + * Invoked when the {@link #getWidget widget} has become visible, e.g., by the user + * selecting the tab holding the panel. + */ + void refreshAfterBecomingVisible(); + + /** + * The widget representing the panel to place in the administration console + */ + Widget getWidget(); +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/panels/SystemInformationPanel.java b/java/com.sap.sse.gwt.adminconsole/src/com/sap/sse/gwt/adminconsole/SystemInformationPanel.java similarity index 72% rename from java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/panels/SystemInformationPanel.java rename to java/com.sap.sse.gwt.adminconsole/src/com/sap/sse/gwt/adminconsole/SystemInformationPanel.java index 8aaf5b3f75b..58432468f30 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/panels/SystemInformationPanel.java +++ b/java/com.sap.sse.gwt.adminconsole/src/com/sap/sse/gwt/adminconsole/SystemInformationPanel.java @@ -1,25 +1,21 @@ -package com.sap.sailing.gwt.ui.client.shared.panels; +package com.sap.sse.gwt.adminconsole; import com.google.gwt.dom.client.Style; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.Widget; -import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sse.gwt.client.ErrorReporter; public class SystemInformationPanel extends FlowPanel { private final Label buildVersionText; - public SystemInformationPanel(final SailingServiceAsync sailingService, final ErrorReporter errorReporter) { + public SystemInformationPanel(final BuildVersionRetriever buildVersionRetriever, final ErrorReporter errorReporter) { super(); - buildVersionText = new Label(""); addFloatingWidget(buildVersionText); - - sailingService.getBuildVersion(new AsyncCallback() { - + buildVersionRetriever.getBuildVersion(new AsyncCallback() { @Override public void onSuccess(String result) { buildVersionText.setText("Version: " + result); diff --git a/java/com.sap.sse.gwt/.classpath b/java/com.sap.sse.gwt/.classpath index 935010223ac..4ee67470769 100755 --- a/java/com.sap.sse.gwt/.classpath +++ b/java/com.sap.sse.gwt/.classpath @@ -1,9 +1,9 @@ - - - - - - - - - + + + + + + + + + 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 3c721fe71a9..e9dc707c36d 100644 --- a/java/com.sap.sse.security.ui/META-INF/MANIFEST.MF +++ b/java/com.sap.sse.security.ui/META-INF/MANIFEST.MF @@ -11,7 +11,7 @@ Import-Package: org.osgi.framework;version="1.3.0", Bundle-ActivationPolicy: lazy Bundle-ClassPath: WEB-INF/classes/ Require-Bundle: javax.servlet;bundle-version="2.5.0", - com.sap.sse.gwt;bundle-version="1.0.0", + com.sap.sse.gwt, com.google.gwt.osgi;bundle-version="2.6.0", com.sap.sse.security, org.json.simple, From 25c35a1590a3ceb27f8ba74e985300946c8c2f1d Mon Sep 17 00:00:00 2001 From: fmittag Date: Thu, 6 Nov 2014 15:20:41 +0100 Subject: [PATCH 30/50] set the watermark styles the login page --- .../main/java/com/sap/sse/security/ui/login/LoginView.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java index 60f6f44ab6b..af49844d940 100755 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java @@ -49,8 +49,12 @@ public class LoginView extends Composite { LoginViewResources.INSTANCE.css().ensureInjected(); initWidget(uiBinder.createAndBindUi(this)); this.appName.setText(appName); + + userNameTextBox.setWatermark(StringMessages.INSTANCE.username()); + userNameTextBox.setWatermarkStyleName(LoginViewResources.INSTANCE.css().textInput_watermark()); passwordTextBox.setWatermark(StringMessages.INSTANCE.password()); + passwordTextBox.setWatermarkStyleName(LoginViewResources.INSTANCE.css().passwordTextInput_watermark()); String registrationLink = EntryPointLinkFactory.createRegistrationLink(Collections. emptyMap()); signUpAnchor.setHref(registrationLink); oAuthPanel.add(new OAuthLogin(userManagementService)); From 8b281a2b1e77ba681612c5149d243f1a60090f66 Mon Sep 17 00:00:00 2001 From: Samuel Oey Date: Thu, 6 Nov 2014 15:15:23 +0000 Subject: [PATCH 31/50] changed checkin endpoint --- wiki/tracking-app-api-v1-draft.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wiki/tracking-app-api-v1-draft.md b/wiki/tracking-app-api-v1-draft.md index ad443fa3276..fc14fb290fb 100644 --- a/wiki/tracking-app-api-v1-draft.md +++ b/wiki/tracking-app-api-v1-draft.md @@ -63,7 +63,7 @@ _Question: What should be done if a second device is mapped to competitor?_ ### Path - /event/{event_id}/competitor/{competitor_id}/device + /leaderboard/{unique_leaderboard_name}/competitor/{competitor_id}/device ### Verb From 2ae78906fb5d0360ae77fb74619687b26ffeab77 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Thu, 6 Nov 2014 18:28:11 +0100 Subject: [PATCH 32/50] still not compilable, but AdminConsolePanel has progressed into a form that may approach "useful" --- ...WT Remote Profiling (Run-Mode only).launch | 6 +- java/com.sap.sailing.gwt.ui/SailingGWT.launch | 2 +- .../adminconsole/AdminConsoleEntryPoint.java | 108 +++++++----------- .../ui/adminconsole/AdminConsoleFeatures.java | 34 ------ .../SailingAdminConsoleFeatures.java | 24 ++++ .../gwt/ui/client/SailingServiceAsync.java | 3 +- .../adminconsole/AdminConsoleFeatures.java | 2 +- .../gwt/adminconsole/AdminConsolePanel.java | 40 ++++--- 8 files changed, 104 insertions(+), 115 deletions(-) delete mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AdminConsoleFeatures.java create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SailingAdminConsoleFeatures.java diff --git a/java/com.sap.sailing.gwt.ui/SailingGWT Remote Profiling (Run-Mode only).launch b/java/com.sap.sailing.gwt.ui/SailingGWT Remote Profiling (Run-Mode only).launch index a280e6d9965..7b22e069710 100644 --- a/java/com.sap.sailing.gwt.ui/SailingGWT Remote Profiling (Run-Mode only).launch +++ b/java/com.sap.sailing.gwt.ui/SailingGWT Remote Profiling (Run-Mode only).launch @@ -3,6 +3,10 @@ + + + + @@ -48,7 +52,7 @@ - + diff --git a/java/com.sap.sailing.gwt.ui/SailingGWT.launch b/java/com.sap.sailing.gwt.ui/SailingGWT.launch index d66b933a46d..d0a079cb7fa 100755 --- a/java/com.sap.sailing.gwt.ui/SailingGWT.launch +++ b/java/com.sap.sailing.gwt.ui/SailingGWT.launch @@ -50,7 +50,7 @@ - + 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 88318593914..27d71d88ce2 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 @@ -42,6 +42,7 @@ import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO; import com.sap.sailing.gwt.ui.usermanagement.UserRoles; import com.sap.sse.common.Util.Triple; import com.sap.sse.gwt.adminconsole.AdminConsolePanel; +import com.sap.sse.gwt.adminconsole.RefreshableAdminConsolePanel; import com.sap.sse.gwt.adminconsole.SystemInformationPanel; import com.sap.sse.gwt.client.EntryPointHelper; import com.sap.sse.gwt.client.async.AsyncActionsExecutor; @@ -61,10 +62,10 @@ public class AdminConsoleEntryPoint extends AbstractSailingEntryPoint implements /** * The administration console's UI depends on the user's roles. When the roles change then so shall the display of tabs. - * {@link AdminConsoleFeatures} list the roles to which they are made available. This map keeps track of the dependencies + * {@link SailingAdminConsoleFeatures} list the roles to which they are made available. This map keeps track of the dependencies * and allows the UI to adjust to role changes. */ - private final LinkedHashMap, AdminConsoleFeatures> roleSpecificTabs = new LinkedHashMap<>(); + private final LinkedHashMap, SailingAdminConsoleFeatures> roleSpecificTabs = new LinkedHashMap<>(); @Override protected void doOnModuleLoad() { @@ -81,54 +82,33 @@ public class AdminConsoleEntryPoint extends AbstractSailingEntryPoint implements } private void createUI() { - AdminConsolePanel panel = new AdminConsolePanel(getUserService(), sailingService, "/release_notes_admin.html"); - /* Generic selection handler that forwards selected tabs to a refresher that ensures - * that data gets reloaded. If you add a new tab then make sure to have a look at - * #refreshDataFor(Widget widget) to ensure that upon selection your tab gets the - * data refreshed. - */ - final SelectionHandler tabSelectionHandler = new SelectionHandler() { - @Override - public void onSelection(SelectionEvent event) { - Object source = event.getSource(); - if (source != null) { - if (source instanceof TabLayoutPanel) { - final TabLayoutPanel tabPanel = ((TabLayoutPanel)source); - final Widget selectedPanel = tabPanel.getWidget(event.getSelectedItem()); - refreshDataFor(selectedPanel); - } else if (source instanceof VerticalTabLayoutPanel) { - final VerticalTabLayoutPanel verticalTabLayoutPanel = (VerticalTabLayoutPanel)source; - Widget widgetAssociatedToVerticalTab = verticalTabLayoutPanel.getWidget(verticalTabLayoutPanel.getSelectedIndex()); - if (widgetAssociatedToVerticalTab instanceof TabLayoutPanel) { - TabLayoutPanel selectedTabLayoutPanel = (TabLayoutPanel)widgetAssociatedToVerticalTab; - final int selectedIndex = selectedTabLayoutPanel.getSelectedIndex(); - if (selectedIndex >= 0) { - widgetAssociatedToVerticalTab = selectedTabLayoutPanel.getWidget(selectedIndex); - } - } - refreshDataFor(widgetAssociatedToVerticalTab); - } - } - } - }; - + AdminConsolePanel panel = new AdminConsolePanel(getUserService(), sailingService, persistentAlertLabel, + getStringMessages().releaseNotes(), "/release_notes_admin.html", /* error reporter */ this); BetterDateTimeBox.initialize(); - - final VerticalTabLayoutPanel tabPanel = new VerticalTabLayoutPanel(2.5, Unit.EM); - tabPanel.addSelectionHandler(tabSelectionHandler); - tabPanel.ensureDebugId("AdministrationTabs"); regattasDisplayers = new HashSet<>(); leaderboardsDisplayers = new HashSet<>(); leaderboardGroupsDisplayers = new HashSet<>(); final EventManagementPanel eventManagementPanel = new EventManagementPanel(sailingService, this, getStringMessages()); - addToTabPanel(tabPanel, eventManagementPanel, getStringMessages().events(), AdminConsoleFeatures.MANAGE_EVENTS); + panel.addToVerticalTabPanel(new RefreshableAdminConsolePanel() { + private final EventManagementPanel widget = new EventManagementPanel(sailingService, AdminConsoleEntryPoint.this, getStringMessages()); + @Override + public void refreshAfterBecomingVisible() { + widget.fillEvents(); + fillLeaderboardGroups(); + } + + @Override + public Widget getWidget() { + return widget; + } + }, getStringMessages().events(), SailingAdminConsoleFeatures.MANAGE_EVENTS); leaderboardGroupsDisplayers.add(eventManagementPanel); RegattaStructureManagementPanel regattaManagementPanel = new RegattaStructureManagementPanel( sailingService, this, getStringMessages(), this); regattaManagementPanel.ensureDebugId("RegattaStructureManagement"); - addToTabPanel(tabPanel, regattaManagementPanel, getStringMessages().regattas(), AdminConsoleFeatures.MANAGE_REGATTAS); + addToTabPanel(tabPanel, regattaManagementPanel, getStringMessages().regattas(), SailingAdminConsoleFeatures.MANAGE_REGATTAS); regattasDisplayers.add(regattaManagementPanel); /* LEADERBOARDS */ @@ -137,19 +117,19 @@ public class AdminConsoleEntryPoint extends AbstractSailingEntryPoint implements setTabPanelSize(leaderboardTabPanel, "100%", "100%"); leaderboardTabPanel.addSelectionHandler(tabSelectionHandler); leaderboardTabPanel.ensureDebugId("LeaderboardPanel"); - addToTabPanel(tabPanel, leaderboardTabPanel, getStringMessages().leaderboards(), AdminConsoleFeatures.MANAGE_LEADERBOARDS); + addToTabPanel(tabPanel, leaderboardTabPanel, getStringMessages().leaderboards(), SailingAdminConsoleFeatures.MANAGE_LEADERBOARDS); final LeaderboardConfigPanel leaderboardConfigPanel = new LeaderboardConfigPanel(sailingService, this, this, getStringMessages(), /* showRaceDetails */true, this); leaderboardConfigPanel.ensureDebugId("LeaderboardConfiguration"); - addToTabPanel(leaderboardTabPanel, leaderboardConfigPanel, getStringMessages().leaderboardConfiguration(), AdminConsoleFeatures.MANAGE_LEADERBOARDS); + addToTabPanel(leaderboardTabPanel, leaderboardConfigPanel, getStringMessages().leaderboardConfiguration(), SailingAdminConsoleFeatures.MANAGE_LEADERBOARDS); regattasDisplayers.add(leaderboardConfigPanel); leaderboardsDisplayers.add(leaderboardConfigPanel); final LeaderboardGroupConfigPanel leaderboardGroupConfigPanel = new LeaderboardGroupConfigPanel(sailingService, this, this, this, this, getStringMessages()); leaderboardGroupConfigPanel.ensureDebugId("LeaderboardGroupConfiguration"); - addToTabPanel(leaderboardTabPanel, leaderboardGroupConfigPanel, getStringMessages().leaderboardGroups(), AdminConsoleFeatures.MANAGE_LEADERBOARD_GROUPS); + addToTabPanel(leaderboardTabPanel, leaderboardGroupConfigPanel, getStringMessages().leaderboardGroups(), SailingAdminConsoleFeatures.MANAGE_LEADERBOARD_GROUPS); regattasDisplayers.add(leaderboardGroupConfigPanel); leaderboardGroupsDisplayers.add(leaderboardGroupConfigPanel); leaderboardsDisplayers.add(leaderboardGroupConfigPanel); @@ -160,29 +140,29 @@ public class AdminConsoleEntryPoint extends AbstractSailingEntryPoint implements setTabPanelSize(racesTabPanel, "100%", "100%"); racesTabPanel.addSelectionHandler(tabSelectionHandler); racesTabPanel.ensureDebugId("RacesPanel"); - addToTabPanel(tabPanel, racesTabPanel, getStringMessages().races(), AdminConsoleFeatures.MANAGE_TRACKED_RACES); + addToTabPanel(tabPanel, racesTabPanel, getStringMessages().races(), SailingAdminConsoleFeatures.MANAGE_TRACKED_RACES); TrackedRacesManagementPanel trackedRacesManagementPanel = new TrackedRacesManagementPanel(sailingService, this, this, getStringMessages()); trackedRacesManagementPanel.ensureDebugId("TrackedRacesManagement"); - addToTabPanel(racesTabPanel, trackedRacesManagementPanel, getStringMessages().trackedRaces(), AdminConsoleFeatures.SHOW_TRACKED_RACES); + addToTabPanel(racesTabPanel, trackedRacesManagementPanel, getStringMessages().trackedRaces(), SailingAdminConsoleFeatures.SHOW_TRACKED_RACES); regattasDisplayers.add(trackedRacesManagementPanel); final CompetitorPanel competitorPanel = new CompetitorPanel(sailingService, getStringMessages(), this); - addToTabPanel(racesTabPanel, competitorPanel, getStringMessages().competitors(), AdminConsoleFeatures.MANAGE_ALL_COMPETITORS); + addToTabPanel(racesTabPanel, competitorPanel, getStringMessages().competitors(), SailingAdminConsoleFeatures.MANAGE_ALL_COMPETITORS); RaceCourseManagementPanel raceCourseManagementPanel = new RaceCourseManagementPanel(sailingService, this, this, getStringMessages()); - addToTabPanel(racesTabPanel, raceCourseManagementPanel, getStringMessages().courseLayout(), AdminConsoleFeatures.MANAGE_COURSE_LAYOUT); + addToTabPanel(racesTabPanel, raceCourseManagementPanel, getStringMessages().courseLayout(), SailingAdminConsoleFeatures.MANAGE_COURSE_LAYOUT); regattasDisplayers.add(raceCourseManagementPanel); final AsyncActionsExecutor asyncActionsExecutor = new AsyncActionsExecutor(); WindPanel windPanel = new WindPanel(sailingService, asyncActionsExecutor, this, this, getStringMessages()); regattasDisplayers.add(windPanel); - addToTabPanel(racesTabPanel, windPanel, getStringMessages().wind(), AdminConsoleFeatures.MANAGE_WIND); + addToTabPanel(racesTabPanel, windPanel, getStringMessages().wind(), SailingAdminConsoleFeatures.MANAGE_WIND); final MediaPanel mediaPanel = new MediaPanel(regattasDisplayers, sailingService, this, mediaService, this, getStringMessages()); - addToTabPanel(racesTabPanel, mediaPanel, getStringMessages().mediaPanel(), AdminConsoleFeatures.MANAGE_MEDIA); + addToTabPanel(racesTabPanel, mediaPanel, getStringMessages().mediaPanel(), SailingAdminConsoleFeatures.MANAGE_MEDIA); /* CONNECTORS */ @@ -190,36 +170,36 @@ public class AdminConsoleEntryPoint extends AbstractSailingEntryPoint implements setTabPanelSize(connectorsTabPanel, "100%", "100%"); connectorsTabPanel.addSelectionHandler(tabSelectionHandler); connectorsTabPanel.ensureDebugId("TrackingProviderPanel"); - addToTabPanel(tabPanel, connectorsTabPanel, getStringMessages().connectors(), AdminConsoleFeatures.MANAGE_TRACKED_RACES); + addToTabPanel(tabPanel, connectorsTabPanel, getStringMessages().connectors(), SailingAdminConsoleFeatures.MANAGE_TRACKED_RACES); AbstractEventManagementPanel tractracEventManagementPanel = new TracTracEventManagementPanel(sailingService, this, this, getStringMessages()); tractracEventManagementPanel.ensureDebugId("TracTracEventManagement"); - addToTabPanel(connectorsTabPanel, tractracEventManagementPanel, getStringMessages().tracTracEvents(), AdminConsoleFeatures.MANAGE_TRACKED_RACES); + addToTabPanel(connectorsTabPanel, tractracEventManagementPanel, getStringMessages().tracTracEvents(), SailingAdminConsoleFeatures.MANAGE_TRACKED_RACES); regattasDisplayers.add(tractracEventManagementPanel); SwissTimingReplayConnectorPanel swissTimingReplayConnectorPanel = new SwissTimingReplayConnectorPanel( sailingService, this, this, getStringMessages()); - addToTabPanel(connectorsTabPanel, swissTimingReplayConnectorPanel, getStringMessages().swissTimingArchiveConnector(), AdminConsoleFeatures.MANAGE_TRACKED_RACES); + addToTabPanel(connectorsTabPanel, swissTimingReplayConnectorPanel, getStringMessages().swissTimingArchiveConnector(), SailingAdminConsoleFeatures.MANAGE_TRACKED_RACES); regattasDisplayers.add(swissTimingReplayConnectorPanel); SwissTimingEventManagementPanel swisstimingEventManagementPanel = new SwissTimingEventManagementPanel( sailingService, this, this, getStringMessages()); - addToTabPanel(connectorsTabPanel, swisstimingEventManagementPanel, getStringMessages().swissTimingEvents(), AdminConsoleFeatures.MANAGE_TRACKED_RACES); + addToTabPanel(connectorsTabPanel, swisstimingEventManagementPanel, getStringMessages().swissTimingEvents(), SailingAdminConsoleFeatures.MANAGE_TRACKED_RACES); regattasDisplayers.add(swisstimingEventManagementPanel); final RaceLogTrackingEventManagementPanel raceLogTrackingEventManagementPanel = new RaceLogTrackingEventManagementPanel( sailingService, this, this, this, getStringMessages()); - addToTabPanel(connectorsTabPanel, raceLogTrackingEventManagementPanel, getStringMessages().raceLogTracking(), AdminConsoleFeatures.MANAGE_RACELOG_TRACKING); + addToTabPanel(connectorsTabPanel, raceLogTrackingEventManagementPanel, getStringMessages().raceLogTracking(), SailingAdminConsoleFeatures.MANAGE_RACELOG_TRACKING); regattasDisplayers.add(raceLogTrackingEventManagementPanel); leaderboardsDisplayers.add(raceLogTrackingEventManagementPanel); IgtimiAccountsPanel igtimiAccountsPanel = new IgtimiAccountsPanel(sailingService, this, getStringMessages()); igtimiAccountsPanel.ensureDebugId("IgtimiAccounts"); - addToTabPanel(connectorsTabPanel, igtimiAccountsPanel, getStringMessages().igtimiAccounts(), AdminConsoleFeatures.MANAGE_IGTIMI_ACCOUNTS); + addToTabPanel(connectorsTabPanel, igtimiAccountsPanel, getStringMessages().igtimiAccounts(), SailingAdminConsoleFeatures.MANAGE_IGTIMI_ACCOUNTS); ResultImportUrlsManagementPanel resultImportUrlsManagementPanel = new ResultImportUrlsManagementPanel(sailingService, this, getStringMessages()); - addToTabPanel(connectorsTabPanel, resultImportUrlsManagementPanel, getStringMessages().resultImportUrls(), AdminConsoleFeatures.MANAGE_RESULT_IMPORT_URLS); + addToTabPanel(connectorsTabPanel, resultImportUrlsManagementPanel, getStringMessages().resultImportUrls(), SailingAdminConsoleFeatures.MANAGE_RESULT_IMPORT_URLS); /* ADVANCED */ @@ -227,21 +207,21 @@ public class AdminConsoleEntryPoint extends AbstractSailingEntryPoint implements setTabPanelSize(advancedTabPanel, "100%", "100%"); advancedTabPanel.addSelectionHandler(tabSelectionHandler); advancedTabPanel.ensureDebugId("AdvancedPanel"); - addToTabPanel(tabPanel, advancedTabPanel, getStringMessages().advanced(), AdminConsoleFeatures.MANAGE_REPLICATION); + addToTabPanel(tabPanel, advancedTabPanel, getStringMessages().advanced(), SailingAdminConsoleFeatures.MANAGE_REPLICATION); final ReplicationPanel replicationPanel = new ReplicationPanel(sailingService, this, getStringMessages()); - addToTabPanel(advancedTabPanel, replicationPanel, getStringMessages().replication(), AdminConsoleFeatures.MANAGE_REPLICATION); + addToTabPanel(advancedTabPanel, replicationPanel, getStringMessages().replication(), SailingAdminConsoleFeatures.MANAGE_REPLICATION); final MasterDataImportPanel masterDataImportPanel = new MasterDataImportPanel(getStringMessages(), sailingService, this, eventManagementPanel, this, this); - addToTabPanel(advancedTabPanel, masterDataImportPanel, getStringMessages().masterDataImportPanel(), AdminConsoleFeatures.MANAGE_MASTERDATA_IMPORT); + addToTabPanel(advancedTabPanel, masterDataImportPanel, getStringMessages().masterDataImportPanel(), SailingAdminConsoleFeatures.MANAGE_MASTERDATA_IMPORT); RemoteSailingServerInstancesManagementPanel sailingServerInstancesManagementPanel = new RemoteSailingServerInstancesManagementPanel(sailingService, this, getStringMessages()); - addToTabPanel(advancedTabPanel, sailingServerInstancesManagementPanel, getStringMessages().sailingServers(), AdminConsoleFeatures.MANAGE_SAILING_SERVER_INSTANCES); + addToTabPanel(advancedTabPanel, sailingServerInstancesManagementPanel, getStringMessages().sailingServers(), SailingAdminConsoleFeatures.MANAGE_SAILING_SERVER_INSTANCES); final DeviceConfigurationPanel deviceConfigurationUserPanel = new DeviceConfigurationUserPanel(sailingService, getStringMessages(), this); - addToTabPanel(advancedTabPanel, deviceConfigurationUserPanel, getStringMessages().deviceConfiguration(), AdminConsoleFeatures.MANAGE_DEVICE_CONFIGURATION); + addToTabPanel(advancedTabPanel, deviceConfigurationUserPanel, getStringMessages().deviceConfiguration(), SailingAdminConsoleFeatures.MANAGE_DEVICE_CONFIGURATION); updateTabDisplayForCurrentUser(getUserService().getCurrentUser()); if (tabPanel.getWidgetCount() > 0) { tabPanel.selectTab(0); @@ -303,7 +283,7 @@ public class AdminConsoleEntryPoint extends AbstractSailingEntryPoint implements void remove(Widget child); } - private void addToTabPanel(final VerticalTabLayoutPanel tabPanel, Widget panelToAdd, String tabTitle, AdminConsoleFeatures feature) { + private void addToTabPanel(final VerticalTabLayoutPanel tabPanel, Widget panelToAdd, String tabTitle, SailingAdminConsoleFeatures feature) { VerticalOrHorizontalTabLayoutPanel wrapper = new VerticalOrHorizontalTabLayoutPanel() { @Override public void add(Widget child, String text, boolean asHtml) { @@ -325,7 +305,7 @@ public class AdminConsoleEntryPoint extends AbstractSailingEntryPoint implements return scrollPanel; } - private void addToTabPanel(final TabLayoutPanel tabPanel, Widget panelToAdd, String tabTitle, AdminConsoleFeatures feature) { + private void addToTabPanel(final TabLayoutPanel tabPanel, Widget panelToAdd, String tabTitle, SailingAdminConsoleFeatures feature) { VerticalOrHorizontalTabLayoutPanel wrapper = new VerticalOrHorizontalTabLayoutPanel() { @Override public void add(Widget child, String text, boolean asHtml) { @@ -341,7 +321,7 @@ public class AdminConsoleEntryPoint extends AbstractSailingEntryPoint implements } private void addToTabPanel(VerticalOrHorizontalTabLayoutPanel tabPanel, Widget panelToAdd, String tabTitle, - AdminConsoleFeatures feature) { + SailingAdminConsoleFeatures feature) { roleSpecificTabs.put(new Triple(tabPanel, wrapInScrollPanel(panelToAdd), tabTitle), feature); } @@ -350,7 +330,7 @@ public class AdminConsoleEntryPoint extends AbstractSailingEntryPoint implements * to see which tabs. See {@link #roleSpecificTabs}. */ private void updateTabDisplayForCurrentUser(UserDTO user) { - for (Map.Entry, AdminConsoleFeatures> e : roleSpecificTabs.entrySet()) { + for (Map.Entry, SailingAdminConsoleFeatures> e : roleSpecificTabs.entrySet()) { final Widget panelToAdd = e.getKey().getB(); if (user != null && isUserInRole(e.getValue().getEnabledRoles())) { e.getKey().getA().add(panelToAdd, e.getKey().getC(), /* asHtml */ false); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AdminConsoleFeatures.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AdminConsoleFeatures.java deleted file mode 100644 index a0a6b1f2867..00000000000 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AdminConsoleFeatures.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.sap.sailing.gwt.ui.adminconsole; - -import com.sap.sailing.gwt.ui.usermanagement.UserRoles; - -public enum AdminConsoleFeatures { - - MANAGE_EVENTS (UserRoles.eventmanager, UserRoles.administrator), - MANAGE_REGATTAS (UserRoles.eventmanager, UserRoles.administrator), - MANAGE_TRACKED_RACES (UserRoles.eventmanager, UserRoles.administrator), - SHOW_TRACKED_RACES (UserRoles.eventmanager, UserRoles.administrator), - MANAGE_RACELOG_TRACKING (UserRoles.administrator), - MANAGE_ALL_COMPETITORS (UserRoles.administrator), - MANAGE_COURSE_LAYOUT (UserRoles.eventmanager, UserRoles.administrator), - MANAGE_WIND (UserRoles.eventmanager, UserRoles.administrator), - MANAGE_IGTIMI_ACCOUNTS (UserRoles.eventmanager, UserRoles.administrator), - MANAGE_LEADERBOARDS (UserRoles.eventmanager, UserRoles.administrator), - MANAGE_LEADERBOARD_GROUPS (UserRoles.eventmanager, UserRoles.administrator), - MANAGE_RESULT_IMPORT_URLS (UserRoles.eventmanager, UserRoles.administrator), - MANAGE_MEDIA (UserRoles.eventmanager, UserRoles.administrator), - MANAGE_SAILING_SERVER_INSTANCES (UserRoles.administrator), - MANAGE_REPLICATION (UserRoles.administrator), - MANAGE_MASTERDATA_IMPORT (UserRoles.administrator), - MANAGE_DEVICE_CONFIGURATION (UserRoles.eventmanager, UserRoles.administrator); - - private UserRoles[] enabledRoles; - - AdminConsoleFeatures(UserRoles... enabledRoles) { - this.enabledRoles = enabledRoles; - } - - public UserRoles[] getEnabledRoles() { - return enabledRoles; - } -} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SailingAdminConsoleFeatures.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SailingAdminConsoleFeatures.java new file mode 100644 index 00000000000..e8dd3f4a747 --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SailingAdminConsoleFeatures.java @@ -0,0 +1,24 @@ +package com.sap.sailing.gwt.ui.adminconsole; + +import com.sap.sailing.gwt.ui.usermanagement.UserRoles; +import com.sap.sse.gwt.adminconsole.AdminConsoleFeatures; + +public interface SailingAdminConsoleFeatures { + final AdminConsoleFeatures MANAGE_EVENTS = new AdminConsoleFeatures("MANAGE_EVENTS", UserRoles.eventmanager.getRolename(), UserRoles.administrator.getRolename()); + final AdminConsoleFeatures MANAGE_REGATTAS = new AdminConsoleFeatures("MANAGE_EVENTS", UserRoles.eventmanager.getRolename(), UserRoles.administrator.getRolename()); + final AdminConsoleFeatures MANAGE_TRACKED_RACES = new AdminConsoleFeatures("MANAGE_EVENTS", UserRoles.eventmanager.getRolename(), UserRoles.administrator.getRolename()); + final AdminConsoleFeatures SHOW_TRACKED_RACES = new AdminConsoleFeatures("MANAGE_EVENTS", UserRoles.eventmanager.getRolename(), UserRoles.administrator.getRolename()); + final AdminConsoleFeatures MANAGE_RACELOG_TRACKING = new AdminConsoleFeatures("MANAGE_EVENTS", UserRoles.administrator.getRolename()); + final AdminConsoleFeatures MANAGE_ALL_COMPETITORS = new AdminConsoleFeatures("MANAGE_EVENTS", UserRoles.administrator.getRolename()); + final AdminConsoleFeatures MANAGE_COURSE_LAYOUT = new AdminConsoleFeatures("MANAGE_EVENTS", UserRoles.eventmanager.getRolename(), UserRoles.administrator.getRolename()); + final AdminConsoleFeatures MANAGE_WIND = new AdminConsoleFeatures("MANAGE_EVENTS", UserRoles.eventmanager.getRolename(), UserRoles.administrator.getRolename()); + final AdminConsoleFeatures MANAGE_IGTIMI_ACCOUNTS = new AdminConsoleFeatures("MANAGE_EVENTS", UserRoles.eventmanager.getRolename(), UserRoles.administrator.getRolename()); + final AdminConsoleFeatures MANAGE_LEADERBOARDS = new AdminConsoleFeatures("MANAGE_EVENTS", UserRoles.eventmanager.getRolename(), UserRoles.administrator.getRolename()); + final AdminConsoleFeatures MANAGE_LEADERBOARD_GROUPS = new AdminConsoleFeatures("MANAGE_EVENTS", UserRoles.eventmanager.getRolename(), UserRoles.administrator.getRolename()); + final AdminConsoleFeatures MANAGE_RESULT_IMPORT_URLS = new AdminConsoleFeatures("MANAGE_EVENTS", UserRoles.eventmanager.getRolename(), UserRoles.administrator.getRolename()); + final AdminConsoleFeatures MANAGE_MEDIA = new AdminConsoleFeatures("MANAGE_EVENTS", UserRoles.eventmanager.getRolename(), UserRoles.administrator.getRolename()); + final AdminConsoleFeatures MANAGE_SAILING_SERVER_INSTANCES = new AdminConsoleFeatures("MANAGE_EVENTS", UserRoles.administrator.getRolename()); + final AdminConsoleFeatures MANAGE_REPLICATION = new AdminConsoleFeatures("MANAGE_EVENTS", UserRoles.administrator.getRolename()); + final AdminConsoleFeatures MANAGE_MASTERDATA_IMPORT = new AdminConsoleFeatures("MANAGE_EVENTS", UserRoles.administrator.getRolename()); + final AdminConsoleFeatures MANAGE_DEVICE_CONFIGURATION = new AdminConsoleFeatures("MANAGE_EVENTS", UserRoles.eventmanager.getRolename(), UserRoles.administrator.getRolename()); +} 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 38aa6765582..b86d078800c 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 @@ -76,11 +76,12 @@ import com.sap.sailing.gwt.ui.shared.WindDTO; import com.sap.sailing.gwt.ui.shared.WindInfoForRaceDTO; import com.sap.sse.common.Util; import com.sap.sse.common.search.KeywordQuery; +import com.sap.sse.gwt.adminconsole.BuildVersionRetriever; /** * The async counterpart of {@link SailingService} */ -public interface SailingServiceAsync { +public interface SailingServiceAsync extends BuildVersionRetriever { void getRegattas(AsyncCallback> callback); diff --git a/java/com.sap.sse.gwt.adminconsole/src/com/sap/sse/gwt/adminconsole/AdminConsoleFeatures.java b/java/com.sap.sse.gwt.adminconsole/src/com/sap/sse/gwt/adminconsole/AdminConsoleFeatures.java index 80a7677cfe6..9b57feda0e6 100755 --- a/java/com.sap.sse.gwt.adminconsole/src/com/sap/sse/gwt/adminconsole/AdminConsoleFeatures.java +++ b/java/com.sap.sse.gwt.adminconsole/src/com/sap/sse/gwt/adminconsole/AdminConsoleFeatures.java @@ -13,7 +13,7 @@ public class AdminConsoleFeatures extends NamedImpl { private static final long serialVersionUID = 7441608351911944793L; private String[] enabledRoles; - AdminConsoleFeatures(String name, String... enabledRoles) { + public AdminConsoleFeatures(String name, String... enabledRoles) { super(name); this.enabledRoles = enabledRoles; } 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 c475faf9f7c..3e8f29cb32e 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 @@ -7,17 +7,18 @@ import java.util.Map; import com.google.gwt.dom.client.Style.Unit; import com.google.gwt.event.logical.shared.SelectionEvent; import com.google.gwt.event.logical.shared.SelectionHandler; +import com.google.gwt.safehtml.shared.SafeHtmlBuilder; import com.google.gwt.user.client.ui.Anchor; +import com.google.gwt.user.client.ui.DockLayoutPanel; import com.google.gwt.user.client.ui.DockPanel; +import com.google.gwt.user.client.ui.HasHorizontalAlignment; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.ScrollPanel; import com.google.gwt.user.client.ui.TabLayoutPanel; import com.google.gwt.user.client.ui.Widget; -import com.sap.sailing.gwt.ui.adminconsole.AdminConsoleFeatures; import com.sap.sailing.gwt.ui.shared.SecurityStylesheetResources; import com.sap.sse.common.Util.Triple; import com.sap.sse.gwt.client.AbstractEntryPoint; -import com.sap.sse.gwt.client.EntryPointHelper; import com.sap.sse.gwt.client.ErrorReporter; import com.sap.sse.gwt.client.panels.VerticalTabLayoutPanel; import com.sap.sse.security.ui.client.UserService; @@ -25,7 +26,7 @@ import com.sap.sse.security.ui.client.UserStatusEventHandler; import com.sap.sse.security.ui.loginpanel.LoginPanel; import com.sap.sse.security.ui.shared.UserDTO; -public class AdminConsolePanel extends DockPanel { +public class AdminConsolePanel extends DockLayoutPanel { private final UserService userService; /** @@ -88,7 +89,8 @@ public class AdminConsolePanel extends DockPanel { } } - public AdminConsolePanel(UserService userService, BuildVersionRetriever buildVersionRetriever, Label persistentAlertLabel, String releaseNotesURL, ErrorReporter errorReporter) { + public AdminConsolePanel(UserService userService, BuildVersionRetriever buildVersionRetriever, Label persistentAlertLabel, String releaseNotesAnchorLabel, String releaseNotesURL, ErrorReporter errorReporter) { + super(Unit.EM); this.userService = userService; roleSpecificTabs = new LinkedHashMap<>(); this.panelsByWidget = new HashMap<>(); @@ -122,12 +124,10 @@ public class AdminConsolePanel extends DockPanel { informationPanel.add(persistentAlertLabel, DockPanel.CENTER); SystemInformationPanel sysinfoPanel = new SystemInformationPanel(buildVersionRetriever, errorReporter); sysinfoPanel.ensureDebugId("SystemInformation"); - final Anchor releaseNotesLink = new Anchor(new SafeHtmlBuilder().appendEscaped( - getStringMessages().releaseNotes()).toSafeHtml(), releaseNotesURL); + final Anchor releaseNotesLink = new Anchor(new SafeHtmlBuilder().appendEscaped(releaseNotesAnchorLabel).toSafeHtml(), releaseNotesURL); sysinfoPanel.add(releaseNotesLink); informationPanel.add(sysinfoPanel, DockPanel.EAST); informationPanel.setCellHorizontalAlignment(sysinfoPanel, HasHorizontalAlignment.ALIGN_RIGHT); - this.addSouth(informationPanel, 2.5); this.add(topLevelTabPanel); createUI(releaseNotesURL); @@ -156,7 +156,7 @@ public class AdminConsolePanel extends DockPanel { * @return the horizontal tab panel that was created and added to the top-level vertical tab panel; the panel returned can be specified * as argument to {@link #addToTabPanel(TabLayoutPanel, Widget, String, AdminConsoleFeatures)}. */ - public TabLayoutPanel addVerticalTab(RefreshableAdminConsolePanel panelToAdd, String tabTitle, String tabDebugId, AdminConsoleFeatures feature) { + public TabLayoutPanel addVerticalTab(String tabTitle, String tabDebugId, AdminConsoleFeatures feature) { final TabLayoutPanel newTabPanel = new TabLayoutPanel(2.5, Unit.EM); AbstractEntryPoint.setTabPanelSize(newTabPanel, "100%", "100%"); newTabPanel.addSelectionHandler(tabSelectionHandler); @@ -173,7 +173,7 @@ public class AdminConsolePanel extends DockPanel { newTabPanel.remove(child); } }; - addToTabPanel(wrapper, panelToAdd.getWidget(), tabTitle, feature); + remeberWidgetLocationAndFeature(wrapper, newTabPanel, tabTitle, feature); return newTabPanel; } @@ -183,7 +183,7 @@ public class AdminConsolePanel extends DockPanel { * top-level category. */ public void addToVerticalTabPanel(final RefreshableAdminConsolePanel panelToAdd, String tabTitle, AdminConsoleFeatures feature) { - addToTabPanel(topLevelTabPanelWrapper, panelToAdd.getWidget(), tabTitle, feature); + addToTabPanel(topLevelTabPanelWrapper, panelToAdd, tabTitle, feature); } private ScrollPanel wrapInScrollPanel(Widget panelToAdd) { @@ -193,7 +193,7 @@ public class AdminConsolePanel extends DockPanel { return scrollPanel; } - public void addToTabPanel(final TabLayoutPanel tabPanel, Widget panelToAdd, String tabTitle, AdminConsoleFeatures feature) { + public void addToTabPanel(final TabLayoutPanel tabPanel, RefreshableAdminConsolePanel panelToAdd, String tabTitle, AdminConsoleFeatures feature) { VerticalOrHorizontalTabLayoutPanel wrapper = new VerticalOrHorizontalTabLayoutPanel() { @Override public void add(Widget child, String text, boolean asHtml) { @@ -209,9 +209,23 @@ public class AdminConsolePanel extends DockPanel { addToTabPanel(wrapper, panelToAdd, tabTitle, feature); } - private void addToTabPanel(VerticalOrHorizontalTabLayoutPanel tabPanel, Widget panelToAdd, String tabTitle, AdminConsoleFeatures feature) { + /** + * Remembers in which tab panel the panelToAdd is to be displayed and for which feature; additionally, remembers adds + * a hook so that when the panelToAdd's widget is selected then the {@link RefreshableAdminConsolePanel#refreshAfterBecomingVisible()} + * method can be called. + */ + private void addToTabPanel(VerticalOrHorizontalTabLayoutPanel tabPanel, RefreshableAdminConsolePanel panelToAdd, String tabTitle, AdminConsoleFeatures feature) { + remeberWidgetLocationAndFeature(tabPanel, panelToAdd.getWidget(), tabTitle, feature); + panelsByWidget.put(panelToAdd.getWidget(), panelToAdd); + } + + /** + * Remembers the tab panel in which the widgetToAdd is to be displayed and for which feature. + */ + private void remeberWidgetLocationAndFeature(VerticalOrHorizontalTabLayoutPanel tabPanel, Widget widgetToAdd, + String tabTitle, AdminConsoleFeatures feature) { roleSpecificTabs.put(new Triple(tabPanel, - wrapInScrollPanel(panelToAdd), tabTitle), feature); + wrapInScrollPanel(widgetToAdd), tabTitle), feature); } /** From 94a04db15f8cf4edc693a1518efc9276de167415 Mon Sep 17 00:00:00 2001 From: Samuel Oey Date: Thu, 6 Nov 2014 18:06:14 +0000 Subject: [PATCH 33/50] Updated tracking app api v1 draft (markdown) --- wiki/tracking-app-api-v1-draft.md | 161 +++++++++++++++++++----------- 1 file changed, 102 insertions(+), 59 deletions(-) diff --git a/wiki/tracking-app-api-v1-draft.md b/wiki/tracking-app-api-v1-draft.md index fc14fb290fb..a55ec5415ac 100644 --- a/wiki/tracking-app-api-v1-draft.md +++ b/wiki/tracking-app-api-v1-draft.md @@ -4,13 +4,15 @@ This is a design for the REST API to be used by the iOS and Android tracking apps. -## Event Data +## Push Notifications + +Event data can be updated via push notifications. These are limited on iOS to 256 bytes (not characters). For this reason, on receiving a push notification, the app must GET the event data. + +## Checkin Information ### Path - http://kielerwoche2015.sapsailing.com:8888 - ?event_id=957fab64e36d240dd07aeed2bd5a84b6 - &competitor_id=250cf8b51c773f3f8dc8b4be867a9a02 + http://kielerwoche2015.sapsailing.com:8888/api/v1/checkin_info.json?leaderboard={unique_leaderboard_name}&competitor_id={competitor_id} ### Verb @@ -21,40 +23,24 @@ This is a design for the REST API to be used by the iOS and Android tracking app { "serverUrl" : "http://kielerwoche2015.sapsailing.com:8888", "event" : { - "eventId" : "957fab64e36d240dd07aeed2bd5a84b6", - "eventTitle" : "Kieler Woche", - "eventStartDate" : 1414414481000, - "eventEndDate" : 1414609200000, - "eventDays": [ - { - "eventDayStart" : 1414414481000, - "eventDayEnd" : 1414436081000 - }, - { - "eventDayStart" : 1414497600000, - "eventDayEnd" : 1414522800000 - }, - { - "eventDayStart" : 1414584000000, - "eventDayEnd" : 1414609200000 - } - ] + "id" : "957fab64e36d240dd07aeed2bd5a84b6", + "title" : "Kieler Woche", + "startDate" : 1414414481000, + "endDate" : 1414609200000 }, - "competitor" : { - "competitorId" : "250cf8b51c773f3f8dc8b4be867a9a02", - "competitorName" : "Alster Segel Club", - "competitorProfileImageUrl" : "http://s3.amazonaws.com/sapsailing/profile_images/68053af2923e00204c3ca7c6a3150cf7.jpeg" + "regatta": { + "id": "237fab64e36d240dd07aeed2bd5a8426", + "title": "49ers" + }, + "competitor":{ + "id" : "e45fab64e36d240dd07aeed2bd5a8a21", + "name" : "Alster Segel Club", + "registration" : "GER 13" } } **serverUrl** This is the endpoint to be used for all following REST requests. -**eventDays** An event can be held for several days. This array contains all start and end times of an event day. This is used to remind a user to turn tracking on or off (in order to save battery). - -### Push Notifications - -Event data can be updated via push notifications. These are limited on iOS to 256 bytes (not characters). For this reason, on receiving a push notification, the app must GET the event data. - ## Check-In After the user has received the event data with the short URL, the smartphone is mapped to a competitor. @@ -63,7 +49,7 @@ _Question: What should be done if a second device is mapped to competitor?_ ### Path - /leaderboard/{unique_leaderboard_name}/competitor/{competitor_id}/device + {serverUrl}/api/v1/leaderboard/{unique_leaderboard_name}/competitor/{competitor_id}/checkin.json ### Verb @@ -83,13 +69,91 @@ _Question: What should be done if a second device is mapped to competitor?_ **pushDeviceId** On Android the GCM regId, on iOS the APNS push token. This is needed for sending push notifications to the device. -## Upload Profile Image +## Regatta Info -An image can be uploaded per competitor and event. +Informations regarding a regatta. We need the list of (scheduled) races to remind the user to start tracking. ### Path - /event/{event_id}/competitor/{competitor_id}/profile_image + {serverUrl}/api/v1/leaderboard/{unique_leaderboard_name}/regatta.json + +or + + {serverUrl}/api/v1/event/{event_id}/regatta/{regatta_id}.json + +### Verb + + GET + +### Response + + { + "id": "237fab64e36d240dd07aeed2bd5a8426", + "title": "49ers", + "event_id" : "237fab64e36d240dd07aeed2bd5a8426" + "leaderboard" : "Leaderboard Identifier", + "races":[ + { + "startTime" : 1414414481000, + "status" : "finished", + "fleet" : "Blue" + "phase" : "Qualification" + "name" : "Q1" + }, + { + "startTime" : 1414414481005, + "status" : "running", + "fleet" : "Red" + "phase" : "Qualification" + "name" : "Q1" + }, + { + "startTime" : 1414414481010, + "status" : "scheduled", + "fleet" : "Blue" + "phase" : "Qualification" + "name" : "Q2" + }, + { + "startTime" : "", + "status" : "unscheduled", + "fleet" : "Red" + "phase" : "Qualification" + "name" : "Q2" + } + ] + }, + + +## Competitor Info + +Informations for a competitor can be requested. + +### Path + + {serverUrl}/api/v1/competitor/{competitor_id}.json + +### Verb + + GET + +### Response + + { + "Id" : "250cf8b51c773f3f8dc8b4be867a9a02", + "Name" : "Alster Segel Club", + "ProfileImageUrl" : "http://s3.amazonaws.com/sapsailing/profile_images/68053af2923e00204c3ca7c6a3150cf7.jpeg" + "Flag": {BASE64STRING or URL}, + "Registration": "GER 14" + } + +## Upload Profile Image + +An image can be uploaded per competitor. + +### Path + + {serverUrl}/api/v1/competitor/{competitor_id}/profile_image.json ### Verb @@ -107,28 +171,7 @@ Multipart upload with part `image` containing JPEG image 80%, max dimension 1200 **profileImageUrl** URL of uploaded image. -## Tracking Status - -As general information, the tracking status of the smartphone is sent. - -### Path - - /event/{event_id}/competitor/{competitor_id}/tracking_status - -### Verb - - POST - -### Request - - { - "timeStamp" : 14144158370000, - "status" : "start" - } - -**status** Either `start` or `stop`. - -## Send Measurements +## Send Measurements (to the Fix Store) The main data sent by the app. @@ -138,7 +181,7 @@ GZIP compression is a must. Bulk uploads should be chunked, e.g. per 1,000 locat ### Path - /event/{event_id}/competitor/{competitor_id}/measurements + {serverUrl}/api/v1/fix_store.json ### Verb From 2594ffed4d333178ba87cdd724bf49746b4abf88 Mon Sep 17 00:00:00 2001 From: Samuel Oey Date: Thu, 6 Nov 2014 18:30:56 +0000 Subject: [PATCH 34/50] Updated tracking app api v1 draft (markdown) --- wiki/tracking-app-api-v1-draft.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/wiki/tracking-app-api-v1-draft.md b/wiki/tracking-app-api-v1-draft.md index a55ec5415ac..2708bb977f4 100644 --- a/wiki/tracking-app-api-v1-draft.md +++ b/wiki/tracking-app-api-v1-draft.md @@ -69,6 +69,19 @@ _Question: What should be done if a second device is mapped to competitor?_ **pushDeviceId** On Android the GCM regId, on iOS the APNS push token. This is needed for sending push notifications to the device. +## Checkout + +Needed to destroy a device coupling with leaderboard & competitor. AKA checkout. + +### Path + + {serverUrl}/api/v1/leaderboard/{unique_leaderboard_name}/competitor/{competitor_id}/device/{deviceUdid}.json + +### Verb + + DELETE + + ## Regatta Info Informations regarding a regatta. We need the list of (scheduled) races to remind the user to start tracking. From 8b982a4b95c95503b6ea086bf046766ca30d1046 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Thu, 6 Nov 2014 20:39:19 +0100 Subject: [PATCH 35/50] refactored AdminConsoleEntryPoint to use AdminConsolePanel --- .../adminconsole/AdminConsoleEntryPoint.java | 266 +++++------------- java/com.sap.sse.gwt.adminconsole/.classpath | 3 - .../META-INF/MANIFEST.MF | 4 +- .../gwt/adminconsole/AdminConsolePanel.java | 56 +++- .../DefaultRefreshableAdminConsolePanel.java | 20 ++ 5 files changed, 145 insertions(+), 204 deletions(-) create mode 100755 java/com.sap.sse.gwt.adminconsole/src/com/sap/sse/gwt/adminconsole/DefaultRefreshableAdminConsolePanel.java 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 27d71d88ce2..03e9d378b8f 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 @@ -1,26 +1,18 @@ package com.sap.sailing.gwt.ui.adminconsole; import java.util.HashSet; -import java.util.LinkedHashMap; import java.util.List; -import java.util.Map; import java.util.Set; import com.google.gwt.core.client.GWT; -import com.google.gwt.dom.client.Style.Unit; -import com.google.gwt.event.logical.shared.SelectionEvent; -import com.google.gwt.event.logical.shared.SelectionHandler; import com.google.gwt.safehtml.shared.SafeHtmlBuilder; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.rpc.ServiceDefTarget; import com.google.gwt.user.client.ui.Anchor; -import com.google.gwt.user.client.ui.DockLayoutPanel; import com.google.gwt.user.client.ui.DockPanel; import com.google.gwt.user.client.ui.HasHorizontalAlignment; import com.google.gwt.user.client.ui.RootLayoutPanel; -import com.google.gwt.user.client.ui.ScrollPanel; import com.google.gwt.user.client.ui.TabLayoutPanel; -import com.google.gwt.user.client.ui.Widget; import com.sap.sailing.gwt.ui.client.AbstractSailingEntryPoint; import com.sap.sailing.gwt.ui.client.LeaderboardGroupsDisplayer; import com.sap.sailing.gwt.ui.client.LeaderboardGroupsRefresher; @@ -39,18 +31,13 @@ import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO; import com.sap.sailing.gwt.ui.shared.RegattaDTO; import com.sap.sailing.gwt.ui.shared.SecurityStylesheetResources; import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO; -import com.sap.sailing.gwt.ui.usermanagement.UserRoles; -import com.sap.sse.common.Util.Triple; import com.sap.sse.gwt.adminconsole.AdminConsolePanel; -import com.sap.sse.gwt.adminconsole.RefreshableAdminConsolePanel; +import com.sap.sse.gwt.adminconsole.DefaultRefreshableAdminConsolePanel; import com.sap.sse.gwt.adminconsole.SystemInformationPanel; import com.sap.sse.gwt.client.EntryPointHelper; import com.sap.sse.gwt.client.async.AsyncActionsExecutor; import com.sap.sse.gwt.client.async.MarkedAsyncCallback; -import com.sap.sse.gwt.client.panels.VerticalTabLayoutPanel; -import com.sap.sse.security.ui.client.UserStatusEventHandler; import com.sap.sse.security.ui.loginpanel.LoginPanel; -import com.sap.sse.security.ui.shared.UserDTO; public class AdminConsoleEntryPoint extends AbstractSailingEntryPoint implements RegattaRefresher, LeaderboardsRefresher, LeaderboardGroupsRefresher { private Set regattasDisplayers; @@ -60,22 +47,9 @@ public class AdminConsoleEntryPoint extends AbstractSailingEntryPoint implements private final SailingServiceAsync sailingService = GWT.create(SailingService.class); private final MediaServiceAsync mediaService = GWT.create(MediaService.class); - /** - * The administration console's UI depends on the user's roles. When the roles change then so shall the display of tabs. - * {@link SailingAdminConsoleFeatures} list the roles to which they are made available. This map keeps track of the dependencies - * and allows the UI to adjust to role changes. - */ - private final LinkedHashMap, SailingAdminConsoleFeatures> roleSpecificTabs = new LinkedHashMap<>(); - @Override protected void doOnModuleLoad() { super.doOnModuleLoad(); - getUserService().addUserStatusEventHandler(new UserStatusEventHandler() { - @Override - public void onUserStatusChange(UserDTO user) { - updateTabDisplayForCurrentUser(user); - } - }); EntryPointHelper.registerASyncService((ServiceDefTarget) sailingService, RemoteServiceMappingConstants.sailingServiceRemotePath); EntryPointHelper.registerASyncService((ServiceDefTarget) mediaService, RemoteServiceMappingConstants.mediaServiceRemotePath); createUI(); @@ -83,149 +57,167 @@ public class AdminConsoleEntryPoint extends AbstractSailingEntryPoint implements private void createUI() { AdminConsolePanel panel = new AdminConsolePanel(getUserService(), sailingService, persistentAlertLabel, - getStringMessages().releaseNotes(), "/release_notes_admin.html", /* error reporter */ this); + getStringMessages().releaseNotes(), "/release_notes_admin.html", /* error reporter */ this, SecurityStylesheetResources.INSTANCE.css()); BetterDateTimeBox.initialize(); regattasDisplayers = new HashSet<>(); leaderboardsDisplayers = new HashSet<>(); leaderboardGroupsDisplayers = new HashSet<>(); final EventManagementPanel eventManagementPanel = new EventManagementPanel(sailingService, this, getStringMessages()); - panel.addToVerticalTabPanel(new RefreshableAdminConsolePanel() { - private final EventManagementPanel widget = new EventManagementPanel(sailingService, AdminConsoleEntryPoint.this, getStringMessages()); + panel.addToVerticalTabPanel(new DefaultRefreshableAdminConsolePanel(eventManagementPanel) { @Override public void refreshAfterBecomingVisible() { - widget.fillEvents(); + getWidget().fillEvents(); fillLeaderboardGroups(); } - - @Override - public Widget getWidget() { - return widget; - } }, getStringMessages().events(), SailingAdminConsoleFeatures.MANAGE_EVENTS); leaderboardGroupsDisplayers.add(eventManagementPanel); RegattaStructureManagementPanel regattaManagementPanel = new RegattaStructureManagementPanel( sailingService, this, getStringMessages(), this); regattaManagementPanel.ensureDebugId("RegattaStructureManagement"); - addToTabPanel(tabPanel, regattaManagementPanel, getStringMessages().regattas(), SailingAdminConsoleFeatures.MANAGE_REGATTAS); + panel.addToVerticalTabPanel(new DefaultRefreshableAdminConsolePanel(regattaManagementPanel) { + @Override + public void refreshAfterBecomingVisible() { + fillRegattas(); + } + }, getStringMessages().regattas(), SailingAdminConsoleFeatures.MANAGE_REGATTAS); regattasDisplayers.add(regattaManagementPanel); /* LEADERBOARDS */ - final TabLayoutPanel leaderboardTabPanel = new TabLayoutPanel(2.5, Unit.EM); - setTabPanelSize(leaderboardTabPanel, "100%", "100%"); - leaderboardTabPanel.addSelectionHandler(tabSelectionHandler); - leaderboardTabPanel.ensureDebugId("LeaderboardPanel"); - addToTabPanel(tabPanel, leaderboardTabPanel, getStringMessages().leaderboards(), SailingAdminConsoleFeatures.MANAGE_LEADERBOARDS); - + final TabLayoutPanel leaderboardTabPanel = panel.addVerticalTab(getStringMessages().leaderboards(), + "LeaderboardPanel", SailingAdminConsoleFeatures.MANAGE_LEADERBOARDS); final LeaderboardConfigPanel leaderboardConfigPanel = new LeaderboardConfigPanel(sailingService, this, this, getStringMessages(), /* showRaceDetails */true, this); leaderboardConfigPanel.ensureDebugId("LeaderboardConfiguration"); - addToTabPanel(leaderboardTabPanel, leaderboardConfigPanel, getStringMessages().leaderboardConfiguration(), SailingAdminConsoleFeatures.MANAGE_LEADERBOARDS); + panel.addToTabPanel(leaderboardTabPanel, new DefaultRefreshableAdminConsolePanel(leaderboardConfigPanel) { + @Override + public void refreshAfterBecomingVisible() { + fillLeaderboards(); + } + }, getStringMessages().leaderboardConfiguration(), SailingAdminConsoleFeatures.MANAGE_LEADERBOARDS); regattasDisplayers.add(leaderboardConfigPanel); leaderboardsDisplayers.add(leaderboardConfigPanel); final LeaderboardGroupConfigPanel leaderboardGroupConfigPanel = new LeaderboardGroupConfigPanel(sailingService, this, this, this, this, getStringMessages()); leaderboardGroupConfigPanel.ensureDebugId("LeaderboardGroupConfiguration"); - addToTabPanel(leaderboardTabPanel, leaderboardGroupConfigPanel, getStringMessages().leaderboardGroups(), SailingAdminConsoleFeatures.MANAGE_LEADERBOARD_GROUPS); + panel.addToTabPanel(leaderboardTabPanel, new DefaultRefreshableAdminConsolePanel(leaderboardGroupConfigPanel) { + @Override + public void refreshAfterBecomingVisible() { + fillLeaderboards(); + fillLeaderboardGroups(); + } + }, getStringMessages().leaderboardGroups(), SailingAdminConsoleFeatures.MANAGE_LEADERBOARD_GROUPS); regattasDisplayers.add(leaderboardGroupConfigPanel); leaderboardGroupsDisplayers.add(leaderboardGroupConfigPanel); leaderboardsDisplayers.add(leaderboardGroupConfigPanel); /* RACES */ - final TabLayoutPanel racesTabPanel = new TabLayoutPanel(2.5, Unit.EM); - setTabPanelSize(racesTabPanel, "100%", "100%"); - racesTabPanel.addSelectionHandler(tabSelectionHandler); - racesTabPanel.ensureDebugId("RacesPanel"); - addToTabPanel(tabPanel, racesTabPanel, getStringMessages().races(), SailingAdminConsoleFeatures.MANAGE_TRACKED_RACES); - + final TabLayoutPanel racesTabPanel = panel.addVerticalTab(getStringMessages().races(), + "RacesPanel", SailingAdminConsoleFeatures.MANAGE_TRACKED_RACES); TrackedRacesManagementPanel trackedRacesManagementPanel = new TrackedRacesManagementPanel(sailingService, this, this, getStringMessages()); trackedRacesManagementPanel.ensureDebugId("TrackedRacesManagement"); - addToTabPanel(racesTabPanel, trackedRacesManagementPanel, getStringMessages().trackedRaces(), SailingAdminConsoleFeatures.SHOW_TRACKED_RACES); + panel.addToTabPanel(racesTabPanel, new DefaultRefreshableAdminConsolePanel(trackedRacesManagementPanel), + getStringMessages().trackedRaces(), SailingAdminConsoleFeatures.SHOW_TRACKED_RACES); regattasDisplayers.add(trackedRacesManagementPanel); final CompetitorPanel competitorPanel = new CompetitorPanel(sailingService, getStringMessages(), this); - addToTabPanel(racesTabPanel, competitorPanel, getStringMessages().competitors(), SailingAdminConsoleFeatures.MANAGE_ALL_COMPETITORS); + panel.addToTabPanel(racesTabPanel, new DefaultRefreshableAdminConsolePanel(competitorPanel) { + @Override + public void refreshAfterBecomingVisible() { + getWidget().refreshCompetitorList(); + } + }, getStringMessages().competitors(), SailingAdminConsoleFeatures.MANAGE_ALL_COMPETITORS); RaceCourseManagementPanel raceCourseManagementPanel = new RaceCourseManagementPanel(sailingService, this, this, getStringMessages()); - addToTabPanel(racesTabPanel, raceCourseManagementPanel, getStringMessages().courseLayout(), SailingAdminConsoleFeatures.MANAGE_COURSE_LAYOUT); + panel.addToTabPanel(racesTabPanel, new DefaultRefreshableAdminConsolePanel(raceCourseManagementPanel), getStringMessages().courseLayout(), SailingAdminConsoleFeatures.MANAGE_COURSE_LAYOUT); regattasDisplayers.add(raceCourseManagementPanel); final AsyncActionsExecutor asyncActionsExecutor = new AsyncActionsExecutor(); WindPanel windPanel = new WindPanel(sailingService, asyncActionsExecutor, this, this, getStringMessages()); + panel.addToTabPanel(racesTabPanel, new DefaultRefreshableAdminConsolePanel(windPanel), getStringMessages().wind(), + SailingAdminConsoleFeatures.MANAGE_WIND); regattasDisplayers.add(windPanel); - addToTabPanel(racesTabPanel, windPanel, getStringMessages().wind(), SailingAdminConsoleFeatures.MANAGE_WIND); final MediaPanel mediaPanel = new MediaPanel(regattasDisplayers, sailingService, this, mediaService, this, getStringMessages()); - addToTabPanel(racesTabPanel, mediaPanel, getStringMessages().mediaPanel(), SailingAdminConsoleFeatures.MANAGE_MEDIA); + panel.addToTabPanel(racesTabPanel, new DefaultRefreshableAdminConsolePanel(mediaPanel) { + @Override + public void refreshAfterBecomingVisible() { + getWidget().onShow(); + } + }, getStringMessages().mediaPanel(), SailingAdminConsoleFeatures.MANAGE_MEDIA); /* CONNECTORS */ - final TabLayoutPanel connectorsTabPanel = new TabLayoutPanel(2.5, Unit.EM); - setTabPanelSize(connectorsTabPanel, "100%", "100%"); - connectorsTabPanel.addSelectionHandler(tabSelectionHandler); - connectorsTabPanel.ensureDebugId("TrackingProviderPanel"); - addToTabPanel(tabPanel, connectorsTabPanel, getStringMessages().connectors(), SailingAdminConsoleFeatures.MANAGE_TRACKED_RACES); - - AbstractEventManagementPanel tractracEventManagementPanel = new TracTracEventManagementPanel(sailingService, + final TabLayoutPanel connectorsTabPanel = panel.addVerticalTab(getStringMessages().connectors(), + "TrackingProviderPanel", SailingAdminConsoleFeatures.MANAGE_TRACKED_RACES); + TracTracEventManagementPanel tractracEventManagementPanel = new TracTracEventManagementPanel(sailingService, this, this, getStringMessages()); tractracEventManagementPanel.ensureDebugId("TracTracEventManagement"); - addToTabPanel(connectorsTabPanel, tractracEventManagementPanel, getStringMessages().tracTracEvents(), SailingAdminConsoleFeatures.MANAGE_TRACKED_RACES); + panel.addToTabPanel(connectorsTabPanel, new DefaultRefreshableAdminConsolePanel(tractracEventManagementPanel), + getStringMessages().tracTracEvents(), SailingAdminConsoleFeatures.MANAGE_TRACKED_RACES); regattasDisplayers.add(tractracEventManagementPanel); SwissTimingReplayConnectorPanel swissTimingReplayConnectorPanel = new SwissTimingReplayConnectorPanel( sailingService, this, this, getStringMessages()); - addToTabPanel(connectorsTabPanel, swissTimingReplayConnectorPanel, getStringMessages().swissTimingArchiveConnector(), SailingAdminConsoleFeatures.MANAGE_TRACKED_RACES); + panel.addToTabPanel(connectorsTabPanel, new DefaultRefreshableAdminConsolePanel(swissTimingReplayConnectorPanel), + getStringMessages().swissTimingArchiveConnector(), SailingAdminConsoleFeatures.MANAGE_TRACKED_RACES); regattasDisplayers.add(swissTimingReplayConnectorPanel); SwissTimingEventManagementPanel swisstimingEventManagementPanel = new SwissTimingEventManagementPanel( sailingService, this, this, getStringMessages()); - addToTabPanel(connectorsTabPanel, swisstimingEventManagementPanel, getStringMessages().swissTimingEvents(), SailingAdminConsoleFeatures.MANAGE_TRACKED_RACES); + panel.addToTabPanel(connectorsTabPanel, new DefaultRefreshableAdminConsolePanel(swisstimingEventManagementPanel), + getStringMessages().swissTimingEvents(), SailingAdminConsoleFeatures.MANAGE_TRACKED_RACES); regattasDisplayers.add(swisstimingEventManagementPanel); final RaceLogTrackingEventManagementPanel raceLogTrackingEventManagementPanel = new RaceLogTrackingEventManagementPanel( sailingService, this, this, this, getStringMessages()); - addToTabPanel(connectorsTabPanel, raceLogTrackingEventManagementPanel, getStringMessages().raceLogTracking(), SailingAdminConsoleFeatures.MANAGE_RACELOG_TRACKING); + panel.addToTabPanel(connectorsTabPanel, new DefaultRefreshableAdminConsolePanel(raceLogTrackingEventManagementPanel) { + @Override + public void refreshAfterBecomingVisible() { + fillLeaderboards(); + } + }, getStringMessages().raceLogTracking(), SailingAdminConsoleFeatures.MANAGE_TRACKED_RACES); regattasDisplayers.add(raceLogTrackingEventManagementPanel); leaderboardsDisplayers.add(raceLogTrackingEventManagementPanel); IgtimiAccountsPanel igtimiAccountsPanel = new IgtimiAccountsPanel(sailingService, this, getStringMessages()); igtimiAccountsPanel.ensureDebugId("IgtimiAccounts"); - addToTabPanel(connectorsTabPanel, igtimiAccountsPanel, getStringMessages().igtimiAccounts(), SailingAdminConsoleFeatures.MANAGE_IGTIMI_ACCOUNTS); + panel.addToTabPanel(connectorsTabPanel, new DefaultRefreshableAdminConsolePanel(igtimiAccountsPanel), + getStringMessages().igtimiAccounts(), SailingAdminConsoleFeatures.MANAGE_IGTIMI_ACCOUNTS); ResultImportUrlsManagementPanel resultImportUrlsManagementPanel = new ResultImportUrlsManagementPanel(sailingService, this, getStringMessages()); - addToTabPanel(connectorsTabPanel, resultImportUrlsManagementPanel, getStringMessages().resultImportUrls(), SailingAdminConsoleFeatures.MANAGE_RESULT_IMPORT_URLS); + panel.addToTabPanel(connectorsTabPanel, new DefaultRefreshableAdminConsolePanel(resultImportUrlsManagementPanel), + getStringMessages().resultImportUrls(), SailingAdminConsoleFeatures.MANAGE_RESULT_IMPORT_URLS); /* ADVANCED */ - final TabLayoutPanel advancedTabPanel = new TabLayoutPanel(2.5, Unit.EM); - setTabPanelSize(advancedTabPanel, "100%", "100%"); - advancedTabPanel.addSelectionHandler(tabSelectionHandler); - advancedTabPanel.ensureDebugId("AdvancedPanel"); - addToTabPanel(tabPanel, advancedTabPanel, getStringMessages().advanced(), SailingAdminConsoleFeatures.MANAGE_REPLICATION); - + final TabLayoutPanel advancedTabPanel = panel.addVerticalTab(getStringMessages().connectors(), + "AdvancedPanel", SailingAdminConsoleFeatures.MANAGE_REPLICATION); final ReplicationPanel replicationPanel = new ReplicationPanel(sailingService, this, getStringMessages()); - addToTabPanel(advancedTabPanel, replicationPanel, getStringMessages().replication(), SailingAdminConsoleFeatures.MANAGE_REPLICATION); + panel.addToTabPanel(advancedTabPanel, new DefaultRefreshableAdminConsolePanel(replicationPanel), + getStringMessages().replication(), SailingAdminConsoleFeatures.MANAGE_REPLICATION); final MasterDataImportPanel masterDataImportPanel = new MasterDataImportPanel(getStringMessages(), sailingService, this, eventManagementPanel, this, this); - addToTabPanel(advancedTabPanel, masterDataImportPanel, getStringMessages().masterDataImportPanel(), SailingAdminConsoleFeatures.MANAGE_MASTERDATA_IMPORT); + panel.addToTabPanel(advancedTabPanel, new DefaultRefreshableAdminConsolePanel(masterDataImportPanel), + getStringMessages().masterDataImportPanel(), SailingAdminConsoleFeatures.MANAGE_MASTERDATA_IMPORT); RemoteSailingServerInstancesManagementPanel sailingServerInstancesManagementPanel = new RemoteSailingServerInstancesManagementPanel(sailingService, this, getStringMessages()); - addToTabPanel(advancedTabPanel, sailingServerInstancesManagementPanel, getStringMessages().sailingServers(), SailingAdminConsoleFeatures.MANAGE_SAILING_SERVER_INSTANCES); + panel.addToTabPanel(advancedTabPanel, new DefaultRefreshableAdminConsolePanel(sailingServerInstancesManagementPanel), + getStringMessages().sailingServers(), SailingAdminConsoleFeatures.MANAGE_SAILING_SERVER_INSTANCES); - final DeviceConfigurationPanel deviceConfigurationUserPanel = new DeviceConfigurationUserPanel(sailingService, + final DeviceConfigurationUserPanel deviceConfigurationUserPanel = new DeviceConfigurationUserPanel(sailingService, getStringMessages(), this); - addToTabPanel(advancedTabPanel, deviceConfigurationUserPanel, getStringMessages().deviceConfiguration(), SailingAdminConsoleFeatures.MANAGE_DEVICE_CONFIGURATION); - updateTabDisplayForCurrentUser(getUserService().getCurrentUser()); - if (tabPanel.getWidgetCount() > 0) { - tabPanel.selectTab(0); - } + panel.addToTabPanel(advancedTabPanel, new DefaultRefreshableAdminConsolePanel(deviceConfigurationUserPanel), + getStringMessages().deviceConfiguration(), SailingAdminConsoleFeatures.MANAGE_DEVICE_CONFIGURATION); + + panel.initUI(); fillRegattas(); fillLeaderboardGroups(); fillLeaderboards(); @@ -245,113 +237,9 @@ public class AdminConsoleEntryPoint extends AbstractSailingEntryPoint implements informationPanel.setCellHorizontalAlignment(sysinfoPanel, HasHorizontalAlignment.ALIGN_RIGHT); RootLayoutPanel rootPanel = RootLayoutPanel.get(); - DockLayoutPanel dockPanel = new DockLayoutPanel(Unit.EM); - - dockPanel.addSouth(informationPanel, 2.5); - dockPanel.add(tabPanel); - rootPanel.add(dockPanel); + rootPanel.add(panel); } - private void refreshDataFor(Widget widget) { - Widget target = widget; - if (widget != null) { - if (widget instanceof ScrollPanel) { - target = ((ScrollPanel)widget).getWidget(); - } - if (target instanceof EventManagementPanel) { - ((EventManagementPanel)target).fillEvents(); - fillLeaderboardGroups(); - } else if (target instanceof LeaderboardConfigPanel) { - fillLeaderboards(); - } else if (target instanceof LeaderboardGroupConfigPanel) { - fillLeaderboardGroups(); - fillLeaderboards(); - } else if (target instanceof RegattaStructureManagementPanel) { - fillRegattas(); - } else if (target instanceof CompetitorPanel) { - ((CompetitorPanel)target).refreshCompetitorList(); - } else if (target instanceof RaceLogTrackingEventManagementPanel) { - fillLeaderboards(); - } else if (target instanceof MediaPanel) { - ((MediaPanel)target).onShow(); - } - } - } - - private static interface VerticalOrHorizontalTabLayoutPanel { - void add(Widget child, String text, boolean asHtml); - void remove(Widget child); - } - - private void addToTabPanel(final VerticalTabLayoutPanel tabPanel, Widget panelToAdd, String tabTitle, SailingAdminConsoleFeatures feature) { - VerticalOrHorizontalTabLayoutPanel wrapper = new VerticalOrHorizontalTabLayoutPanel() { - @Override - public void add(Widget child, String text, boolean asHtml) { - tabPanel.add(child, text, asHtml); - tabPanel.forceLayout(); - } - @Override - public void remove(Widget child) { - tabPanel.remove(child); - } - }; - addToTabPanel(wrapper, panelToAdd, tabTitle, feature); - } - - private ScrollPanel wrapInScrollPanel(Widget panelToAdd) { - ScrollPanel scrollPanel = new ScrollPanel(); - scrollPanel.add(panelToAdd); - panelToAdd.setSize("100%", "100%"); - return scrollPanel; - } - - private void addToTabPanel(final TabLayoutPanel tabPanel, Widget panelToAdd, String tabTitle, SailingAdminConsoleFeatures feature) { - VerticalOrHorizontalTabLayoutPanel wrapper = new VerticalOrHorizontalTabLayoutPanel() { - @Override - public void add(Widget child, String text, boolean asHtml) { - tabPanel.add(child, text, asHtml); - tabPanel.forceLayout(); - } - @Override - public void remove(Widget child) { - tabPanel.remove(child); - } - }; - addToTabPanel(wrapper, panelToAdd, tabTitle, feature); - } - - private void addToTabPanel(VerticalOrHorizontalTabLayoutPanel tabPanel, Widget panelToAdd, String tabTitle, - SailingAdminConsoleFeatures feature) { - roleSpecificTabs.put(new Triple(tabPanel, wrapInScrollPanel(panelToAdd), tabTitle), feature); - } - - /** - * After initialization or whenever the user changes, the tab display is adjusted based on which roles are required - * to see which tabs. See {@link #roleSpecificTabs}. - */ - private void updateTabDisplayForCurrentUser(UserDTO user) { - for (Map.Entry, SailingAdminConsoleFeatures> e : roleSpecificTabs.entrySet()) { - final Widget panelToAdd = e.getKey().getB(); - if (user != null && isUserInRole(e.getValue().getEnabledRoles())) { - e.getKey().getA().add(panelToAdd, e.getKey().getC(), /* asHtml */ false); - } else { - e.getKey().getA().remove(panelToAdd); - } - } - } - - private boolean isUserInRole(UserRoles[] roles) { - boolean result = false; - UserDTO user = getUserService().getCurrentUser(); - for (UserRoles enabledRole : roles) { - if (user.hasRole(enabledRole.getRolename())) { - result = true; - break; - } - } - return result; - } - @Override public void fillLeaderboards() { sailingService.getLeaderboards(new MarkedAsyncCallback>( diff --git a/java/com.sap.sse.gwt.adminconsole/.classpath b/java/com.sap.sse.gwt.adminconsole/.classpath index 44064a32c8d..654bd14681c 100755 --- a/java/com.sap.sse.gwt.adminconsole/.classpath +++ b/java/com.sap.sse.gwt.adminconsole/.classpath @@ -3,9 +3,6 @@ - - - diff --git a/java/com.sap.sse.gwt.adminconsole/META-INF/MANIFEST.MF b/java/com.sap.sse.gwt.adminconsole/META-INF/MANIFEST.MF index 8acc163b94d..de1bfdb4df1 100755 --- a/java/com.sap.sse.gwt.adminconsole/META-INF/MANIFEST.MF +++ b/java/com.sap.sse.gwt.adminconsole/META-INF/MANIFEST.MF @@ -7,6 +7,6 @@ Bundle-Vendor: SAP Bundle-RequiredExecutionEnvironment: JavaSE-1.7 Require-Bundle: com.sap.sse.gwt, com.sap.sse.security.ui, - com.sap.sse.common, - com.sap.sailing.gwt.ui + com.sap.sse.security, + com.sap.sse.common Export-Package: com.sap.sse.gwt.adminconsole 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 3e8f29cb32e..e66d5ef458c 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 @@ -16,7 +16,6 @@ import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.ScrollPanel; import com.google.gwt.user.client.ui.TabLayoutPanel; import com.google.gwt.user.client.ui.Widget; -import com.sap.sailing.gwt.ui.shared.SecurityStylesheetResources; import com.sap.sse.common.Util.Triple; import com.sap.sse.gwt.client.AbstractEntryPoint; import com.sap.sse.gwt.client.ErrorReporter; @@ -24,8 +23,37 @@ import com.sap.sse.gwt.client.panels.VerticalTabLayoutPanel; import com.sap.sse.security.ui.client.UserService; import com.sap.sse.security.ui.client.UserStatusEventHandler; import com.sap.sse.security.ui.loginpanel.LoginPanel; +import com.sap.sse.security.ui.loginpanel.LoginPanelCss; import com.sap.sse.security.ui.shared.UserDTO; +/** + * A panel that can be used to implement an administration console. Widgets can be arranged in vertical and horizontal tabs ("L-shape"). + * The top-level element is the vertical tab panel. Widgets may either be added directly as the content of one vertical tab, or a horizontal + * tab panel can be added as the content widget of a vertical tab, in turn holding widgets in horizontal tabs.

+ * + * After constructing an instance of this class, there are three ways for adding widgets:

    + *
  • {@link #addToVerticalTabPanel(RefreshableAdminConsolePanel, String, AdminConsoleFeatures) adds a widget as a content element + * of a vertical tab
  • + *
  • {@link #addVerticalTab(String, String, AdminConsoleFeatures) creates a horizontal tab panel and adds it as a content element of + * a vertical tab
  • + *
  • {@link #addToTabPanel(TabLayoutPanel, RefreshableAdminConsolePanel, String, AdminConsoleFeatures) adds a widget as a content element + * of a horizontal tab
  • + *
+ * + * Widgets to be added need to be wrapped as {@link RefreshableAdminConsolePanel} holding the widget and receiving the refresh call when + * the widget is shown because the user has selected the tab. If the component doesn't require any refresh logic, an instance of + * {@link DefaultRefreshableAdminConsolePanel} can be used to wrap the widget.

+ * + * After the widgets have been added, {@link #initUI()} must be called to assemble all tabs for the current user's roles. The {@link #initUI()} + * method must be called each time more widgets have been added dynamically.

+ * + * For each widget added, a {@link AdminConsoleFeatures feature} needs to be specified. The feature tells the roles of which the logged-in user + * needs to have at least one in order to see the tab. When the user changes or has his/her roles updated the set of tabs visible will be + * adjusted according to the new roles available for the logged-in user.

+ * + * @author Axel Uhl (D043530) + * + */ public class AdminConsolePanel extends DockLayoutPanel { private final UserService userService; @@ -89,7 +117,9 @@ public class AdminConsolePanel extends DockLayoutPanel { } } - public AdminConsolePanel(UserService userService, BuildVersionRetriever buildVersionRetriever, Label persistentAlertLabel, String releaseNotesAnchorLabel, String releaseNotesURL, ErrorReporter errorReporter) { + public AdminConsolePanel(UserService userService, BuildVersionRetriever buildVersionRetriever, + Label persistentAlertLabel, String releaseNotesAnchorLabel, String releaseNotesURL, + ErrorReporter errorReporter, LoginPanelCss loginPanelCss) { super(Unit.EM); this.userService = userService; roleSpecificTabs = new LinkedHashMap<>(); @@ -119,8 +149,7 @@ public class AdminConsolePanel extends DockLayoutPanel { final DockPanel informationPanel = new DockPanel(); informationPanel.setSize("100%", "95%"); informationPanel.setSpacing(10); - informationPanel.add(new LoginPanel(SecurityStylesheetResources.INSTANCE.css(), getUserService()), - DockPanel.WEST); + informationPanel.add(new LoginPanel(loginPanelCss, getUserService()), DockPanel.WEST); informationPanel.add(persistentAlertLabel, DockPanel.CENTER); SystemInformationPanel sysinfoPanel = new SystemInformationPanel(buildVersionRetriever, errorReporter); sysinfoPanel.ensureDebugId("SystemInformation"); @@ -130,20 +159,27 @@ public class AdminConsolePanel extends DockLayoutPanel { informationPanel.setCellHorizontalAlignment(sysinfoPanel, HasHorizontalAlignment.ALIGN_RIGHT); this.addSouth(informationPanel, 2.5); this.add(topLevelTabPanel); - createUI(releaseNotesURL); - } - - private UserService getUserService() { - return userService; } - private void createUI(String releaseNotesURL) { + /** + * Invoke this method after having added all panels using + * {@link #addToTabPanel(TabLayoutPanel, RefreshableAdminConsolePanel, String, AdminConsoleFeatures)} or + * {@link #addToVerticalTabPanel(RefreshableAdminConsolePanel, String, AdminConsoleFeatures)} or + * {@link #addVerticalTab(String, String, AdminConsoleFeatures)}. Tabs can also dynamically be added after calling + * this method, but then this method needs to be invoked again to ensure that all all tabs are properly displayed + * for the current panel's state. + */ + public void initUI() { updateTabDisplayForCurrentUser(getUserService().getCurrentUser()); if (topLevelTabPanel.getWidgetCount() > 0) { topLevelTabPanel.selectTab(0); } } + private UserService getUserService() { + return userService; + } + private static interface VerticalOrHorizontalTabLayoutPanel { void add(Widget child, String text, boolean asHtml); diff --git a/java/com.sap.sse.gwt.adminconsole/src/com/sap/sse/gwt/adminconsole/DefaultRefreshableAdminConsolePanel.java b/java/com.sap.sse.gwt.adminconsole/src/com/sap/sse/gwt/adminconsole/DefaultRefreshableAdminConsolePanel.java new file mode 100755 index 00000000000..e3189a00b54 --- /dev/null +++ b/java/com.sap.sse.gwt.adminconsole/src/com/sap/sse/gwt/adminconsole/DefaultRefreshableAdminConsolePanel.java @@ -0,0 +1,20 @@ +package com.sap.sse.gwt.adminconsole; + +import com.google.gwt.user.client.ui.Widget; + +public class DefaultRefreshableAdminConsolePanel implements RefreshableAdminConsolePanel { + @Override + public void refreshAfterBecomingVisible() { + } + + private final W widget; + + public DefaultRefreshableAdminConsolePanel(W widget) { + this.widget = widget; + } + + @Override + public W getWidget() { + return widget; + } +} From 182445b6c5c2f5194eba501a8e0eb10a8d7f3b0e Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Thu, 6 Nov 2014 21:00:35 +0100 Subject: [PATCH 36/50] added module declaration for reusable adminconsole component --- ...WT Remote Profiling (Run-Mode only).launch | 1 + java/com.sap.sailing.gwt.ui/SailingGWT.launch | 19 +++++++++++++++++++ .../sap/sailing/gwt/ui/AdminConsole.gwt.xml | 1 + .../SailingServer (No Proxy).launch | 2 +- ...ailingServer (No Proxy, Cached MTB).launch | 2 +- ...ingServer (No Proxy, Jetty on 8889).launch | 2 +- ...o Proxy, Jetty on 8889, Cached MTB).launch | 2 +- ...ver (No Proxy, Remote Debug SAP VM).launch | 2 +- ...ailingServer (No Proxy, winddbTest).launch | 2 +- .../SailingServer (Proxy).launch | 2 +- ...Server (Proxy, Remote Debug SAP VM).launch | 2 +- ...Proxy, SwissTiming Live Simulation).launch | 2 +- .../SailingServer (Proxy, winddbTest).launch | 2 +- .../src/com/sap/sse/gwt/AdminConsole.gwt.xml | 5 +++++ 14 files changed, 36 insertions(+), 10 deletions(-) create mode 100755 java/com.sap.sse.gwt.adminconsole/src/com/sap/sse/gwt/AdminConsole.gwt.xml diff --git a/java/com.sap.sailing.gwt.ui/SailingGWT Remote Profiling (Run-Mode only).launch b/java/com.sap.sailing.gwt.ui/SailingGWT Remote Profiling (Run-Mode only).launch index 7b22e069710..0eb43530370 100644 --- a/java/com.sap.sailing.gwt.ui/SailingGWT Remote Profiling (Run-Mode only).launch +++ b/java/com.sap.sailing.gwt.ui/SailingGWT Remote Profiling (Run-Mode only).launch @@ -47,6 +47,7 @@ + diff --git a/java/com.sap.sailing.gwt.ui/SailingGWT.launch b/java/com.sap.sailing.gwt.ui/SailingGWT.launch index d0a079cb7fa..00c608ff9af 100755 --- a/java/com.sap.sailing.gwt.ui/SailingGWT.launch +++ b/java/com.sap.sailing.gwt.ui/SailingGWT.launch @@ -3,6 +3,24 @@ + + + + + + + + + + + + + + + + + + @@ -45,6 +63,7 @@ + diff --git a/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/AdminConsole.gwt.xml b/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/AdminConsole.gwt.xml index 29bb20c7f2a..5d4eaa55c91 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/AdminConsole.gwt.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/AdminConsole.gwt.xml @@ -30,6 +30,7 @@ + diff --git a/java/com.sap.sailing.server/SailingServer (No Proxy).launch b/java/com.sap.sailing.server/SailingServer (No Proxy).launch index 4b4688fe427..5f025ef3089 100755 --- a/java/com.sap.sailing.server/SailingServer (No Proxy).launch +++ b/java/com.sap.sailing.server/SailingServer (No Proxy).launch @@ -33,5 +33,5 @@ - + diff --git a/java/com.sap.sailing.server/SailingServer (No Proxy, Cached MTB).launch b/java/com.sap.sailing.server/SailingServer (No Proxy, Cached MTB).launch index 897ccb4758c..9704a6cf5a8 100644 --- a/java/com.sap.sailing.server/SailingServer (No Proxy, Cached MTB).launch +++ b/java/com.sap.sailing.server/SailingServer (No Proxy, Cached MTB).launch @@ -32,5 +32,5 @@ - + diff --git a/java/com.sap.sailing.server/SailingServer (No Proxy, Jetty on 8889).launch b/java/com.sap.sailing.server/SailingServer (No Proxy, Jetty on 8889).launch index fc59da93dfb..d455f6e68cb 100644 --- a/java/com.sap.sailing.server/SailingServer (No Proxy, Jetty on 8889).launch +++ b/java/com.sap.sailing.server/SailingServer (No Proxy, Jetty on 8889).launch @@ -26,6 +26,6 @@ - + diff --git a/java/com.sap.sailing.server/SailingServer (No Proxy, Jetty on 8889, Cached MTB).launch b/java/com.sap.sailing.server/SailingServer (No Proxy, Jetty on 8889, Cached MTB).launch index 60c33c092f6..2a38b52f0cb 100644 --- a/java/com.sap.sailing.server/SailingServer (No Proxy, Jetty on 8889, Cached MTB).launch +++ b/java/com.sap.sailing.server/SailingServer (No Proxy, Jetty on 8889, Cached MTB).launch @@ -27,6 +27,6 @@ - + diff --git a/java/com.sap.sailing.server/SailingServer (No Proxy, Remote Debug SAP VM).launch b/java/com.sap.sailing.server/SailingServer (No Proxy, Remote Debug SAP VM).launch index 8b71f54337d..e94e6f41734 100755 --- a/java/com.sap.sailing.server/SailingServer (No Proxy, Remote Debug SAP VM).launch +++ b/java/com.sap.sailing.server/SailingServer (No Proxy, Remote Debug SAP VM).launch @@ -26,5 +26,5 @@ - + diff --git a/java/com.sap.sailing.server/SailingServer (No Proxy, winddbTest).launch b/java/com.sap.sailing.server/SailingServer (No Proxy, winddbTest).launch index 86ed3f01ba2..8de9e6e5d5e 100644 --- a/java/com.sap.sailing.server/SailingServer (No Proxy, winddbTest).launch +++ b/java/com.sap.sailing.server/SailingServer (No Proxy, winddbTest).launch @@ -32,5 +32,5 @@ - + diff --git a/java/com.sap.sailing.server/SailingServer (Proxy).launch b/java/com.sap.sailing.server/SailingServer (Proxy).launch index 1a9a9c0db2f..ed04e3ed9a8 100644 --- a/java/com.sap.sailing.server/SailingServer (Proxy).launch +++ b/java/com.sap.sailing.server/SailingServer (Proxy).launch @@ -33,6 +33,6 @@ - + diff --git a/java/com.sap.sailing.server/SailingServer (Proxy, Remote Debug SAP VM).launch b/java/com.sap.sailing.server/SailingServer (Proxy, Remote Debug SAP VM).launch index 8733922119e..ab284d469db 100644 --- a/java/com.sap.sailing.server/SailingServer (Proxy, Remote Debug SAP VM).launch +++ b/java/com.sap.sailing.server/SailingServer (Proxy, Remote Debug SAP VM).launch @@ -26,5 +26,5 @@ - + diff --git a/java/com.sap.sailing.server/SailingServer (Proxy, SwissTiming Live Simulation).launch b/java/com.sap.sailing.server/SailingServer (Proxy, SwissTiming Live Simulation).launch index 8e966403474..facdc0436e8 100644 --- a/java/com.sap.sailing.server/SailingServer (Proxy, SwissTiming Live Simulation).launch +++ b/java/com.sap.sailing.server/SailingServer (Proxy, SwissTiming Live Simulation).launch @@ -25,5 +25,5 @@ - + diff --git a/java/com.sap.sailing.server/SailingServer (Proxy, winddbTest).launch b/java/com.sap.sailing.server/SailingServer (Proxy, winddbTest).launch index 17317448558..034d1f5cc73 100644 --- a/java/com.sap.sailing.server/SailingServer (Proxy, winddbTest).launch +++ b/java/com.sap.sailing.server/SailingServer (Proxy, winddbTest).launch @@ -26,6 +26,6 @@ - + diff --git a/java/com.sap.sse.gwt.adminconsole/src/com/sap/sse/gwt/AdminConsole.gwt.xml b/java/com.sap.sse.gwt.adminconsole/src/com/sap/sse/gwt/AdminConsole.gwt.xml new file mode 100755 index 00000000000..9caab14a1ba --- /dev/null +++ b/java/com.sap.sse.gwt.adminconsole/src/com/sap/sse/gwt/AdminConsole.gwt.xml @@ -0,0 +1,5 @@ + + + + + From fda15b0f309026010105f1925a9b81651a0fbedb Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Thu, 6 Nov 2014 21:19:09 +0100 Subject: [PATCH 37/50] set focus in username field in LoginView in attach handler; fixed advanced tab's title --- .../ui/adminconsole/AdminConsoleEntryPoint.java | 2 +- .../sse/gwt/adminconsole/AdminConsolePanel.java | 14 +------------- .../com/sap/sse/security/ui/login/LoginView.java | 10 ++++++++-- java/target/configuration/security.properties | 6 +++--- 4 files changed, 13 insertions(+), 19 deletions(-) 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 03e9d378b8f..03d1d7026ad 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 @@ -197,7 +197,7 @@ public class AdminConsoleEntryPoint extends AbstractSailingEntryPoint implements /* ADVANCED */ - final TabLayoutPanel advancedTabPanel = panel.addVerticalTab(getStringMessages().connectors(), + final TabLayoutPanel advancedTabPanel = panel.addVerticalTab(getStringMessages().advanced(), "AdvancedPanel", SailingAdminConsoleFeatures.MANAGE_REPLICATION); final ReplicationPanel replicationPanel = new ReplicationPanel(sailingService, this, getStringMessages()); panel.addToTabPanel(advancedTabPanel, new DefaultRefreshableAdminConsolePanel(replicationPanel), 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 e66d5ef458c..4a3b5635fca 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 @@ -197,19 +197,7 @@ public class AdminConsolePanel extends DockLayoutPanel { AbstractEntryPoint.setTabPanelSize(newTabPanel, "100%", "100%"); newTabPanel.addSelectionHandler(tabSelectionHandler); newTabPanel.ensureDebugId(tabDebugId); - VerticalOrHorizontalTabLayoutPanel wrapper = new VerticalOrHorizontalTabLayoutPanel() { - @Override - public void add(Widget child, String text, boolean asHtml) { - newTabPanel.add(child, text, asHtml); - newTabPanel.forceLayout(); - } - - @Override - public void remove(Widget child) { - newTabPanel.remove(child); - } - }; - remeberWidgetLocationAndFeature(wrapper, newTabPanel, tabTitle, feature); + remeberWidgetLocationAndFeature(topLevelTabPanelWrapper, newTabPanel, tabTitle, feature); return newTabPanel; } diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java index af49844d940..0437fe347e9 100755 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/login/LoginView.java @@ -4,6 +4,8 @@ import java.util.Collections; import com.google.gwt.core.client.GWT; import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.event.logical.shared.AttachEvent; +import com.google.gwt.event.logical.shared.AttachEvent.Handler; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; import com.google.gwt.uibinder.client.UiHandler; @@ -49,8 +51,6 @@ public class LoginView extends Composite { LoginViewResources.INSTANCE.css().ensureInjected(); initWidget(uiBinder.createAndBindUi(this)); this.appName.setText(appName); - - userNameTextBox.setWatermark(StringMessages.INSTANCE.username()); userNameTextBox.setWatermarkStyleName(LoginViewResources.INSTANCE.css().textInput_watermark()); passwordTextBox.setWatermark(StringMessages.INSTANCE.password()); @@ -60,6 +60,12 @@ public class LoginView extends Composite { oAuthPanel.add(new OAuthLogin(userManagementService)); userNameTextBox.setFocus(true); DialogUtils.linkEnterToButton(loginButton, userNameTextBox, passwordTextBox); + userNameTextBox.addAttachHandler(new Handler() { + @Override + public void onAttachOrDetach(AttachEvent event) { + userNameTextBox.setFocus(true); + } + }); } @UiHandler("loginButton") diff --git a/java/target/configuration/security.properties b/java/target/configuration/security.properties index 9300c46c3aa..8c69b875c76 100644 --- a/java/target/configuration/security.properties +++ b/java/target/configuration/security.properties @@ -3,14 +3,14 @@ mail.enabled = false # For production: #mail.from = noreply@sapsailing.com # For testing: -mail.from = axel.uhl@sap.com +mail.from = uhl@homemp3.dyndns.org mail.transport.protocol = smtp # For production: #mail.smtp.host = 127.0.0.1 # For testing internally: -mail.smtp.host = mail.sap.corp +#mail.smtp.host = mail.sap.corp # For testing externally: -#mail.smtp.host = sapsailing.com +mail.smtp.host = www.axel-uhl.de mail.smtp.port = 25 mail.smtp.auth = true mail.smtp.user = From 93988dcf64b723a1ae5fb54f6013939575678b2a Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Thu, 6 Nov 2014 21:29:46 +0100 Subject: [PATCH 38/50] added adminconsole module to top-level pom.xml --- java/com.sap.sailing.gwt.ui/pom.xml | 6 ++++++ java/pom.xml | 1 + 2 files changed, 7 insertions(+) diff --git a/java/com.sap.sailing.gwt.ui/pom.xml b/java/com.sap.sailing.gwt.ui/pom.xml index 8cc6e385acf..5485f83e539 100644 --- a/java/com.sap.sailing.gwt.ui/pom.xml +++ b/java/com.sap.sailing.gwt.ui/pom.xml @@ -65,6 +65,12 @@ 1.0.0-SNAPSHOT sources + + com.sap.sailing + com.sap.sse.gwt.adminconsole + 1.0.0-SNAPSHOT + sources + com.sap.sailing com.sap.sailing.datamining.shared diff --git a/java/pom.xml b/java/pom.xml index 9ec61be422b..72de8ff10d5 100755 --- a/java/pom.xml +++ b/java/pom.xml @@ -17,6 +17,7 @@ com.sap.sse.common com.sap.sse.mongodb com.sap.sse.gwt + com.sap.sse.gwt.adminconsole com.sap.sse.datamining com.sap.sse.datamining.shared com.sap.sse.datamining.test From e4c496692769847b90260a189e751cfac4ee554d Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Thu, 6 Nov 2014 21:31:33 +0100 Subject: [PATCH 39/50] fixed selection style in CellTablePO for selenium --- .../src/com/sap/sailing/selenium/pages/gwt/CellTablePO.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/gwt/CellTablePO.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/gwt/CellTablePO.java index 47feef3dc0e..9f5f4f67258 100644 --- a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/gwt/CellTablePO.java +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/gwt/CellTablePO.java @@ -51,7 +51,7 @@ public abstract class CellTablePO extends PageArea { private static final String LOADING_ANIMATION_XPATH = "./td/div/div/div/img"; - protected static final String SELECTED_ROW_CSS_CLASS = "GICBSJYCCQ"; //$NON-NLS-1$ + protected static final String SELECTED_ROW_CSS_CLASS = "GP42FT2DCQ"; //$NON-NLS-1$ private static final String LOADING_ANIMATION_IMAGE = "data:image/gif;base64," + //$NON-NLS-1$ "R0lGODlhKwALAPEAAP///0tKSqampktKSiH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGx" + //$NON-NLS-1$ From 5ec1adcb18afdf7d412740b0208455e0886b588c Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Thu, 6 Nov 2014 21:31:33 +0100 Subject: [PATCH 40/50] fixed selection style in CellTablePO for selenium --- .../src/com/sap/sailing/selenium/pages/gwt/CellTablePO.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/gwt/CellTablePO.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/gwt/CellTablePO.java index 47feef3dc0e..9f5f4f67258 100644 --- a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/gwt/CellTablePO.java +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/gwt/CellTablePO.java @@ -51,7 +51,7 @@ public abstract class CellTablePO extends PageArea { private static final String LOADING_ANIMATION_XPATH = "./td/div/div/div/img"; - protected static final String SELECTED_ROW_CSS_CLASS = "GICBSJYCCQ"; //$NON-NLS-1$ + protected static final String SELECTED_ROW_CSS_CLASS = "GP42FT2DCQ"; //$NON-NLS-1$ private static final String LOADING_ANIMATION_IMAGE = "data:image/gif;base64," + //$NON-NLS-1$ "R0lGODlhKwALAPEAAP///0tKSqampktKSiH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGx" + //$NON-NLS-1$ From 450270f4f4e5892f65b80f8c000f9763a601df74 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Thu, 6 Nov 2014 23:38:54 +0100 Subject: [PATCH 41/50] added dependency on com.google.gwt.osgi to adminconsole bundle --- ...WT Remote Profiling (Run-Mode only).launch | 118 +++++++------- java/com.sap.sailing.gwt.ui/SailingGWT.launch | 150 +++++++++--------- .../META-INF/MANIFEST.MF | 3 +- java/com.sap.sse.gwt/META-INF/MANIFEST.MF | 2 +- .../META-INF/MANIFEST.MF | 2 +- 5 files changed, 138 insertions(+), 137 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/SailingGWT Remote Profiling (Run-Mode only).launch b/java/com.sap.sailing.gwt.ui/SailingGWT Remote Profiling (Run-Mode only).launch index 0eb43530370..7950be721bc 100644 --- a/java/com.sap.sailing.gwt.ui/SailingGWT Remote Profiling (Run-Mode only).launch +++ b/java/com.sap.sailing.gwt.ui/SailingGWT Remote Profiling (Run-Mode only).launch @@ -1,59 +1,59 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/java/com.sap.sailing.gwt.ui/SailingGWT.launch b/java/com.sap.sailing.gwt.ui/SailingGWT.launch index 00c608ff9af..83509b551f3 100755 --- a/java/com.sap.sailing.gwt.ui/SailingGWT.launch +++ b/java/com.sap.sailing.gwt.ui/SailingGWT.launch @@ -1,75 +1,75 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/java/com.sap.sse.gwt.adminconsole/META-INF/MANIFEST.MF b/java/com.sap.sse.gwt.adminconsole/META-INF/MANIFEST.MF index de1bfdb4df1..53d611231c8 100755 --- a/java/com.sap.sse.gwt.adminconsole/META-INF/MANIFEST.MF +++ b/java/com.sap.sse.gwt.adminconsole/META-INF/MANIFEST.MF @@ -5,7 +5,8 @@ Bundle-SymbolicName: com.sap.sse.gwt.adminconsole Bundle-Version: 1.0.0.qualifier Bundle-Vendor: SAP Bundle-RequiredExecutionEnvironment: JavaSE-1.7 -Require-Bundle: com.sap.sse.gwt, +Require-Bundle: com.google.gwt.osgi;bundle-version="2.6.1", + com.sap.sse.gwt, com.sap.sse.security.ui, com.sap.sse.security, com.sap.sse.common diff --git a/java/com.sap.sse.gwt/META-INF/MANIFEST.MF b/java/com.sap.sse.gwt/META-INF/MANIFEST.MF index 5e1a4f18881..ad1623902c3 100644 --- a/java/com.sap.sse.gwt/META-INF/MANIFEST.MF +++ b/java/com.sap.sse.gwt/META-INF/MANIFEST.MF @@ -5,7 +5,7 @@ Bundle-SymbolicName: com.sap.sse.gwt Bundle-Version: 1.0.0.qualifier Bundle-Vendor: SAP Bundle-RequiredExecutionEnvironment: JavaSE-1.7 -Require-Bundle: com.google.gwt.osgi;bundle-version="2.6.0", +Require-Bundle: com.google.gwt.osgi;bundle-version="2.6.1", com.sap.sse.common;bundle-version="1.0.0" Bundle-ActivationPolicy: lazy Import-Package: javax.servlet;version="2.6.0", 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 e9dc707c36d..e7676a6f714 100644 --- a/java/com.sap.sse.security.ui/META-INF/MANIFEST.MF +++ b/java/com.sap.sse.security.ui/META-INF/MANIFEST.MF @@ -12,7 +12,7 @@ Bundle-ActivationPolicy: lazy Bundle-ClassPath: WEB-INF/classes/ Require-Bundle: javax.servlet;bundle-version="2.5.0", com.sap.sse.gwt, - com.google.gwt.osgi;bundle-version="2.6.0", + com.google.gwt.osgi;bundle-version="2.6.1", com.sap.sse.security, org.json.simple, com.sap.sailing.domain.common, From 5e0aad63d77237703125b2a59a7d718e6bacbd6e Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Fri, 7 Nov 2014 07:09:33 +0100 Subject: [PATCH 42/50] removed 1.6 veraion conatraint from adminconaole bundle --- java/com.sap.sse.gwt.adminconsole/pom.xml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/java/com.sap.sse.gwt.adminconsole/pom.xml b/java/com.sap.sse.gwt.adminconsole/pom.xml index cd1554a7678..85234082b61 100755 --- a/java/com.sap.sse.gwt.adminconsole/pom.xml +++ b/java/com.sap.sse.gwt.adminconsole/pom.xml @@ -16,10 +16,6 @@ org.eclipse.tycho tycho-compiler-plugin ${tycho-version} - - 1.6 - 1.6 - org.eclipse.tycho From b49902ec3d3fc1896a15256c966f8cf334c4fe1a Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Fri, 7 Nov 2014 09:00:37 +0100 Subject: [PATCH 43/50] included UserManagementPanel in refactored AdminConsole --- ...WT Remote Profiling (Run-Mode only).launch | 118 +++++++------- java/com.sap.sailing.gwt.ui/SailingGWT.launch | 150 +++++++++--------- .../adminconsole/AdminConsoleEntryPoint.java | 6 + .../SailingAdminConsoleFeatures.java | 1 + .../sailing/gwt/ui/client/StringMessages.java | 1 + .../gwt/ui/client/StringMessages.properties | 3 +- .../ui/client/StringMessages_de.properties | 3 +- .../ui/client/StringMessages_ru.properties | 3 +- .../META-INF/MANIFEST.MF | 2 + 9 files changed, 150 insertions(+), 137 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/SailingGWT Remote Profiling (Run-Mode only).launch b/java/com.sap.sailing.gwt.ui/SailingGWT Remote Profiling (Run-Mode only).launch index 7950be721bc..0eb43530370 100644 --- a/java/com.sap.sailing.gwt.ui/SailingGWT Remote Profiling (Run-Mode only).launch +++ b/java/com.sap.sailing.gwt.ui/SailingGWT Remote Profiling (Run-Mode only).launch @@ -1,59 +1,59 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/java/com.sap.sailing.gwt.ui/SailingGWT.launch b/java/com.sap.sailing.gwt.ui/SailingGWT.launch index 83509b551f3..00c608ff9af 100755 --- a/java/com.sap.sailing.gwt.ui/SailingGWT.launch +++ b/java/com.sap.sailing.gwt.ui/SailingGWT.launch @@ -1,75 +1,75 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 03d1d7026ad..6e606994cb2 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 @@ -37,6 +37,8 @@ import com.sap.sse.gwt.adminconsole.SystemInformationPanel; import com.sap.sse.gwt.client.EntryPointHelper; import com.sap.sse.gwt.client.async.AsyncActionsExecutor; import com.sap.sse.gwt.client.async.MarkedAsyncCallback; +import com.sap.sse.security.ui.client.component.UserManagementPanel; +import com.sap.sse.security.ui.client.i18n.StringMessages; import com.sap.sse.security.ui.loginpanel.LoginPanel; public class AdminConsoleEntryPoint extends AbstractSailingEntryPoint implements RegattaRefresher, LeaderboardsRefresher, LeaderboardGroupsRefresher { @@ -217,6 +219,10 @@ public class AdminConsoleEntryPoint extends AbstractSailingEntryPoint implements panel.addToTabPanel(advancedTabPanel, new DefaultRefreshableAdminConsolePanel(deviceConfigurationUserPanel), getStringMessages().deviceConfiguration(), SailingAdminConsoleFeatures.MANAGE_DEVICE_CONFIGURATION); + final UserManagementPanel userManagementPanel = new UserManagementPanel(getUserService(), StringMessages.INSTANCE); + panel.addToTabPanel(advancedTabPanel, new DefaultRefreshableAdminConsolePanel(userManagementPanel), + getStringMessages().userManagement(), SailingAdminConsoleFeatures.MANAGE_USERS); + panel.initUI(); fillRegattas(); fillLeaderboardGroups(); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SailingAdminConsoleFeatures.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SailingAdminConsoleFeatures.java index e8dd3f4a747..bdaecc248b3 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SailingAdminConsoleFeatures.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SailingAdminConsoleFeatures.java @@ -21,4 +21,5 @@ public interface SailingAdminConsoleFeatures { final AdminConsoleFeatures MANAGE_REPLICATION = new AdminConsoleFeatures("MANAGE_EVENTS", UserRoles.administrator.getRolename()); final AdminConsoleFeatures MANAGE_MASTERDATA_IMPORT = new AdminConsoleFeatures("MANAGE_EVENTS", UserRoles.administrator.getRolename()); final AdminConsoleFeatures MANAGE_DEVICE_CONFIGURATION = new AdminConsoleFeatures("MANAGE_EVENTS", UserRoles.eventmanager.getRolename(), UserRoles.administrator.getRolename()); + final AdminConsoleFeatures MANAGE_USERS = new AdminConsoleFeatures("MANAGE_USERS", UserRoles.administrator.getRolename()); } 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 c54d4a9ac3b..51bb9da655d 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 @@ -1110,4 +1110,5 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages { String remoteProcedureCall(); String serverReplies(); String errorCommunicatingWithServer(); + String userManagement(); } 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 ad35b6d7193..9e27c0733e6 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 @@ -1091,4 +1091,5 @@ scoringSchemeHighPointFirstGetsTenOrEightDescription=Score in points. Winner sco serverError=An error occurred while attempting to contact the server. Please check your network connection and try again. remoteProcedureCall=Remote Procedure Call serverReplies=Server replies -errorCommunicatingWithServer=Error communicating with server \ No newline at end of file +errorCommunicatingWithServer=Error communicating with server +userManagement=User Management \ 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 b5fd9b5db96..984e4a22e05 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 @@ -1085,4 +1085,5 @@ scoringSchemeHighPointFirstGetsTenOrEightDescription=High Point System, der Gewi serverError=Es ist ein Fehler beim Versuch aufgetreten, den Server zu kontaktieren. Bitte Netzwerkverbindung prüfen und erneut versuchen. remoteProcedureCall=Entfernter Prozeduraufruf serverReplies=Server antwortet -errorCommunicatingWithServer=Fehler bei der Kommunikation mit dem Server \ No newline at end of file +errorCommunicatingWithServer=Fehler bei der Kommunikation mit dem Server +userManagement=Benutzerverwaltung \ 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_ru.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ru.properties index e16cd7e8c7a..ad4854113f4 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ru.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ru.properties @@ -1034,4 +1034,5 @@ scoringSchemeHighPointFirstGetsTenOrEightDescription=Score in points. Winner sco serverError=An error occurred while attempting to contact the server. Please check your network connection and try again. remoteProcedureCall=Remote Procedure Call serverReplies=Server replies -errorCommunicatingWithServer=Error communicating with server \ No newline at end of file +errorCommunicatingWithServer=Error communicating with server +userManagement=User Management \ No newline at end of file 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 e7676a6f714..e157e0ce445 100644 --- a/java/com.sap.sse.security.ui/META-INF/MANIFEST.MF +++ b/java/com.sap.sse.security.ui/META-INF/MANIFEST.MF @@ -22,6 +22,8 @@ Require-Bundle: javax.servlet;bundle-version="2.5.0", org.apache.shiro.web;bundle-version="1.2.2" Web-ContextPath: /security/ui Export-Package: com.sap.sse.security.ui.client, + com.sap.sse.security.ui.client.component, + com.sap.sse.security.ui.client.i18n, com.sap.sse.security.ui.loginpanel, com.sap.sse.security.ui.server, com.sap.sse.security.ui.shared From bdbb33bfa801994a906ac979fa978f957a79864f Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Fri, 7 Nov 2014 09:07:00 +0100 Subject: [PATCH 44/50] turned user icon in LoginPanel into a link that leads to the EditProfile page --- .../com/sap/sse/security/ui/client/i18n/StringMessages.java | 1 + .../sse/security/ui/client/i18n/StringMessages.properties | 3 ++- .../sse/security/ui/client/i18n/StringMessages_de.properties | 3 ++- .../java/com/sap/sse/security/ui/loginpanel/LoginPanel.java | 5 +++-- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.java b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.java index 4abb03d6e6c..cf947e3d6cb 100755 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.java +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.java @@ -78,4 +78,5 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages { String remoteProcedureCall(); String serverReplies(); String errorCommunicatingWithServer(); + String editProfile(); } diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.properties b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.properties index b9bb5a19e65..739d7da62c6 100755 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.properties +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages.properties @@ -70,4 +70,5 @@ enterUsernameOrEmail=Enter user name or e-mail address serverError=An error occurred while attempting to contact the server. Please check your network connection and try again. remoteProcedureCall=Remote Procedure Call serverReplies=Server replies -errorCommunicatingWithServer=Error communicating with server \ No newline at end of file +errorCommunicatingWithServer=Error communicating with server +editProfile=Edit user profile \ No newline at end of file diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_de.properties b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_de.properties index a70c70db082..db4cbca232a 100755 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_de.properties +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_de.properties @@ -70,4 +70,5 @@ enterUsernameOrEmail=Benutzernamen oder e-Mail-Adresse angeben serverError=Es ist ein Fehler beim Versuch aufgetreten, den Server zu kontaktieren. Bitte Netzwerkverbindung prüfen und erneut versuchen. remoteProcedureCall=Entfernter Prozeduraufruf serverReplies=Server antwortet -errorCommunicatingWithServer=Fehler bei der Kommunikation mit dem Server \ No newline at end of file +errorCommunicatingWithServer=Fehler bei der Kommunikation mit dem Server +editProfile=Benutzerprofil bearbeiten \ No newline at end of file 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 bda90d9d2f0..2234992f63c 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 @@ -9,7 +9,6 @@ import com.google.gwt.resources.client.ImageResource; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.Anchor; -import com.google.gwt.user.client.ui.HTML; import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.ImageResourceRenderer; import com.google.gwt.user.client.ui.Label; @@ -111,7 +110,9 @@ public class LoginPanel extends HorizontalPanel implements UserStatusEventHandle final ImageResource userImageResource = IconResources.INSTANCE.userIcon(); ImageResourceRenderer renderer = new ImageResourceRenderer(); - final HTML imageContainer = new HTML(renderer.render(userImageResource)); + final Anchor imageContainer = new Anchor(renderer.render(userImageResource)); + imageContainer.setHref(EntryPointLinkFactory.createPasswordResetLink(new HashMap())); + imageContainer.setTitle(stringMessages.editProfile()); imageContainer.getElement().addClassName(css.userIcon()); add(imageContainer); welcomeMessage.getElement().addClassName(css.welcomeMessage()); From 52a1b98b183b11858591e1134cdfb8e0b97b3df3 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Fri, 7 Nov 2014 10:19:50 +0000 Subject: [PATCH 45/50] Renamed GoogleEarth to MapRenewal --- wiki/planning/{GoogleEarth.md => MapRenewal.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename wiki/planning/{GoogleEarth.md => MapRenewal.md} (100%) diff --git a/wiki/planning/GoogleEarth.md b/wiki/planning/MapRenewal.md similarity index 100% rename from wiki/planning/GoogleEarth.md rename to wiki/planning/MapRenewal.md From bb8174ed66dc6f2f6b90b801ab9ace45d59c68d8 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Fri, 7 Nov 2014 10:20:51 +0000 Subject: [PATCH 46/50] Updated planning (markdown) --- wiki/planning.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wiki/planning.md b/wiki/planning.md index ab5db17825f..e7699b659c5 100644 --- a/wiki/planning.md +++ b/wiki/planning.md @@ -48,7 +48,7 @@ The links above lead to short write-ups of the respective business case behind t [[Live Audio Streaming Support|wiki/planning/LiveAudioStreaming]] -[[Renewing the Map (Maps v2.0 discontinued) |wiki/planning/GoogleEarth]] +[[Renewing the Map |wiki/planning/MapRenewal]] [[Mobile Version SAP Sailing Analytics|wiki/planning/MobileSailingAnalytics]] From edcaa9605794d82cefac28544326dab42cb7f3bb Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Fri, 7 Nov 2014 10:22:17 +0000 Subject: [PATCH 47/50] Updated offseason 2014 2015 (markdown) --- wiki/planning/offseason-2014-2015.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wiki/planning/offseason-2014-2015.md b/wiki/planning/offseason-2014-2015.md index 7101a89ad1f..99c84d828fe 100644 --- a/wiki/planning/offseason-2014-2015.md +++ b/wiki/planning/offseason-2014-2015.md @@ -30,7 +30,7 @@ The map visualization currently has two main drawbacks: * the map doesn't rotate * boat, water and land visualization is not sufficiently appealing -For the rotation problem we see two possible solutions: transforming coordinates while staying on Google Maps; or replacing the map provider, probably using OpenStreetMap. For the "appeal" issue we seem to agree that the use of plugin technology is to be avoided, and so the options have to be recruited from HTML5/CSS-land. In particular, we believe that better boat visualizations are more or less a matter of a good graphics designer painting hull and sail constellations for specific boat classes. Water visualizations will have to be experimented with on the basis of HTML5 canvas technology (performance, appeal). Land visualization would require satellite imagery with precise geo-location information to fit into a map provider and may be more difficult. +For the rotation problem we see two possible solutions: transforming coordinates while staying on Google Maps; or replacing the map provider, probably using OpenStreetMap. For the "appeal" issue we seem to agree that the use of plugin technology is to be avoided, and so the options have to be recruited from HTML5/CSS-land. In particular, we believe that better boat visualizations are more or less a matter of a good graphics designer painting hull and sail constellations for specific boat classes. Water visualizations will have to be experimented with on the basis of HTML5 canvas technology (performance, appeal). Land visualization would require satellite imagery with precise geo-location information to fit into a map provider and may be more difficult. See also [[here | /wiki/planning/MapRenewal]] for the discussion. ## Volume Business (Ubilabs, Fredrik, Jan) From 73d0de7a0887230c4c480a5e355eecb8bd3ba65b Mon Sep 17 00:00:00 2001 From: Frank Mittag Date: Fri, 7 Nov 2014 11:46:56 +0000 Subject: [PATCH 48/50] Updated offseason 2014 2015 (markdown) --- wiki/planning/offseason-2014-2015.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wiki/planning/offseason-2014-2015.md b/wiki/planning/offseason-2014-2015.md index 99c84d828fe..d4c90566694 100644 --- a/wiki/planning/offseason-2014-2015.md +++ b/wiki/planning/offseason-2014-2015.md @@ -25,10 +25,13 @@ See [http://wiki.sapsailing.com/wiki/planning/usermanagement](http://wiki.sapsai ## Map Visualization Improvements (Christopher, Axel, Frank, Ubilabs) -The map visualization currently has two main drawbacks: +The map visualization currently has some drawbacks: * the map doesn't rotate * boat, water and land visualization is not sufficiently appealing +* boat animation does not work for playspeed > 1 +* the time synchronization of the drawn items is difficult as we use 2 different overlay techniques (google map overlays, HTML overlays) +* performance might become a problem when we go for a fullscreen map in the future with even more overlays (e.g. the leaderboard will become an overlay) For the rotation problem we see two possible solutions: transforming coordinates while staying on Google Maps; or replacing the map provider, probably using OpenStreetMap. For the "appeal" issue we seem to agree that the use of plugin technology is to be avoided, and so the options have to be recruited from HTML5/CSS-land. In particular, we believe that better boat visualizations are more or less a matter of a good graphics designer painting hull and sail constellations for specific boat classes. Water visualizations will have to be experimented with on the basis of HTML5 canvas technology (performance, appeal). Land visualization would require satellite imagery with precise geo-location information to fit into a map provider and may be more difficult. See also [[here | /wiki/planning/MapRenewal]] for the discussion. From e827b40c7bedfc72d5826ac9c2a6649a671f4546 Mon Sep 17 00:00:00 2001 From: Frank Mittag Date: Fri, 7 Nov 2014 11:57:00 +0000 Subject: [PATCH 49/50] Updated offseason 2014 2015 (markdown) --- wiki/planning/offseason-2014-2015.md | 1 + 1 file changed, 1 insertion(+) diff --git a/wiki/planning/offseason-2014-2015.md b/wiki/planning/offseason-2014-2015.md index d4c90566694..d11d52106fa 100644 --- a/wiki/planning/offseason-2014-2015.md +++ b/wiki/planning/offseason-2014-2015.md @@ -8,6 +8,7 @@ The following are the focus areas for the off-season activities until the first - A number of bugs and issues have been recorded during and after the first events run with the newhome implementation. See [our Bugzilla Bug #1928](http://bugzilla.sapsailing.com/bugzilla/show_bug.cgi?id=1928). - Navigation Clean-Up: in several sessions with Ubilabs we learned that the current navigation structure is not yet ideal. Ubilabs will come up with an improved suggestions for the site's overall navigational structure that we then have to jointly implement. + - Better series support: A growing number of events are actually part of a series (all leagues, ESS). This is not sufficiently reflected in the UI as we only have event related views right now. - Regatta Overview: This has so far been the tool for the race committees and regatta organizers. We need to find out whether the newhome implementation takes over the role that so far was fulfilled by the RegattaOverview.html entry point or if we still need a page specifically geared towards this audience. - Live Center support: Media updates and live streams, information coming from the Race Committee App, mixed with the live tracking and scoring information shall constitute the live center content to be implemented in the newhome architecture. - User Management in the UI: we need support for Sign Up/In/Out on all newhome pages and the race viewer. From e1979c5cbbd9d0a449270acd103798dd9d86d775 Mon Sep 17 00:00:00 2001 From: Fredrik Teschke Date: Fri, 7 Nov 2014 16:36:31 +0100 Subject: [PATCH 50/50] split non-polymorphic convert() method into two --- .../gateway/impl/rc/RaceGroupFactory.java | 27 +++++++++++++------ .../impl/rc/RaceGroupJsonExportServlet.java | 9 ++++++- 2 files changed, 27 insertions(+), 9 deletions(-) diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/RaceGroupFactory.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/RaceGroupFactory.java index 312123b3c9e..bfdb4d532f3 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/RaceGroupFactory.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/RaceGroupFactory.java @@ -25,6 +25,7 @@ import com.sap.sailing.domain.base.racegroup.impl.RaceGroupImpl; import com.sap.sailing.domain.base.racegroup.impl.RaceRowImpl; import com.sap.sailing.domain.base.racegroup.impl.SeriesWithRowsImpl; import com.sap.sailing.domain.common.LeaderboardNameConstants; +import com.sap.sailing.domain.leaderboard.FlexibleLeaderboard; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.RegattaLeaderboard; @@ -34,22 +35,32 @@ import com.sap.sailing.domain.leaderboard.RegattaLeaderboard; public class RaceGroupFactory { /** - * Convert given {@link Leaderboard} to a {@link RaceGroup}. + * Convert given {@link RegattaLeaderboard} to a {@link RaceGroup}. * @param leaderboard to be converted. * @return the {@link RaceGroup}. */ - public RaceGroup convert(Leaderboard leaderboard) { + public RaceGroup convert(RegattaLeaderboard leaderboard) { + String name = leaderboard.getName(); + CourseArea courseArea = leaderboard.getDefaultCourseArea(); + Regatta regatta = ((RegattaLeaderboard) leaderboard).getRegatta(); + + Iterable series = getSeries(leaderboard); + + return new RaceGroupImpl(name, regatta.getBoatClass(), courseArea, series, + regatta.getRegattaConfiguration()); + } + + /** + * Convert given {@link FlexibleLeaderboard} to a {@link RaceGroup}. + * @param leaderboard to be converted. + * @return the {@link RaceGroup}. + */ + public RaceGroup convert(FlexibleLeaderboard leaderboard) { String name = leaderboard.getName(); CourseArea courseArea = leaderboard.getDefaultCourseArea(); BoatClass boatClass = null; RegattaConfiguration configuration = null; - - if (leaderboard instanceof RegattaLeaderboard) { - Regatta regatta = ((RegattaLeaderboard) leaderboard).getRegatta(); - boatClass = regatta.getBoatClass(); - configuration = regatta.getRegattaConfiguration(); - } Iterable series = getSeries(leaderboard); diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/RaceGroupJsonExportServlet.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/RaceGroupJsonExportServlet.java index c74029574d4..7f9e3b6adde 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/RaceGroupJsonExportServlet.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/RaceGroupJsonExportServlet.java @@ -12,7 +12,9 @@ import org.json.simple.JSONArray; import com.sap.sailing.domain.base.CourseArea; import com.sap.sailing.domain.base.racegroup.RaceGroup; import com.sap.sailing.domain.common.racelog.RaceLogServletConstants; +import com.sap.sailing.domain.leaderboard.FlexibleLeaderboard; import com.sap.sailing.domain.leaderboard.Leaderboard; +import com.sap.sailing.domain.leaderboard.RegattaLeaderboard; import com.sap.sailing.domain.racelog.RaceLog; import com.sap.sailing.server.gateway.AbstractJsonHttpServlet; import com.sap.sailing.server.gateway.serialization.JsonSerializer; @@ -66,7 +68,12 @@ public class RaceGroupJsonExportServlet extends AbstractJsonHttpServlet { RaceGroupFactory raceGroupFactory = new RaceGroupFactory(); for (Leaderboard leaderboard : getService().getLeaderboards().values()) { if (filterCourseArea.equals(leaderboard.getDefaultCourseArea())) { - RaceGroup raceGroup = raceGroupFactory.convert(leaderboard); + RaceGroup raceGroup = null; + if (leaderboard instanceof RegattaLeaderboard) { + raceGroup = raceGroupFactory.convert((RegattaLeaderboard) leaderboard); + } else if (leaderboard instanceof FlexibleLeaderboard) { + raceGroup = raceGroupFactory.convert((FlexibleLeaderboard) leaderboard); + } result.add(serializer.serialize(raceGroup)); } }