From 61bfa982198e81c3b83ba4754a674c048fbb8ddb Mon Sep 17 00:00:00 2001
From: Axel Uhl
Date: Tue, 3 Dec 2019 00:14:26 +0100
Subject: [PATCH 08/44] 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/44] 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/44] 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/44] 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/44] 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/44] 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/44] 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/44] 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/44] 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/44] 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/44] 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/44] 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/44] 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/44] 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/44] 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/44] 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/44] 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/44] 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/44] 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/44] 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/44] 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/44] 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.