From 61bfa982198e81c3b83ba4754a674c048fbb8ddb Mon Sep 17 00:00:00 2001
From: Axel Uhl
Date: Tue, 3 Dec 2019 00:14:26 +0100
Subject: [PATCH 08/53] trying to "blindly" adapt tracking and race manager app
to extended EventBaseJsonDeserializer constructor
---
.../impl/EventBaseJsonDeserializer.java | 4 ++-
.../tracking/app/utils/CheckinManager.java | 4 ++-
.../app/data/OnlineDataManager.java | 34 ++++++++++---------
3 files changed, 24 insertions(+), 18 deletions(-)
diff --git a/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/impl/EventBaseJsonDeserializer.java b/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/impl/EventBaseJsonDeserializer.java
index e9bfda2e1d8..42728faac6e 100644
--- a/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/impl/EventBaseJsonDeserializer.java
+++ b/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/impl/EventBaseJsonDeserializer.java
@@ -33,7 +33,9 @@ public class EventBaseJsonDeserializer implements JsonDeserializer {
private final JsonDeserializer leaderboardGroupDeserializer;
private final JsonDeserializertrackingConnectorInfoDeserializer;
- public EventBaseJsonDeserializer(JsonDeserializer venueDeserializer, JsonDeserializer leaderboardGroupDeserializer, JsonDeserializertrackingConnectorInfoDeserializer) {
+ public EventBaseJsonDeserializer(JsonDeserializer venueDeserializer,
+ JsonDeserializer leaderboardGroupDeserializer,
+ JsonDeserializer trackingConnectorInfoDeserializer) {
this.venueDeserializer = venueDeserializer;
this.leaderboardGroupDeserializer = leaderboardGroupDeserializer;
this.trackingConnectorInfoDeserializer = trackingConnectorInfoDeserializer;
diff --git a/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/utils/CheckinManager.java b/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/utils/CheckinManager.java
index 119512e76a8..2e57681f181 100755
--- a/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/utils/CheckinManager.java
+++ b/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/utils/CheckinManager.java
@@ -34,6 +34,7 @@ import com.sap.sailing.server.gateway.deserialization.impl.BoatJsonDeserializer;
import com.sap.sailing.server.gateway.deserialization.impl.CourseAreaJsonDeserializer;
import com.sap.sailing.server.gateway.deserialization.impl.EventBaseJsonDeserializer;
import com.sap.sailing.server.gateway.deserialization.impl.LeaderboardGroupBaseJsonDeserializer;
+import com.sap.sailing.server.gateway.deserialization.impl.TrackingConnectorInfoJsonDeserializer;l
import com.sap.sailing.server.gateway.deserialization.impl.VenueJsonDeserializer;
import com.sap.sse.common.Util;
import com.sap.sse.shared.media.ImageDescriptor;
@@ -221,7 +222,8 @@ public class CheckinManager {
return null;
}
}))),
- new LeaderboardGroupBaseJsonDeserializer());
+ new LeaderboardGroupBaseJsonDeserializer(),
+ new TrackingConnectorInfoJsonDeserializer());
try {
final EventBase event = deserializer.deserialize(
(org.json.simple.JSONObject) new JSONParser().parse(response.toString()));
diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/OnlineDataManager.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/OnlineDataManager.java
index 773dd8eff46..001fdd1e668 100755
--- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/OnlineDataManager.java
+++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/OnlineDataManager.java
@@ -1,14 +1,11 @@
package com.sap.sailing.racecommittee.app.data;
-import java.io.Serializable;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-import java.util.concurrent.Callable;
+import android.content.Context;
+import android.net.Uri;
+import android.os.Bundle;
+import android.support.v4.app.LoaderManager.LoaderCallbacks;
+import android.support.v4.content.Loader;
+import android.util.Log;
import com.sap.sailing.android.shared.logging.ExLog;
import com.sap.sailing.android.shared.services.sending.MessageSendingService;
@@ -75,15 +72,19 @@ import com.sap.sailing.server.gateway.deserialization.impl.LeaderboardGroupBaseJ
import com.sap.sailing.server.gateway.deserialization.impl.RaceColumnFactorJsonDeserializer;
import com.sap.sailing.server.gateway.deserialization.impl.RegattaConfigurationJsonDeserializer;
import com.sap.sailing.server.gateway.deserialization.impl.VenueJsonDeserializer;
+import com.sap.sailing.server.gateway.deserialization.impl.TrackingConnectorInfoJsonDeserializer;
import com.sap.sailing.server.gateway.deserialization.racegroup.impl.RaceGroupDeserializer;
import com.sap.sse.common.Util;
-import android.content.Context;
-import android.net.Uri;
-import android.os.Bundle;
-import android.support.v4.app.LoaderManager.LoaderCallbacks;
-import android.support.v4.content.Loader;
-import android.util.Log;
+import java.io.Serializable;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import java.util.concurrent.Callable;
/**
* Enables accessing of data.
@@ -126,7 +127,8 @@ public class OnlineDataManager extends DataManager {
ExLog.i(context, TAG, "Creating Events-OnlineDataLoader " + id);
EventBaseJsonDeserializer serializer = new EventBaseJsonDeserializer(
new VenueJsonDeserializer(new CourseAreaJsonDeserializer(domainFactory)),
- new LeaderboardGroupBaseJsonDeserializer());
+ new LeaderboardGroupBaseJsonDeserializer(),
+ new TrackingConnectorInfoJsonDeserializer());
DataParser> parser = new EventsDataParser(serializer);
DataHandler> handler = new EventsDataHandler(OnlineDataManager.this);
From 56e94397c7c22d961fca28550432cc66038aa5dc Mon Sep 17 00:00:00 2001
From: Axel Uhl
Date: Tue, 3 Dec 2019 00:45:16 +0100
Subject: [PATCH 09/53] fixed typo in imports
---
.../sap/sailing/android/tracking/app/utils/CheckinManager.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/utils/CheckinManager.java b/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/utils/CheckinManager.java
index 2e57681f181..38c42f9e47d 100755
--- a/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/utils/CheckinManager.java
+++ b/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/utils/CheckinManager.java
@@ -34,7 +34,7 @@ import com.sap.sailing.server.gateway.deserialization.impl.BoatJsonDeserializer;
import com.sap.sailing.server.gateway.deserialization.impl.CourseAreaJsonDeserializer;
import com.sap.sailing.server.gateway.deserialization.impl.EventBaseJsonDeserializer;
import com.sap.sailing.server.gateway.deserialization.impl.LeaderboardGroupBaseJsonDeserializer;
-import com.sap.sailing.server.gateway.deserialization.impl.TrackingConnectorInfoJsonDeserializer;l
+import com.sap.sailing.server.gateway.deserialization.impl.TrackingConnectorInfoJsonDeserializer;
import com.sap.sailing.server.gateway.deserialization.impl.VenueJsonDeserializer;
import com.sap.sse.common.Util;
import com.sap.sse.shared.media.ImageDescriptor;
From 0a1d2e9eb1688b4206825d3c3b51dfe928074ecf Mon Sep 17 00:00:00 2001
From: Axel Uhl
Date: Tue, 3 Dec 2019 12:07:52 +0100
Subject: [PATCH 10/53] fixed refactoring problems regarding StrippedEventImpl
constructor
---
.../racecommittee/app/data/OfflineDataManager.java | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/OfflineDataManager.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/OfflineDataManager.java
index 2a836282e24..ea362fc14ca 100755
--- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/OfflineDataManager.java
+++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/OfflineDataManager.java
@@ -82,13 +82,13 @@ public class OfflineDataManager extends DataManager {
final TimePoint endDate = new MillisecondsTimePoint(cal.getTimeInMillis());
dataStore.addEvent(new StrippedEventImpl("Extreme Sailing Series 2012 (Cardiff)", startDate, endDate, "Cardiff",
- true, UUID.randomUUID(), Collections. emptySet(), false));
+ true, UUID.randomUUID(), Collections. emptySet(), Collections.emptySet()));
dataStore.addEvent(new StrippedEventImpl("Extreme Sailing Series 2012 (Nice)", startDate, endDate, "Nice", true,
- UUID.randomUUID(), Collections. emptySet(), false));
+ UUID.randomUUID(), Collections. emptySet(), Collections.emptySet()));
dataStore.addEvent(new StrippedEventImpl("Extreme Sailing Series 2012 (Rio)", startDate, endDate, "Rio", true,
- UUID.randomUUID(), Collections. emptySet(), false));
+ UUID.randomUUID(), Collections. emptySet(), Collections.emptySet()));
EventBase newEvent = new StrippedEventImpl("Extreme Sailing Series 2013 (Muscat)", startDate, endDate, "Muscat",
- true, UUID.randomUUID(), Collections. emptySet(), false);
+ true, UUID.randomUUID(), Collections. emptySet(), Collections.emptySet());
newEvent.getVenue().addCourseArea(new CourseAreaImpl("Offshore", UUID.randomUUID()));
newEvent.getVenue().addCourseArea(new CourseAreaImpl("Stadium", UUID.randomUUID()));
dataStore.addEvent(newEvent);
From b46f86cd196020b35ff61747dac7cd6267e6018f Mon Sep 17 00:00:00 2001
From: Axel Uhl
Date: Tue, 3 Dec 2019 16:26:00 +0100
Subject: [PATCH 11/53] made TrackingConnectorInfo serializable
---
.../domain/tracking/TrackingConnectorInfo.java | 9 ++++-----
.../impl/TrackingConnectorInfoImpl.java | 18 ++++--------------
.../eventview/TrackingConnectorInfoDTO.java | 9 ++-------
3 files changed, 10 insertions(+), 26 deletions(-)
diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/tracking/TrackingConnectorInfo.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/tracking/TrackingConnectorInfo.java
index a1494cebef1..dc90a162c46 100644
--- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/tracking/TrackingConnectorInfo.java
+++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/tracking/TrackingConnectorInfo.java
@@ -1,10 +1,9 @@
package com.sap.sailing.domain.tracking;
+import java.io.Serializable;
import java.net.URL;
-public interface TrackingConnectorInfo {
- public String getTrackedBy();
- public void setTrackedBy(String trackedBy);
- public URL getWebUrl();
- public void setWebUrl(URL webUrl);
+public interface TrackingConnectorInfo extends Serializable {
+ String getTrackedBy();
+ URL getWebUrl();
}
diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/tracking/impl/TrackingConnectorInfoImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/tracking/impl/TrackingConnectorInfoImpl.java
index a9ecc868b01..ad55bc42f57 100644
--- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/tracking/impl/TrackingConnectorInfoImpl.java
+++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/tracking/impl/TrackingConnectorInfoImpl.java
@@ -5,11 +5,10 @@ import java.net.URL;
import com.sap.sailing.domain.tracking.TrackingConnectorInfo;
public class TrackingConnectorInfoImpl implements TrackingConnectorInfo {
- String trackedBy;
- URL webUrl;
-
- public TrackingConnectorInfoImpl() {
- }
+ private static final long serialVersionUID = -1681930521305924294L;
+
+ private final String trackedBy;
+ private final URL webUrl;
public TrackingConnectorInfoImpl(String trackedBy, URL webUrl) {
super();
@@ -21,16 +20,7 @@ public class TrackingConnectorInfoImpl implements TrackingConnectorInfo {
return trackedBy;
}
- public void setTrackedBy(String trackedBy) {
- this.trackedBy = trackedBy;
- }
-
public URL getWebUrl() {
return webUrl;
}
-
- public void setWebUrl(URL webUrl) {
- this.webUrl = webUrl;
- }
-
}
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/eventview/TrackingConnectorInfoDTO.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/eventview/TrackingConnectorInfoDTO.java
index 52d375bdebc..c3acedb7e19 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/eventview/TrackingConnectorInfoDTO.java
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/eventview/TrackingConnectorInfoDTO.java
@@ -6,7 +6,7 @@ public class TrackingConnectorInfoDTO implements IsSerializable {
private String trackedBy;
private String webUrl;
- public TrackingConnectorInfoDTO() {}
+ TrackingConnectorInfoDTO() {} // GWT serialization
public TrackingConnectorInfoDTO(String trackedBy, String webUrl) {
this.trackedBy = trackedBy;
@@ -16,13 +16,8 @@ public class TrackingConnectorInfoDTO implements IsSerializable {
public String getTrackedBy() {
return trackedBy;
}
- public void setTrackedBy(String trackedBy) {
- this.trackedBy = trackedBy;
- }
+
public String getWebUrl() {
return webUrl;
}
- public void setWebUrl(String webUrl) {
- this.webUrl = webUrl;
- }
}
From cbc0ec46e1f66255f1c916bf80a54ca0b98cf638 Mon Sep 17 00:00:00 2001
From: Axel Uhl
Date: Tue, 3 Dec 2019 18:49:34 +0100
Subject: [PATCH 12/53] avoid null values in Event.getTrackingConnectorInfos()
---
.../src/com/sap/sailing/domain/base/EventBase.java | 4 +++-
.../domain/test/StarbordSideOfStartLineRecognitionTest.java | 2 +-
.../sap/sailing/domain/tracking/impl/TrackedRegattaTest.java | 2 +-
.../src/com/sap/sailing/domain/base/impl/EventImpl.java | 5 ++++-
.../src/com/sap/sailing/domain/tracking/TrackedRace.java | 3 ++-
5 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/EventBase.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/EventBase.java
index a95a014b8bd..c3ee25ee440 100644
--- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/EventBase.java
+++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/EventBase.java
@@ -110,7 +110,9 @@ public interface EventBase extends NamedWithID, WithDescription, Renamable, With
/**
* Determines whether the race is tracked by TracTrac or not
- * @return a boolean flag, whether any @TrackedRace in the event is tracked by TracTrac or not
+ *
+ * @return a boolean flag, whether any {@link TrackedRace} in the event is tracked by which connector; the set
+ * returned is never {@code null} and never contains {@code null} values, but it may be empty
*/
Set getTrackingConnectorInfos();
}
diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/StarbordSideOfStartLineRecognitionTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/StarbordSideOfStartLineRecognitionTest.java
index 1ca536476f4..f785f15f241 100755
--- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/StarbordSideOfStartLineRecognitionTest.java
+++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/StarbordSideOfStartLineRecognitionTest.java
@@ -91,7 +91,7 @@ public class StarbordSideOfStartLineRecognitionTest {
public MockedTrackedRaceImpl() {
super(null, null, Collections. emptyList(), null, 0, 0, 0, 0, false, OneDesignRankingMetric::new,
- mock(RaceLogAndTrackedRaceResolver.class), null);
+ mock(RaceLogAndTrackedRaceResolver.class), /* tracking connector info */ null);
}
@Override
diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/tracking/impl/TrackedRegattaTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/tracking/impl/TrackedRegattaTest.java
index fbfa90f9ea1..aeeca3b8f2f 100644
--- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/tracking/impl/TrackedRegattaTest.java
+++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/tracking/impl/TrackedRegattaTest.java
@@ -122,6 +122,6 @@ public class TrackedRegattaTest {
RaceDefinition race1 = new RaceDefinitionImpl(name, course, boatClass, Collections.emptyMap());
return new DynamicTrackedRaceImpl(regatta, race1, Collections. emptyList(),
EmptyWindStore.INSTANCE, 0, 0, 0, /* useMarkPassingCalculator */ false, OneDesignRankingMetric::new,
- mock(RaceLogAndTrackedRaceResolver.class), null);
+ mock(RaceLogAndTrackedRaceResolver.class), /* tracking connector info */ null);
}
}
diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/EventImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/EventImpl.java
index a1ffeea3168..45b76958378 100755
--- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/EventImpl.java
+++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/EventImpl.java
@@ -110,7 +110,10 @@ public class EventImpl extends EventBaseImpl implements Event {
for (LeaderboardGroup lbg : this.getLeaderboardGroups()) {
for (Leaderboard lb : lbg.getLeaderboards()) {
for (TrackedRace tr : lb.getTrackedRaces()) {
- result.add(tr.getTrackingConnectorInfo());
+ final TrackingConnectorInfo trackingConnectorInfo = tr.getTrackingConnectorInfo();
+ if (trackingConnectorInfo != null) {
+ result.add(trackingConnectorInfo);
+ }
}
}
}
diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedRace.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedRace.java
index a9e6331e18c..0757a5e3289 100755
--- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedRace.java
+++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedRace.java
@@ -1249,7 +1249,8 @@ public interface TrackedRace
}
/**
- * gets a String representation of the Tracking-Service used to Track the Race
+ * gets a String representation of the Tracking-Service used to Track the Race; may be {@code null}, particularly in
+ * test set-ups
*/
TrackingConnectorInfo getTrackingConnectorInfo();
}
From aaace28830a05981ed7df2b05ca147bf75065feb Mon Sep 17 00:00:00 2001
From: Axel Uhl
Date: Tue, 3 Dec 2019 18:51:56 +0100
Subject: [PATCH 13/53] null fixes regarding tracking connector info on Event
and (de-)serialization
---
.../sap/sailing/domain/base/impl/StrippedEventImpl.java | 1 +
.../serialization/impl/EventBaseJsonSerializer.java | 8 ++++----
.../src/com/sap/sailing/server/util/EventUtilTest.java | 4 ++--
3 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/StrippedEventImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/StrippedEventImpl.java
index 8f83a11a11e..8c23cdb602c 100755
--- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/StrippedEventImpl.java
+++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/StrippedEventImpl.java
@@ -31,6 +31,7 @@ public class StrippedEventImpl extends EventBaseImpl {
boolean isPublic, UUID id, Iterable leaderboardGroups, Set trackingConnectorInfos) {
super(name, startDate, endDate, venue, isPublic, id);
this.leaderboardGroups = leaderboardGroups;
+ assert trackingConnectorInfos != null;
this.trackingConnectorInfos = trackingConnectorInfos;
}
diff --git a/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/serialization/impl/EventBaseJsonSerializer.java b/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/serialization/impl/EventBaseJsonSerializer.java
index 955688a74a5..c308539198f 100644
--- a/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/serialization/impl/EventBaseJsonSerializer.java
+++ b/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/serialization/impl/EventBaseJsonSerializer.java
@@ -78,7 +78,7 @@ public class EventBaseJsonSerializer implements JsonSerializer {
leaderboardGroups.add(leaderboardGroupBaseSerializer.serialize(lg));
}
JSONArray trackingConnectorInfos = new JSONArray();
- for(TrackingConnectorInfo trackingConnectorInfo : event.getTrackingConnectorInfos()) {
+ for (TrackingConnectorInfo trackingConnectorInfo : event.getTrackingConnectorInfos()) {
trackingConnectorInfos.add(trackingConnectorInfoSerializer.serialize(trackingConnectorInfo));
}
result.put(FIELD_TRACKING_CONNECTOR_INFOS, trackingConnectorInfos);
@@ -88,12 +88,12 @@ public class EventBaseJsonSerializer implements JsonSerializer {
addImageSize(image, imageSizes);
}
JSONArray jsonImages = new JSONArray();
- for(ImageDescriptor imageDescriptor: event.getImages()) {
+ for (ImageDescriptor imageDescriptor: event.getImages()) {
addImage(imageDescriptor, jsonImages);
}
result.put(FIELD_IMAGES, jsonImages);
JSONArray jsonVideos = new JSONArray();
- for(VideoDescriptor videoDescriptor: event.getVideos()) {
+ for (VideoDescriptor videoDescriptor: event.getVideos()) {
addVideo(videoDescriptor, jsonVideos);
}
result.put(FIELD_VIDEOS, jsonVideos);
@@ -150,7 +150,7 @@ public class EventBaseJsonSerializer implements JsonSerializer {
* JSON object to imageSizes
*/
private void addImageSize(ImageDescriptor image, JSONArray imageSizes) {
- if(image.getHeightInPx() != null && image.getWidthInPx() != null) {
+ if (image.getHeightInPx() != null && image.getWidthInPx() != null) {
JSONObject imageSizeJson = new JSONObject();
imageSizes.add(imageSizeJson);
imageSizeJson.put(FIELD_IMAGE_URL, image.getURL().toString());
diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/util/EventUtilTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/util/EventUtilTest.java
index 6e9e973e147..453171b46ee 100644
--- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/util/EventUtilTest.java
+++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/util/EventUtilTest.java
@@ -1,6 +1,7 @@
package com.sap.sailing.server.util;
import java.util.Calendar;
+import java.util.Collections;
import java.util.UUID;
import org.junit.Assert;
@@ -22,7 +23,6 @@ public class EventUtilTest {
Calendar calendar = Calendar.getInstance();
calendar.set(year, month - 1, date);
MillisecondsTimePoint startEnd = new MillisecondsTimePoint(calendar.getTime());
- return new StrippedEventImpl("Test", startEnd, startEnd, "Anywhere", true, UUID.randomUUID(), null, null);
+ return new StrippedEventImpl("Test", startEnd, startEnd, "Anywhere", true, UUID.randomUUID(), null, Collections.emptySet());
}
-
}
From 008ec6f45aa3b2b9a3679ebd8204b51087ea6ad5 Mon Sep 17 00:00:00 2001
From: Dennis Aulenbacher
Date: Thu, 5 Dec 2019 14:08:14 +0100
Subject: [PATCH 14/53] removed redundant css class
---
.../gwt/home/desktop/partials/eventheader/EventHeader.gss | 8 --------
.../home/desktop/partials/eventheader/EventHeader.ui.xml | 2 +-
.../partials/eventheader/EventHeaderResources.java | 2 --
3 files changed, 1 insertion(+), 11 deletions(-)
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeader.gss b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeader.gss
index 7912512e2c3..5f2bd202db2 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeader.gss
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeader.gss
@@ -265,11 +265,3 @@
.eventnavigation .navbar_button {
font-size: 1.2rem;
}
-
-.eventheader_databylogo{
- color: black;
- display: inline-block;
- white-space: nowrap;
- font-size: 0.75em;
- cursor: pointer;
-}
\ No newline at end of file
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeader.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeader.ui.xml
index 134551fea16..78e72b7f93f 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeader.ui.xml
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeader.ui.xml
@@ -47,7 +47,7 @@
-
+
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeaderResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeaderResources.java
index b89a804ce64..2d04bf42eb4 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeaderResources.java
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeaderResources.java
@@ -51,7 +51,5 @@ public interface EventHeaderResources extends SharedDesktopResources {
String eventnavigation_dropdown_containerhidden();
String navbar_button();
String navbar_buttonhidden();
- String eventheader_databylogo();
}
-
}
From cde6540d5ab3d75ef050cb4605679e9bf927bb3f Mon Sep 17 00:00:00 2001
From: Dennis Aulenbacher
Date: Thu, 5 Dec 2019 14:13:55 +0100
Subject: [PATCH 15/53] duplicated DataByLogo widget to make it accessible from
gwt.ui.raceboard
---
.../gwt/ui/shared/RaceboardDataDTO.java | 2 +-
.../ui/shared/TrackingConnectorInfoDTO.java | 15 +--
.../gwt/ui/shared/databylogo/DataByLogo.gss | 18 ++++
.../gwt/ui/shared/databylogo/DataByLogo.java | 94 +++++++++++++++++++
.../ui/shared/databylogo/DataByLogo.ui.xml | 10 ++
.../databylogo/DataByLogoResources.java | 28 ++++++
.../ui/shared/databylogo/tractrac-color.svg | 1 +
.../ui/shared/databylogo/tractrac-white.svg | 1 +
8 files changed, 158 insertions(+), 11 deletions(-)
create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/DataByLogo.gss
create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/DataByLogo.java
create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/DataByLogo.ui.xml
create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/DataByLogoResources.java
create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/tractrac-color.svg
create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/tractrac-white.svg
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceboardDataDTO.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceboardDataDTO.java
index 16da5c53e94..0eb9941bdc2 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceboardDataDTO.java
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceboardDataDTO.java
@@ -69,7 +69,7 @@ public class RaceboardDataDTO implements IsSerializable {
return isValidEvent;
}
- public Set isTrackedByTracTrac() {
+ public Set getTrackingConnectorInfos() {
return trackingConnectorInfos;
}
}
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/TrackingConnectorInfoDTO.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/TrackingConnectorInfoDTO.java
index df8baca89e1..d39bab7b4f3 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/TrackingConnectorInfoDTO.java
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/TrackingConnectorInfoDTO.java
@@ -5,24 +5,19 @@ import com.google.gwt.user.client.rpc.IsSerializable;
public class TrackingConnectorInfoDTO implements IsSerializable {
private String trackedBy;
private String webUrl;
-
- public TrackingConnectorInfoDTO() {}
-
+
+ TrackingConnectorInfoDTO() {} // GWT serialization
+
public TrackingConnectorInfoDTO(String trackedBy, String webUrl) {
this.trackedBy = trackedBy;
this.webUrl = webUrl;
}
-
+
public String getTrackedBy() {
return trackedBy;
}
- public void setTrackedBy(String trackedBy) {
- this.trackedBy = trackedBy;
- }
+
public String getWebUrl() {
return webUrl;
}
- public void setWebUrl(String webUrl) {
- this.webUrl = webUrl;
- }
}
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/DataByLogo.gss b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/DataByLogo.gss
new file mode 100644
index 00000000000..6543486b051
--- /dev/null
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/DataByLogo.gss
@@ -0,0 +1,18 @@
+.databylogo_logo{
+ height: 1.3333333em !important;
+}
+
+.databylogo_subtlelink,
+.databylogo_subtlelink:hover,
+.databylogo_subtlelink:active,
+.databylogo_subtlelink:visited,
+.databylogo_subtlelink:focus {
+ text-decoration: none;
+}
+
+.databylogo_container{
+ display: inline-block;
+ white-space: nowrap;
+ font-size: 0.75em;
+ cursor: pointer;
+}
\ No newline at end of file
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/DataByLogo.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/DataByLogo.java
new file mode 100644
index 00000000000..9c3f7a6195a
--- /dev/null
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/DataByLogo.java
@@ -0,0 +1,94 @@
+package com.sap.sailing.gwt.ui.shared.databylogo;
+
+import java.util.Set;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.dom.client.AnchorElement;
+import com.google.gwt.dom.client.Element;
+import com.google.gwt.dom.client.ImageElement;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiField;
+import com.google.gwt.user.client.ui.Widget;
+import com.sap.sailing.gwt.ui.shared.TrackingConnectorInfoDTO;
+
+public class DataByLogo extends Widget {
+
+ private static final String TRAC_TRAC = "TracTrac";
+ private static final String TRAC_TRAC_DEFAULT_URL = "https://www.tractrac.com/";
+ private static DataByLogoUiBinder uiBinder = GWT.create(DataByLogoUiBinder.class);
+
+ interface DataByLogoUiBinder extends UiBinder {
+ }
+
+ @UiField
+ AnchorElement dataByContainer;
+ @UiField
+ ImageElement logo;
+
+ public DataByLogo() {
+ DataByLogoResources.INSTANCE.css().ensureInjected();
+ setElement(uiBinder.createAndBindUi(this));
+ }
+
+ public void setUp(Set trackingConnectorInfos, boolean colorIfPossible) {
+ TrackingConnectorInfoDTO mostProminentConnectorInfo = selectMostProminentConnectorInfo(trackingConnectorInfos);
+ if (mostProminentConnectorInfo == null) {
+ this.setVisible(false);
+ } else {
+ setUpForConnectorType(colorIfPossible, mostProminentConnectorInfo);
+ }
+ }
+
+ private TrackingConnectorInfoDTO selectMostProminentConnectorInfo(
+ Set trackingConnectorInfos) {
+ TrackingConnectorInfoDTO potentialConnectorInfo = null;
+ if (trackingConnectorInfos == null || trackingConnectorInfos.isEmpty()) {
+ return potentialConnectorInfo;
+ } else {
+ for (TrackingConnectorInfoDTO trackingConnectorInfo : trackingConnectorInfos) {
+ // This logic currently only supports TracTrac as ConnectorInfo
+ if (TRAC_TRAC.equals(trackingConnectorInfo.getTrackedBy())) {
+ potentialConnectorInfo = trackingConnectorInfo;
+ String webUrl = trackingConnectorInfo.getWebUrl();
+ if (webUrl != null && !"".equals(webUrl)) {
+ break;
+ }
+ }
+ }
+ return potentialConnectorInfo;
+ }
+ }
+
+ private void setUpForConnectorType(boolean colorIfPossible, TrackingConnectorInfoDTO trackingConnectorInfo) {
+ if (TRAC_TRAC.equals(trackingConnectorInfo.getTrackedBy())) {
+ setUpTracTracLogo(colorIfPossible);
+ }
+ setUrl(trackingConnectorInfo);
+ }
+
+ private void setUpTracTracLogo(boolean colorIfPossible) {
+ if (colorIfPossible) {
+ logo.setSrc(DataByLogoResources.INSTANCE.tractracColor().getSafeUri().asString());
+ } else {
+ logo.setSrc(DataByLogoResources.INSTANCE.tractracWhite().getSafeUri().asString());
+ }
+ }
+
+ private void setUrl(TrackingConnectorInfoDTO trackingConnectorInfo) {
+ String webUrl = trackingConnectorInfo.getWebUrl();
+ if (webUrl == null || "".equals(trackingConnectorInfo.getWebUrl())) {
+ dataByContainer.setHref(getConnectorDefaultUrl(trackingConnectorInfo.getTrackedBy()));
+ } else {
+ dataByContainer.setHref(webUrl);
+ }
+ }
+
+ private String getConnectorDefaultUrl(String trackedBy) {
+ switch (trackedBy) {
+ case TRAC_TRAC:
+ return TRAC_TRAC_DEFAULT_URL;
+ default:
+ return null;
+ }
+ }
+}
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/DataByLogo.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/DataByLogo.ui.xml
new file mode 100644
index 00000000000..af5ab031e16
--- /dev/null
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/DataByLogo.ui.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/DataByLogoResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/DataByLogoResources.java
new file mode 100644
index 00000000000..9884503106d
--- /dev/null
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/DataByLogoResources.java
@@ -0,0 +1,28 @@
+package com.sap.sailing.gwt.ui.shared.databylogo;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.resources.client.ClientBundle;
+import com.google.gwt.resources.client.CssResource;
+import com.google.gwt.resources.client.DataResource;
+import com.google.gwt.resources.client.DataResource.MimeType;
+
+public interface DataByLogoResources extends ClientBundle {
+ public static final DataByLogoResources INSTANCE = GWT.create(DataByLogoResources.class);
+
+ @Source("DataByLogo.gss")
+ LocalCss css();
+
+ @Source("tractrac-color.svg")
+ @MimeType("image/svg+xml")
+ DataResource tractracColor();
+
+ @Source("tractrac-white.svg")
+ @MimeType("image/svg+xml")
+ DataResource tractracWhite();
+
+ public interface LocalCss extends CssResource {
+ String databylogo_logo();
+ String databylogo_subtlelink();
+ String databylogo_container();
+ }
+}
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/tractrac-color.svg b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/tractrac-color.svg
new file mode 100644
index 00000000000..96662ddb01b
--- /dev/null
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/tractrac-color.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/tractrac-white.svg b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/tractrac-white.svg
new file mode 100644
index 00000000000..eba4e0347c8
--- /dev/null
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/tractrac-white.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
From f1ee457d92b053a0e8a891bb3eed4546e934fccb Mon Sep 17 00:00:00 2001
From: Dennis Aulenbacher
Date: Thu, 5 Dec 2019 14:14:36 +0100
Subject: [PATCH 16/53] null fix
---
.../sap/sailing/gwt/ui/server/SailingServiceImpl.java | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java
index cecf8f3eca6..590baaf94a9 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java
@@ -2059,7 +2059,8 @@ public class SailingServiceImpl extends ResultCachingProxiedRemoteServiceServlet
if(isValidEvent) {
trackingConnectorInfos = event.getTrackingConnectorInfos()
.stream()
- .map(trackingConnectorInfo -> new TrackingConnectorInfoDTO(trackingConnectorInfo.getTrackedBy(), trackingConnectorInfo.getWebUrl().toString())).collect(Collectors.toSet());
+ .map(trackingConnectorInfo -> new TrackingConnectorInfoDTO(trackingConnectorInfo.getTrackedBy(), mapURLToString(trackingConnectorInfo.getWebUrl())))
+ .collect(Collectors.toSet());
}else {
trackingConnectorInfos = Collections.emptySet();
}
@@ -2070,6 +2071,14 @@ public class SailingServiceImpl extends ResultCachingProxiedRemoteServiceServlet
}
return result;
}
+
+ private static String mapURLToString(URL url) {
+ if (url != null) {
+ return url.toString();
+ } else {
+ return "";
+ }
+ }
@Override
public CompactRaceMapDataDTO getRaceMapData(RegattaAndRaceIdentifier raceIdentifier, Date date,
From f8021b5cfac2794c5cd486bff1bfe47f4f15da34 Mon Sep 17 00:00:00 2001
From: Dennis Aulenbacher
Date: Thu, 5 Dec 2019 14:16:00 +0100
Subject: [PATCH 17/53] included DataByLogo widget in RaceBoardPanel
---
.../gwt/autoplay/client/nodes/LiveRaceBoardNode.java | 2 +-
.../sailing/gwt/ui/raceboard/RaceBoardEntryPoint.java | 2 +-
.../sap/sailing/gwt/ui/raceboard/RaceBoardPanel.java | 11 ++++++++++-
3 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/nodes/LiveRaceBoardNode.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/nodes/LiveRaceBoardNode.java
index 06e5090afef..b9ccc4f6fb0 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/nodes/LiveRaceBoardNode.java
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/autoplay/client/nodes/LiveRaceBoardNode.java
@@ -79,7 +79,7 @@ public class LiveRaceBoardNode extends FiresPlaceNode implements RaceTimesInfoPr
/** leaderboardGroupName */
null, /** eventId */
null, cf.getErrorReporter(), StringMessages.INSTANCE, null, raceTimesInfoProvider, true, false,
- Arrays.asList(DetailType.values()), result.getLeaderboard(), result.getRace());
+ Arrays.asList(DetailType.values()), result.getLeaderboard(), result.getRace(), result.getTrackingConnectorInfos());
setPlaceToGo(new LiveRaceWithRaceboardPlace(raceboardPerspective));
firePlaceChangeAndStartTimer();
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 906c948208e..8b0893c42f5 100644
--- 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
@@ -155,7 +155,7 @@ public class RaceBoardEntryPoint extends AbstractSailingEntryPoint implements Pr
raceboardContextDefinition.getLeaderboardName(), raceboardContextDefinition.getLeaderboardGroupName(),
raceboardContextDefinition.getEventId(), RaceBoardEntryPoint.this, getStringMessages(), userAgent,
raceTimesInfoProvider, showChartMarkEditMediaButtonsAndVideo, true, availableDetailTypes,
- raceboardData.getLeaderboard(), selectedRace);
+ raceboardData.getLeaderboard(), selectedRace, raceboardData.getTrackingConnectorInfos());
RootLayoutPanel.get().add(raceBoardPerspective.getEntryWidget());
if (raceBoardMode != null) {
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 26bfb1e9ba9..0bc1c6f52cf 100644
--- 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
@@ -94,6 +94,8 @@ import com.sap.sailing.gwt.ui.raceboard.tagging.TaggingPanel;
import com.sap.sailing.gwt.ui.shared.RaceWithCompetitorsAndBoatsDTO;
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTOWithSecurity;
+import com.sap.sailing.gwt.ui.shared.TrackingConnectorInfoDTO;
+import com.sap.sailing.gwt.ui.shared.databylogo.DataByLogo;
import com.sap.sse.common.Distance;
import com.sap.sse.common.TimePoint;
import com.sap.sse.common.Util;
@@ -182,6 +184,7 @@ public class RaceBoardPanel
private ManeuverTablePanel maneuverTablePanel;
private static final RaceMapResources raceMapResources = GWT.create(RaceMapResources.class);
+ private Set trackingConnectorInfos;
/**
* @param eventId
@@ -199,6 +202,7 @@ public class RaceBoardPanel
* @param availableDetailTypes
* A list of all Detailtypes, that will be offered in the Settingsdialog. Can be used to hide settings no
* data exists for, eg Bravo, Expdition ect.
+ * @param trackingConnectorInfos
*/
public RaceBoardPanel(Component> parent,
ComponentContext> componentContext,
@@ -211,7 +215,7 @@ public class RaceBoardPanel
UserAgentDetails userAgent, RaceTimesInfoProvider raceTimesInfoProvider,
boolean showChartMarkEditMediaButtonsAndVideo, boolean showHeaderPanel,
Iterable availableDetailTypes, StrippedLeaderboardDTOWithSecurity leaderboardDTO,
- final RaceWithCompetitorsAndBoatsDTO raceDTO) {
+ final RaceWithCompetitorsAndBoatsDTO raceDTO, Set trackingConnectorInfos) {
super(parent, componentContext, lifecycle, settings);
this.sailingService = sailingService;
this.mediaService = mediaService;
@@ -221,6 +225,7 @@ public class RaceBoardPanel
this.userAgent = userAgent;
this.timer = timer;
this.eventId = eventId;
+ this.trackingConnectorInfos = trackingConnectorInfos;
this.currentRaceHasBeenSelectedOnce = false;
this.leaderboardName = leaderboardName;
this.selectedRaceIdentifier = selectedRaceIdentifier;
@@ -780,8 +785,12 @@ public class RaceBoardPanel
timeLineInnerPanel.add(timeLineInnerBgPanel);
timeLineInnerPanel.addStyleName("timeLineInnerPanel");
+ DataByLogo dataByLogo = new DataByLogo();
+ dataByLogo.setUp(trackingConnectorInfos, true);
+
ResizableFlowPanel timelinePanel = new ResizableFlowPanel();
timelinePanel.add(timeLineInnerPanel);
+ timelinePanel.add(dataByLogo);
timelinePanel.addStyleName("timeLinePanel");
return timelinePanel;
From 17e1d760d0ff20cfd27efb9db3c7cf13eee1b76c Mon Sep 17 00:00:00 2001
From: Dennis Aulenbacher
Date: Thu, 5 Dec 2019 16:56:04 +0100
Subject: [PATCH 18/53] commented test constructors with null values, added
informative javadoc
---
.../test/AbstractGPSFixStoreTest.java | 2 +-
.../test/impl/RaceLogFixTrackerManagerTest.java | 2 +-
.../test/impl/SensorFixStoreAndLoadTest.java | 2 +-
.../impl/TrackedRaceStartTimeInferenceTest.java | 10 +++++-----
.../src/com/sap/sailing/domain/base/EventBase.java | 7 ++++---
.../domain/tracking/TrackingConnectorInfo.java | 9 +++++++++
.../src/com/sap/sailing/domain/test/CourseTest.java | 4 ++--
...ourseUpdateDuringNonAtomicSerializationTest.java | 2 +-
.../domain/test/LeaderboardCourseChangeTest.java | 2 +-
.../domain/test/SerializeRankingMetricTest.java | 2 +-
.../StarbordSideOfStartLineRecognitionTest.java | 2 +-
.../com/sap/sailing/domain/test/TrackBasedTest.java | 2 +-
.../sailing/domain/test/UpdateMarkPassingTest.java | 13 +++++++------
.../src/com/sap/sailing/domain/test/WindTest.java | 2 +-
.../AbstractExportedPositionsBasedTest.java | 2 +-
.../AbstractMockedRaceMarkPassingTest.java | 2 +-
.../domain/tracking/impl/TrackedRegattaTest.java | 2 +-
.../sap/sailing/domain/tracking/TrackedRace.java | 4 ++--
.../TestStoringAndRetrievingWindTracksTest.java | 2 +-
.../sailing/server/statistics/StatisticsTest.java | 2 +-
.../server/test/ApplyScoresFromRaceLogTest.java | 2 +-
.../server/test/RaceTrackerStartStopTest.java | 2 +-
.../sailing/server/test/RemoveLeaderboardTest.java | 2 +-
.../com/sap/sailing/server/util/EventUtilTest.java | 3 ++-
24 files changed, 48 insertions(+), 36 deletions(-)
diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/AbstractGPSFixStoreTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/AbstractGPSFixStoreTest.java
index 1d08d8649e3..3eb80e7824b 100644
--- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/AbstractGPSFixStoreTest.java
+++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/AbstractGPSFixStoreTest.java
@@ -129,7 +129,7 @@ public class AbstractGPSFixStoreTest extends RaceLogTrackingTestHelper {
/* endDate */null, null, null, "a", null, /* registrationLinkSecret */ UUID.randomUUID().toString()));
return new DynamicTrackedRaceImpl(regatta, raceDefinition, Collections. emptyList(),
EmptyWindStore.INSTANCE, 0, 0, 0, /* useMarkPassingCalculator */ false, OneDesignRankingMetric::new,
- mock(RaceLogAndTrackedRaceResolver.class), null);
+ mock(RaceLogAndTrackedRaceResolver.class), /* trackingConnectorInfo */ null);
}
protected void testNumberOfRawFixes(Track> track, long expected) {
diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/RaceLogFixTrackerManagerTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/RaceLogFixTrackerManagerTest.java
index 0f9e0df4712..4cdafbe4dfd 100644
--- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/RaceLogFixTrackerManagerTest.java
+++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/RaceLogFixTrackerManagerTest.java
@@ -108,7 +108,7 @@ public class RaceLogFixTrackerManagerTest {
/* registrationLinkSecret */ UUID.randomUUID().toString()));
trackedRace = new DynamicTrackedRaceImpl(regatta, race, Collections. emptyList(),
EmptyWindStore.INSTANCE, 0, 0, 0, /* useMarkPassingCalculator */ false, OneDesignRankingMetric::new,
- mock(RaceLogAndTrackedRaceResolver.class), null);
+ mock(RaceLogAndTrackedRaceResolver.class), /* trackingConnectorInfo */ null);
}
/**
diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/SensorFixStoreAndLoadTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/SensorFixStoreAndLoadTest.java
index 20c856cf637..49f7536337f 100644
--- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/SensorFixStoreAndLoadTest.java
+++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/SensorFixStoreAndLoadTest.java
@@ -173,7 +173,7 @@ public class SensorFixStoreAndLoadTest {
/* registrationLinkSecret */ UUID.randomUUID().toString()));
trackedRace = new DynamicTrackedRaceImpl(regatta, race, Collections. emptyList(),
EmptyWindStore.INSTANCE, 0, 0, 0, /* useMarkPassingCalculator */ false, OneDesignRankingMetric::new,
- mock(RaceLogAndTrackedRaceResolver.class), null);
+ mock(RaceLogAndTrackedRaceResolver.class), /* trackingConnectorInfo */ null);
}
private void dropPersistedData() {
diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/TrackedRaceStartTimeInferenceTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/TrackedRaceStartTimeInferenceTest.java
index 7436165f12c..d8736ef0c28 100755
--- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/TrackedRaceStartTimeInferenceTest.java
+++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/TrackedRaceStartTimeInferenceTest.java
@@ -84,7 +84,7 @@ public class TrackedRaceStartTimeInferenceTest extends AbstractGPSFixStoreTest {
final DynamicTrackedRaceImpl trackedRace = new DynamicTrackedRaceImpl(regatta, race,
Collections. emptyList(), EmptyWindStore.INSTANCE, 0, 0, 0,
/* useMarkPassingCalculator */ false,
- OneDesignRankingMetric::new, mock(RaceLogAndTrackedRaceResolver.class), null);
+ OneDesignRankingMetric::new, mock(RaceLogAndTrackedRaceResolver.class), /* trackingConnectorInfo */ null);
MillisecondsTimePoint startOfRaceInRaceLog = new MillisecondsTimePoint(10000);
MillisecondsTimePoint endOfRaceInRaceLog = new MillisecondsTimePoint(20000);
@@ -162,7 +162,7 @@ public class TrackedRaceStartTimeInferenceTest extends AbstractGPSFixStoreTest {
final DynamicTrackedRaceImpl trackedRace = new DynamicTrackedRaceImpl(regatta, race,
Collections. emptyList(), EmptyWindStore.INSTANCE, 0, 0, 0,
/* useMarkPassingCalculator */ false,
- OneDesignRankingMetric::new, mock(RaceLogAndTrackedRaceResolver.class), null);
+ OneDesignRankingMetric::new, mock(RaceLogAndTrackedRaceResolver.class), /* trackingConnectorInfo */ null);
trackedRace.attachRaceLog(raceLog);
final TimePoint[] oldAndNewStartTimeNotifiedByRace = new TimePoint[2];
trackedRace.addListener(new AbstractRaceChangeListener() {
@@ -206,7 +206,7 @@ public class TrackedRaceStartTimeInferenceTest extends AbstractGPSFixStoreTest {
final DynamicTrackedRaceImpl trackedRace = new DynamicTrackedRaceImpl(regatta, race,
Collections. emptyList(), EmptyWindStore.INSTANCE, 0, 0, 0,
/* useMarkPassingCalculator */ false,
- OneDesignRankingMetric::new, mock(RaceLogAndTrackedRaceResolver.class), null);
+ OneDesignRankingMetric::new, mock(RaceLogAndTrackedRaceResolver.class), /* trackingConnectorInfo */ null);
final TimePoint[] oldAndNewStartTimeNotifiedByRace = new TimePoint[2];
trackedRace.addListener(new AbstractRaceChangeListener() {
@Override
@@ -254,7 +254,7 @@ public class TrackedRaceStartTimeInferenceTest extends AbstractGPSFixStoreTest {
final DynamicTrackedRaceImpl trackedRace = new DynamicTrackedRaceImpl(regatta, race,
Collections. emptyList(), EmptyWindStore.INSTANCE, 0, 0, 0,
/* useMarkPassingCalculator */ false,
- OneDesignRankingMetric::new, mock(RaceLogAndTrackedRaceResolver.class), null);
+ OneDesignRankingMetric::new, mock(RaceLogAndTrackedRaceResolver.class), /* trackingConnectorInfo */ null);
trackedRace.attachRaceLog(raceLog);
trackedRace.attachRegattaLog(regattaLog);
final TimePoint[] newStartAndEndOfTrackingNotifiedByRace = new TimePoint[2];
@@ -369,7 +369,7 @@ public class TrackedRaceStartTimeInferenceTest extends AbstractGPSFixStoreTest {
final DynamicTrackedRaceImpl trackedRace = new DynamicTrackedRaceImpl(regatta, race,
Collections. emptyList(), EmptyWindStore.INSTANCE, 0, 0, 0,
/* useMarkPassingCalculator */ false,
- OneDesignRankingMetric::new, mock(RaceLogAndTrackedRaceResolver.class), null);
+ OneDesignRankingMetric::new, mock(RaceLogAndTrackedRaceResolver.class), /* trackingConnectorInfo */ null);
trackedRace.attachRaceLog(raceLog);
final TimePoint[] oldAndNewStartTimeNotifiedByRace = new TimePoint[2];
trackedRace.addListener(new AbstractRaceChangeListener() {
diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/EventBase.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/EventBase.java
index c3ee25ee440..bb7b126b107 100644
--- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/EventBase.java
+++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/EventBase.java
@@ -109,10 +109,11 @@ public interface EventBase extends NamedWithID, WithDescription, Renamable, With
boolean setMediaURLs(Iterable imageURLs, Iterable sponsorImageURLs, Iterable videoURLs, URL logoImageURL, Map imageSizes);
/**
- * Determines whether the race is tracked by TracTrac or not
+ * Gets all TrackingConnectorInfos containing information over what TrackingConnectors are involved in tracking this
+ * event
*
- * @return a boolean flag, whether any {@link TrackedRace} in the event is tracked by which connector; the set
- * returned is never {@code null} and never contains {@code null} values, but it may be empty
+ * @return a Set of {@link TrackingConnectorInfo}; the set returned is never {@code null} and never contains
+ * {@code null} values, but it may be empty
*/
Set getTrackingConnectorInfos();
}
diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/tracking/TrackingConnectorInfo.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/tracking/TrackingConnectorInfo.java
index dc90a162c46..620cfba8a5d 100644
--- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/tracking/TrackingConnectorInfo.java
+++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/tracking/TrackingConnectorInfo.java
@@ -4,6 +4,15 @@ import java.io.Serializable;
import java.net.URL;
public interface TrackingConnectorInfo extends Serializable {
+
+ /**
+ * gets a String representation of the Tracking-Service used to Track the Race
+ */
String getTrackedBy();
+
+ /**
+ * gets a {@link URL} representation of the web-URL associated with the Event;
+ * may be {@code null} if the API of the respective Tracking-Service does not provide a URL;
+ */
URL getWebUrl();
}
diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseTest.java
index f7d7b010571..06c1def9398 100755
--- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseTest.java
+++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseTest.java
@@ -317,7 +317,7 @@ public class CourseTest {
Collections. emptyList(), EmptyWindStore.INSTANCE, /* delayToLiveInMillis */3000,
/* millisecondsOverWhichToAverageWind */30000,
/* millisecondsOverWhichToAverageSpeed */8000, /*useMarkPassingCalculator*/ false, OneDesignRankingMetric::new,
- mock(RaceLogAndTrackedRaceResolver.class), null);
+ mock(RaceLogAndTrackedRaceResolver.class), /* trackingConnectorInfo */ null);
assertLegStructure(course, trackedRace);
course.removeWaypoint(0);
assertLegStructure(course, trackedRace);
@@ -353,7 +353,7 @@ public class CourseTest {
EmptyWindStore.INSTANCE, /* delayToLiveInMillis */ 3000,
/* millisecondsOverWhichToAverageWind */ 30000,
/* millisecondsOverWhichToAverageSpeed */ 8000, /*useMarkPassingCalculator*/ false, OneDesignRankingMetric::new,
- mock(RaceLogAndTrackedRaceResolver.class), null);
+ mock(RaceLogAndTrackedRaceResolver.class), /* trackingConnectorInfo */ null);
assertLegStructure(course, trackedRace);
final WaypointImpl wp1_5 = new WaypointImpl(new MarkImpl("Test Mark 1.5"));
assertWaypointIndexes(course);
diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseUpdateDuringNonAtomicSerializationTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseUpdateDuringNonAtomicSerializationTest.java
index 9af6d89a18a..75358acbe69 100755
--- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseUpdateDuringNonAtomicSerializationTest.java
+++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseUpdateDuringNonAtomicSerializationTest.java
@@ -87,7 +87,7 @@ public class CourseUpdateDuringNonAtomicSerializationTest implements Serializabl
trackedRace = new DynamicTrackedRaceImpl(trackedRegatta, race, Collections. emptySet(),
EmptyWindStore.INSTANCE,
/* delayToLiveInMillis */10000, /* millisecondsOverWhichToAverageWind */30000, /* millisecondsOverWhichToAverageSpeed */
- 7000, /*useMarkPassingCalculator*/ false, OneDesignRankingMetric::new, mock(RaceLogAndTrackedRaceResolver.class), null) {
+ 7000, /*useMarkPassingCalculator*/ false, OneDesignRankingMetric::new, mock(RaceLogAndTrackedRaceResolver.class), /* trackingConnectorInfo */ null) {
private static final long serialVersionUID = 9114777576548711763L;
@Override
diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardCourseChangeTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardCourseChangeTest.java
index c2e9f0c5bf9..72f2100a9d6 100644
--- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardCourseChangeTest.java
+++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardCourseChangeTest.java
@@ -152,7 +152,7 @@ public class LeaderboardCourseChangeTest {
TrackedRace spyedTrackedRace = spy(new DynamicTrackedRaceImpl(mockedTrackedRegatta, mockedRace,
new HashSet(), EmptyWindStore.INSTANCE, 5000, 20000, 20000,
/* useMarkPassingCalculator */ false, OneDesignRankingMetric::new,
- mock(RaceLogAndTrackedRaceResolver.class), null));
+ mock(RaceLogAndTrackedRaceResolver.class), /* trackingConnectorInfo */ null));
return spyedTrackedRace;
}
diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/SerializeRankingMetricTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/SerializeRankingMetricTest.java
index 2bb6aa5c1ff..d6d0c5e6dac 100644
--- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/SerializeRankingMetricTest.java
+++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/SerializeRankingMetricTest.java
@@ -42,7 +42,7 @@ public class SerializeRankingMetricTest extends AbstractSerializationTest {
new RaceDefinitionImpl("Race", new CourseImpl("Course", Collections.emptyList()) ,
/* boatClass */ _49er, Collections.emptyMap()),
Collections. emptyList(), EmptyWindStore.INSTANCE, 0l, 0l, 0l,
- false, TimeOnTimeAndDistanceRankingMetric::new, null, null);
+ false, TimeOnTimeAndDistanceRankingMetric::new, null, /* trackingConnectorInfo */ null);
RankingMetric clone = cloneBySerialization(trackedRace.getRankingMetric(), DomainFactory.INSTANCE);
assertNotNull(clone);
assertTrue(clone instanceof TimeOnTimeAndDistanceRankingMetric);
diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/StarbordSideOfStartLineRecognitionTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/StarbordSideOfStartLineRecognitionTest.java
index f785f15f241..414785581e3 100755
--- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/StarbordSideOfStartLineRecognitionTest.java
+++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/StarbordSideOfStartLineRecognitionTest.java
@@ -91,7 +91,7 @@ public class StarbordSideOfStartLineRecognitionTest {
public MockedTrackedRaceImpl() {
super(null, null, Collections. emptyList(), null, 0, 0, 0, 0, false, OneDesignRankingMetric::new,
- mock(RaceLogAndTrackedRaceResolver.class), /* tracking connector info */ null);
+ mock(RaceLogAndTrackedRaceResolver.class), /* trackingConnectorInfo */ null);
}
@Override
diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TrackBasedTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TrackBasedTest.java
index bb4428e912e..13062de8195 100755
--- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TrackBasedTest.java
+++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TrackBasedTest.java
@@ -201,7 +201,7 @@ public abstract class TrackBasedTest {
/* delayToLiveInMillis */ 0,
/* millisecondsOverWhichToAverageWind */ 30000, /* millisecondsOverWhichToAverageSpeed */ 30000,
/* delay for wind estimation cache invalidation */ 0, useMarkPassingCalculator,
- rankingMetricConstructor, raceLogResolver, null);
+ rankingMetricConstructor, raceLogResolver, /** trackingConnectorInfo **/ null);
// in this simplified artificial course, the top mark is exactly north of the right leeward gate
DegreePosition topPosition = new DegreePosition(54.48, 10.24);
TimePoint afterTheRace = new MillisecondsTimePoint(timePointForFixes.asMillis() + 36000000); // 10h after the fix timed
diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/UpdateMarkPassingTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/UpdateMarkPassingTest.java
index d91a48135ac..a8c5fd69094 100755
--- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/UpdateMarkPassingTest.java
+++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/UpdateMarkPassingTest.java
@@ -47,12 +47,13 @@ public class UpdateMarkPassingTest {
when(race.getBoatClass()).thenReturn(new BoatClassImpl("49er", /* typicallyStartsUpwind */ true));
when(race.getCompetitors()).thenReturn(Collections.singleton(competitor));
DynamicTrackedRaceImpl trackedRace = new DynamicTrackedRaceImpl(
- /* trackedRegatta */new DynamicTrackedRegattaImpl(new RegattaImpl("test", null, true, CompetitorRegistrationType.CLOSED, null, null, new HashSet(), false, null,
- "test", null, OneDesignRankingMetric::new,
- /* registrationLinkSecret */ UUID.randomUUID().toString())),
- race, Collections. emptyList(), EmptyWindStore.INSTANCE,
- /* delayToLiveInMillis */1000, /* millisecondsOverWhichToAverageWind */30000,
- /* millisecondsOverWhichToAverageSpeed */30000, /*useMarkPassingCalculator*/ false, OneDesignRankingMetric::new, mock(RaceLogAndTrackedRaceResolver.class), null);
+ /* trackedRegatta */new DynamicTrackedRegattaImpl(new RegattaImpl("test", null, true,
+ CompetitorRegistrationType.CLOSED, null, null, new HashSet(), false, null, "test", null,
+ OneDesignRankingMetric::new, /* registrationLinkSecret */ UUID.randomUUID().toString())),
+ race, Collections. emptyList(), EmptyWindStore.INSTANCE, /* delayToLiveInMillis */1000,
+ /* millisecondsOverWhichToAverageWind */30000, /* millisecondsOverWhichToAverageSpeed */30000,
+ /* useMarkPassingCalculator */ false, OneDesignRankingMetric::new,
+ mock(RaceLogAndTrackedRaceResolver.class), /* trackingConnectorInfo */ null);
TimePoint now = MillisecondsTimePoint.now();
TimePoint later = now.plus(1000);
trackedRace.updateMarkPassings(competitor, Arrays.asList(new MarkPassing[] { new MarkPassingImpl(now, waypoint, competitor) }));
diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindTest.java
index e5ee6145e4b..36995d20702 100755
--- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindTest.java
+++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindTest.java
@@ -317,7 +317,7 @@ public class WindTest {
EmptyWindStore.INSTANCE, /* delayToLiveInMillis */ 1000,
/* millisecondsOverWhichToAverageWind */ 30000,
/* millisecondsOverWhichToAverageSpeed */ 30000, /*useMarkPassingCalculator*/ false, OneDesignRankingMetric::new,
- mock(RaceLogAndTrackedRaceResolver.class), null);
+ mock(RaceLogAndTrackedRaceResolver.class), /* trackingConnectorInfo */ null);
TimePoint start = MillisecondsTimePoint.now();
TimePoint topMarkRounding = start.plus(30000);
TimePoint finish = topMarkRounding.plus(30000);
diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/AbstractExportedPositionsBasedTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/AbstractExportedPositionsBasedTest.java
index 0a022f16639..fa10bdaf549 100755
--- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/AbstractExportedPositionsBasedTest.java
+++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/AbstractExportedPositionsBasedTest.java
@@ -106,7 +106,7 @@ public abstract class AbstractExportedPositionsBasedTest {
/* sidelines */ Collections.emptySet(),
EmptyWindStore.INSTANCE,
/* delayToLiveInMillis */ 3000, /* millisecondsOverWhichToAverageWind */ 15000, /* millisecondsOverWhichToAverageSpeed */ 10000,
- /* useInternalMarkPassingAlgorithm */ true, OneDesignRankingMetric::new, /* raceLogResolver */ null, null);
+ /* useInternalMarkPassingAlgorithm */ true, OneDesignRankingMetric::new, /* raceLogResolver */ null, /* trackingConnectorInfo */ null);
result.setStatus(new TrackedRaceStatusImpl(TrackedRaceStatusEnum.LOADING, 0.0));
for (final Entry> e : competitorsAndTheirTracks.entrySet()) {
final DynamicGPSFixTrack track = result.getTrack(e.getKey());
diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/AbstractMockedRaceMarkPassingTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/AbstractMockedRaceMarkPassingTest.java
index 72f500b09d9..050f92b5817 100755
--- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/AbstractMockedRaceMarkPassingTest.java
+++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/AbstractMockedRaceMarkPassingTest.java
@@ -88,7 +88,7 @@ public class AbstractMockedRaceMarkPassingTest {
race = new DynamicTrackedRaceImpl(new DynamicTrackedRegattaImpl(r), raceDef, new ArrayList(),
new EmptyWindStore(), 0, 10000, 10000, /* useMarkPassingCalculator */ false,
OneDesignRankingMetric::new,
- mock(RaceLogAndTrackedRaceResolver.class), null);
+ mock(RaceLogAndTrackedRaceResolver.class), /* trackingConnectorInfo */ null);
race.setStartTimeReceived(new MillisecondsTimePoint(10000));
TimePoint t = new MillisecondsTimePoint(30000);
List> pos = Arrays.asList(new Util.Pair(m, new DegreePosition(0, 0)),
diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/tracking/impl/TrackedRegattaTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/tracking/impl/TrackedRegattaTest.java
index aeeca3b8f2f..c2714cd837c 100644
--- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/tracking/impl/TrackedRegattaTest.java
+++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/tracking/impl/TrackedRegattaTest.java
@@ -122,6 +122,6 @@ public class TrackedRegattaTest {
RaceDefinition race1 = new RaceDefinitionImpl(name, course, boatClass, Collections.emptyMap());
return new DynamicTrackedRaceImpl(regatta, race1, Collections. emptyList(),
EmptyWindStore.INSTANCE, 0, 0, 0, /* useMarkPassingCalculator */ false, OneDesignRankingMetric::new,
- mock(RaceLogAndTrackedRaceResolver.class), /* tracking connector info */ null);
+ mock(RaceLogAndTrackedRaceResolver.class), /* trackingConnectorInfo */ null);
}
}
diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedRace.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedRace.java
index 0757a5e3289..cfee4b6970a 100755
--- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedRace.java
+++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedRace.java
@@ -1249,8 +1249,8 @@ public interface TrackedRace
}
/**
- * gets a String representation of the Tracking-Service used to Track the Race; may be {@code null}, particularly in
- * test set-ups
+ * gets a {@link TrackingConnectorInfo}, which contains a String representation of the Tracking-Service used to Track the Race and a web-URL for the Event Event;
+ * may be {@code null}, particularly in test set-ups
*/
TrackingConnectorInfo getTrackingConnectorInfo();
}
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 5d3d8ea2122..010f2a34ce5 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
@@ -106,7 +106,7 @@ public class TestStoringAndRetrievingWindTracksTest extends AbstractTracTracLive
public void addRaceDefinition(RaceDefinition race, DynamicTrackedRace trackedRace) {
}
}, /*useMarkPassingCalculator*/ false, mock(RaceLogAndTrackedRaceResolver.class),
- Optional.empty(), null);
+ Optional.empty(), /* trackingConnectorInfo */ null);
WindSource windSource = new WindSourceImpl(WindSourceType.WEB);
MongoClient myFirstMongo = newMongo();
MongoDatabase firstDatabase = myFirstMongo.getDatabase(dbConfiguration.getDatabaseName());
diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/statistics/StatisticsTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/statistics/StatisticsTest.java
index d70c69384a7..2f063a24358 100644
--- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/statistics/StatisticsTest.java
+++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/statistics/StatisticsTest.java
@@ -84,7 +84,7 @@ public class StatisticsTest {
trackedRace = new DynamicTrackedRaceImpl(regatta, race, Collections.emptyList(),
EmptyWindStore.INSTANCE, 0, 0, 0, /* useMarkPassingCalculator */ false, OneDesignRankingMetric::new,
- mock(RaceLogAndTrackedRaceResolver.class), null);
+ mock(RaceLogAndTrackedRaceResolver.class), /* trackingConnectorInfo */ null);
trackedRace.setStartOfTrackingReceived(new MillisecondsTimePoint(START_OF_TRACKING));
trackedRace.setEndOfTrackingReceived(new MillisecondsTimePoint(END_OF_TRACKING));
trackedRace.setStartTimeReceived(new MillisecondsTimePoint(START_OF_RACE));
diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/ApplyScoresFromRaceLogTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/ApplyScoresFromRaceLogTest.java
index 09d27407b2c..787b98f75cb 100644
--- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/ApplyScoresFromRaceLogTest.java
+++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/ApplyScoresFromRaceLogTest.java
@@ -138,7 +138,7 @@ public class ApplyScoresFromRaceLogTest extends LeaderboardScoringAndRankingTest
/* delayToLiveInMillis */ 5000, /* millisecondsOverWhichToAverageWind */ 15000,
/* millisecondsOverWhichToAverageSpeed */ 10000,
/* useInternalMarkPassingAlgorithm */ false, OneDesignRankingMetric::new,
- /* raceLogResolver */ service, null);
+ /* raceLogResolver */ service, /* trackingConnectorInfo */ null);
final Fleet fleet = f1Column.getFleets().iterator().next();
f1Column.setTrackedRace(fleet, newF1);
// Now add a CompetitorResult to the race log:
diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java
index 3bcb6041be7..9ae7b84250e 100644
--- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java
+++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java
@@ -90,7 +90,7 @@ public class RaceTrackerStartStopTest {
/* windStore */ EmptyWindStore.INSTANCE, /* delayToLiveInMillis */ 0l,
/* millisecondsOverWhichToAverageWind */ 0l,
/* millisecondsOverWhichToAverageSpeed */ 0l, /* raceDefinitionSetToUpdate */ null, /*useMarkPassingCalculator*/ false, mock(RaceLogAndTrackedRaceResolver.class),
- Optional.empty(), null);
+ Optional.empty(), /* trackingConnectorInfo */ null);
regatta.addRace(raceDef2);
trackedRegatta1.createTrackedRace(raceDef2, Collections. emptyList(),
/* windStore */ EmptyWindStore.INSTANCE, /* delayToLiveInMillis */ 0l,
diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RemoveLeaderboardTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RemoveLeaderboardTest.java
index b5a8c56bcba..250e21ef91a 100755
--- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RemoveLeaderboardTest.java
+++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RemoveLeaderboardTest.java
@@ -105,7 +105,7 @@ public class RemoveLeaderboardTest {
/* windStore */ EmptyWindStore.INSTANCE, /* delayToLiveInMillis */ 0l,
/* millisecondsOverWhichToAverageWind */ 0l,
/* millisecondsOverWhichToAverageSpeed */ 0l, /* raceDefinitionSetToUpdate */ null, /*useMarkPassingCalculator*/ false, mock(RaceLogAndTrackedRaceResolver.class),
- Optional.empty(), null);
+ Optional.empty(), /* trackingConnectorInfo */ null);
}
@Test
diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/util/EventUtilTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/util/EventUtilTest.java
index 453171b46ee..98f7eeac204 100644
--- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/util/EventUtilTest.java
+++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/util/EventUtilTest.java
@@ -23,6 +23,7 @@ public class EventUtilTest {
Calendar calendar = Calendar.getInstance();
calendar.set(year, month - 1, date);
MillisecondsTimePoint startEnd = new MillisecondsTimePoint(calendar.getTime());
- return new StrippedEventImpl("Test", startEnd, startEnd, "Anywhere", true, UUID.randomUUID(), null, Collections.emptySet());
+ return new StrippedEventImpl("Test", startEnd, startEnd, "Anywhere", true, UUID.randomUUID(),
+ /** leaderBoardGroups **/ null, /** trackingConnectorInfos **/ Collections.emptySet());
}
}
From 1ebbf980bedde2cc4ef0ed048eb087325f69ed24 Mon Sep 17 00:00:00 2001
From: Dennis Aulenbacher
Date: Thu, 5 Dec 2019 16:56:49 +0100
Subject: [PATCH 19/53] renamed variable to improve naming consistency
---
.../deserialization/impl/EventBaseJsonDeserializer.java | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/impl/EventBaseJsonDeserializer.java b/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/impl/EventBaseJsonDeserializer.java
index 42728faac6e..c86ecc09566 100644
--- a/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/impl/EventBaseJsonDeserializer.java
+++ b/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/impl/EventBaseJsonDeserializer.java
@@ -63,14 +63,14 @@ public class EventBaseJsonDeserializer implements JsonDeserializer {
leaderboardGroups.add(leaderboardGroupDeserializer.deserialize((JSONObject) lgJson));
}
}
- Set trackedBy = new HashSet<>();
+ Set trackingConnectorInfos = new HashSet<>();
JSONArray trackedByJson = Helpers.getNestedArraySafe(eventJson, EventBaseJsonSerializer.FIELD_TRACKING_CONNECTOR_INFOS);
for (Object jsonPair : trackedByJson) {
- trackedBy.add(trackingConnectorInfoDeserializer.deserialize((JSONObject) jsonPair));
+ trackingConnectorInfos.add(trackingConnectorInfoDeserializer.deserialize((JSONObject) jsonPair));
}
StrippedEventImpl result = new StrippedEventImpl(name, startDate == null ? null : new MillisecondsTimePoint(startDate.longValue()),
- endDate == null ? null : new MillisecondsTimePoint(endDate.longValue()), venue, /* is public */ true, id, leaderboardGroups, trackedBy);
+ endDate == null ? null : new MillisecondsTimePoint(endDate.longValue()), venue, /* is public */ true, id, leaderboardGroups, trackingConnectorInfos);
result.setDescription(description);
if (officialWebsiteURLAsString != null) {
try {
From 3c391c9a1ede4168cd630e87d8fc68b6d0e5fbfb Mon Sep 17 00:00:00 2001
From: Dennis Aulenbacher
Date: Thu, 12 Dec 2019 10:42:34 +0100
Subject: [PATCH 20/53] moved color handlong of "data by" span to
dataByLogo-Widget
---
.../gwt/home/client/shared/databylogo/DataByLogo.gss | 8 ++++++++
.../gwt/home/client/shared/databylogo/DataByLogo.java | 5 ++++-
.../client/shared/databylogo/DataByLogoResources.java | 2 ++
.../sap/sailing/gwt/home/desktop/partials/stage/Stage.gss | 1 -
.../gwt/home/mobile/partials/eventheader/EventHeader.gss | 1 -
.../sap/sailing/gwt/home/mobile/partials/stage/Stage.gss | 1 -
6 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogo.gss b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogo.gss
index 6543486b051..4934ef09d6d 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogo.gss
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogo.gss
@@ -15,4 +15,12 @@
white-space: nowrap;
font-size: 0.75em;
cursor: pointer;
+}
+
+.databylogo_white_text{
+ color: white;
+}
+
+.databylogo_black_text{
+ color: black;
}
\ No newline at end of file
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogo.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogo.java
index d20e4716d9c..cafee20d6d3 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogo.java
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogo.java
@@ -67,10 +67,13 @@ public class DataByLogo extends Widget {
}
private void setUpTracTracLogo(boolean colorIfPossible) {
+ DataByLogoResources resources = DataByLogoResources.INSTANCE;
if (colorIfPossible) {
- logo.setSrc(DataByLogoResources.INSTANCE.tractracColor().getSafeUri().asString());
+ logo.setSrc(resources.tractracColor().getSafeUri().asString());
+ this.addStyleName(resources.css().databylogo_black_text());
} else {
logo.setSrc(DataByLogoResources.INSTANCE.tractracWhite().getSafeUri().asString());
+ this.addStyleName(resources.css().databylogo_white_text());
}
}
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogoResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogoResources.java
index 8afbc67e2a5..07eb3bf3b96 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogoResources.java
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogoResources.java
@@ -24,5 +24,7 @@ public interface DataByLogoResources extends SharedHomeResources {
String databylogo_logo();
String databylogo_subtlelink();
String databylogo_container();
+ String databylogo_white_text();
+ String databylogo_black_text();
}
}
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/stage/Stage.gss b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/stage/Stage.gss
index 7e4dff69aad..e8e8dc7e9e7 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/stage/Stage.gss
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/stage/Stage.gss
@@ -210,7 +210,6 @@
transition: width 0.1s linear;
}
.stage_dataBy_logo_container{
- color: white;
padding: 0 0.4em;
line-height: 4rem;
}
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/eventheader/EventHeader.gss b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/eventheader/EventHeader.gss
index 85325907188..39dac52d339 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/eventheader/EventHeader.gss
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/eventheader/EventHeader.gss
@@ -59,7 +59,6 @@
}
.eventheader_info_subtitle_dataBy_logo_container{
- color: black;
position:absolute;
bottom:0.25em;
right:0.25em;
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/stage/Stage.gss b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/stage/Stage.gss
index cc9944e2df9..880f1acbad2 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/stage/Stage.gss
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/stage/Stage.gss
@@ -207,7 +207,6 @@
}
.stageteaser_databylogo_container{
- color: white;
padding: .6em 0.4em 0.6em .4em;
float: right;
}
From 8e440ecc5e715f2b445b76a2f793c893a89d3ec2 Mon Sep 17 00:00:00 2001
From: Dennis Aulenbacher
Date: Thu, 12 Dec 2019 15:18:52 +0100
Subject: [PATCH 21/53] Improved positioning of the DataBy logo for mobile
StageTeaser in case the date info is unusually long.
---
.../gwt/home/client/shared/databylogo/DataByLogo.gss | 8 +++++++-
.../gwt/home/client/shared/databylogo/DataByLogo.ui.xml | 2 +-
.../client/shared/databylogo/DataByLogoResources.java | 1 +
.../sap/sailing/gwt/home/mobile/partials/stage/Stage.gss | 3 +--
.../gwt/home/mobile/partials/stage/StageTeaserBand.java | 3 ---
.../gwt/home/mobile/partials/stage/StageTeaserBand.ui.xml | 8 +++-----
6 files changed, 13 insertions(+), 12 deletions(-)
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogo.gss b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogo.gss
index 4934ef09d6d..e53912ce436 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogo.gss
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogo.gss
@@ -1,5 +1,11 @@
-.databylogo_logo{
+img.databylogo_logo{
height: 1.3333333em !important;
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.databylogo_text{
+ vertical-align: middle;
}
.databylogo_subtlelink,
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogo.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogo.ui.xml
index 8eef73c5fe9..47d05e5dfcd 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogo.ui.xml
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogo.ui.xml
@@ -4,7 +4,7 @@
-
+
\ No newline at end of file
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogoResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogoResources.java
index 07eb3bf3b96..7f8cbb368af 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogoResources.java
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogoResources.java
@@ -26,5 +26,6 @@ public interface DataByLogoResources extends SharedHomeResources {
String databylogo_container();
String databylogo_white_text();
String databylogo_black_text();
+ String databylogo_text();
}
}
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/stage/Stage.gss b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/stage/Stage.gss
index 880f1acbad2..f247cd8c097 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/stage/Stage.gss
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/stage/Stage.gss
@@ -207,8 +207,7 @@
}
.stageteaser_databylogo_container{
- padding: .6em 0.4em 0.6em .4em;
- float: right;
+ padding-top: .4em;
}
@external slick-dots, slick-active;
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/stage/StageTeaserBand.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/stage/StageTeaserBand.java
index 7022aefa7e6..46a3a439e71 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/stage/StageTeaserBand.java
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/stage/StageTeaserBand.java
@@ -50,9 +50,6 @@ public abstract class StageTeaserBand extends Composite {
dataByLogo.setVisible(false);
}
- // TODO currently hidden by default
- dataByLogo.setVisible(false);
-
eventNavigation = placeNavigator.getEventNavigation(event.getId().toString(), event.getBaseURL(), event.isOnRemoteServer());
}
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/stage/StageTeaserBand.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/stage/StageTeaserBand.ui.xml
index e8062ce1401..4dc84912869 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/stage/StageTeaserBand.ui.xml
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/stage/StageTeaserBand.ui.xml
@@ -10,16 +10,14 @@
.left {
- display: inline;
- position: absolute;
top: 0px;
left: 0px;
width: 50%;
vertical-align: middle;
}
.right {
- display: inline;
- position: absolute;
+ display: inline;
+ position: absolute;
top: 0px;
left: 50%;
right: 0px;
@@ -41,11 +39,11 @@
+
-
From 36b01b800f10ea06a532e909c7a77042379f5012 Mon Sep 17 00:00:00 2001
From: Dennis Aulenbacher
Date: Thu, 12 Dec 2019 16:05:28 +0100
Subject: [PATCH 22/53] repositioned DataByLogo in RaceBoard and improved
layouting for mobile view
---
java/com.sap.sailing.gwt.ui/RaceBoard.css | 17 +++++++++++++++++
.../gwt/ui/raceboard/RaceBoardPanel.java | 10 +++++++---
.../gwt/ui/shared/databylogo/DataByLogo.gss | 13 +++++++++++++
.../gwt/ui/shared/databylogo/DataByLogo.java | 5 ++++-
.../gwt/ui/shared/databylogo/DataByLogo.ui.xml | 2 +-
.../shared/databylogo/DataByLogoResources.java | 3 +++
6 files changed, 45 insertions(+), 5 deletions(-)
diff --git a/java/com.sap.sailing.gwt.ui/RaceBoard.css b/java/com.sap.sailing.gwt.ui/RaceBoard.css
index 3f1498b8616..2d4143de0b4 100755
--- a/java/com.sap.sailing.gwt.ui/RaceBoard.css
+++ b/java/com.sap.sailing.gwt.ui/RaceBoard.css
@@ -697,6 +697,15 @@ img.openColumn {
color: white;
}
+.RegattaAndRaceTime-Header_with_databy {
+ top: 3px;
+}
+
+.compactHeader .RegattaAndRaceTime-Header.RegattaAndRaceTime-Header_with_databy {
+ top: 0;
+ font-size: 90%;
+}
+
.RegattaAndRaceTime-Header .RegattaName-Anchor {
font-size: 15px;
color: white;
@@ -717,6 +726,14 @@ img.openColumn {
margin-top: 5px;
}
+.compactHeader .RegattaAndRaceTime-Header>* {
+ margin-top: 3px;
+}
+
+.RegattaAndRaceTime-Header_with_databy .RegattaName-Anchor, .RegattaAndRaceTime-Header_with_databy .RaceTime-Label {
+ font-size: 13px;
+}
+
.compactHeader .RegattaRaceInformation-Header {
left: 110px;
}
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 0bc1c6f52cf..ff21cb0211b 100644
--- 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
@@ -717,6 +717,12 @@ public class RaceBoardPanel
regattaAndRaceTimeInformationHeader.clear();
regattaAndRaceTimeInformationHeader.add(regattaNameAnchor);
regattaAndRaceTimeInformationHeader.add(raceTimeLabel);
+ DataByLogo dataByLogo = new DataByLogo();
+ dataByLogo.setUp(trackingConnectorInfos, false);
+ if (dataByLogo.isVisible()) {
+ regattaAndRaceTimeInformationHeader.addStyleName("RegattaAndRaceTime-Header_with_databy");
+ }
+ regattaAndRaceTimeInformationHeader.add(dataByLogo);
currentRaceHasBeenSelectedOnce = true;
taggingPanel.updateRace(leaderboardName, raceColumn, fleet);
}
@@ -785,12 +791,10 @@ public class RaceBoardPanel
timeLineInnerPanel.add(timeLineInnerBgPanel);
timeLineInnerPanel.addStyleName("timeLineInnerPanel");
- DataByLogo dataByLogo = new DataByLogo();
- dataByLogo.setUp(trackingConnectorInfos, true);
+
ResizableFlowPanel timelinePanel = new ResizableFlowPanel();
timelinePanel.add(timeLineInnerPanel);
- timelinePanel.add(dataByLogo);
timelinePanel.addStyleName("timeLinePanel");
return timelinePanel;
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/DataByLogo.gss b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/DataByLogo.gss
index 6543486b051..694082daa4f 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/DataByLogo.gss
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/DataByLogo.gss
@@ -1,5 +1,18 @@
.databylogo_logo{
height: 1.3333333em !important;
+ vertical-align: middle;
+}
+
+.databylogo_text{
+ vertical-align: middle;
+}
+
+.databylogo_white_text{
+ color: white;
+}
+
+.databylogo_black_text{
+ color: black;
}
.databylogo_subtlelink,
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/DataByLogo.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/DataByLogo.java
index 9c3f7a6195a..d2ffa834aa3 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/DataByLogo.java
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/DataByLogo.java
@@ -67,10 +67,13 @@ public class DataByLogo extends Widget {
}
private void setUpTracTracLogo(boolean colorIfPossible) {
+ DataByLogoResources resources = DataByLogoResources.INSTANCE;
if (colorIfPossible) {
- logo.setSrc(DataByLogoResources.INSTANCE.tractracColor().getSafeUri().asString());
+ logo.setSrc(resources.tractracColor().getSafeUri().asString());
+ this.addStyleName(resources.css().databylogo_black_text());
} else {
logo.setSrc(DataByLogoResources.INSTANCE.tractracWhite().getSafeUri().asString());
+ this.addStyleName(resources.css().databylogo_white_text());
}
}
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/DataByLogo.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/DataByLogo.ui.xml
index af5ab031e16..5a5279d01ad 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/DataByLogo.ui.xml
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/DataByLogo.ui.xml
@@ -4,7 +4,7 @@
-
+
\ No newline at end of file
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/DataByLogoResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/DataByLogoResources.java
index 9884503106d..42cc5949bfa 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/DataByLogoResources.java
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/DataByLogoResources.java
@@ -24,5 +24,8 @@ public interface DataByLogoResources extends ClientBundle {
String databylogo_logo();
String databylogo_subtlelink();
String databylogo_container();
+ String databylogo_white_text();
+ String databylogo_black_text();
+ String databylogo_text();
}
}
From 1b8968712ebaecaffe40289911397c8b73be8bd5 Mon Sep 17 00:00:00 2001
From: Dennis Aulenbacher
Date: Thu, 12 Dec 2019 16:25:04 +0100
Subject: [PATCH 23/53] deleted duplicate TrackingConnectorInfoDTO
---
.../client/shared/databylogo/DataByLogo.java | 2 +-
.../event/GetEventViewAction.java | 2 +-
.../communication/eventview/EventViewDTO.java | 1 +
.../eventview/TrackingConnectorInfoDTO.java | 23 -------------------
.../communication/start/EventStageDTO.java | 2 +-
.../sailing/gwt/server/HomeServiceUtil.java | 2 +-
6 files changed, 5 insertions(+), 27 deletions(-)
delete mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/eventview/TrackingConnectorInfoDTO.java
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogo.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogo.java
index cafee20d6d3..bbcfc68168f 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogo.java
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogo.java
@@ -9,7 +9,7 @@ import com.google.gwt.dom.client.ImageElement;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Widget;
-import com.sap.sailing.gwt.home.communication.eventview.TrackingConnectorInfoDTO;
+import com.sap.sailing.gwt.ui.shared.TrackingConnectorInfoDTO;
public class DataByLogo extends Widget {
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/event/GetEventViewAction.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/event/GetEventViewAction.java
index c9c069cf4fb..b472050b857 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/event/GetEventViewAction.java
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/event/GetEventViewAction.java
@@ -19,11 +19,11 @@ import com.sap.sailing.gwt.home.communication.SailingDispatchContext;
import com.sap.sailing.gwt.home.communication.eventview.EventViewDTO;
import com.sap.sailing.gwt.home.communication.eventview.RegattaMetadataDTO;
import com.sap.sailing.gwt.home.communication.eventview.SeriesReferenceWithEventsDTO;
-import com.sap.sailing.gwt.home.communication.eventview.TrackingConnectorInfoDTO;
import com.sap.sailing.gwt.home.server.EventActionUtil;
import com.sap.sailing.gwt.home.server.EventActionUtil.LeaderboardCallback;
import com.sap.sailing.gwt.home.server.LeaderboardContext;
import com.sap.sailing.gwt.server.HomeServiceUtil;
+import com.sap.sailing.gwt.ui.shared.TrackingConnectorInfoDTO;
import com.sap.sse.common.Util;
import com.sap.sse.common.media.MediaTagConstants;
import com.sap.sse.gwt.dispatch.shared.caching.IsClientCacheable;
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/eventview/EventViewDTO.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/eventview/EventViewDTO.java
index 3984daaf3ee..a8668e293d7 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/eventview/EventViewDTO.java
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/eventview/EventViewDTO.java
@@ -12,6 +12,7 @@ import com.sap.sailing.domain.common.WindSourceType;
import com.sap.sailing.domain.common.windfinder.SpotDTO;
import com.sap.sailing.gwt.home.communication.event.EventMetadataDTO;
import com.sap.sailing.gwt.home.communication.event.HasLogo;
+import com.sap.sailing.gwt.ui.shared.TrackingConnectorInfoDTO;
import com.sap.sse.common.Util;
import com.sap.sse.gwt.client.media.ImageDTO;
import com.sap.sse.gwt.dispatch.shared.commands.Result;
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/eventview/TrackingConnectorInfoDTO.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/eventview/TrackingConnectorInfoDTO.java
deleted file mode 100644
index c3acedb7e19..00000000000
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/eventview/TrackingConnectorInfoDTO.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.sap.sailing.gwt.home.communication.eventview;
-
-import com.google.gwt.user.client.rpc.IsSerializable;
-
-public class TrackingConnectorInfoDTO implements IsSerializable {
- private String trackedBy;
- private String webUrl;
-
- TrackingConnectorInfoDTO() {} // GWT serialization
-
- public TrackingConnectorInfoDTO(String trackedBy, String webUrl) {
- this.trackedBy = trackedBy;
- this.webUrl = webUrl;
- }
-
- public String getTrackedBy() {
- return trackedBy;
- }
-
- public String getWebUrl() {
- return webUrl;
- }
-}
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/start/EventStageDTO.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/start/EventStageDTO.java
index e64c29d74fb..be592d865c2 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/start/EventStageDTO.java
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/start/EventStageDTO.java
@@ -3,7 +3,7 @@ package com.sap.sailing.gwt.home.communication.start;
import java.util.Set;
import com.sap.sailing.gwt.home.communication.event.EventLinkAndMetadataDTO;
-import com.sap.sailing.gwt.home.communication.eventview.TrackingConnectorInfoDTO;
+import com.sap.sailing.gwt.ui.shared.TrackingConnectorInfoDTO;
public class EventStageDTO extends EventLinkAndMetadataDTO {
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/server/HomeServiceUtil.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/server/HomeServiceUtil.java
index 24b56d4cb37..8d1cac13668 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/server/HomeServiceUtil.java
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/server/HomeServiceUtil.java
@@ -38,10 +38,10 @@ import com.sap.sailing.gwt.home.communication.event.EventMetadataDTO;
import com.sap.sailing.gwt.home.communication.event.EventReferenceDTO;
import com.sap.sailing.gwt.home.communication.event.EventState;
import com.sap.sailing.gwt.home.communication.eventlist.EventListEventDTO;
-import com.sap.sailing.gwt.home.communication.eventview.TrackingConnectorInfoDTO;
import com.sap.sailing.gwt.home.communication.media.SailingVideoDTO;
import com.sap.sailing.gwt.home.communication.start.EventStageDTO;
import com.sap.sailing.gwt.home.communication.start.StageEventType;
+import com.sap.sailing.gwt.ui.shared.TrackingConnectorInfoDTO;
import com.sap.sailing.server.interfaces.RacingEventService;
import com.sap.sailing.server.util.EventUtil;
import com.sap.sse.common.TimePoint;
From 6560be028b010b1964bf7a2655a0b4fa94ab172a Mon Sep 17 00:00:00 2001
From: Dennis Aulenbacher
Date: Thu, 12 Dec 2019 16:44:51 +0100
Subject: [PATCH 24/53] improved styling in desktop EventHeader
---
.../gwt/home/desktop/partials/eventheader/EventHeader.gss | 1 +
1 file changed, 1 insertion(+)
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeader.gss b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeader.gss
index 5f2bd202db2..199dd59d12d 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeader.gss
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeader.gss
@@ -173,6 +173,7 @@
margin: 0.266666666666667em 0 0.266666666666667em 0.333333333333333em;
padding-left: 0.666666666666667em;
color: #666;
+ vertical-align: middle;
}
.eventheader_intro_details_itemlink {
color: inherit;
From dc9201097443109f1818bbc00ce7a949dc131a94 Mon Sep 17 00:00:00 2001
From: Dennis Aulenbacher
Date: Thu, 12 Dec 2019 17:07:17 +0100
Subject: [PATCH 25/53] removed duplicate DataByWidget and unified styling
---
.../client/shared/databylogo/DataByLogo.gss | 32 ------
.../client/shared/databylogo/DataByLogo.java | 97 -------------------
.../shared/databylogo/DataByLogo.ui.xml | 10 --
.../databylogo/DataByLogoResources.java | 31 ------
.../shared/databylogo/tractrac-color.svg | 1 -
.../shared/databylogo/tractrac-white.svg | 1 -
.../partials/eventheader/EventHeader.java | 4 +-
.../partials/eventheader/EventHeader.ui.xml | 2 +-
.../partials/stage/StageTeaserBand.java | 4 +-
.../partials/stage/StageTeaserBand.ui.xml | 2 +-
.../partials/eventheader/EventHeader.java | 4 +-
.../partials/eventheader/EventHeader.ui.xml | 2 +-
.../partials/stage/StageTeaserBand.java | 4 +-
.../partials/stage/StageTeaserBand.ui.xml | 2 +-
.../gwt/ui/raceboard/RaceBoardPanel.java | 2 +-
.../gwt/ui/shared/databylogo/DataByLogo.gss | 21 ++--
.../gwt/ui/shared/databylogo/DataByLogo.java | 24 ++---
17 files changed, 35 insertions(+), 208 deletions(-)
delete mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogo.gss
delete mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogo.java
delete mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogo.ui.xml
delete mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogoResources.java
delete mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/tractrac-color.svg
delete mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/tractrac-white.svg
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogo.gss b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogo.gss
deleted file mode 100644
index e53912ce436..00000000000
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogo.gss
+++ /dev/null
@@ -1,32 +0,0 @@
-img.databylogo_logo{
- height: 1.3333333em !important;
- display: inline-block;
- vertical-align: middle;
-}
-
-.databylogo_text{
- vertical-align: middle;
-}
-
-.databylogo_subtlelink,
-.databylogo_subtlelink:hover,
-.databylogo_subtlelink:active,
-.databylogo_subtlelink:visited,
-.databylogo_subtlelink:focus {
- text-decoration: none;
-}
-
-.databylogo_container{
- display: inline-block;
- white-space: nowrap;
- font-size: 0.75em;
- cursor: pointer;
-}
-
-.databylogo_white_text{
- color: white;
-}
-
-.databylogo_black_text{
- color: black;
-}
\ No newline at end of file
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogo.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogo.java
deleted file mode 100644
index bbcfc68168f..00000000000
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogo.java
+++ /dev/null
@@ -1,97 +0,0 @@
-package com.sap.sailing.gwt.home.client.shared.databylogo;
-
-import java.util.Set;
-
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.dom.client.AnchorElement;
-import com.google.gwt.dom.client.Element;
-import com.google.gwt.dom.client.ImageElement;
-import com.google.gwt.uibinder.client.UiBinder;
-import com.google.gwt.uibinder.client.UiField;
-import com.google.gwt.user.client.ui.Widget;
-import com.sap.sailing.gwt.ui.shared.TrackingConnectorInfoDTO;
-
-public class DataByLogo extends Widget {
-
- private static final String TRAC_TRAC = "TracTrac";
- private static final String TRAC_TRAC_DEFAULT_URL = "https://www.tractrac.com/";
- private static DataByLogoUiBinder uiBinder = GWT.create(DataByLogoUiBinder.class);
-
- interface DataByLogoUiBinder extends UiBinder {
- }
-
- @UiField
- AnchorElement dataByContainer;
- @UiField
- ImageElement logo;
-
- public DataByLogo() {
- DataByLogoResources.INSTANCE.css().ensureInjected();
- setElement(uiBinder.createAndBindUi(this));
- }
-
- public void setUp(Set trackingConnectorInfos, boolean colorIfPossible) {
- TrackingConnectorInfoDTO mostProminentConnectorInfo = selectMostProminentConnectorInfo(trackingConnectorInfos);
- if (mostProminentConnectorInfo == null) {
- this.setVisible(false);
- } else {
- setUpForConnectorType(colorIfPossible, mostProminentConnectorInfo);
- }
- }
-
- private TrackingConnectorInfoDTO selectMostProminentConnectorInfo(
- Set trackingConnectorInfos) {
- TrackingConnectorInfoDTO potentialConnectorInfo = null;
- if (trackingConnectorInfos == null || trackingConnectorInfos.isEmpty()) {
- return potentialConnectorInfo;
- } else {
- for (TrackingConnectorInfoDTO trackingConnectorInfo : trackingConnectorInfos) {
- // This logic currently only supports TracTrac as ConnectorInfo
- if (TRAC_TRAC.equals(trackingConnectorInfo.getTrackedBy())) {
- potentialConnectorInfo = trackingConnectorInfo;
- String webUrl = trackingConnectorInfo.getWebUrl();
- if (webUrl != null && !"".equals(webUrl)) {
- break;
- }
- }
- }
- return potentialConnectorInfo;
- }
- }
-
- private void setUpForConnectorType(boolean colorIfPossible, TrackingConnectorInfoDTO trackingConnectorInfo) {
- if (TRAC_TRAC.equals(trackingConnectorInfo.getTrackedBy())) {
- setUpTracTracLogo(colorIfPossible);
- }
- setUrl(trackingConnectorInfo);
- }
-
- private void setUpTracTracLogo(boolean colorIfPossible) {
- DataByLogoResources resources = DataByLogoResources.INSTANCE;
- if (colorIfPossible) {
- logo.setSrc(resources.tractracColor().getSafeUri().asString());
- this.addStyleName(resources.css().databylogo_black_text());
- } else {
- logo.setSrc(DataByLogoResources.INSTANCE.tractracWhite().getSafeUri().asString());
- this.addStyleName(resources.css().databylogo_white_text());
- }
- }
-
- private void setUrl(TrackingConnectorInfoDTO trackingConnectorInfo) {
- String webUrl = trackingConnectorInfo.getWebUrl();
- if (webUrl == null || "".equals(trackingConnectorInfo.getWebUrl())) {
- dataByContainer.setHref(getConnectorDefaultUrl(trackingConnectorInfo.getTrackedBy()));
- } else {
- dataByContainer.setHref(webUrl);
- }
- }
-
- private String getConnectorDefaultUrl(String trackedBy) {
- switch (trackedBy) {
- case TRAC_TRAC:
- return TRAC_TRAC_DEFAULT_URL;
- default:
- return null;
- }
- }
-}
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogo.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogo.ui.xml
deleted file mode 100644
index 47d05e5dfcd..00000000000
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogo.ui.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogoResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogoResources.java
deleted file mode 100644
index 7f8cbb368af..00000000000
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/DataByLogoResources.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package com.sap.sailing.gwt.home.client.shared.databylogo;
-
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.resources.client.CssResource;
-import com.google.gwt.resources.client.DataResource;
-import com.google.gwt.resources.client.DataResource.MimeType;
-import com.sap.sailing.gwt.home.shared.resources.SharedHomeResources;
-
-public interface DataByLogoResources extends SharedHomeResources {
- public static final DataByLogoResources INSTANCE = GWT.create(DataByLogoResources.class);
-
- @Source("DataByLogo.gss")
- LocalCss css();
-
- @Source("tractrac-color.svg")
- @MimeType("image/svg+xml")
- DataResource tractracColor();
-
- @Source("tractrac-white.svg")
- @MimeType("image/svg+xml")
- DataResource tractracWhite();
-
- public interface LocalCss extends CssResource {
- String databylogo_logo();
- String databylogo_subtlelink();
- String databylogo_container();
- String databylogo_white_text();
- String databylogo_black_text();
- String databylogo_text();
- }
-}
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/tractrac-color.svg b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/tractrac-color.svg
deleted file mode 100644
index 96662ddb01b..00000000000
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/tractrac-color.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/tractrac-white.svg b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/tractrac-white.svg
deleted file mode 100644
index eba4e0347c8..00000000000
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/databylogo/tractrac-white.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeader.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeader.java
index 275d92c9dac..28f1a513d1c 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeader.java
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeader.java
@@ -17,7 +17,6 @@ import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.UIObject;
import com.google.gwt.user.client.ui.Widget;
-import com.sap.sailing.gwt.home.client.shared.databylogo.DataByLogo;
import com.sap.sailing.gwt.home.communication.eventview.EventViewDTO;
import com.sap.sailing.gwt.home.communication.eventview.HasRegattaMetadata;
import com.sap.sailing.gwt.home.desktop.partials.sharing.SharingButtons;
@@ -31,6 +30,7 @@ import com.sap.sailing.gwt.home.shared.utils.EventDatesFormatterUtil;
import com.sap.sailing.gwt.home.shared.utils.LabelTypeUtil;
import com.sap.sailing.gwt.home.shared.utils.LogoUtil;
import com.sap.sailing.gwt.ui.client.StringMessages;
+import com.sap.sailing.gwt.ui.shared.databylogo.DataByLogo;
import com.sap.sse.common.Util;
import com.sap.sse.gwt.client.LinkUtil;
@@ -151,7 +151,7 @@ public class EventHeader extends Composite {
}
hide(competitors, races, courseAreaUi, eventCategory);
}
- dataByLogo.setUp(event.getTrackingConnectorInfos(), true);
+ dataByLogo.setUp(event.getTrackingConnectorInfos(), true, false);
initTitleAndSelection(nameToShow);
}
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeader.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeader.ui.xml
index 78e72b7f93f..ae91b186d00 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeader.ui.xml
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/eventheader/EventHeader.ui.xml
@@ -1,7 +1,7 @@
+ xmlns:s="urn:import:com.sap.sailing.gwt.ui.shared">
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/stage/StageTeaserBand.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/stage/StageTeaserBand.java
index 28f57740511..1a63da35ccc 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/stage/StageTeaserBand.java
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/stage/StageTeaserBand.java
@@ -11,12 +11,12 @@ import com.google.gwt.uibinder.client.UiHandler;
import com.google.gwt.user.client.ui.Anchor;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Widget;
-import com.sap.sailing.gwt.home.client.shared.databylogo.DataByLogo;
import com.sap.sailing.gwt.home.communication.start.EventStageDTO;
import com.sap.sailing.gwt.home.desktop.app.DesktopPlacesNavigator;
import com.sap.sailing.gwt.home.shared.app.PlaceNavigation;
import com.sap.sailing.gwt.home.shared.app.PlaceNavigator;
import com.sap.sailing.gwt.home.shared.places.event.EventDefaultPlace;
+import com.sap.sailing.gwt.ui.shared.databylogo.DataByLogo;
public abstract class StageTeaserBand extends Composite {
@@ -44,7 +44,7 @@ public abstract class StageTeaserBand extends Composite {
isLiveDiv.getStyle().setDisplay(Display.NONE);
- dataByLogo.setUp(event.getTrackingConnectorInfos(), false);
+ dataByLogo.setUp(event.getTrackingConnectorInfos(), false, true);
eventNavigation = placeNavigator.getEventNavigation(event.getId().toString(), event.getBaseURL(), event.isOnRemoteServer());
}
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/stage/StageTeaserBand.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/stage/StageTeaserBand.ui.xml
index 32dec538afe..149f1303929 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/stage/StageTeaserBand.ui.xml
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/partials/stage/StageTeaserBand.ui.xml
@@ -1,5 +1,5 @@
-
+
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/eventheader/EventHeader.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/eventheader/EventHeader.java
index a663d105e6e..e6bdbfe9562 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/eventheader/EventHeader.java
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/eventheader/EventHeader.java
@@ -9,12 +9,12 @@ import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Widget;
-import com.sap.sailing.gwt.home.client.shared.databylogo.DataByLogo;
import com.sap.sailing.gwt.home.communication.eventview.EventViewDTO;
import com.sap.sailing.gwt.home.shared.app.PlaceNavigation;
import com.sap.sailing.gwt.home.shared.utils.EventDatesFormatterUtil;
import com.sap.sailing.gwt.home.shared.utils.LabelTypeUtil;
import com.sap.sailing.gwt.home.shared.utils.LogoUtil;
+import com.sap.sailing.gwt.ui.shared.databylogo.DataByLogo;
public class EventHeader extends Composite {
private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class);
@@ -51,7 +51,7 @@ public class EventHeader extends Composite {
if (logoNavigation != null) {
logoNavigation.configureAnchorElement(eventLogoUi);
}
- dataByLogo.setUp(event.getTrackingConnectorInfos(), true);
+ dataByLogo.setUp(event.getTrackingConnectorInfos(), true, true);
if (dataByLogo.isVisible()) {
this.addStyleName(EventHeaderResources.INSTANCE.css().eventheader_with_logo());
}
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/eventheader/EventHeader.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/eventheader/EventHeader.ui.xml
index 9ee11cbaee8..a06efba2ffc 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/eventheader/EventHeader.ui.xml
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/eventheader/EventHeader.ui.xml
@@ -1,6 +1,6 @@
+ xmlns:g="urn:import:com.google.gwt.user.client.ui" xmlns:s="urn:import:com.sap.sailing.gwt.ui.shared">
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/stage/StageTeaserBand.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/stage/StageTeaserBand.java
index 46a3a439e71..2f8bef2b51c 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/stage/StageTeaserBand.java
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/stage/StageTeaserBand.java
@@ -9,13 +9,13 @@ import com.google.gwt.uibinder.client.UiHandler;
import com.google.gwt.user.client.ui.Anchor;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Widget;
-import com.sap.sailing.gwt.home.client.shared.databylogo.DataByLogo;
import com.sap.sailing.gwt.home.communication.event.EventLinkAndMetadataDTO;
import com.sap.sailing.gwt.home.communication.start.EventStageDTO;
import com.sap.sailing.gwt.home.mobile.app.MobilePlacesNavigator;
import com.sap.sailing.gwt.home.shared.app.PlaceNavigation;
import com.sap.sailing.gwt.home.shared.app.PlaceNavigator;
import com.sap.sailing.gwt.home.shared.places.event.EventDefaultPlace;
+import com.sap.sailing.gwt.ui.shared.databylogo.DataByLogo;
public abstract class StageTeaserBand extends Composite {
@@ -45,7 +45,7 @@ public abstract class StageTeaserBand extends Composite {
initWidget(uiBinder.createAndBindUi(this));
if (event instanceof EventStageDTO) {
- dataByLogo.setUp(((EventStageDTO) event).getTrackingConnectorInfos(), false);
+ dataByLogo.setUp(((EventStageDTO) event).getTrackingConnectorInfos(), false, true);
} else {
dataByLogo.setVisible(false);
}
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/stage/StageTeaserBand.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/stage/StageTeaserBand.ui.xml
index 4dc84912869..3c8f3b3881a 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/stage/StageTeaserBand.ui.xml
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/stage/StageTeaserBand.ui.xml
@@ -1,6 +1,6 @@
+ xmlns:g="urn:import:com.google.gwt.user.client.ui" xmlns:s="urn:import:com.sap.sailing.gwt.ui.shared">
trackingConnectorInfos, boolean colorIfPossible) {
+ public void setUp(Set trackingConnectorInfos, boolean colorIfPossible, boolean enforceTextColor) {
TrackingConnectorInfoDTO mostProminentConnectorInfo = selectMostProminentConnectorInfo(trackingConnectorInfos);
if (mostProminentConnectorInfo == null) {
this.setVisible(false);
} else {
- setUpForConnectorType(colorIfPossible, mostProminentConnectorInfo);
+ setUpForConnectorType(colorIfPossible, enforceTextColor, mostProminentConnectorInfo);
}
}
@@ -59,21 +60,20 @@ public class DataByLogo extends Widget {
}
}
- private void setUpForConnectorType(boolean colorIfPossible, TrackingConnectorInfoDTO trackingConnectorInfo) {
+ private void setUpForConnectorType(boolean colorIfPossible, boolean enforceTextColor, TrackingConnectorInfoDTO trackingConnectorInfo) {
if (TRAC_TRAC.equals(trackingConnectorInfo.getTrackedBy())) {
- setUpTracTracLogo(colorIfPossible);
+ setUpTracTracLogo(colorIfPossible, enforceTextColor);
}
setUrl(trackingConnectorInfo);
}
- private void setUpTracTracLogo(boolean colorIfPossible) {
- DataByLogoResources resources = DataByLogoResources.INSTANCE;
- if (colorIfPossible) {
- logo.setSrc(resources.tractracColor().getSafeUri().asString());
- this.addStyleName(resources.css().databylogo_black_text());
- } else {
- logo.setSrc(DataByLogoResources.INSTANCE.tractracWhite().getSafeUri().asString());
- this.addStyleName(resources.css().databylogo_white_text());
+ private void setUpTracTracLogo(boolean colorIfPossible, boolean enforceTextColor) {
+ final DataByLogoResources resources = DataByLogoResources.INSTANCE;
+ final DataResource imageToSet = colorIfPossible ? resources.tractracColor() : resources.tractracWhite();
+ logo.setSrc(imageToSet.getSafeUri().asString());
+ if (enforceTextColor) {
+ this.addStyleName(colorIfPossible ? resources.css().databylogo_black_text()
+ : resources.css().databylogo_white_text());
}
}
From 637295cd540aaa97f8edc00388ab23ede9151134 Mon Sep 17 00:00:00 2001
From: Dennis Aulenbacher
Date: Thu, 12 Dec 2019 17:13:31 +0100
Subject: [PATCH 26/53] implemented equals and hashcode for proper elimination
of duplicates in a set
---
.../impl/TrackingConnectorInfoImpl.java | 33 ++++++++++++++++++-
1 file changed, 32 insertions(+), 1 deletion(-)
diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/tracking/impl/TrackingConnectorInfoImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/tracking/impl/TrackingConnectorInfoImpl.java
index ad55bc42f57..a96b7c77521 100644
--- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/tracking/impl/TrackingConnectorInfoImpl.java
+++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/tracking/impl/TrackingConnectorInfoImpl.java
@@ -6,7 +6,7 @@ import com.sap.sailing.domain.tracking.TrackingConnectorInfo;
public class TrackingConnectorInfoImpl implements TrackingConnectorInfo {
private static final long serialVersionUID = -1681930521305924294L;
-
+
private final String trackedBy;
private final URL webUrl;
@@ -23,4 +23,35 @@ public class TrackingConnectorInfoImpl implements TrackingConnectorInfo {
public URL getWebUrl() {
return webUrl;
}
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((trackedBy == null) ? 0 : trackedBy.hashCode());
+ result = prime * result + ((webUrl == null) ? 0 : webUrl.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ TrackingConnectorInfoImpl other = (TrackingConnectorInfoImpl) obj;
+ if (trackedBy == null) {
+ if (other.trackedBy != null)
+ return false;
+ } else if (!trackedBy.equals(other.trackedBy))
+ return false;
+ if (webUrl == null) {
+ if (other.webUrl != null)
+ return false;
+ } else if (!webUrl.equals(other.webUrl))
+ return false;
+ return true;
+ }
}
From 8959eaa89a1eebf191241a8ed99ea8b92d4eba90 Mon Sep 17 00:00:00 2001
From: Dennis Aulenbacher
Date: Thu, 12 Dec 2019 18:09:51 +0100
Subject: [PATCH 27/53] code formatiing, java docs and optimizations
---
.../domain/racelogtracking/impl/RaceLogRaceTracker.java | 4 ++--
.../sailing/domain/tracking/TrackingConnectorInfo.java | 4 ++++
.../impl/SwissTimingRaceTrackerImpl.java | 4 ++--
.../impl/SwissTimingReplayToDomainAdapter.java | 6 +++---
.../CourseUpdateDuringNonAtomicSerializationTest.java | 3 ++-
.../src/com/sap/sailing/domain/test/TrackBasedTest.java | 2 +-
.../markpassing/AbstractExportedPositionsBasedTest.java | 5 +++--
.../sap/sailing/domain/test/mock/MockedTrackedRace.java | 4 +++-
.../src/com/sap/sailing/domain/base/impl/EventImpl.java | 2 +-
.../sap/sailing/domain/tracking/RaceTrackingHandler.java | 8 +++++---
.../gwt/home/communication/event/GetEventViewAction.java | 7 ++++---
11 files changed, 30 insertions(+), 19 deletions(-)
diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/RaceLogRaceTracker.java b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/RaceLogRaceTracker.java
index 2a085083a1f..09de5e2513a 100755
--- a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/RaceLogRaceTracker.java
+++ b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/RaceLogRaceTracker.java
@@ -314,8 +314,8 @@ public class RaceLogRaceTracker extends AbstractRaceTrackerBaseImpl {
trackedRace = raceTrackingHandler.createTrackedRace(trackedRegatta, raceDef, sidelines, windStore,
params.getDelayToLiveInMillis(), WindTrack.DEFAULT_MILLISECONDS_OVER_WHICH_TO_AVERAGE_WIND,
boatClass.getApproximateManeuverDurationInMilliseconds(), null, /*useMarkPassingCalculator*/ true, raceLogResolver,
- /* Not needed because the RaceTracker is not active on a replica */ Optional.empty(),
- new TrackingConnectorInfoImpl(RACE_LOG, null));
+ /* Not needed because the RaceTracker is not active on a replica */ Optional.empty(),
+ new TrackingConnectorInfoImpl(RACE_LOG, /* webUrl */ null));
notifyRaceCreationListeners();
logger.info(String.format("Started tracking race-log race (%s)", raceLog));
// this wakes up all waiting race handles
diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/tracking/TrackingConnectorInfo.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/tracking/TrackingConnectorInfo.java
index 620cfba8a5d..0772b5e8765 100644
--- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/tracking/TrackingConnectorInfo.java
+++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/tracking/TrackingConnectorInfo.java
@@ -3,6 +3,10 @@ package com.sap.sailing.domain.tracking;
import java.io.Serializable;
import java.net.URL;
+/**
+ * Identifies the tracking connector that was used to create a TrackedRace.
+ * Further the Connector can provide a webUrl, that leads to an event web page.
+ */
public interface TrackingConnectorInfo extends Serializable {
/**
diff --git a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SwissTimingRaceTrackerImpl.java b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SwissTimingRaceTrackerImpl.java
index cfd80b61983..dce8765a231 100644
--- a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SwissTimingRaceTrackerImpl.java
+++ b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SwissTimingRaceTrackerImpl.java
@@ -496,8 +496,8 @@ public class SwissTimingRaceTrackerImpl extends AbstractRaceTrackerImpl
assert SwissTimingRaceTrackerImpl.this.race == race;
}
}, useInternalMarkPassingAlgorithm, raceLogResolver,
- /* Not needed because the RaceTracker is not active on a replica */ Optional.empty(),
- /*no api connection to query the event url*/new TrackingConnectorInfoImpl(SWISS_TIMING_IDENTIFIER, null));
+ /* Not needed because the RaceTracker is not active on a replica */ Optional.empty(),
+ new TrackingConnectorInfoImpl(SWISS_TIMING_IDENTIFIER, /*no api connection to query the webUrl*/ null));
addUpdateHandlers();
notifyRaceCreationListeners();
logger.info("Created SwissTiming RaceDefinition and TrackedRace for "+race.getName());
diff --git a/java/com.sap.sailing.domain.swisstimingreplayadapter/src/com/sap/sailing/domain/swisstimingreplayadapter/impl/SwissTimingReplayToDomainAdapter.java b/java/com.sap.sailing.domain.swisstimingreplayadapter/src/com/sap/sailing/domain/swisstimingreplayadapter/impl/SwissTimingReplayToDomainAdapter.java
index 98df93b1bf4..300afe92013 100755
--- a/java/com.sap.sailing.domain.swisstimingreplayadapter/src/com/sap/sailing/domain/swisstimingreplayadapter/impl/SwissTimingReplayToDomainAdapter.java
+++ b/java/com.sap.sailing.domain.swisstimingreplayadapter/src/com/sap/sailing/domain/swisstimingreplayadapter/impl/SwissTimingReplayToDomainAdapter.java
@@ -411,11 +411,11 @@ public class SwissTimingReplayToDomainAdapter extends SwissTimingReplayAdapter i
DynamicTrackedRace trackedRace = raceTrackingHandler.createTrackedRace(getTrackedRegatta(),
race, Collections. emptyList(), EmptyWindStore.INSTANCE,
TrackedRace.DEFAULT_LIVE_DELAY_IN_MILLISECONDS,
- WindTrack.DEFAULT_MILLISECONDS_OVER_WHICH_TO_AVERAGE_WIND,
+ WindTrack.DEFAULT_MILLISECONDS_OVER_WHICH_TO_AVERAGE_WIND,
/* time over which to average speed: */ race.getBoatClass().getApproximateManeuverDurationInMilliseconds(),
/* raceDefinitionSetToUpdate */ null, useInternalMarkPassingAlgorithm, raceLogResolver,
- /* Not needed because the RaceTracker is not active on a replica */ Optional.empty(),
- /*no api connection to query the event url*/new TrackingConnectorInfoImpl(SWISS_TIMING_IDENTIFIER, null));
+ /* Not needed because the RaceTracker is not active on a replica */ Optional.empty(),
+ new TrackingConnectorInfoImpl(SWISS_TIMING_IDENTIFIER, /*no api connection to query the webUrl*/ null));
trackedRace.onStatusChanged(this, new TrackedRaceStatusImpl(TrackedRaceStatusEnum.LOADING, 0));
TimePoint bestStartTimeKnownSoFar = bestStartTimePerRaceID.get(currentRaceID);
if (bestStartTimeKnownSoFar != null) {
diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseUpdateDuringNonAtomicSerializationTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseUpdateDuringNonAtomicSerializationTest.java
index 75358acbe69..d38a049e397 100755
--- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseUpdateDuringNonAtomicSerializationTest.java
+++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseUpdateDuringNonAtomicSerializationTest.java
@@ -87,7 +87,8 @@ public class CourseUpdateDuringNonAtomicSerializationTest implements Serializabl
trackedRace = new DynamicTrackedRaceImpl(trackedRegatta, race, Collections. emptySet(),
EmptyWindStore.INSTANCE,
/* delayToLiveInMillis */10000, /* millisecondsOverWhichToAverageWind */30000, /* millisecondsOverWhichToAverageSpeed */
- 7000, /*useMarkPassingCalculator*/ false, OneDesignRankingMetric::new, mock(RaceLogAndTrackedRaceResolver.class), /* trackingConnectorInfo */ null) {
+ 7000, /* useMarkPassingCalculator */ false, OneDesignRankingMetric::new,
+ mock(RaceLogAndTrackedRaceResolver.class), /* trackingConnectorInfo */ null) {
private static final long serialVersionUID = 9114777576548711763L;
@Override
diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TrackBasedTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TrackBasedTest.java
index 13062de8195..d4edf4f0386 100755
--- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TrackBasedTest.java
+++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TrackBasedTest.java
@@ -201,7 +201,7 @@ public abstract class TrackBasedTest {
/* delayToLiveInMillis */ 0,
/* millisecondsOverWhichToAverageWind */ 30000, /* millisecondsOverWhichToAverageSpeed */ 30000,
/* delay for wind estimation cache invalidation */ 0, useMarkPassingCalculator,
- rankingMetricConstructor, raceLogResolver, /** trackingConnectorInfo **/ null);
+ rankingMetricConstructor, raceLogResolver, /* trackingConnectorInfo */ null);
// in this simplified artificial course, the top mark is exactly north of the right leeward gate
DegreePosition topPosition = new DegreePosition(54.48, 10.24);
TimePoint afterTheRace = new MillisecondsTimePoint(timePointForFixes.asMillis() + 36000000); // 10h after the fix timed
diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/AbstractExportedPositionsBasedTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/AbstractExportedPositionsBasedTest.java
index fa10bdaf549..2020db4428c 100755
--- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/AbstractExportedPositionsBasedTest.java
+++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/AbstractExportedPositionsBasedTest.java
@@ -105,8 +105,9 @@ public abstract class AbstractExportedPositionsBasedTest {
competitorsAndBoats, UUID.randomUUID()),
/* sidelines */ Collections.emptySet(),
EmptyWindStore.INSTANCE,
- /* delayToLiveInMillis */ 3000, /* millisecondsOverWhichToAverageWind */ 15000, /* millisecondsOverWhichToAverageSpeed */ 10000,
- /* useInternalMarkPassingAlgorithm */ true, OneDesignRankingMetric::new, /* raceLogResolver */ null, /* trackingConnectorInfo */ null);
+ /* delayToLiveInMillis */ 3000, /* millisecondsOverWhichToAverageWind */ 15000,
+ /* millisecondsOverWhichToAverageSpeed */ 10000, /* useInternalMarkPassingAlgorithm */ true,
+ OneDesignRankingMetric::new, /* raceLogResolver */ null, /* trackingConnectorInfo */ null);
result.setStatus(new TrackedRaceStatusImpl(TrackedRaceStatusEnum.LOADING, 0.0));
for (final Entry> e : competitorsAndTheirTracks.entrySet()) {
final DynamicGPSFixTrack track = result.getTrack(e.getKey());
diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java
index 7fe26ed91fe..1ffb6d35f77 100755
--- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java
+++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java
@@ -658,7 +658,9 @@ public class MockedTrackedRace implements DynamicTrackedRace {
WindStore windStore, long delayToLiveInMillis,
long millisecondsOverWhichToAverageWind, long millisecondsOverWhichToAverageSpeed,
DynamicRaceDefinitionSet raceDefinitionSetToUpdate, boolean useMarkPassingcalculator,
- RaceLogAndTrackedRaceResolver raceLogResolver, Optional threadLocalTransporter, TrackingConnectorInfo trackingConnectorInfo) {
+ RaceLogAndTrackedRaceResolver raceLogResolver,
+ Optional threadLocalTransporter,
+ TrackingConnectorInfo trackingConnectorInfo) {
return null;
}
diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/EventImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/EventImpl.java
index 45b76958378..b6d3257fd35 100755
--- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/EventImpl.java
+++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/EventImpl.java
@@ -106,7 +106,7 @@ public class EventImpl extends EventBaseImpl implements Event {
@Override
public Set getTrackingConnectorInfos() {
- Set result = new HashSet<>();
+ final Set result = new HashSet<>();
for (LeaderboardGroup lbg : this.getLeaderboardGroups()) {
for (Leaderboard lb : lbg.getLeaderboards()) {
for (TrackedRace tr : lb.getTrackedRaces()) {
diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/RaceTrackingHandler.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/RaceTrackingHandler.java
index 5bccfc37a22..12db12eb574 100644
--- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/RaceTrackingHandler.java
+++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/RaceTrackingHandler.java
@@ -35,8 +35,9 @@ public interface RaceTrackingHandler {
Iterable sidelines, WindStore windStore, long delayToLiveInMillis,
long millisecondsOverWhichToAverageWind, long millisecondsOverWhichToAverageSpeed,
DynamicRaceDefinitionSet raceDefinitionSetToUpdate, boolean useMarkPassingCalculator,
- RaceLogAndTrackedRaceResolver raceLogResolver, Optional threadLocalTransporter, TrackingConnectorInfo trackingConnectorInfo);
-
+ RaceLogAndTrackedRaceResolver raceLogResolver, Optional threadLocalTransporter,
+ TrackingConnectorInfo trackingConnectorInfo);
+
DynamicCompetitor getOrCreateCompetitor(CompetitorAndBoatStore competitorAndBoatStore, Serializable competitorId,
String name, String shortName, Color displayColor, String email, URI flagImageURI, DynamicTeam team,
Double timeOnTimeFactor, Duration timeOnDistanceAllowancePerNauticalMile, String searchTag);
@@ -58,7 +59,8 @@ public interface RaceTrackingHandler {
Iterable sidelines, WindStore windStore, long delayToLiveInMillis,
long millisecondsOverWhichToAverageWind, long millisecondsOverWhichToAverageSpeed,
DynamicRaceDefinitionSet raceDefinitionSetToUpdate, boolean useMarkPassingCalculator,
- RaceLogAndTrackedRaceResolver raceLogResolver, Optional threadLocalTransporter, TrackingConnectorInfo trackingConnectorInfo) {
+ RaceLogAndTrackedRaceResolver raceLogResolver, Optional threadLocalTransporter,
+ TrackingConnectorInfo trackingConnectorInfo) {
return trackedRegatta.createTrackedRace(raceDefinition, sidelines, windStore, delayToLiveInMillis,
millisecondsOverWhichToAverageWind, millisecondsOverWhichToAverageSpeed, raceDefinitionSetToUpdate,
useMarkPassingCalculator, raceLogResolver, threadLocalTransporter, trackingConnectorInfo);
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/event/GetEventViewAction.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/event/GetEventViewAction.java
index b472050b857..159f1b6d164 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/event/GetEventViewAction.java
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/event/GetEventViewAction.java
@@ -121,9 +121,10 @@ public class GetEventViewAction implements SailingAction, IsClient
}
}
- Set trackingConnectorInfos = event.getTrackingConnectorInfos()
- .stream()
- .map(trackingConnectorInfo -> new TrackingConnectorInfoDTO(trackingConnectorInfo.getTrackedBy(), mapURLToString(trackingConnectorInfo.getWebUrl()))).collect(Collectors.toSet());
+ Set trackingConnectorInfos = event.getTrackingConnectorInfos().stream()
+ .map(trackingConnectorInfo -> new TrackingConnectorInfoDTO(trackingConnectorInfo.getTrackedBy(),
+ mapURLToString(trackingConnectorInfo.getWebUrl())))
+ .collect(Collectors.toSet());
dto.setTrackingConnectorInfos(trackingConnectorInfos);
return dto;
}
From d189cce693d1c4b8f6f1a84f4019632964b0c8a9 Mon Sep 17 00:00:00 2001
From: Dennis Aulenbacher
Date: Fri, 13 Dec 2019 21:21:36 +0100
Subject: [PATCH 28/53] code styling improvements
---
.../communication/eventview/EventViewDTO.java | 1 -
.../gwt/ui/raceboard/RaceBoardPanel.java | 2 --
.../gwt/ui/shared/databylogo/DataByLogo.java | 6 +++--
.../impl/EventBaseJsonDeserializer.java | 6 +++--
.../impl/EventBaseJsonSerializer.java | 4 +++-
.../test/EventDataJsonSerializerTest.java | 9 +++++---
...JsonSerializerWithImagesAndVideosTest.java | 9 +++++---
...tDataJsonSerializerWithNullValuesTest.java | 9 +++++---
...NullStartAndEndDataJsonSerializerTest.java | 7 ++++--
.../gateway/jaxrs/api/EventsResource.java | 6 +++--
.../gateway/jaxrs/api/SearchResource.java | 6 +++--
.../server/interfaces/RacingEventService.java | 3 ++-
.../CreateTrackedRace.java | 9 ++++----
.../server/test/RemoveLeaderboardTest.java | 6 ++---
.../server/test/SearchServiceTest.java | 14 +++++++-----
.../server/impl/RacingEventServiceImpl.java | 22 ++++++++++++-------
.../PermissionAwareRaceTrackingHandler.java | 9 +++++---
17 files changed, 81 insertions(+), 47 deletions(-)
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/eventview/EventViewDTO.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/eventview/EventViewDTO.java
index a8668e293d7..60d4ced9353 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/eventview/EventViewDTO.java
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/eventview/EventViewDTO.java
@@ -153,5 +153,4 @@ public class EventViewDTO extends EventMetadataDTO implements Result, HasLogo {
public void setTrackingConnectorInfos(Set trackingConnectorInfo) {
this.trackingConnectorInfos = trackingConnectorInfo;
}
-
}
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 ea49c3b6ae8..ead4b7ba4a3 100644
--- 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
@@ -791,8 +791,6 @@ public class RaceBoardPanel
timeLineInnerPanel.add(timeLineInnerBgPanel);
timeLineInnerPanel.addStyleName("timeLineInnerPanel");
-
-
ResizableFlowPanel timelinePanel = new ResizableFlowPanel();
timelinePanel.add(timeLineInnerPanel);
timelinePanel.addStyleName("timeLinePanel");
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/DataByLogo.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/DataByLogo.java
index fbee5b8fea5..68a9f02c576 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/DataByLogo.java
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/databylogo/DataByLogo.java
@@ -31,7 +31,8 @@ public class DataByLogo extends Widget {
setElement(uiBinder.createAndBindUi(this));
}
- public void setUp(Set trackingConnectorInfos, boolean colorIfPossible, boolean enforceTextColor) {
+ public void setUp(Set trackingConnectorInfos, boolean colorIfPossible,
+ boolean enforceTextColor) {
TrackingConnectorInfoDTO mostProminentConnectorInfo = selectMostProminentConnectorInfo(trackingConnectorInfos);
if (mostProminentConnectorInfo == null) {
this.setVisible(false);
@@ -60,7 +61,8 @@ public class DataByLogo extends Widget {
}
}
- private void setUpForConnectorType(boolean colorIfPossible, boolean enforceTextColor, TrackingConnectorInfoDTO trackingConnectorInfo) {
+ private void setUpForConnectorType(boolean colorIfPossible, boolean enforceTextColor,
+ TrackingConnectorInfoDTO trackingConnectorInfo) {
if (TRAC_TRAC.equals(trackingConnectorInfo.getTrackedBy())) {
setUpTracTracLogo(colorIfPossible, enforceTextColor);
}
diff --git a/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/impl/EventBaseJsonDeserializer.java b/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/impl/EventBaseJsonDeserializer.java
index c86ecc09566..fefa20b4dae 100644
--- a/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/impl/EventBaseJsonDeserializer.java
+++ b/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/impl/EventBaseJsonDeserializer.java
@@ -69,8 +69,10 @@ public class EventBaseJsonDeserializer implements JsonDeserializer {
trackingConnectorInfos.add(trackingConnectorInfoDeserializer.deserialize((JSONObject) jsonPair));
}
- StrippedEventImpl result = new StrippedEventImpl(name, startDate == null ? null : new MillisecondsTimePoint(startDate.longValue()),
- endDate == null ? null : new MillisecondsTimePoint(endDate.longValue()), venue, /* is public */ true, id, leaderboardGroups, trackingConnectorInfos);
+ StrippedEventImpl result = new StrippedEventImpl(name,
+ startDate == null ? null : new MillisecondsTimePoint(startDate.longValue()),
+ endDate == null ? null : new MillisecondsTimePoint(endDate.longValue()), venue, /* is public */ true,
+ id, leaderboardGroups, trackingConnectorInfos);
result.setDescription(description);
if (officialWebsiteURLAsString != null) {
try {
diff --git a/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/serialization/impl/EventBaseJsonSerializer.java b/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/serialization/impl/EventBaseJsonSerializer.java
index c308539198f..369badc4a07 100644
--- a/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/serialization/impl/EventBaseJsonSerializer.java
+++ b/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/serialization/impl/EventBaseJsonSerializer.java
@@ -56,7 +56,9 @@ public class EventBaseJsonSerializer implements JsonSerializer {
private final JsonSerializer super LeaderboardGroupBase> leaderboardGroupBaseSerializer;
private final JsonSerializer trackingConnectorInfoSerializer;
- public EventBaseJsonSerializer(JsonSerializer venueSerializer, JsonSerializer super LeaderboardGroupBase> leaderboardGroupBaseSerializer, JsonSerializer trackingConnectorInfoJsonSerializer) {
+ public EventBaseJsonSerializer(JsonSerializer venueSerializer,
+ JsonSerializer super LeaderboardGroupBase> leaderboardGroupBaseSerializer,
+ JsonSerializer trackingConnectorInfoJsonSerializer) {
this.leaderboardGroupBaseSerializer = leaderboardGroupBaseSerializer;
this.venueSerializer = venueSerializer;
this.trackingConnectorInfoSerializer = trackingConnectorInfoJsonSerializer;
diff --git a/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/EventDataJsonSerializerTest.java b/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/EventDataJsonSerializerTest.java
index 3229db06fcb..6d6c395ad7c 100755
--- a/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/EventDataJsonSerializerTest.java
+++ b/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/EventDataJsonSerializerTest.java
@@ -90,9 +90,12 @@ public class EventDataJsonSerializerTest {
when(event.getImages()).thenReturn(Collections.singleton(expectedLogoImageDescriptor));
when(event.getVideos()).thenReturn(Collections.emptySet());
// ... and the serializer itself.
- serializer = new EventBaseJsonSerializer(new VenueJsonSerializer(new CourseAreaJsonSerializer()), new LeaderboardGroupBaseJsonSerializer(), new TrackingConnectorInfoJsonSerializer());
- deserializer = new EventBaseJsonDeserializer(new VenueJsonDeserializer(new CourseAreaJsonDeserializer(DomainFactory.INSTANCE)), new LeaderboardGroupBaseJsonDeserializer(), new TrackingConnectorInfoJsonDeserializer());
-
+ serializer = new EventBaseJsonSerializer(new VenueJsonSerializer(new CourseAreaJsonSerializer()),
+ new LeaderboardGroupBaseJsonSerializer(), new TrackingConnectorInfoJsonSerializer());
+ deserializer = new EventBaseJsonDeserializer(
+ new VenueJsonDeserializer(new CourseAreaJsonDeserializer(DomainFactory.INSTANCE)),
+ new LeaderboardGroupBaseJsonDeserializer(), new TrackingConnectorInfoJsonDeserializer());
+
when(expectedLeaderboardGroup.getId()).thenReturn(UUID.randomUUID());
when(expectedLeaderboardGroup.getName()).thenReturn("LG");
when(expectedLeaderboardGroup.getDescription()).thenReturn("LG Description");
diff --git a/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/EventDataJsonSerializerWithImagesAndVideosTest.java b/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/EventDataJsonSerializerWithImagesAndVideosTest.java
index 3c141efe2c8..ab8e53c25ea 100644
--- a/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/EventDataJsonSerializerWithImagesAndVideosTest.java
+++ b/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/EventDataJsonSerializerWithImagesAndVideosTest.java
@@ -119,9 +119,12 @@ public class EventDataJsonSerializerWithImagesAndVideosTest {
when(event.getImages()).thenReturn(images);
when(event.getVideos()).thenReturn(videos);
// ... and the serializer itself.
- serializer = new EventBaseJsonSerializer(new VenueJsonSerializer(new CourseAreaJsonSerializer()), new LeaderboardGroupBaseJsonSerializer(), new TrackingConnectorInfoJsonSerializer());
- deserializer = new EventBaseJsonDeserializer(new VenueJsonDeserializer(new CourseAreaJsonDeserializer(DomainFactory.INSTANCE)), new LeaderboardGroupBaseJsonDeserializer(), new TrackingConnectorInfoJsonDeserializer());
-
+ serializer = new EventBaseJsonSerializer(new VenueJsonSerializer(new CourseAreaJsonSerializer()),
+ new LeaderboardGroupBaseJsonSerializer(), new TrackingConnectorInfoJsonSerializer());
+ deserializer = new EventBaseJsonDeserializer(
+ new VenueJsonDeserializer(new CourseAreaJsonDeserializer(DomainFactory.INSTANCE)),
+ new LeaderboardGroupBaseJsonDeserializer(), new TrackingConnectorInfoJsonDeserializer());
+
when(expectedLeaderboardGroup.getId()).thenReturn(UUID.randomUUID());
when(expectedLeaderboardGroup.getName()).thenReturn("LG");
when(expectedLeaderboardGroup.getDescription()).thenReturn("LG Description");
diff --git a/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/EventDataJsonSerializerWithNullValuesTest.java b/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/EventDataJsonSerializerWithNullValuesTest.java
index 36c9ebbf68b..76816379bc6 100755
--- a/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/EventDataJsonSerializerWithNullValuesTest.java
+++ b/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/EventDataJsonSerializerWithNullValuesTest.java
@@ -69,9 +69,12 @@ public class EventDataJsonSerializerWithNullValuesTest {
when(event.getImages()).thenReturn(Collections.emptySet());
when(event.getVideos()).thenReturn(Collections.emptySet());
// ... and the serializer itself.
- serializer = new EventBaseJsonSerializer(new VenueJsonSerializer(new CourseAreaJsonSerializer()), new LeaderboardGroupBaseJsonSerializer(), new TrackingConnectorInfoJsonSerializer());
- deserializer = new EventBaseJsonDeserializer(new VenueJsonDeserializer(new CourseAreaJsonDeserializer(DomainFactory.INSTANCE)), new LeaderboardGroupBaseJsonDeserializer(), new TrackingConnectorInfoJsonDeserializer());
-
+ serializer = new EventBaseJsonSerializer(new VenueJsonSerializer(new CourseAreaJsonSerializer()),
+ new LeaderboardGroupBaseJsonSerializer(), new TrackingConnectorInfoJsonSerializer());
+ deserializer = new EventBaseJsonDeserializer(
+ new VenueJsonDeserializer(new CourseAreaJsonDeserializer(DomainFactory.INSTANCE)),
+ new LeaderboardGroupBaseJsonDeserializer(), new TrackingConnectorInfoJsonDeserializer());
+
when(expectedLeaderbaordGroup.getId()).thenReturn(UUID.randomUUID());
when(expectedLeaderbaordGroup.getName()).thenReturn("LG");
when(expectedLeaderbaordGroup.getDescription()).thenReturn("LG Description");
diff --git a/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/EventWithNullStartAndEndDataJsonSerializerTest.java b/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/EventWithNullStartAndEndDataJsonSerializerTest.java
index 03e0b0bcd46..5491af191a2 100755
--- a/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/EventWithNullStartAndEndDataJsonSerializerTest.java
+++ b/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/EventWithNullStartAndEndDataJsonSerializerTest.java
@@ -87,8 +87,11 @@ public class EventWithNullStartAndEndDataJsonSerializerTest {
doReturn(expectedLeaderboardGroups).when(event).getLeaderboardGroups();
// ... and the serializer itself.
- serializer = new EventBaseJsonSerializer(new VenueJsonSerializer(new CourseAreaJsonSerializer()), new LeaderboardGroupBaseJsonSerializer(), new TrackingConnectorInfoJsonSerializer());
- deserializer = new EventBaseJsonDeserializer(new VenueJsonDeserializer(new CourseAreaJsonDeserializer(DomainFactory.INSTANCE)), new LeaderboardGroupBaseJsonDeserializer(), new TrackingConnectorInfoJsonDeserializer());
+ serializer = new EventBaseJsonSerializer(new VenueJsonSerializer(new CourseAreaJsonSerializer()),
+ new LeaderboardGroupBaseJsonSerializer(), new TrackingConnectorInfoJsonSerializer());
+ deserializer = new EventBaseJsonDeserializer(
+ new VenueJsonDeserializer(new CourseAreaJsonDeserializer(DomainFactory.INSTANCE)),
+ new LeaderboardGroupBaseJsonDeserializer(), new TrackingConnectorInfoJsonDeserializer());
}
@Test
diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/EventsResource.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/EventsResource.java
index c7a62a59e5f..e5afc7e358a 100644
--- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/EventsResource.java
+++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/EventsResource.java
@@ -291,7 +291,8 @@ public class EventsResource extends AbstractSailingServerResource {
@Produces("application/json;charset=UTF-8")
public Response getEvents(@QueryParam("showNonPublic") String showNonPublic) {
JsonSerializer eventSerializer = new EventBaseJsonSerializer(
- new VenueJsonSerializer(new CourseAreaJsonSerializer()), new LeaderboardGroupBaseJsonSerializer(), new TrackingConnectorInfoJsonSerializer());
+ new VenueJsonSerializer(new CourseAreaJsonSerializer()), new LeaderboardGroupBaseJsonSerializer(),
+ new TrackingConnectorInfoJsonSerializer());
JSONArray result = new JSONArray();
for (Event event : getService().getAllEvents()) {
if (getSecurityService().hasCurrentUserReadPermission(event)
@@ -330,7 +331,8 @@ public class EventsResource extends AbstractSailingServerResource {
getSecurityService().checkCurrentUserReadPermission(event);
}
JsonSerializer eventSerializer = new EventBaseJsonSerializer(
- new VenueJsonSerializer(new CourseAreaJsonSerializer()), new LeaderboardGroupBaseJsonSerializer(), new TrackingConnectorInfoJsonSerializer());
+ new VenueJsonSerializer(new CourseAreaJsonSerializer()), new LeaderboardGroupBaseJsonSerializer(),
+ new TrackingConnectorInfoJsonSerializer());
JSONObject eventJson = eventSerializer.serialize(event);
String json = eventJson.toJSONString();
diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/SearchResource.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/SearchResource.java
index df2f5c577d9..2b79111afff 100755
--- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/SearchResource.java
+++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/SearchResource.java
@@ -29,8 +29,10 @@ public class SearchResource extends AbstractSailingServerResource {
public SearchResource() {
final LeaderboardGroupBaseJsonSerializer leaderboardGroupSerializer = new LeaderboardGroupBaseJsonSerializer();
- serializer = new LeaderboardSearchResultJsonSerializer(new EventBaseJsonSerializer(new VenueJsonSerializer(
- new CourseAreaJsonSerializer()), leaderboardGroupSerializer, new TrackingConnectorInfoJsonSerializer()), leaderboardGroupSerializer);
+ serializer = new LeaderboardSearchResultJsonSerializer(
+ new EventBaseJsonSerializer(new VenueJsonSerializer(new CourseAreaJsonSerializer()),
+ leaderboardGroupSerializer, new TrackingConnectorInfoJsonSerializer()),
+ leaderboardGroupSerializer);
}
private Result search(KeywordQuery query) {
diff --git a/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/interfaces/RacingEventService.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/interfaces/RacingEventService.java
index f83ddb9f6c9..dcc6bc724ed 100755
--- a/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/interfaces/RacingEventService.java
+++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/interfaces/RacingEventService.java
@@ -320,7 +320,8 @@ public interface RacingEventService extends TrackedRegattaRegistry, RegattaFetch
void updateStoredLeaderboardGroup(LeaderboardGroup leaderboardGroup);
DynamicTrackedRace createTrackedRace(RegattaAndRaceIdentifier raceIdentifier, WindStore windStore,
- long delayToLiveInMillis, long millisecondsOverWhichToAverageWind, long millisecondsOverWhichToAverageSpeed, boolean useMarkPassingCalculator, TrackingConnectorInfo trackingConnectorInfo);
+ long delayToLiveInMillis, long millisecondsOverWhichToAverageWind, long millisecondsOverWhichToAverageSpeed,
+ boolean useMarkPassingCalculator, TrackingConnectorInfo trackingConnectorInfo);
Regatta getOrCreateDefaultRegatta(String name, String boatClassName, Serializable id);
diff --git a/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/CreateTrackedRace.java b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/CreateTrackedRace.java
index 9b436e46031..bffc93bb915 100755
--- a/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/CreateTrackedRace.java
+++ b/java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/CreateTrackedRace.java
@@ -42,7 +42,8 @@ public class CreateTrackedRace extends AbstractRaceOperation
* won't be serialized. A receiver of this operation will therefore always use an {@link EmptyWindStore}.
*/
public CreateTrackedRace(RegattaAndRaceIdentifier raceIdentifier, WindStore windStore, long delayToLiveInMillis,
- long millisecondsOverWhichToAverageWind, long millisecondsOverWhichToAverageSpeed, TrackingConnectorInfo trackingConnectorInfo) {
+ long millisecondsOverWhichToAverageWind, long millisecondsOverWhichToAverageSpeed,
+ TrackingConnectorInfo trackingConnectorInfo) {
super(raceIdentifier);
this.windStore = windStore;
this.delayToLiveInMillis = delayToLiveInMillis;
@@ -66,9 +67,9 @@ public class CreateTrackedRace extends AbstractRaceOperation
@Override
public DynamicTrackedRace internalApplyTo(RacingEventService toState) {
return toState.createTrackedRace(getRaceIdentifier(), windStore == null ? EmptyWindStore.INSTANCE : windStore,
- delayToLiveInMillis, millisecondsOverWhichToAverageWind,
- millisecondsOverWhichToAverageSpeed, /* useMarkPassingCalculator */ false, trackingConnectorInfo);
- // no separate mark passing calculations in replica;
+ delayToLiveInMillis, millisecondsOverWhichToAverageWind, millisecondsOverWhichToAverageSpeed,
+ /* useMarkPassingCalculator */ false, trackingConnectorInfo);
+ // no separate mark passing calculations in replica;
// Mark passings are computed on master and are replicated separately.
// See UpdateMarkPassings
}
diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RemoveLeaderboardTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RemoveLeaderboardTest.java
index 250e21ef91a..63034ee98ab 100755
--- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RemoveLeaderboardTest.java
+++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RemoveLeaderboardTest.java
@@ -103,9 +103,9 @@ public class RemoveLeaderboardTest {
regatta.addRace(raceDef1);
trackedRace = trackedRegatta1.createTrackedRace(raceDef1, Collections. emptyList(),
/* windStore */ EmptyWindStore.INSTANCE, /* delayToLiveInMillis */ 0l,
- /* millisecondsOverWhichToAverageWind */ 0l,
- /* millisecondsOverWhichToAverageSpeed */ 0l, /* raceDefinitionSetToUpdate */ null, /*useMarkPassingCalculator*/ false, mock(RaceLogAndTrackedRaceResolver.class),
- Optional.empty(), /* trackingConnectorInfo */ null);
+ /* millisecondsOverWhichToAverageWind */ 0l, /* millisecondsOverWhichToAverageSpeed */ 0l,
+ /* raceDefinitionSetToUpdate */ null, /* useMarkPassingCalculator */ false,
+ mock(RaceLogAndTrackedRaceResolver.class), Optional.empty(), /* trackingConnectorInfo */ null);
}
@Test
diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/SearchServiceTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/SearchServiceTest.java
index c9edda83435..c909089aff6 100755
--- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/SearchServiceTest.java
+++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/SearchServiceTest.java
@@ -357,15 +357,19 @@ public class SearchServiceTest {
@Test
public void testSerializeAndDeserializeSearchResult() throws JsonDeserializationException {
- Result searchResults = server.search(new KeywordQuery(Arrays.asList(new String[] { "Buhl" })));
+ Result searchResults = server
+ .search(new KeywordQuery(Arrays.asList(new String[] { "Buhl" })));
LeaderboardGroupBaseJsonSerializer leaderboardGroupBaseJsonSerializer = new LeaderboardGroupBaseJsonSerializer();
- LeaderboardSearchResultJsonSerializer serializer = new LeaderboardSearchResultJsonSerializer(new EventBaseJsonSerializer(new VenueJsonSerializer(new CourseAreaJsonSerializer()),
- leaderboardGroupBaseJsonSerializer, new TrackingConnectorInfoJsonSerializer()),
+ LeaderboardSearchResultJsonSerializer serializer = new LeaderboardSearchResultJsonSerializer(
+ new EventBaseJsonSerializer(new VenueJsonSerializer(new CourseAreaJsonSerializer()),
+ leaderboardGroupBaseJsonSerializer, new TrackingConnectorInfoJsonSerializer()),
leaderboardGroupBaseJsonSerializer);
LeaderboardGroupBaseJsonDeserializer leaderboardGroupBaseJsonDeserializer = new LeaderboardGroupBaseJsonDeserializer();
LeaderboardSearchResultBaseJsonDeserializer deserializer = new LeaderboardSearchResultBaseJsonDeserializer(
- new EventBaseJsonDeserializer(new VenueJsonDeserializer(new CourseAreaJsonDeserializer(DomainFactory.INSTANCE)),
- leaderboardGroupBaseJsonDeserializer, new TrackingConnectorInfoJsonDeserializer()), leaderboardGroupBaseJsonDeserializer);
+ new EventBaseJsonDeserializer(
+ new VenueJsonDeserializer(new CourseAreaJsonDeserializer(DomainFactory.INSTANCE)),
+ leaderboardGroupBaseJsonDeserializer, new TrackingConnectorInfoJsonDeserializer()),
+ leaderboardGroupBaseJsonDeserializer);
final LeaderboardSearchResult expected = searchResults.getHits().iterator().next();
LeaderboardSearchResultBase deserialized = deserializer.deserialize(serializer.serialize(expected));
assertEquals("Pfingstbusch (470)", deserialized.getRegattaName());
diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java
index 68b14282630..b381322a075 100644
--- a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java
+++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java
@@ -877,11 +877,14 @@ public class RacingEventServiceImpl implements RacingEventService, ClearStateTes
final RaceHandle handle = addRace(/* addToRegatta==null means "default regatta" */ null, params, /* no timeout during mass loading */ -1,
new DefaultRaceTrackingHandler() {
@Override
- public DynamicTrackedRace createTrackedRace(TrackedRegatta trackedRegatta, RaceDefinition raceDefinition,
- Iterable sidelines, WindStore windStore, long delayToLiveInMillis,
- long millisecondsOverWhichToAverageWind, long millisecondsOverWhichToAverageSpeed,
- DynamicRaceDefinitionSet raceDefinitionSetToUpdate, boolean useMarkPassingCalculator,
- RaceLogAndTrackedRaceResolver raceLogResolver, Optional threadLocalTransporter, TrackingConnectorInfo trackingConnectorInfo) {
+ public DynamicTrackedRace createTrackedRace(TrackedRegatta trackedRegatta,
+ RaceDefinition raceDefinition, Iterable sidelines, WindStore windStore,
+ long delayToLiveInMillis, long millisecondsOverWhichToAverageWind,
+ long millisecondsOverWhichToAverageSpeed,
+ DynamicRaceDefinitionSet raceDefinitionSetToUpdate,
+ boolean useMarkPassingCalculator, RaceLogAndTrackedRaceResolver raceLogResolver,
+ Optional threadLocalTransporter,
+ TrackingConnectorInfo trackingConnectorInfo) {
final DynamicTrackedRace trackedRace = super.createTrackedRace(trackedRegatta, raceDefinition, sidelines, windStore,
delayToLiveInMillis, millisecondsOverWhichToAverageWind,
millisecondsOverWhichToAverageSpeed, raceDefinitionSetToUpdate,
@@ -1970,7 +1973,9 @@ public class RacingEventServiceImpl implements RacingEventService, ClearStateTes
return trackedRegatta.createTrackedRace(race, Collections. emptyList(), windStore,
delayToLiveInMillis, millisecondsOverWhichToAverageWind, millisecondsOverWhichToAverageSpeed,
/* raceDefinitionSetToUpdate */null, useMarkPassingCalculator, /* raceLogResolver */ this,
- Optional.of(this.getThreadLocalTransporterForCurrentlyFillingFromInitialLoadOrApplyingOperationReceivedFromMaster()), trackingConnectorInfo);
+ Optional.of(this
+ .getThreadLocalTransporterForCurrentlyFillingFromInitialLoadOrApplyingOperationReceivedFromMaster()),
+ trackingConnectorInfo);
}
private void ensureRegattaIsObservedForDefaultLeaderboardAndAutoLeaderboardLinking(
@@ -4071,8 +4076,9 @@ public class RacingEventServiceImpl implements RacingEventService, ClearStateTes
Object eventsAsObject = parser.parse(bufferedReader);
final LeaderboardGroupBaseJsonDeserializer leaderboardGroupBaseJsonDeserializer = new LeaderboardGroupBaseJsonDeserializer();
LeaderboardSearchResultBaseJsonDeserializer deserializer = new LeaderboardSearchResultBaseJsonDeserializer(
- new EventBaseJsonDeserializer(new VenueJsonDeserializer(new CourseAreaJsonDeserializer(
- DomainFactory.INSTANCE)), leaderboardGroupBaseJsonDeserializer, new TrackingConnectorInfoJsonDeserializer()),
+ new EventBaseJsonDeserializer(
+ new VenueJsonDeserializer(new CourseAreaJsonDeserializer(DomainFactory.INSTANCE)),
+ leaderboardGroupBaseJsonDeserializer, new TrackingConnectorInfoJsonDeserializer()),
leaderboardGroupBaseJsonDeserializer);
result = new ResultImpl(query,
new LeaderboardSearchResultBaseRanker());
diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/security/PermissionAwareRaceTrackingHandler.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/security/PermissionAwareRaceTrackingHandler.java
index 5dd92e8310b..e9d8847be82 100644
--- a/java/com.sap.sailing.server/src/com/sap/sailing/server/security/PermissionAwareRaceTrackingHandler.java
+++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/security/PermissionAwareRaceTrackingHandler.java
@@ -104,11 +104,14 @@ public class PermissionAwareRaceTrackingHandler extends DefaultRaceTrackingHandl
Iterable sidelines, WindStore windStore, long delayToLiveInMillis,
long millisecondsOverWhichToAverageWind, long millisecondsOverWhichToAverageSpeed,
DynamicRaceDefinitionSet raceDefinitionSetToUpdate, boolean useMarkPassingCalculator,
- RaceLogAndTrackedRaceResolver raceLogResolver, Optional threadLocalTransporter, TrackingConnectorInfo trackingConnectorInfo) {
- return setOwnershipForRace(new RegattaNameAndRaceName(trackedRegatta.getRegatta().getName(), raceDefinition.getName()),
+ RaceLogAndTrackedRaceResolver raceLogResolver, Optional threadLocalTransporter,
+ TrackingConnectorInfo trackingConnectorInfo) {
+ return setOwnershipForRace(
+ new RegattaNameAndRaceName(trackedRegatta.getRegatta().getName(), raceDefinition.getName()),
() -> super.createTrackedRace(trackedRegatta, raceDefinition, sidelines, windStore, delayToLiveInMillis,
millisecondsOverWhichToAverageWind, millisecondsOverWhichToAverageSpeed,
- raceDefinitionSetToUpdate, useMarkPassingCalculator, raceLogResolver, threadLocalTransporter, trackingConnectorInfo));
+ raceDefinitionSetToUpdate, useMarkPassingCalculator, raceLogResolver, threadLocalTransporter,
+ trackingConnectorInfo));
}
@Override
From bfdcce7790d078a32bf62723290a15ef17327721 Mon Sep 17 00:00:00 2001
From: Dennis Aulenbacher
Date: Wed, 18 Dec 2019 10:55:40 +0100
Subject: [PATCH 29/53] Improved compatibility of (de)serialization of events
regarding trackingConnectorInfos, especially when reading events from a
server that does not have the new version yet.
---
.../impl/EventBaseJsonDeserializer.java | 12 +++++++-----
.../impl/TrackingConnectorInfoJsonDeserializer.java | 13 +++++++++----
.../serialization/impl/EventBaseJsonSerializer.java | 2 +-
.../impl/TrackingConnectorInfoJsonSerializer.java | 8 ++++++--
4 files changed, 23 insertions(+), 12 deletions(-)
diff --git a/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/impl/EventBaseJsonDeserializer.java b/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/impl/EventBaseJsonDeserializer.java
index fefa20b4dae..d25af7816c3 100644
--- a/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/impl/EventBaseJsonDeserializer.java
+++ b/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/impl/EventBaseJsonDeserializer.java
@@ -63,12 +63,14 @@ public class EventBaseJsonDeserializer implements JsonDeserializer {
leaderboardGroups.add(leaderboardGroupDeserializer.deserialize((JSONObject) lgJson));
}
}
- Set trackingConnectorInfos = new HashSet<>();
- JSONArray trackedByJson = Helpers.getNestedArraySafe(eventJson, EventBaseJsonSerializer.FIELD_TRACKING_CONNECTOR_INFOS);
- for (Object jsonPair : trackedByJson) {
- trackingConnectorInfos.add(trackingConnectorInfoDeserializer.deserialize((JSONObject) jsonPair));
+ final Set trackingConnectorInfos = new HashSet<>();
+ final JSONArray trackingConnectorInfosJson = (JSONArray) eventJson
+ .get(EventBaseJsonSerializer.FIELD_TRACKING_CONNECTOR_INFOS);
+ if (trackingConnectorInfosJson != null) {
+ for (Object jsonPair : trackingConnectorInfosJson) {
+ trackingConnectorInfos.add(trackingConnectorInfoDeserializer.deserialize((JSONObject) jsonPair));
+ }
}
-
StrippedEventImpl result = new StrippedEventImpl(name,
startDate == null ? null : new MillisecondsTimePoint(startDate.longValue()),
endDate == null ? null : new MillisecondsTimePoint(endDate.longValue()), venue, /* is public */ true,
diff --git a/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/impl/TrackingConnectorInfoJsonDeserializer.java b/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/impl/TrackingConnectorInfoJsonDeserializer.java
index 5cc7189a6c9..8569a45be38 100644
--- a/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/impl/TrackingConnectorInfoJsonDeserializer.java
+++ b/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/impl/TrackingConnectorInfoJsonDeserializer.java
@@ -2,6 +2,8 @@ package com.sap.sailing.server.gateway.deserialization.impl;
import java.net.MalformedURLException;
import java.net.URL;
+import java.util.logging.Level;
+import java.util.logging.Logger;
import org.json.simple.JSONObject;
@@ -12,16 +14,19 @@ import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
import com.sap.sailing.server.gateway.serialization.impl.TrackingConnectorInfoJsonSerializer;
public class TrackingConnectorInfoJsonDeserializer implements JsonDeserializer {
+ private static final Logger logger = Logger.getLogger(TrackingConnectorInfoJsonDeserializer.class.getName());
public TrackingConnectorInfo deserialize(JSONObject object) throws JsonDeserializationException {
- String trackedBy = Helpers.getNestedObjectSafe(object, TrackingConnectorInfoJsonSerializer.FIELD_TRACKED_BY).toJSONString();
+ final String trackedBy = (String) object.get(TrackingConnectorInfoJsonSerializer.FIELD_TRACKED_BY);
+ final String webUrlString = (String) object.get(TrackingConnectorInfoJsonSerializer.FIELD_WEB_URL);
URL webUrl;
try {
- webUrl = new URL( (String) object.get(TrackingConnectorInfoJsonSerializer.FIELD_WEB_URL));
+ webUrl = webUrlString == null ? null : new URL(webUrlString);
} catch (MalformedURLException e) {
- throw new JsonDeserializationException(e);
+ logger.log(Level.WARNING, "Error while parsing webUrl of TrackingConnectorInfo", e);
+ webUrl = null;
}
- TrackingConnectorInfo trackingConnectorInfo = new TrackingConnectorInfoImpl(trackedBy, webUrl);
+ final TrackingConnectorInfo trackingConnectorInfo = new TrackingConnectorInfoImpl(trackedBy, webUrl);
return trackingConnectorInfo;
}
}
diff --git a/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/serialization/impl/EventBaseJsonSerializer.java b/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/serialization/impl/EventBaseJsonSerializer.java
index 369badc4a07..6070ddba235 100644
--- a/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/serialization/impl/EventBaseJsonSerializer.java
+++ b/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/serialization/impl/EventBaseJsonSerializer.java
@@ -40,7 +40,7 @@ public class EventBaseJsonSerializer implements JsonSerializer {
public static final String FIELD_CREATEDATDATE = "createdAtDate";
public static final String FIELD_LOCALE = "locale";
public static final String FIELD_TAGS = "tags";
- public static final String FIELD_TRACKING_CONNECTOR_INFOS = "trackedBy";
+ public static final String FIELD_TRACKING_CONNECTOR_INFOS = "trackingConnectorInfos";
// specific image fields
public static final String FIELD_IMAGES = "images";
public static final String FIELD_IMAGE_WIDTH_IN_PX = "widthInPixel";
diff --git a/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/serialization/impl/TrackingConnectorInfoJsonSerializer.java b/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/serialization/impl/TrackingConnectorInfoJsonSerializer.java
index 5876e6fb2cf..6f7beea7d30 100644
--- a/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/serialization/impl/TrackingConnectorInfoJsonSerializer.java
+++ b/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/serialization/impl/TrackingConnectorInfoJsonSerializer.java
@@ -1,5 +1,7 @@
package com.sap.sailing.server.gateway.serialization.impl;
+import java.net.URL;
+
import org.json.simple.JSONObject;
import com.sap.sailing.domain.tracking.TrackingConnectorInfo;
@@ -12,9 +14,11 @@ public class TrackingConnectorInfoJsonSerializer implements JsonSerializer
correctWindDirectionByMagneticDeclination a boolean value, defaulting to true; if trackWind is true,
this parameter controls whether the wind directions received are to be corrected by the magnetic
declination
+
trackedRaceName can be used to specify a non-default name for the tracked race / RaceDefinition; if not
+ provided, a default name consisting of race column and fleet name will be constructed instead.
-Delete a user from a UserGroup
+Delete a user from a UserGroup
Request Method:
@@ -151,12 +151,12 @@
groupId (Path)
Unique name of the UserGroup to add the role to.
roleId (Path)
Unique ID of the role to add to the UserGroup.
-
roleAssociated (JSON Body)
True or false, depending whether the role's permissions are applied regardless of the user performing the access, only requiring the object access to be owned by this group; otherwise, the role's permissions are only granted if the object accessed is owned by this group and the user performing the access belongs to this group.
+
forAll (JSON Body)
True or false, depending whether the role's permissions are applied regardless of the user performing the access, only requiring the object access to be owned by this group; otherwise, the role's permissions are only granted if the object accessed is owned by this group and the user performing the access belongs to this group.
Example:
-
curl -X PUT -d '{"roleAssociated": true}' "127.0.0.1:8888/security/api/restsecurity/usergroup/9201d7cb-969e-4975-8cf1-32972bb2c8ba/role/29914406-b0fc-43cd-acc7-62a83931f587"
+
curl -X PUT -d '{"forAll": true}' "127.0.0.1:8888/security/api/restsecurity/usergroup/9201d7cb-969e-4975-8cf1-32972bb2c8ba/role/29914406-b0fc-43cd-acc7-62a83931f587"
From 637e833497753f357780ab5d09a3f07c65b49761 Mon Sep 17 00:00:00 2001
From: Axel Uhl
Date: Sat, 11 Jan 2020 14:11:46 +0100
Subject: [PATCH 48/53] improved error messages in UserGroupResource
---
.../com/sap/sse/security/impl/Activator.java | 1 -
.../security/jaxrs/api/UserGroupResource.java | 17 ++++++++---------
2 files changed, 8 insertions(+), 10 deletions(-)
diff --git a/java/com.sap.sse.security/src/com/sap/sse/security/impl/Activator.java b/java/com.sap.sse.security/src/com/sap/sse/security/impl/Activator.java
index 4c855362064..0025865fb9a 100644
--- a/java/com.sap.sse.security/src/com/sap/sse/security/impl/Activator.java
+++ b/java/com.sap.sse.security/src/com/sap/sse/security/impl/Activator.java
@@ -140,7 +140,6 @@ public class Activator implements BundleActivator {
waitForUserStoreService(bundleContext);
}
context.registerService(ClearStateTestSupport.class, new ClearStateTestSupport() {
-
@Override
public void clearState() throws Exception {
Activator.this.clearState();
diff --git a/java/com.sap.sse.security/src/com/sap/sse/security/jaxrs/api/UserGroupResource.java b/java/com.sap.sse.security/src/com/sap/sse/security/jaxrs/api/UserGroupResource.java
index 769a349725b..abfc9c480e8 100644
--- a/java/com.sap.sse.security/src/com/sap/sse/security/jaxrs/api/UserGroupResource.java
+++ b/java/com.sap.sse.security/src/com/sap/sse/security/jaxrs/api/UserGroupResource.java
@@ -268,19 +268,17 @@ public class UserGroupResource extends AbstractSecurityResource {
public Response addRoleToUserGroup(@PathParam(KEY_GROUP_ID) String userGroupId,
@PathParam(KEY_ROLE_ID) String roleIdString, String body) {
Response response;
-
try {
final UUID groupId = UUID.fromString(userGroupId);
- final UserGroup usergroup = getService().getUserGroup(groupId);
-
final UUID roleId = UUID.fromString(roleIdString);
+ final UserGroup usergroup = getService().getUserGroup(groupId);
if (usergroup == null) {
- response = Response.status(Status.BAD_REQUEST).entity("Usergroup with this name does not exist.")
- .build();
+ response = Response.status(Status.BAD_REQUEST).entity(
+ String.format("Usergroup with ID %s does not exist.", userGroupId)).build();
} else {
final RoleDefinition role = getService().getRoleDefinition(roleId);
if (role == null) {
- response = Response.status(Status.BAD_REQUEST).entity("Role with this id does not exist.").build();
+ response = Response.status(Status.BAD_REQUEST).entity(String.format("Role with ID %s does not exist.", roleId)).build();
} else {
if (getService().hasCurrentUserUpdatePermission(usergroup)
&& getService().hasCurrentUserReadPermission(role)) {
@@ -291,15 +289,16 @@ public class UserGroupResource extends AbstractSecurityResource {
if (!getService().hasCurrentUserMetaPermissionsOfRoleDefinitionWithQualification(role,
new Ownership(null, usergroup))) {
response = Response.status(Status.UNAUTHORIZED)
- .entity(String.format("Not permitted to add role %s to group", role.getName()))
- .build();
+ .entity(String.format("Not permitted to add role %s to group %s",
+ role.getName(), usergroup.getName())).build();
} else {
getService().putRoleDefinitionToUserGroup(usergroup, role, roleForAll);
response = Response.ok().build();
}
} else {
response = Response.status(Status.BAD_REQUEST)
- .entity("Role was already added to the group.").build();
+ .entity(String.format("Role %s was already added to group %s.", role.getName(),
+ usergroup.getName())).build();
}
} else {
response = Response.status(Status.UNAUTHORIZED).build();
From b94bd2fb07a91570414ffad345c9a3503a8a7e37 Mon Sep 17 00:00:00 2001
From: Axel Uhl
Date: Sat, 11 Jan 2020 14:22:30 +0100
Subject: [PATCH 49/53] fixed typo in comment
---
.../src/com/sap/sse/security/impl/Activator.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/java/com.sap.sse.security/src/com/sap/sse/security/impl/Activator.java b/java/com.sap.sse.security/src/com/sap/sse/security/impl/Activator.java
index 0025865fb9a..29a09428183 100644
--- a/java/com.sap.sse.security/src/com/sap/sse/security/impl/Activator.java
+++ b/java/com.sap.sse.security/src/com/sap/sse/security/impl/Activator.java
@@ -148,7 +148,7 @@ public class Activator implements BundleActivator {
}
/**
- * This method will clean the userStore and AccessControllStore, and reset the securityService. It will then
+ * This method will clean the userStore and AccessControlStore, and reset the securityService. It will then
* reinitialize them in the same fashion an empty server will do.
*/
protected void clearState() throws InterruptedException, UserGroupManagementException, UserManagementException {
From 110fd63b2ff94b9433530387c89a67f927015105 Mon Sep 17 00:00:00 2001
From: Usman Ali
Date: Sun, 12 Jan 2020 00:54:07 +0500
Subject: [PATCH 50/53] setting up date format for new ORC certificate
---
.../domain/orc/impl/ORCPublicCertificateDatabaseImpl.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/orc/impl/ORCPublicCertificateDatabaseImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/orc/impl/ORCPublicCertificateDatabaseImpl.java
index af8e896ea81..09592c247e7 100755
--- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/orc/impl/ORCPublicCertificateDatabaseImpl.java
+++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/orc/impl/ORCPublicCertificateDatabaseImpl.java
@@ -330,7 +330,7 @@ public class ORCPublicCertificateDatabaseImpl implements ORCPublicCertificateDat
builder = child.getTextContent();
break;
case "dxtDate":
- issueDate = new MillisecondsTimePoint(isoTimestampFormat.parse(child.getTextContent()+"+0000")); // assume UTC
+ issueDate = new MillisecondsTimePoint(isoTimestampFormat.parse(child.getTextContent().replaceAll("Z", "+0000"))); // assume UTC
break;
case "CertType":
certType = Integer.valueOf(child.getTextContent().trim());
From 820c421a1f5adc6ca18ace152f1740ff39c1c5a7 Mon Sep 17 00:00:00 2001
From: Axel Uhl
Date: Sun, 12 Jan 2020 13:23:43 +0100
Subject: [PATCH 51/53] preparing for SailInsight3 mail type; added several
TODOs for properly forwarding mail invitation type from server to client
---
.../domain/common/BranchIOConstants.java | 7 ++++--
.../domain/common/MailInvitationType.java | 3 ++-
...2RaceLogTrackingInvitationMailBuilder.java | 2 --
...3RaceLogTrackingInvitationMailBuilder.java | 24 +++++++++++++++++++
.../impl/RaceLogTrackingAdapterImpl.java | 3 +++
.../desktop/places/qrcode/QRCodePlace.java | 1 +
.../adminconsole/RegattaDetailsComposite.java | 3 ---
.../RegattaLogAddDeviceMappingDialog.java | 19 ++++++++++-----
.../RegistrationLinkWithQRCodeDialog.java | 19 +++------------
.../local-test-environment.xml | 10 ++++----
.../selenium/api/test/RegattaApiTest.java | 6 -----
11 files changed, 57 insertions(+), 40 deletions(-)
create mode 100644 java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/BranchIO3RaceLogTrackingInvitationMailBuilder.java
diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/BranchIOConstants.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/BranchIOConstants.java
index 66a1686828b..c8bfdb36e06 100644
--- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/BranchIOConstants.java
+++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/BranchIOConstants.java
@@ -1,14 +1,17 @@
package com.sap.sailing.domain.common;
public class BranchIOConstants {
- public static final String SAILINSIGHT_2_APP_BRANCHIO = "https://sailinsight20-app.sapsailing.com/invite";
public static final String SAILINSIGHT_APP_BRANCHIO = "https://sailinsight-app.sapsailing.com/invite";
+ public static final String SAILINSIGHT_2_APP_BRANCHIO = "https://sailinsight20-app.sapsailing.com/invite";
+ public static final String SAILINSIGHT_3_APP_BRANCHIO = "https://sailinsight30-app.sapsailing.com/invite";
public static final String SAILINSIGHT_APP_BRANCHIO_PATH = "checkinUrl";
public static final String BUOYPINGER_APP_BRANCHIO = "https://buoypinger-app.sapsailing.com/invite";
public static final String BUOYPINGER_APP_BRANCHIO_PATH = "checkinUrl";
public static final String OPEN_REGATTA_2_APP_BRANCHIO = "https://sailinsight20-app.sapsailing.com/publicInvite";
public static final String OPEN_REGATTA_2_APP_BRANCHIO_PATH = "checkinUrl";
+ public static final String OPEN_REGATTA_3_APP_BRANCHIO = "https://sailinsight30-app.sapsailing.com/publicInvite";
+ public static final String OPEN_REGATTA_3_APP_BRANCHIO_PATH = "checkinUrl";
private BranchIOConstants() {
- };
+ }
}
diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/MailInvitationType.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/MailInvitationType.java
index 990c29d9ffb..555332fb6db 100644
--- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/MailInvitationType.java
+++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/MailInvitationType.java
@@ -3,7 +3,8 @@ package com.sap.sailing.domain.common;
public enum MailInvitationType {
LEGACY,
SailInsight1,
- SailInsight2;
+ SailInsight2,
+ SailInsight3;
public static final String SYSTEM_PROPERTY_NAME = "com.sap.sailing.domain.tracking.MailInvitationType";
}
\ No newline at end of file
diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/BranchIO2RaceLogTrackingInvitationMailBuilder.java b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/BranchIO2RaceLogTrackingInvitationMailBuilder.java
index c102111dab9..a445a6aaa6d 100644
--- a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/BranchIO2RaceLogTrackingInvitationMailBuilder.java
+++ b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/BranchIO2RaceLogTrackingInvitationMailBuilder.java
@@ -5,7 +5,6 @@ import java.util.Locale;
import com.sap.sailing.domain.common.BranchIOConstants;
public class BranchIO2RaceLogTrackingInvitationMailBuilder extends BranchIORaceLogTrackingInvitationMailBuilder {
-
BranchIO2RaceLogTrackingInvitationMailBuilder(Locale locale) {
super(locale);
}
@@ -20,5 +19,4 @@ public class BranchIO2RaceLogTrackingInvitationMailBuilder extends BranchIORaceL
// FIXME the app should in the future at some point also support bouy pinging, replace this then
return BranchIOConstants.BUOYPINGER_APP_BRANCHIO;
}
-
}
diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/BranchIO3RaceLogTrackingInvitationMailBuilder.java b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/BranchIO3RaceLogTrackingInvitationMailBuilder.java
new file mode 100644
index 00000000000..135beb4b49d
--- /dev/null
+++ b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/BranchIO3RaceLogTrackingInvitationMailBuilder.java
@@ -0,0 +1,24 @@
+package com.sap.sailing.domain.racelogtracking.impl;
+
+import java.util.Locale;
+
+import com.sap.sailing.domain.common.BranchIOConstants;
+
+public class BranchIO3RaceLogTrackingInvitationMailBuilder extends BranchIORaceLogTrackingInvitationMailBuilder {
+
+ BranchIO3RaceLogTrackingInvitationMailBuilder(Locale locale) {
+ super(locale);
+ }
+
+ @Override
+ protected String getSailInsightBranchIO() {
+ return BranchIOConstants.SAILINSIGHT_3_APP_BRANCHIO;
+ }
+
+ @Override
+ protected String getBouyPingerBranchIO() {
+ // FIXME the app should in the future at some point also support bouy pinging, replace this then
+ return BranchIOConstants.BUOYPINGER_APP_BRANCHIO;
+ }
+
+}
diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/RaceLogTrackingAdapterImpl.java b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/RaceLogTrackingAdapterImpl.java
index 93af240a594..1d64ae14dc4 100755
--- a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/RaceLogTrackingAdapterImpl.java
+++ b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/RaceLogTrackingAdapterImpl.java
@@ -362,6 +362,9 @@ public class RaceLogTrackingAdapterImpl implements RaceLogTrackingAdapter {
case SailInsight2:
mail = new BranchIO2RaceLogTrackingInvitationMailBuilder(locale);
break;
+ case SailInsight3:
+ mail = new BranchIO3RaceLogTrackingInvitationMailBuilder(locale);
+ break;
default:
throw new IllegalArgumentException("Unhandled mail type");
}
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/places/qrcode/QRCodePlace.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/places/qrcode/QRCodePlace.java
index 742ec059b09..25cf582a8c1 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/places/qrcode/QRCodePlace.java
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/places/qrcode/QRCodePlace.java
@@ -166,6 +166,7 @@ public class QRCodePlace extends AbstractBasePlace {
}
public String getPublicInviteBranchIOUrl() {
+ // TODO why is this specific to version 2 and not considering the default server setting for mailInvitationType?
return BranchIOConstants.OPEN_REGATTA_2_APP_BRANCHIO + "?" + QRCodePlace.PARAM_REGATTA_NAME + "="
+ encodeUrl(publicRegattaName) + "&" + QRCodePlace.PARAM_REGATTA_SECRET + "="
+ encodeUrl(regattaRegistrationLinkSecret) + "&" + QRCodePlace.PARAM_SERVER + "="
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 87133a873eb..767bda207d4 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
@@ -144,12 +144,9 @@ public class RegattaDetailsComposite extends Composite {
Button button = new Button(stringMessages.registrationLinkShare(), new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
-
RegistrationLinkWithQRCode registrationLinkWithQRCode = new RegistrationLinkWithQRCode();
registrationLinkWithQRCode.setSecret(regatta.registrationLinkSecret);
-
sailingService.getMailType(new AsyncCallback() {
-
@Override
public void onFailure(Throwable caught) {
logger.log(Level.SEVERE, "Could not determine MailInvitationType", caught);
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaLogAddDeviceMappingDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaLogAddDeviceMappingDialog.java
index 400eca6a6ce..5ffa0bba26a 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaLogAddDeviceMappingDialog.java
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaLogAddDeviceMappingDialog.java
@@ -221,21 +221,28 @@ public class RegattaLogAddDeviceMappingDialog extends DataEntryDialogWithDateTim
String url = DeviceMappingConstants.getDeviceMappingForRegattaLogUrl(baseUrlWithoutTrailingSlash,
eventIdAsString, leaderboardName, mappedItemType, mappedItemId, regattaRegisterSecret,
GwtUrlHelper.INSTANCE);
- if (mailInvitationType == MailInvitationType.LEGACY) {
+ switch (mailInvitationType) {
+ case LEGACY:
// URL is already legacy
- } else if (mailInvitationType == MailInvitationType.SailInsight1) {
+ break;
+ case SailInsight1:
url = BranchIOConstants.SAILINSIGHT_APP_BRANCHIO + "?"
+ BranchIOConstants.SAILINSIGHT_APP_BRANCHIO_PATH + "="
+ GwtUrlHelper.INSTANCE.encodeQueryString(url);
- } else if (mailInvitationType == MailInvitationType.SailInsight2) {
+ break;
+ case SailInsight2:
url = BranchIOConstants.SAILINSIGHT_2_APP_BRANCHIO + "?"
+ BranchIOConstants.OPEN_REGATTA_2_APP_BRANCHIO_PATH + "="
+ GwtUrlHelper.INSTANCE.encodeQueryString(url);
- }
- else {
+ break;
+ case SailInsight3:
+ url = BranchIOConstants.SAILINSIGHT_3_APP_BRANCHIO + "?"
+ + BranchIOConstants.OPEN_REGATTA_3_APP_BRANCHIO_PATH + "="
+ + GwtUrlHelper.INSTANCE.encodeQueryString(url);
+ break;
+ default:
throw new QRCodeURLCreationException("Unknown mail invitation type: " + mailInvitationType);
}
-
return url;
}
});
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegistrationLinkWithQRCodeDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegistrationLinkWithQRCodeDialog.java
index 4817fa55eb4..de2b6288d2a 100644
--- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegistrationLinkWithQRCodeDialog.java
+++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegistrationLinkWithQRCodeDialog.java
@@ -63,14 +63,10 @@ public class RegistrationLinkWithQRCodeDialog extends DataEntryDialog() {
@Override
public String getValue(EventDTO item) {
@@ -98,10 +94,8 @@ public class RegistrationLinkWithQRCodeDialog extends DataEntryDialog parameters = new HashMap();
parameters.put("regatta_name", regattaName);
parameters.put("secret", secret);
parameters.put("server", baseUrl);
parameters.put("event_id", eventIdAsString);
+ // TODO decide OPEN_REGATTA link variant based on invitationType
String deeplinkUrl = BranchIO.generateLink(BranchIOConstants.OPEN_REGATTA_2_APP_BRANCHIO, parameters,
URL::encodeQueryString);
urlTextBox.setText(deeplinkUrl);
- if (invitationType != MailInvitationType.SailInsight2) {
+ if (invitationType != MailInvitationType.SailInsight2 &&
+ invitationType != MailInvitationType.SailInsight3) { // TODO it would be better to make it a property of an enum literal whether open regatta invitation is possible
getStatusLabel().setText(stringMessages.warningSailInsightVersion());
getStatusLabel().setStyleName("errorLabel");
}
sailingService.openRegattaRegistrationQrCode(deeplinkUrl, new AsyncCallback() {
-
@Override
public void onFailure(Throwable caught) {
GWT.log("Qrcode generation failed: ", caught);
@@ -187,9 +176,7 @@ public class RegistrationLinkWithQRCodeDialog extends DataEntryDialogwebdriver.chrome.driver
- C:\apps\ChromeSeleniumDriver\chromedriver.exe
+ /usr/bin/chromedriverwebdriver.gecko.driver
- /path/to/geckodriver.exe
+ /usr/bin/geckodriver
-
- -->
+
+