mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-17 17:50:56 +00:00
Merge remote-tracking branch 'origin/master' into bug2483
This commit is contained in:
commit
0ef68c4da6
294 files changed
+3572
-2233
No files matched your search
+15
-3
@@ -8,10 +8,14 @@ public class NullProcessor<InputType, ResultType> extends AbstractProcessor<Inpu
|
||||
public NullProcessor(Class<InputType> inputType, Class<ResultType> resultType) {
|
||||
super(inputType, resultType);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canProcessElements() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void processElement(InputType element) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -21,12 +25,20 @@ public class NullProcessor<InputType, ResultType> extends AbstractProcessor<Inpu
|
||||
|
||||
@Override
|
||||
public void finish() throws InterruptedException {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isFinished() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void abort() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAborted() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+3
-3
@@ -4,16 +4,16 @@ import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
|
||||
import com.sap.sailing.datamining.data.HasRaceResultOfCompetitorContext;
|
||||
import com.sap.sailing.datamining.data.HasLeaderboardContext;
|
||||
import com.sap.sailing.datamining.data.HasRaceResultOfCompetitorContext;
|
||||
import com.sap.sailing.datamining.impl.data.RaceResultOfCompetitorWithContext;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.RaceColumn;
|
||||
import com.sap.sse.datamining.components.Processor;
|
||||
import com.sap.sse.datamining.impl.components.AbstractSimpleRetrievalProcessor;
|
||||
import com.sap.sse.datamining.impl.components.AbstractRetrievalProcessor;
|
||||
|
||||
public class CompetitorOfRaceInLeaderboardRetrievalProcessor extends
|
||||
AbstractSimpleRetrievalProcessor<HasLeaderboardContext, HasRaceResultOfCompetitorContext> {
|
||||
AbstractRetrievalProcessor<HasLeaderboardContext, HasRaceResultOfCompetitorContext> {
|
||||
|
||||
public CompetitorOfRaceInLeaderboardRetrievalProcessor(ExecutorService executor,
|
||||
Collection<Processor<HasRaceResultOfCompetitorContext, ?>> resultReceivers, int retrievalLevel) {
|
||||
|
||||
+2
-2
@@ -12,9 +12,9 @@ import com.sap.sailing.domain.common.tracking.GPSFixMoving;
|
||||
import com.sap.sailing.domain.tracking.GPSFixTrack;
|
||||
import com.sap.sailing.domain.tracking.TrackedLegOfCompetitor;
|
||||
import com.sap.sse.datamining.components.Processor;
|
||||
import com.sap.sse.datamining.impl.components.AbstractSimpleRetrievalProcessor;
|
||||
import com.sap.sse.datamining.impl.components.AbstractRetrievalProcessor;
|
||||
|
||||
public class GPSFixRetrievalProcessor extends AbstractSimpleRetrievalProcessor<HasTrackedLegOfCompetitorContext, HasGPSFixContext> {
|
||||
public class GPSFixRetrievalProcessor extends AbstractRetrievalProcessor<HasTrackedLegOfCompetitorContext, HasGPSFixContext> {
|
||||
|
||||
public GPSFixRetrievalProcessor(ExecutorService executor, Collection<Processor<HasGPSFixContext, ?>> resultReceivers, int retrievalLevel) {
|
||||
super(HasTrackedLegOfCompetitorContext.class, HasGPSFixContext.class, executor, resultReceivers, retrievalLevel);
|
||||
|
||||
+2
-3
@@ -8,10 +8,9 @@ import com.sap.sailing.datamining.impl.data.LeaderboardGroupWithContext;
|
||||
import com.sap.sailing.polars.PolarDataService;
|
||||
import com.sap.sailing.server.RacingEventService;
|
||||
import com.sap.sse.datamining.components.Processor;
|
||||
import com.sap.sse.datamining.impl.components.AbstractSimpleRetrievalProcessor;
|
||||
import com.sap.sse.datamining.impl.components.AbstractRetrievalProcessor;
|
||||
|
||||
public class LeaderboardGroupRetrievalProcessor extends
|
||||
AbstractSimpleRetrievalProcessor<RacingEventService, LeaderboardGroupWithContext> {
|
||||
public class LeaderboardGroupRetrievalProcessor extends AbstractRetrievalProcessor<RacingEventService, LeaderboardGroupWithContext> {
|
||||
|
||||
public LeaderboardGroupRetrievalProcessor(ExecutorService executor,
|
||||
Collection<Processor<LeaderboardGroupWithContext, ?>> resultReceivers, int retrievalLevel) {
|
||||
|
||||
+2
-3
@@ -9,10 +9,9 @@ import com.sap.sailing.datamining.impl.data.LeaderboardGroupWithContext;
|
||||
import com.sap.sailing.datamining.impl.data.LeaderboardWithContext;
|
||||
import com.sap.sailing.domain.leaderboard.Leaderboard;
|
||||
import com.sap.sse.datamining.components.Processor;
|
||||
import com.sap.sse.datamining.impl.components.AbstractSimpleRetrievalProcessor;
|
||||
import com.sap.sse.datamining.impl.components.AbstractRetrievalProcessor;
|
||||
|
||||
public class LeaderboardRetrievalProcessor extends
|
||||
AbstractSimpleRetrievalProcessor<LeaderboardGroupWithContext, HasLeaderboardContext> {
|
||||
public class LeaderboardRetrievalProcessor extends AbstractRetrievalProcessor<LeaderboardGroupWithContext, HasLeaderboardContext> {
|
||||
|
||||
public LeaderboardRetrievalProcessor(ExecutorService executor,
|
||||
Collection<Processor<HasLeaderboardContext, ?>> resultReceivers, int retrievalLevel) {
|
||||
|
||||
+3
-4
@@ -1,11 +1,11 @@
|
||||
package com.sap.sailing.datamining.impl.components;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.NavigableSet;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
|
||||
import java.util.HashSet;
|
||||
import com.sap.sailing.datamining.data.HasMarkPassingContext;
|
||||
import com.sap.sailing.datamining.data.HasTrackedRaceContext;
|
||||
import com.sap.sailing.datamining.impl.data.MarkPassingWithContext;
|
||||
@@ -13,10 +13,9 @@ import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.tracking.MarkPassing;
|
||||
import com.sap.sailing.domain.tracking.TrackedRace;
|
||||
import com.sap.sse.datamining.components.Processor;
|
||||
import com.sap.sse.datamining.impl.components.AbstractSimpleRetrievalProcessor;
|
||||
import com.sap.sse.datamining.impl.components.AbstractRetrievalProcessor;
|
||||
|
||||
public class MarkPassingRetrievalProcessor extends
|
||||
AbstractSimpleRetrievalProcessor<HasTrackedRaceContext, HasMarkPassingContext> {
|
||||
public class MarkPassingRetrievalProcessor extends AbstractRetrievalProcessor<HasTrackedRaceContext, HasMarkPassingContext> {
|
||||
|
||||
public MarkPassingRetrievalProcessor(ExecutorService executor,
|
||||
Collection<Processor<HasMarkPassingContext, ?>> resultReceivers, int retrievalLevel) {
|
||||
|
||||
+2
-3
@@ -9,10 +9,9 @@ import com.sap.sailing.datamining.data.HasTrackedLegOfCompetitorContext;
|
||||
import com.sap.sailing.datamining.impl.data.TrackedLegOfCompetitorWithContext;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sse.datamining.components.Processor;
|
||||
import com.sap.sse.datamining.impl.components.AbstractSimpleRetrievalProcessor;
|
||||
import com.sap.sse.datamining.impl.components.AbstractRetrievalProcessor;
|
||||
|
||||
public class TrackedLegOfCompetitorRetrievalProcessor extends
|
||||
AbstractSimpleRetrievalProcessor<HasTrackedLegContext, HasTrackedLegOfCompetitorContext> {
|
||||
public class TrackedLegOfCompetitorRetrievalProcessor extends AbstractRetrievalProcessor<HasTrackedLegContext, HasTrackedLegOfCompetitorContext> {
|
||||
|
||||
public TrackedLegOfCompetitorRetrievalProcessor(ExecutorService executor,
|
||||
Collection<Processor<HasTrackedLegOfCompetitorContext, ?>> resultReceivers, int retrievalLevel) {
|
||||
|
||||
+2
-3
@@ -9,10 +9,9 @@ import com.sap.sailing.datamining.data.HasTrackedRaceContext;
|
||||
import com.sap.sailing.datamining.impl.data.TrackedLegWithContext;
|
||||
import com.sap.sailing.domain.tracking.TrackedLeg;
|
||||
import com.sap.sse.datamining.components.Processor;
|
||||
import com.sap.sse.datamining.impl.components.AbstractSimpleRetrievalProcessor;
|
||||
import com.sap.sse.datamining.impl.components.AbstractRetrievalProcessor;
|
||||
|
||||
public class TrackedLegRetrievalProcessor extends
|
||||
AbstractSimpleRetrievalProcessor<HasTrackedRaceContext, HasTrackedLegContext> {
|
||||
public class TrackedLegRetrievalProcessor extends AbstractRetrievalProcessor<HasTrackedRaceContext, HasTrackedLegContext> {
|
||||
|
||||
public TrackedLegRetrievalProcessor(ExecutorService executor,
|
||||
Collection<Processor<HasTrackedLegContext, ?>> resultReceivers, int retrievalLevel) {
|
||||
|
||||
+2
-3
@@ -12,10 +12,9 @@ import com.sap.sailing.domain.base.RaceColumn;
|
||||
import com.sap.sailing.domain.base.Regatta;
|
||||
import com.sap.sailing.domain.tracking.TrackedRace;
|
||||
import com.sap.sse.datamining.components.Processor;
|
||||
import com.sap.sse.datamining.impl.components.AbstractSimpleRetrievalProcessor;
|
||||
import com.sap.sse.datamining.impl.components.AbstractRetrievalProcessor;
|
||||
|
||||
public class TrackedRaceRetrievalProcessor extends
|
||||
AbstractSimpleRetrievalProcessor<HasLeaderboardContext, HasTrackedRaceContext> {
|
||||
public class TrackedRaceRetrievalProcessor extends AbstractRetrievalProcessor<HasLeaderboardContext, HasTrackedRaceContext> {
|
||||
|
||||
public TrackedRaceRetrievalProcessor(ExecutorService executor,
|
||||
Collection<Processor<HasTrackedRaceContext, ?>> resultReceivers, int retrievalLevel) {
|
||||
|
||||
+2
-1
@@ -3,8 +3,9 @@ package com.sap.sailing.domain.common;
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.sap.sailing.domain.common.impl.WindSpeedSteppingWithMaxDistance;
|
||||
import com.sap.sse.common.settings.Settings;
|
||||
|
||||
public interface PolarSheetGenerationSettings extends Serializable {
|
||||
public interface PolarSheetGenerationSettings extends Serializable, Settings {
|
||||
|
||||
Integer getMinimumDataCountPerGraph();
|
||||
|
||||
|
||||
+2
@@ -33,6 +33,8 @@ public interface CompetitorDTO extends Serializable, MappableToDevice {
|
||||
*/
|
||||
CompetitorDTO getCompetitorFromPrevious(LeaderboardDTO previousVersion);
|
||||
|
||||
String getFlagImageURL();
|
||||
|
||||
String getImageURL();
|
||||
|
||||
}
|
||||
+15
-2
@@ -24,11 +24,12 @@ public class CompetitorDTOImpl extends NamedDTO implements CompetitorDTO, Serial
|
||||
private String idAsString;
|
||||
private BoatClassDTO boatClass;
|
||||
private String imageURL;
|
||||
private String flagImageURL;
|
||||
|
||||
public CompetitorDTOImpl() {}
|
||||
|
||||
public CompetitorDTOImpl(String name, Color color, String email, String twoLetterIsoCountryCode, String threeLetterIocCountryCode,
|
||||
String countryName, String sailID, String idAsString, String imageURL, BoatClassDTO boatClass) {
|
||||
String countryName, String sailID, String idAsString, String imageURL, String flagImageURL, BoatClassDTO boatClass) {
|
||||
super(name);
|
||||
this.color = color;
|
||||
this.email = email;
|
||||
@@ -37,8 +38,9 @@ public class CompetitorDTOImpl extends NamedDTO implements CompetitorDTO, Serial
|
||||
this.countryName = countryName;
|
||||
this.sailID = sailID;
|
||||
this.idAsString = idAsString;
|
||||
this.boatClass = boatClass;
|
||||
this.imageURL = imageURL;
|
||||
this.flagImageURL = flagImageURL;
|
||||
this.boatClass = boatClass;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -52,6 +54,7 @@ public class CompetitorDTOImpl extends NamedDTO implements CompetitorDTO, Serial
|
||||
result = prime * result + ((email == null) ? 0 : email.hashCode());
|
||||
result = prime * result + ((threeLetterIocCountryCode == null) ? 0 : threeLetterIocCountryCode.hashCode());
|
||||
result = prime * result + ((imageURL == null) ? 0 : imageURL.hashCode());
|
||||
result = prime * result + ((flagImageURL == null) ? 0 : flagImageURL.hashCode());
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -99,6 +102,11 @@ public class CompetitorDTOImpl extends NamedDTO implements CompetitorDTO, Serial
|
||||
return false;
|
||||
} else if (!imageURL.equals(other.imageURL))
|
||||
return false;
|
||||
if (flagImageURL == null) {
|
||||
if (other.flagImageURL != null)
|
||||
return false;
|
||||
} else if (!flagImageURL.equals(other.flagImageURL))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -127,6 +135,11 @@ public class CompetitorDTOImpl extends NamedDTO implements CompetitorDTO, Serial
|
||||
return imageURL;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getFlagImageURL() {
|
||||
return flagImageURL;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getIdAsString() {
|
||||
return idAsString;
|
||||
|
||||
+6
@@ -105,6 +105,12 @@ public class PreviousCompetitorDTOImpl implements CompetitorDTO {
|
||||
" need to be replaced by an object of "+CompetitorDTOImpl.class.getName()+" after deserialization");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getFlagImageURL() {
|
||||
throw new RuntimeException("Internal error. Objects of type "+PreviousCompetitorDTOImpl.class.getName()+
|
||||
" need to be replaced by an object of "+CompetitorDTOImpl.class.getName()+" after deserialization");
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompetitorDTO getCompetitorFromPrevious(LeaderboardDTO previousVersion) {
|
||||
return previousVersion.competitors.get(indexInPreviousCompetitorList);
|
||||
|
||||
+2
-1
@@ -4,8 +4,9 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.sap.sailing.domain.common.PolarSheetGenerationSettings;
|
||||
import com.sap.sse.common.settings.AbstractSettings;
|
||||
|
||||
public class PolarSheetGenerationSettingsImpl implements PolarSheetGenerationSettings {
|
||||
public class PolarSheetGenerationSettingsImpl extends AbstractSettings implements PolarSheetGenerationSettings {
|
||||
|
||||
public static PolarSheetGenerationSettings createStandardPolarSettings() {
|
||||
double[] levels = { 4., 6., 8., 10., 12., 14., 16., 20., 25., 30. };
|
||||
|
||||
+1
-1
@@ -40,7 +40,7 @@ public class AbstractGPSFixStoreTest {
|
||||
protected final DeviceIdentifier device = new SmartphoneImeiIdentifier("a");
|
||||
protected RaceLog raceLog;
|
||||
protected GPSFixStore store;
|
||||
protected final Competitor comp = DomainFactory.INSTANCE.getOrCreateCompetitor("comp", "comp", null, null, null, null);
|
||||
protected final Competitor comp = DomainFactory.INSTANCE.getOrCreateCompetitor("comp", "comp", null, null, null, null, null);
|
||||
protected final Mark mark = DomainFactory.INSTANCE.getOrCreateMark("mark");
|
||||
|
||||
private final AbstractLogEventAuthor author = new LogEventAuthorImpl("author", 0);
|
||||
|
||||
+2
-2
@@ -168,7 +168,7 @@ public class CreateAndTrackWithRaceLogTest {
|
||||
assertFalse(raceLog.isEmpty());
|
||||
|
||||
// add a mapping and one fix in, one out of mapping
|
||||
Competitor comp1 = DomainFactory.INSTANCE.getOrCreateCompetitor("comp1", "comp1", null, null, null, null);
|
||||
Competitor comp1 = DomainFactory.INSTANCE.getOrCreateCompetitor("comp1", "comp1", null, null, null, null, null);
|
||||
DeviceIdentifier dev1 = new SmartphoneImeiIdentifier("dev1");
|
||||
raceLog.add(factory.createDeviceCompetitorMappingEvent(t(), author, dev1, comp1, 0, t(0), t(10)));
|
||||
addFixes0(dev1);
|
||||
@@ -202,7 +202,7 @@ public class CreateAndTrackWithRaceLogTest {
|
||||
adapter.denoteRaceForRaceLogTracking(service, leaderboard, column, fleet, "race");
|
||||
|
||||
// add a mapping and one fix in, one out of mapping
|
||||
Competitor comp1 = DomainFactory.INSTANCE.getOrCreateCompetitor("comp1", "comp1", null, null, null, null);
|
||||
Competitor comp1 = DomainFactory.INSTANCE.getOrCreateCompetitor("comp1", "comp1", null, null, null, null, null);
|
||||
DeviceIdentifier dev1 = new SmartphoneImeiIdentifier("dev1");
|
||||
regattaLog.add(new RegattaLogDeviceCompetitorMappingEventImpl(t(), author, t(), UUID.randomUUID(), comp1, dev1,
|
||||
t(0), t(10)));
|
||||
|
||||
+1
-1
@@ -49,7 +49,7 @@ public class TrackedRaceLoadsFixesTest extends AbstractGPSFixStoreTest {
|
||||
@Test
|
||||
public void areFixesStoredInDb() throws TransformationException, NoCorrespondingServiceRegisteredException,
|
||||
InterruptedException {
|
||||
Competitor comp2 = DomainFactory.INSTANCE.getOrCreateCompetitor("comp2", "comp2", null, null, null, null);
|
||||
Competitor comp2 = DomainFactory.INSTANCE.getOrCreateCompetitor("comp2", "comp2", null, null, null, null, null);
|
||||
Mark mark2 = DomainFactory.INSTANCE.getOrCreateMark("mark2");
|
||||
DeviceIdentifier device2 = new SmartphoneImeiIdentifier("imei2");
|
||||
DeviceIdentifier device3 = new SmartphoneImeiIdentifier("imei3");
|
||||
|
||||
+1
-1
@@ -52,7 +52,7 @@ public class MultiLogAnalyzerTest {
|
||||
private AbstractLogEventAuthor author;
|
||||
|
||||
private static Competitor createCompetitor(int n) {
|
||||
return new CompetitorImpl(n, n + "", null, null, null, null);
|
||||
return new CompetitorImpl(n, n + "", null, null, null, null, null);
|
||||
}
|
||||
|
||||
private static DeviceIdentifier createDevice() {
|
||||
|
||||
+2
-2
@@ -22,8 +22,8 @@ import com.sap.sse.common.TimePoint;
|
||||
import com.sap.sse.common.impl.MillisecondsTimePoint;
|
||||
|
||||
public class DeviceMappingFinderTest extends AbstractRaceLogTrackingTest {
|
||||
private final Competitor competitor = new CompetitorImpl("comp", "Comp", null, null, null, null);
|
||||
private final Competitor competitor2 = new CompetitorImpl("comp2", "Comp2", null, null, null, null);
|
||||
private final Competitor competitor = new CompetitorImpl("comp", "Comp", null, null, null, null, null);
|
||||
private final Competitor competitor2 = new CompetitorImpl("comp2", "Comp2", null, null, null, null, null);
|
||||
private final DeviceIdentifier device = new SmartphoneImeiIdentifier("imei");
|
||||
|
||||
private int time = 0;
|
||||
|
||||
+9
-1
@@ -1,5 +1,7 @@
|
||||
package com.sap.sailing.domain.base;
|
||||
|
||||
import java.net.URI;
|
||||
|
||||
import com.sap.sse.common.Color;
|
||||
import com.sap.sse.common.IsManagedByCache;
|
||||
import com.sap.sse.common.Named;
|
||||
@@ -18,7 +20,13 @@ public interface Competitor extends Named, WithID, IsManagedByCache<SharedDomain
|
||||
String getEmail();
|
||||
|
||||
boolean hasEmail();
|
||||
|
||||
|
||||
/**
|
||||
* an alternative flag image (per default the nation flag
|
||||
* @return the URI of the flag image
|
||||
*/
|
||||
URI getFlagImage();
|
||||
|
||||
/**
|
||||
* Adds a listener to this competitor. The listener is also added to the boat and the team for changes.
|
||||
* Adding a listener that is already part of this competitor's listeners set remains without effect.
|
||||
|
||||
+2
-1
@@ -1,6 +1,7 @@
|
||||
package com.sap.sailing.domain.base;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.net.URI;
|
||||
|
||||
import com.sap.sailing.domain.base.impl.DynamicBoat;
|
||||
import com.sap.sailing.domain.base.impl.DynamicTeam;
|
||||
@@ -26,5 +27,5 @@ public interface CompetitorFactory {
|
||||
*/
|
||||
boolean isCompetitorToUpdateDuringGetOrCreate(Competitor result);
|
||||
|
||||
Competitor getOrCreateCompetitor(Serializable competitorId, String name, Color displayColor, String email, DynamicTeam team, DynamicBoat boat);
|
||||
Competitor getOrCreateCompetitor(Serializable competitorId, String name, Color displayColor, String email, URI flagImageURI, DynamicTeam team, DynamicBoat boat);
|
||||
}
|
||||
+1
-1
@@ -64,7 +64,7 @@ public interface CompetitorStore extends CompetitorFactory {
|
||||
* If no competitor with the ID requested is found, the call is a no-op, doing nothing, not even throwing an exception.
|
||||
*/
|
||||
Competitor updateCompetitor(String idAsString, String newName, Color newDisplayColor, String newEmail, String newSailId,
|
||||
Nationality newNationality, URI newTeamImageUri);
|
||||
Nationality newNationality, URI newTeamImageUri, URI newFlagImageUri);
|
||||
|
||||
CompetitorDTO convertToCompetitorDTO(Competitor c);
|
||||
|
||||
|
||||
+15
-2
@@ -3,6 +3,7 @@ package com.sap.sailing.domain.base.impl;
|
||||
import java.io.IOException;
|
||||
import java.io.ObjectInputStream;
|
||||
import java.io.Serializable;
|
||||
import java.net.URI;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
@@ -21,14 +22,16 @@ public class CompetitorImpl implements DynamicCompetitor {
|
||||
private Color color;
|
||||
private transient Set<CompetitorChangeListener> listeners;
|
||||
private String email;
|
||||
private URI flagImage;
|
||||
|
||||
public CompetitorImpl(Serializable id, String name, Color color, String email, DynamicTeam team, DynamicBoat boat) {
|
||||
public CompetitorImpl(Serializable id, String name, Color color, String email, URI flagImage, DynamicTeam team, DynamicBoat boat) {
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
this.team = team;
|
||||
this.boat = boat;
|
||||
this.color = color;
|
||||
this.email = email;
|
||||
this.flagImage = flagImage;
|
||||
this.listeners = new HashSet<CompetitorChangeListener>();
|
||||
}
|
||||
|
||||
@@ -75,7 +78,7 @@ public class CompetitorImpl implements DynamicCompetitor {
|
||||
|
||||
@Override
|
||||
public Competitor resolve(SharedDomainFactory domainFactory) {
|
||||
Competitor result = domainFactory.getOrCreateCompetitor(getId(), getName(), getColor(), getEmail(), getTeam(), getBoat());
|
||||
Competitor result = domainFactory.getOrCreateCompetitor(getId(), getName(), getColor(), getEmail(), getFlagImage(), getTeam(), getBoat());
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -134,4 +137,14 @@ public class CompetitorImpl implements DynamicCompetitor {
|
||||
public boolean hasEmail(){
|
||||
return email != null && !email.isEmpty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public URI getFlagImage() {
|
||||
return flagImage;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setFlagImage(URI flagImage) {
|
||||
this.flagImage = flagImage;
|
||||
}
|
||||
}
|
||||
+4
@@ -1,5 +1,7 @@
|
||||
package com.sap.sailing.domain.base.impl;
|
||||
|
||||
import java.net.URI;
|
||||
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.common.Renamable;
|
||||
import com.sap.sse.common.Color;
|
||||
@@ -12,4 +14,6 @@ public interface DynamicCompetitor extends Competitor, Renamable {
|
||||
void setColor(Color displayColor);
|
||||
|
||||
void setEmail(String email);
|
||||
|
||||
void setFlagImage(URI flagImage);
|
||||
}
|
||||
+3
-2
@@ -4,6 +4,7 @@ import java.io.Serializable;
|
||||
import java.lang.ref.Reference;
|
||||
import java.lang.ref.ReferenceQueue;
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.net.URI;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
@@ -332,11 +333,11 @@ public class SharedDomainFactoryImpl implements SharedDomainFactory {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Competitor getOrCreateCompetitor(Serializable competitorId, String name, Color displayColor, String email, DynamicTeam team, DynamicBoat boat) {
|
||||
public Competitor getOrCreateCompetitor(Serializable competitorId, String name, Color displayColor, String email, URI flagImage, DynamicTeam team, DynamicBoat boat) {
|
||||
if (logger.isLoggable(Level.FINEST)) {
|
||||
logger.log(Level.FINEST, "getting or creating competitor "+name+" with ID "+competitorId+" in domain factory "+this);
|
||||
}
|
||||
return getCompetitorStore().getOrCreateCompetitor(competitorId, name, displayColor, email, team, boat);
|
||||
return getCompetitorStore().getOrCreateCompetitor(competitorId, name, displayColor, email, flagImage, team, boat);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+10
-7
@@ -68,8 +68,8 @@ public class TransientCompetitorStoreImpl implements CompetitorStore, Serializab
|
||||
listeners.remove(listener);
|
||||
}
|
||||
|
||||
private Competitor createCompetitor(Serializable id, String name, Color displayColor, String email, DynamicTeam team, DynamicBoat boat) {
|
||||
Competitor result = new CompetitorImpl(id, name, displayColor, email, team, boat);
|
||||
private Competitor createCompetitor(Serializable id, String name, Color displayColor, String email, URI flagImage, DynamicTeam team, DynamicBoat boat) {
|
||||
Competitor result = new CompetitorImpl(id, name, displayColor, email, flagImage, team, boat);
|
||||
addNewCompetitor(id, result);
|
||||
if (logger.isLoggable(Level.FINEST)) {
|
||||
logger.log(Level.FINEST, "Created competitor "+name+" with ID "+id, new Exception("Here is where it happened"));
|
||||
@@ -93,21 +93,21 @@ public class TransientCompetitorStoreImpl implements CompetitorStore, Serializab
|
||||
}
|
||||
|
||||
@Override
|
||||
public Competitor getOrCreateCompetitor(Serializable competitorId, String name, Color displayColor, String email, DynamicTeam team, DynamicBoat boat) {
|
||||
public Competitor getOrCreateCompetitor(Serializable competitorId, String name, Color displayColor, String email, URI flagImage, DynamicTeam team, DynamicBoat boat) {
|
||||
Competitor result = getExistingCompetitorById(competitorId); // avoid synchronization for successful read access
|
||||
if (result == null) {
|
||||
LockUtil.lockForWrite(lock);
|
||||
try {
|
||||
result = getExistingCompetitorById(competitorId); // try again, now while holding the write lock
|
||||
if (result == null) {
|
||||
result = createCompetitor(competitorId, name, displayColor, email, team, boat);
|
||||
result = createCompetitor(competitorId, name, displayColor, email, flagImage, team, boat);
|
||||
}
|
||||
} finally {
|
||||
LockUtil.unlockAfterWrite(lock);
|
||||
}
|
||||
} else if (isCompetitorToUpdateDuringGetOrCreate(result)) {
|
||||
updateCompetitor(result.getId().toString(), name, displayColor, email, boat.getSailID(), team.getNationality(),
|
||||
team.getImage());
|
||||
team.getImage(), flagImage);
|
||||
competitorNoLongerToUpdateDuringGetOrCreate(result);
|
||||
}
|
||||
return result;
|
||||
@@ -192,7 +192,7 @@ public class TransientCompetitorStoreImpl implements CompetitorStore, Serializab
|
||||
|
||||
@Override
|
||||
public Competitor updateCompetitor(String idAsString, String newName, Color newDisplayColor, String newEmail, String newSailId,
|
||||
Nationality newNationality, URI newTeamImageUri) {
|
||||
Nationality newNationality, URI newTeamImageUri, URI newFlagImageUri) {
|
||||
DynamicCompetitor competitor = (DynamicCompetitor) getExistingCompetitorByIdAsString(idAsString);
|
||||
if (competitor != null) {
|
||||
LockUtil.lockForWrite(lock);
|
||||
@@ -200,6 +200,7 @@ public class TransientCompetitorStoreImpl implements CompetitorStore, Serializab
|
||||
competitor.setName(newName);
|
||||
competitor.setColor(newDisplayColor);
|
||||
competitor.setEmail(newEmail);
|
||||
competitor.setFlagImage(newFlagImageUri);
|
||||
competitor.getBoat().setSailId(newSailId);
|
||||
competitor.getTeam().setNationality(newNationality);
|
||||
competitor.getTeam().setImage(newTeamImageUri);
|
||||
@@ -233,7 +234,9 @@ public class TransientCompetitorStoreImpl implements CompetitorStore, Serializab
|
||||
competitorDTO = new CompetitorDTOImpl(c.getName(), c.getColor(), c.getEmail(), countryCode == null ? ""
|
||||
: countryCode.getTwoLetterISOCode(), countryCode == null ? ""
|
||||
: countryCode.getThreeLetterIOCCode(), countryCode == null ? "" : countryCode.getName(),
|
||||
c.getBoat().getSailID(), c.getId().toString(), c.getTeam().getImage() == null ? null : c.getTeam().getImage().toString(),
|
||||
c.getBoat().getSailID(), c.getId().toString(),
|
||||
c.getTeam().getImage() == null ? null : c.getTeam().getImage().toString(),
|
||||
c.getFlagImage() == null ? null : c.getFlagImage().toString(),
|
||||
new BoatClassDTO(c.getBoat().getBoatClass()
|
||||
.getName(), c.getBoat().getBoatClass().getDisplayName(), c.getBoat().getBoatClass().getHullLength().getMeters()));
|
||||
weakCompetitorDTOCache.put(c, competitorDTO);
|
||||
|
||||
+2
-2
@@ -124,7 +124,7 @@ public class DomainFactoryImpl implements DomainFactory {
|
||||
teamMembers.add(person);
|
||||
}
|
||||
DynamicTeam team = new TeamImpl(competitor.getName(), teamMembers, /* coach */ null);
|
||||
result = competitorStore.getOrCreateCompetitor(competitor.getID(), competitor.getName(), null /*displayColor*/, null /*email*/, team, boat);
|
||||
result = competitorStore.getOrCreateCompetitor(competitor.getID(), competitor.getName(), null /*displayColor*/, null /*email*/, null, team, boat);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -140,7 +140,7 @@ public class DomainFactoryImpl implements DomainFactory {
|
||||
}
|
||||
DynamicTeam team = new TeamImpl(competitor.getName(), teamMembers, /* coach */ null);
|
||||
result = baseDomainFactory.getCompetitorStore().getOrCreateCompetitor(getCompetitorID(competitor.getBoatID(), raceId, boatClass),
|
||||
competitor.getName(), null /*displayColor*/, null /*email*/, team, boat);
|
||||
competitor.getName(), null /*displayColor*/, null /*email*/, null, team, boat);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
+4
-4
@@ -233,7 +233,7 @@ public class LeaderboardDTODiffingTest {
|
||||
public void testCompetitorListChange() {
|
||||
newVersion.competitors = new ArrayList<CompetitorDTO>(newVersion.competitors); // clone competitor list so it's not identical to that of previous version
|
||||
CompetitorDTO somebodyNew = new CompetitorDTOImpl("Someone New", Color.RED, "someone@nobody.de", "DE", "GER", "Germany", "GER 1234", "912p09871203987",
|
||||
/* imageURL */ null, new BoatClassDTO("505", 5.05));
|
||||
/* imageURL */ null, /* flagImageURL */ null, new BoatClassDTO("505", 5.05));
|
||||
newVersion.competitors.add(13, somebodyNew); // insert a competitor; this should mess up all others' indexes; check if this works
|
||||
CompetitorDTO wolfgang = getPreviousCompetitorByName("HUNGER +JESS");
|
||||
newVersion.competitors.remove(wolfgang);
|
||||
@@ -253,7 +253,7 @@ public class LeaderboardDTODiffingTest {
|
||||
newVersion.setSuppressedCompetitors(newSuppressedCompetitors);
|
||||
newVersion.competitors = new ArrayList<CompetitorDTO>(newVersion.competitors); // clone competitor list so it's not identical to that of previous version
|
||||
CompetitorDTO somebodyNew = new CompetitorDTOImpl("Someone New", Color.RED, "someone@nobody.de", "DE", "GER", "Germany", "GER 1234", "912p09871203987",
|
||||
/* imageURL */ null, new BoatClassDTO("505", 5.05));
|
||||
/* imageURL */ null, /* flagImageURL */ null, new BoatClassDTO("505", 5.05));
|
||||
newVersion.setSuppressed(newVersion.competitors.get(13), true); // suppress an existing competitor; compaction should reduce this to a single number only
|
||||
newVersion.setSuppressed(somebodyNew, true); // check that mixed mode with existing and new competitors works as well
|
||||
List<CompetitorDTO> newSuppressedCompetitorsBeforeStripping = new ArrayList<CompetitorDTO>();
|
||||
@@ -275,7 +275,7 @@ public class LeaderboardDTODiffingTest {
|
||||
public void testDisplayNameChange() {
|
||||
newVersion.competitors = new ArrayList<CompetitorDTO>(newVersion.competitors); // clone competitor list so it's not identical to that of previous version
|
||||
CompetitorDTO somebodyNew = new CompetitorDTOImpl("Someone New", Color.RED, "someone@nobody.de", "DE", "GER", "Germany", "GER 1234", "912p09871203987",
|
||||
/* imageURL */ null, new BoatClassDTO("505", 5.05));
|
||||
/* imageURL */ null, /* flagImageURL */ null, new BoatClassDTO("505", 5.05));
|
||||
newVersion.competitors.add(somebodyNew);
|
||||
newVersion.competitorDisplayNames = new HashMap<CompetitorDTO, String>(newVersion.competitorDisplayNames);
|
||||
newVersion.competitorDisplayNames.put(newVersion.competitors.get(13), "Humba");
|
||||
@@ -304,7 +304,7 @@ public class LeaderboardDTODiffingTest {
|
||||
newVersion.setCompetitorsFromBestToWorst(r9, newOrdering);
|
||||
newVersion.competitors = new ArrayList<CompetitorDTO>(newVersion.competitors); // clone competitor list so it's not identical to that of previous version
|
||||
CompetitorDTO somebodyNew = new CompetitorDTOImpl("Someone New", Color.RED, "someone@nobody.de", "DE", "GER", "Germany", "GER 1234", "912p09871203987",
|
||||
/* imageURL */ null, new BoatClassDTO("505", 5.05));
|
||||
/* imageURL */ null, /* flagImageURL */ null, new BoatClassDTO("505", 5.05));
|
||||
newVersion.competitors.add(somebodyNew);
|
||||
newOrdering.add(somebodyNew);
|
||||
CompetitorDTO formerRank13 = newOrdering.remove(13);
|
||||
|
||||
+3
-3
@@ -15,7 +15,7 @@ import com.sap.sse.common.Color;
|
||||
|
||||
public abstract class AbstractLeaderboardTest {
|
||||
public static CompetitorImpl createCompetitor(String competitorName) {
|
||||
return new CompetitorImpl(competitorName, competitorName, Color.RED, null, new TeamImpl("STG", Collections.singleton(
|
||||
return new CompetitorImpl(competitorName, competitorName, Color.RED, null, null, new TeamImpl("STG", Collections.singleton(
|
||||
new PersonImpl(competitorName, new NationalityImpl("GER"),
|
||||
/* dateOfBirth */ null, "This is famous "+competitorName)),
|
||||
new PersonImpl("Rigo van Maas", new NationalityImpl("NED"),
|
||||
@@ -24,7 +24,7 @@ public abstract class AbstractLeaderboardTest {
|
||||
}
|
||||
|
||||
public static Competitor createCompetitor(String competitorName, CompetitorFactory competitorFactory) {
|
||||
return competitorFactory.getOrCreateCompetitor(competitorName, competitorName, Color.RED, "someone@nobody.de", new TeamImpl("STG", Collections.singleton(
|
||||
return competitorFactory.getOrCreateCompetitor(competitorName, competitorName, Color.RED, "someone@nobody.de", null, new TeamImpl("STG", Collections.singleton(
|
||||
new PersonImpl(competitorName, new NationalityImpl("GER"),
|
||||
/* dateOfBirth */ null, "This is famous "+competitorName)),
|
||||
new PersonImpl("Rigo van Maas", new NationalityImpl("NED"),
|
||||
@@ -33,7 +33,7 @@ public abstract class AbstractLeaderboardTest {
|
||||
}
|
||||
|
||||
public static CompetitorImpl createCompetitor(String competitorName, Serializable id) {
|
||||
return new CompetitorImpl(id, competitorName, Color.RED, null, new TeamImpl("STG", Collections.singleton(
|
||||
return new CompetitorImpl(id, competitorName, Color.RED, null, null, new TeamImpl("STG", Collections.singleton(
|
||||
new PersonImpl(competitorName, new NationalityImpl("GER"),
|
||||
/* dateOfBirth */ null, "This is famous "+competitorName)),
|
||||
new PersonImpl("Rigo van Maas", new NationalityImpl("NED"),
|
||||
|
||||
+1
-1
@@ -157,7 +157,7 @@ public class LeaderboardCourseChangeTest {
|
||||
Set<Competitor> competitors = new HashSet<>();
|
||||
DynamicBoat mockedBoat = mock(DynamicBoat.class);
|
||||
when(mockedBoat.getBoatClass()).thenReturn(boatClass);
|
||||
competitors.add(new CompetitorImpl(UUID.randomUUID(), "TestCompetitor", Color.BLACK, null,
|
||||
competitors.add(new CompetitorImpl(UUID.randomUUID(), "TestCompetitor", Color.BLACK, null, null,
|
||||
mock(DynamicTeam.class), mockedBoat));
|
||||
return competitors;
|
||||
}
|
||||
|
||||
+1
-1
@@ -188,7 +188,7 @@ public class OfflineSerializationTest extends AbstractSerializationTest {
|
||||
DomainFactory senderDomainFactory = new DomainFactoryImpl();
|
||||
DomainFactory receiverDomainFactory = new DomainFactoryImpl();
|
||||
String competitorName = "Tina Maximiliane Lutz";
|
||||
Competitor sendersCompetitor1 = new CompetitorImpl(123, competitorName, Color.RED, null, new TeamImpl("STG", Collections.singleton(
|
||||
Competitor sendersCompetitor1 = new CompetitorImpl(123, competitorName, Color.RED, null, null, new TeamImpl("STG", Collections.singleton(
|
||||
new PersonImpl(competitorName, senderDomainFactory.getOrCreateNationality("GER"),
|
||||
/* dateOfBirth */ null, "This is famous "+competitorName)),
|
||||
new PersonImpl("Rigo van Maas", senderDomainFactory.getOrCreateNationality("GER"),
|
||||
|
||||
+1
-1
@@ -117,7 +117,7 @@ public abstract class StoredTrackBasedTest extends TrackBasedTest {
|
||||
for (String competitorName : getCompetitorNamesOfStoredTracks(KIELER_WOCHE)) {
|
||||
DynamicPerson p = new PersonImpl(competitorName, /* nationality */ null, /* dateOfBirth */ null, /* description */ null);
|
||||
DynamicTeam t = new TeamImpl(competitorName, Collections.singleton(p), /* coach */ null);
|
||||
Competitor c = new CompetitorImpl(competitorName, competitorName, Color.RED, null, t, new BoatImpl(competitorName,
|
||||
Competitor c = new CompetitorImpl(competitorName, competitorName, Color.RED, null, null, t, new BoatImpl(competitorName,
|
||||
new BoatClassImpl("505", /* typicallyStartsUpwind */ true), null));
|
||||
DynamicGPSFixTrack<Competitor, GPSFixMoving> track = readTrack(c, KIELER_WOCHE);
|
||||
if (track != null) {
|
||||
|
||||
@@ -34,7 +34,7 @@ public class TackTest extends StoredTrackBasedTestWithTrackedRace {
|
||||
@Override
|
||||
@Before
|
||||
public void setUp() {
|
||||
competitor = new CompetitorImpl(123, "Wolfgang Hunger", Color.RED, null, new TeamImpl("STG", Collections.singleton(
|
||||
competitor = new CompetitorImpl(123, "Wolfgang Hunger", Color.RED, null, null, new TeamImpl("STG", Collections.singleton(
|
||||
new PersonImpl("Wolfgang Hunger", new NationalityImpl("GER"),
|
||||
/* dateOfBirth */null, "This is famous Wolfgang Hunger")), new PersonImpl("Rigo van Maas",
|
||||
new NationalityImpl("NED"),
|
||||
|
||||
+1
-1
@@ -60,7 +60,7 @@ public abstract class TrackBasedTest {
|
||||
}
|
||||
|
||||
public static CompetitorImpl createCompetitor(String competitorName) {
|
||||
return new CompetitorImpl(UUID.randomUUID(), competitorName, Color.RED, null, new TeamImpl("STG", Collections.singleton(
|
||||
return new CompetitorImpl(UUID.randomUUID(), competitorName, Color.RED, null, null, new TeamImpl("STG", Collections.singleton(
|
||||
new PersonImpl(competitorName, new NationalityImpl("GER"),
|
||||
/* dateOfBirth */null, "This is famous " + competitorName)), new PersonImpl("Rigo van Maas",
|
||||
new NationalityImpl("NED"),
|
||||
|
||||
@@ -270,7 +270,7 @@ public class WindTest {
|
||||
Waypoint w1 = domainFactory.createWaypoint(startFinish, /*passingInstruction*/ null);
|
||||
Waypoint w2 = domainFactory.createWaypoint(top, /*passingInstruction*/ null);
|
||||
Waypoint w3 = domainFactory.createWaypoint(startFinish, /*passingInstruction*/ null);
|
||||
Competitor competitor = new CompetitorImpl(123, "Test Competitor", Color.RED, null, new TeamImpl("STG", Collections.singleton(
|
||||
Competitor competitor = new CompetitorImpl(123, "Test Competitor", Color.RED, null, null, new TeamImpl("STG", Collections.singleton(
|
||||
new PersonImpl("Test Competitor", new NationalityImpl("GER"),
|
||||
/* dateOfBirth */null, "This is famous " + "Test Competitor")), new PersonImpl("Rigo van Maas",
|
||||
new NationalityImpl("NED"),
|
||||
|
||||
+3
-3
@@ -39,9 +39,9 @@ import com.sap.sse.common.Util;
|
||||
import com.sap.sse.common.impl.MillisecondsTimePoint;
|
||||
|
||||
public class AbstractMockedRaceMarkPassingTest {
|
||||
protected Competitor ron = new CompetitorImpl("Ron", "Ron", null, null, null, null);
|
||||
protected Competitor tom = new CompetitorImpl("Tom", "Tom", null, null, null, null);
|
||||
protected Competitor ben = new CompetitorImpl("Ben", "Ben", null, null, null, null);
|
||||
protected Competitor ron = new CompetitorImpl("Ron", "Ron", null, null, null, null, null);
|
||||
protected Competitor tom = new CompetitorImpl("Tom", "Tom", null, null, null, null, null);
|
||||
protected Competitor ben = new CompetitorImpl("Ben", "Ben", null, null, null, null, null);
|
||||
|
||||
protected Mark m = new MarkImpl("Mark");
|
||||
protected Mark gate1 = new MarkImpl("Gate1");
|
||||
|
||||
+1
-1
@@ -258,7 +258,7 @@ public class DomainFactoryImpl implements DomainFactory {
|
||||
}
|
||||
DynamicTeam team = getOrCreateTeam(name, nationality, competitorId);
|
||||
DynamicBoat boat = new BoatImpl(shortName, boatClass, shortName);
|
||||
result = competitorStore.getOrCreateCompetitor(competitorId, name, null /*displayColor*/, null /*email*/, team, boat);
|
||||
result = competitorStore.getOrCreateCompetitor(competitorId, name, null /*displayColor*/, null /*email*/, null /*flagImag */, team, boat);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
+3
-1
@@ -1,6 +1,7 @@
|
||||
package com.sap.sailing.domain.base.impl;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.net.URI;
|
||||
|
||||
import com.sap.sailing.domain.base.CompetitorStore;
|
||||
import com.sap.sse.common.Color;
|
||||
@@ -10,7 +11,8 @@ public interface DynamicCompetitorStore extends CompetitorStore {
|
||||
DynamicCompetitor getExistingCompetitorById(Serializable competitorId);
|
||||
|
||||
@Override
|
||||
DynamicCompetitor getOrCreateCompetitor(Serializable competitorId, String name, Color displayColor, String email, DynamicTeam team, DynamicBoat boat);
|
||||
DynamicCompetitor getOrCreateCompetitor(Serializable competitorId, String name, Color displayColor, String email, URI flagImage,
|
||||
DynamicTeam team, DynamicBoat boat);
|
||||
|
||||
@Override
|
||||
Iterable<? extends DynamicCompetitor> getCompetitors();
|
||||
|
||||
+7
@@ -1,5 +1,7 @@
|
||||
package com.sap.sailing.domain.tracking.impl;
|
||||
|
||||
import java.net.URI;
|
||||
|
||||
import com.sap.sailing.domain.base.Boat;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.CompetitorChangeListener;
|
||||
@@ -82,6 +84,11 @@ public class DummyMarkPassingWithTimePointOnly implements MarkPassing {
|
||||
public boolean hasEmail() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public URI getFlagImage() {
|
||||
return null;
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -163,7 +163,7 @@ public class PolarSheetGenerationServiceTest {
|
||||
waypoints.add(new WaypointImpl(null));
|
||||
waypoints.add(new WaypointImpl(null));
|
||||
ArrayList<Competitor> competitors = new ArrayList<Competitor>();
|
||||
Competitor competitor = new CompetitorImpl(UUID.randomUUID(), "Hans Frantz", Color.RED, null,
|
||||
Competitor competitor = new CompetitorImpl(UUID.randomUUID(), "Hans Frantz", Color.RED, null, null,
|
||||
new TeamImpl("SAP", null, null), new BoatImpl("Schnelle Forelle", forelle, "GER000"));
|
||||
competitors.add(competitor);
|
||||
RaceDefinition race = new RaceDefinitionImpl("Forelle1", new CourseImpl("ForelleCourse", waypoints), forelle, competitors);
|
||||
|
||||
+1
-1
@@ -18,7 +18,6 @@ import com.sap.sailing.gwt.common.client.i18n.TextMessages;
|
||||
import com.sap.sailing.gwt.home.client.place.event.regattaleaderboard.EventRegattaLeaderboardResources;
|
||||
import com.sap.sailing.gwt.ui.client.DebugIdHelper;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialog;
|
||||
import com.sap.sailing.gwt.ui.common.client.DateAndTimeFormatterUtil;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings;
|
||||
@@ -26,6 +25,7 @@ import com.sap.sailing.gwt.ui.leaderboard.ScoringSchemeTypeFormatter;
|
||||
import com.sap.sse.gwt.client.player.Timer;
|
||||
import com.sap.sse.gwt.client.player.Timer.PlayModes;
|
||||
import com.sap.sse.gwt.client.player.Timer.PlayStates;
|
||||
import com.sap.sse.gwt.client.shared.components.SettingsDialog;
|
||||
|
||||
public class OldLeaderboard extends Composite {
|
||||
private static OldLeaderboardUiBinder uiBinder = GWT.create(OldLeaderboardUiBinder.class);
|
||||
|
||||
+1
-1
@@ -18,7 +18,6 @@ import com.sap.sailing.gwt.common.client.i18n.TextMessages;
|
||||
import com.sap.sailing.gwt.home.client.place.event.regattaleaderboard.EventRegattaLeaderboardResources;
|
||||
import com.sap.sailing.gwt.ui.client.DebugIdHelper;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialog;
|
||||
import com.sap.sailing.gwt.ui.common.client.DateAndTimeFormatterUtil;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.MultiLeaderboardPanel;
|
||||
@@ -26,6 +25,7 @@ import com.sap.sailing.gwt.ui.leaderboard.ScoringSchemeTypeFormatter;
|
||||
import com.sap.sse.gwt.client.player.Timer;
|
||||
import com.sap.sse.gwt.client.player.Timer.PlayModes;
|
||||
import com.sap.sse.gwt.client.player.Timer.PlayStates;
|
||||
import com.sap.sse.gwt.client.shared.components.SettingsDialog;
|
||||
|
||||
public class OldMultiLeaderboard extends Composite {
|
||||
private static OldMultiLeaderboardUiBinder uiBinder = GWT.create(OldMultiLeaderboardUiBinder.class);
|
||||
|
||||
+4
-3
@@ -14,14 +14,15 @@ import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.charts.MultiCompetitorLeaderboardChart;
|
||||
import com.sap.sailing.gwt.ui.client.shared.charts.MultiCompetitorLeaderboardChartSettings;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.Component;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialog;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings;
|
||||
import com.sap.sse.common.Util;
|
||||
import com.sap.sse.common.settings.AbstractSettings;
|
||||
import com.sap.sse.gwt.client.ErrorReporter;
|
||||
import com.sap.sse.gwt.client.async.AsyncActionsExecutor;
|
||||
import com.sap.sse.gwt.client.player.Timer;
|
||||
import com.sap.sse.gwt.client.shared.components.Component;
|
||||
import com.sap.sse.gwt.client.shared.components.SettingsDialog;
|
||||
import com.sap.sse.gwt.client.useragent.UserAgentDetails;
|
||||
|
||||
/**
|
||||
@@ -124,7 +125,7 @@ public class RegattaAnalyticsDataManager {
|
||||
showComponentSettingsDialog(multiCompetitorChart, null);
|
||||
}
|
||||
|
||||
protected <SettingsType> void showComponentSettingsDialog(final Component<SettingsType> component, String componentDisplayName) {
|
||||
protected <SettingsType extends AbstractSettings> void showComponentSettingsDialog(final Component<SettingsType> component, String componentDisplayName) {
|
||||
String componentName = componentDisplayName != null ? componentDisplayName : component.getLocalizedShortName();
|
||||
String debugIdPrefix = DebugIdHelper.createDebugId(componentName);
|
||||
SettingsDialog<SettingsType> dialog = new SettingsDialog<SettingsType>(component, StringMessages.INSTANCE);
|
||||
|
||||
+4
-3
@@ -15,15 +15,16 @@ import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.charts.MultiCompetitorLeaderboardChart;
|
||||
import com.sap.sailing.gwt.ui.client.shared.charts.MultiCompetitorLeaderboardChartSettings;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.Component;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialog;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.MultiLeaderboardPanel;
|
||||
import com.sap.sse.common.Util;
|
||||
import com.sap.sse.common.settings.AbstractSettings;
|
||||
import com.sap.sse.gwt.client.ErrorReporter;
|
||||
import com.sap.sse.gwt.client.async.AsyncActionsExecutor;
|
||||
import com.sap.sse.gwt.client.player.Timer;
|
||||
import com.sap.sse.gwt.client.shared.components.Component;
|
||||
import com.sap.sse.gwt.client.shared.components.SettingsDialog;
|
||||
import com.sap.sse.gwt.client.useragent.UserAgentDetails;
|
||||
|
||||
/**
|
||||
@@ -148,7 +149,7 @@ public class EventSeriesAnalyticsDataManager {
|
||||
showComponentSettingsDialog(multiCompetitorChart, null);
|
||||
}
|
||||
|
||||
protected <SettingsType> void showComponentSettingsDialog(final Component<SettingsType> component, String componentDisplayName) {
|
||||
protected <SettingsType extends AbstractSettings> void showComponentSettingsDialog(final Component<SettingsType> component, String componentDisplayName) {
|
||||
String componentName = componentDisplayName != null ? componentDisplayName : component.getLocalizedShortName();
|
||||
String debugIdPrefix = DebugIdHelper.createDebugId(componentName);
|
||||
SettingsDialog<SettingsType> dialog = new SettingsDialog<SettingsType>(component, StringMessages.INSTANCE);
|
||||
|
||||
+2
-2
@@ -40,8 +40,6 @@ import com.sap.sailing.gwt.ui.client.RegattaRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.RegattasDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.Component;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialogComponent;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.SelectionCheckboxColumn;
|
||||
import com.sap.sailing.gwt.ui.common.client.DateAndTimeFormatterUtil;
|
||||
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
||||
@@ -49,6 +47,8 @@ import com.sap.sse.common.Util;
|
||||
import com.sap.sse.gwt.client.ErrorReporter;
|
||||
import com.sap.sse.gwt.client.async.MarkedAsyncCallback;
|
||||
import com.sap.sse.gwt.client.panels.LabeledAbstractFilterablePanel;
|
||||
import com.sap.sse.gwt.client.shared.components.Component;
|
||||
import com.sap.sse.gwt.client.shared.components.SettingsDialogComponent;
|
||||
|
||||
public abstract class AbstractTrackedRacesListComposite extends SimplePanel implements Component<TrackedRacesSettings>,
|
||||
RegattasDisplayer, RaceSelectionChangeListener {
|
||||
|
||||
-4
@@ -4,10 +4,6 @@ import com.google.gwt.resources.client.ClientBundle;
|
||||
import com.google.gwt.resources.client.ImageResource;
|
||||
|
||||
interface AdminConsoleResources extends ClientBundle {
|
||||
|
||||
@Source("com/sap/sailing/gwt/ui/client/images/settings.png")
|
||||
ImageResource settingsIcon();
|
||||
|
||||
@Source("com/sap/sailing/gwt/ui/client/images/settingsActionIcon.png")
|
||||
ImageResource settingsActionIcon();
|
||||
|
||||
|
||||
+1
-1
@@ -14,7 +14,7 @@ import com.google.gwt.user.client.ui.VerticalPanel;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.QRCodeURLCreationException;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.QRCodeComposite;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.QRCodeComposite;
|
||||
|
||||
public abstract class BaseQRIdentifierWidget implements IsWidget {
|
||||
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ import java.util.Arrays;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.text.shared.SafeHtmlRenderer;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.ImagesBarCell;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
|
||||
|
||||
public class CompetitorConfigImagesBarCell extends ImagesBarCell {
|
||||
static final String ACTION_EDIT = "ACTION_EDIT";
|
||||
|
||||
+8
-4
@@ -41,6 +41,7 @@ public class CompetitorEditDialog extends DataEntryDialog<CompetitorDTO> {
|
||||
private final TextBox sailId;
|
||||
private final TextBox email;
|
||||
private final StringMessages stringMessages;
|
||||
private final TextBox flagImageURL;
|
||||
private final URLFieldWithFileUpload imageUrlAndUploadComposite;
|
||||
|
||||
public CompetitorEditDialog(final StringMessages stringMessages, CompetitorDTO competitorToEdit,
|
||||
@@ -122,6 +123,7 @@ public class CompetitorEditDialog extends DataEntryDialog<CompetitorDTO> {
|
||||
}
|
||||
}
|
||||
this.sailId = createTextBox(competitorToEdit.getSailID());
|
||||
this.flagImageURL = createTextBox(competitorToEdit.getFlagImageURL(), 100);
|
||||
imageUrlAndUploadComposite = new URLFieldWithFileUpload(stringMessages);
|
||||
imageUrlAndUploadComposite.setURL(competitorToEdit.getImageURL());
|
||||
}
|
||||
@@ -180,13 +182,13 @@ public class CompetitorEditDialog extends DataEntryDialog<CompetitorDTO> {
|
||||
/* twoLetterIsoCountryCode */ null,
|
||||
threeLetterIocCountryCode.getValue(threeLetterIocCountryCode.getSelectedIndex()),
|
||||
/* countryName */ null, sailId.getText(), competitorToEdit.getIdAsString(),
|
||||
imageUrlAndUploadComposite.getURL(), boatClass);
|
||||
imageUrlAndUploadComposite.getURL(), flagImageURL.getText(), boatClass);
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Widget getAdditionalWidget() {
|
||||
Grid result = new Grid(7, 2);
|
||||
Grid result = new Grid(8, 2);
|
||||
result.setWidget(0, 0, new Label(stringMessages.name()));
|
||||
result.setWidget(0, 1, name);
|
||||
result.setWidget(1, 0, new Label(stringMessages.sailNumber()));
|
||||
@@ -199,8 +201,10 @@ public class CompetitorEditDialog extends DataEntryDialog<CompetitorDTO> {
|
||||
result.setWidget(4, 1, email);
|
||||
result.setWidget(5, 0, new Label(stringMessages.boatClass()));
|
||||
result.setWidget(5, 1, boatClassName);
|
||||
result.setWidget(6, 0, new Label(stringMessages.imageURL()));
|
||||
result.setWidget(6, 1, imageUrlAndUploadComposite);
|
||||
result.setWidget(6, 0, new Label(stringMessages.flagImageURL()));
|
||||
result.setWidget(6, 1, flagImageURL);
|
||||
result.setWidget(7, 0, new Label(stringMessages.imageURL()));
|
||||
result.setWidget(7, 1, imageUrlAndUploadComposite);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
+18
-10
@@ -70,15 +70,23 @@ public class CompetitorTableWrapper<S extends SelectionModel<CompetitorDTO>> ext
|
||||
SafeHtmlBuilder sb = new SafeHtmlBuilder();
|
||||
ImageResourceRenderer renderer = new ImageResourceRenderer();
|
||||
final String twoLetterIsoCountryCode = competitor.getTwoLetterIsoCountryCode();
|
||||
final ImageResource flagImageResource;
|
||||
if (twoLetterIsoCountryCode==null || twoLetterIsoCountryCode.isEmpty()) {
|
||||
flagImageResource = FlagImageResolver.getEmptyFlagImageResource();
|
||||
} else {
|
||||
flagImageResource = FlagImageResolver.getFlagImageResource(twoLetterIsoCountryCode);
|
||||
}
|
||||
if (flagImageResource != null) {
|
||||
sb.append(renderer.render(flagImageResource));
|
||||
|
||||
final String imageURL = competitor.getImageURL();
|
||||
|
||||
if (imageURL != null && !imageURL.isEmpty()) {
|
||||
sb.appendHtmlConstant("<img src=\"" + imageURL + "\" width=\"18px\" height=\"12px\" title=\"" + competitor.getName() + "\"/>");
|
||||
sb.appendHtmlConstant(" ");
|
||||
} else {
|
||||
final ImageResource flagImageResource;
|
||||
if (twoLetterIsoCountryCode==null || twoLetterIsoCountryCode.isEmpty()) {
|
||||
flagImageResource = FlagImageResolver.getEmptyFlagImageResource();
|
||||
} else {
|
||||
flagImageResource = FlagImageResolver.getFlagImageResource(twoLetterIsoCountryCode);
|
||||
}
|
||||
if (flagImageResource != null) {
|
||||
sb.append(renderer.render(flagImageResource));
|
||||
sb.appendHtmlConstant(" ");
|
||||
}
|
||||
}
|
||||
sb.appendEscaped(competitor.getSailID());
|
||||
return sb.toSafeHtml();
|
||||
@@ -99,7 +107,7 @@ public class CompetitorTableWrapper<S extends SelectionModel<CompetitorDTO>> ext
|
||||
return t.getColor();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Column<CompetitorDTO, SafeHtml> imageColumn = new Column<CompetitorDTO, SafeHtml>(new SafeHtmlCell()) {
|
||||
@Override
|
||||
public SafeHtml getValue(CompetitorDTO competitor) {
|
||||
@@ -165,7 +173,7 @@ public class CompetitorTableWrapper<S extends SelectionModel<CompetitorDTO>> ext
|
||||
table.addColumn(competitorNameColumn, stringMessages.name());
|
||||
table.addColumn(boatClassColumn, stringMessages.boatClass());
|
||||
table.addColumn(displayColorColumn, stringMessages.color());
|
||||
table.addColumn(imageColumn, stringMessages.imageURL());
|
||||
table.addColumn(imageColumn, stringMessages.image());
|
||||
table.addColumn(competitorEMailColumn, stringMessages.email());
|
||||
table.addColumn(competitorIdColumn, stringMessages.id());
|
||||
}
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@ package com.sap.sailing.gwt.ui.adminconsole;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.ImagesBarCell;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
|
||||
import com.sap.sse.gwt.client.IconResources;
|
||||
|
||||
public class CourseManagementWidgetWaypointsImagesBarCell extends ImagesBarCell {
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ import com.google.gwt.http.client.URL;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.DeviceMappingConstants;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.QRCodeURLCreationException;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.QRCodeComposite;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.QRCodeComposite;
|
||||
|
||||
public class DeviceMappingQRCodeWidget extends BaseQRIdentifierWidget {
|
||||
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ import java.util.Arrays;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.text.shared.SafeHtmlRenderer;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.ImagesBarCell;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
|
||||
import com.sap.sse.gwt.client.IconResources;
|
||||
|
||||
public class EventConfigImagesBarCell extends ImagesBarCell {
|
||||
|
||||
+1
-1
@@ -33,7 +33,7 @@ import com.google.gwt.view.client.SingleSelectionModel;
|
||||
import com.sap.sailing.domain.common.impl.NaturalComparator;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.ImagesBarCell;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
|
||||
import com.sap.sse.gwt.client.ErrorReporter;
|
||||
import com.sap.sse.gwt.client.IconResources;
|
||||
import com.sap.sse.gwt.client.dialog.DataEntryDialog;
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
package com.sap.sailing.gwt.ui.adminconsole;
|
||||
|
||||
import com.google.gwt.user.cellview.client.Column;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.ImagesBarCell;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
|
||||
|
||||
public class ImagesBarColumn<T, S extends ImagesBarCell> extends Column<T, String> {
|
||||
public ImagesBarColumn(S imagesBarCell) {
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ import java.util.Arrays;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.text.shared.SafeHtmlRenderer;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.ImagesBarCell;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
|
||||
import com.sap.sse.gwt.client.IconResources;
|
||||
|
||||
public class LeaderboardConfigImagesBarCell extends ImagesBarCell {
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ import java.util.Arrays;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.text.shared.SafeHtmlRenderer;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.ImagesBarCell;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
|
||||
import com.sap.sse.gwt.client.IconResources;
|
||||
|
||||
public class LeaderboardGroupConfigImagesBarCell extends ImagesBarCell {
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@ import java.util.List;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.sap.sailing.domain.common.LeaderboardType;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.ImagesBarCell;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
|
||||
import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO;
|
||||
import com.sap.sse.gwt.client.IconResources;
|
||||
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@ package com.sap.sailing.gwt.ui.adminconsole;
|
||||
import java.util.Arrays;
|
||||
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.ImagesBarCell;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
|
||||
import com.sap.sse.gwt.client.IconResources;
|
||||
|
||||
public class MediaActionBarCell extends ImagesBarCell {
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ import java.util.ArrayList;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.ImagesBarCell;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
|
||||
|
||||
public class RaceLogTrackingCourseDefinitionDialogMarksImagesBarCell extends ImagesBarCell {
|
||||
public static final String ACTION_PING = "ACTION_PING";
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ import java.util.ArrayList;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.ImagesBarCell;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
|
||||
import com.sap.sailing.gwt.ui.shared.DeviceMappingDTO;
|
||||
import com.sap.sse.gwt.client.IconResources;
|
||||
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ import java.util.ArrayList;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.text.shared.SafeHtmlRenderer;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.ImagesBarCell;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
|
||||
|
||||
public class RaceLogTrackingEventManagementImagesBarCell extends ImagesBarCell {
|
||||
public static final String ACTION_DENOTE_FOR_RACELOG_TRACKING = "ACTION_DENOTE_FOR_RACELOG_TRACKING";
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@ import java.util.List;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.sap.sailing.gwt.ui.adminconsole.AbstractLeaderboardConfigPanel.RaceColumnDTOAndFleetDTOWithNameBasedEquality;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.ImagesBarCell;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
|
||||
|
||||
public class RaceLogTrackingEventManagementRaceImagesBarCell extends ImagesBarCell {
|
||||
public final static String ACTION_DENOTE_FOR_RACELOG_TRACKING = "ACTION_DENOTE_FOR_RACELOG_TRACKING";
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ import java.util.Arrays;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.text.shared.SafeHtmlRenderer;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.ImagesBarCell;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
|
||||
import com.sap.sse.gwt.client.IconResources;
|
||||
|
||||
public class RegattaConfigImagesBarCell extends ImagesBarCell {
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ import java.util.Arrays;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.text.shared.SafeHtmlRenderer;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.ImagesBarCell;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
|
||||
import com.sap.sse.gwt.client.IconResources;
|
||||
|
||||
public class SeriesConfigImagesBarCell extends ImagesBarCell {
|
||||
|
||||
+1
-1
@@ -18,11 +18,11 @@ import com.sap.sailing.gwt.ui.client.RegattaRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.RegattasDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialog;
|
||||
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
||||
import com.sap.sse.common.Util;
|
||||
import com.sap.sse.gwt.client.ErrorReporter;
|
||||
import com.sap.sse.gwt.client.async.MarkedAsyncCallback;
|
||||
import com.sap.sse.gwt.client.shared.components.SettingsDialog;
|
||||
|
||||
/**
|
||||
* Shows the currently tracked events/races in a table. Updated if subscribed as an {@link RegattasDisplayer}, e.g., with
|
||||
|
||||
+3
-1
@@ -1,9 +1,11 @@
|
||||
package com.sap.sailing.gwt.ui.adminconsole;
|
||||
|
||||
import com.sap.sse.common.settings.AbstractSettings;
|
||||
|
||||
/**
|
||||
* Settings for a tracked race.
|
||||
*/
|
||||
public class TrackedRacesSettings {
|
||||
public class TrackedRacesSettings extends AbstractSettings {
|
||||
private long delayToLiveInSeconds;
|
||||
|
||||
public TrackedRacesSettings() {
|
||||
|
||||
+1
-1
@@ -6,9 +6,9 @@ import com.google.gwt.user.client.ui.Label;
|
||||
import com.google.gwt.user.client.ui.LongBox;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialogComponent;
|
||||
import com.sap.sse.gwt.client.dialog.DataEntryDialog;
|
||||
import com.sap.sse.gwt.client.dialog.DataEntryDialog.Validator;
|
||||
import com.sap.sse.gwt.client.shared.components.SettingsDialogComponent;
|
||||
|
||||
public class TrackedRacesSettingsDialogComponent<T extends TrackedRacesSettings> implements SettingsDialogComponent<T> {
|
||||
protected LongBox timeDelayBox;
|
||||
|
||||
-3
@@ -5,9 +5,6 @@ import com.google.gwt.resources.client.ImageResource;
|
||||
|
||||
public interface ClientResources extends ClientBundle {
|
||||
|
||||
@Source("com/sap/sailing/gwt/ui/client/images/settings.png")
|
||||
ImageResource settingsIcon();
|
||||
|
||||
@Source("com/sap/sailing/gwt/ui/client/images/play.png")
|
||||
ImageResource playIcon();
|
||||
|
||||
|
||||
+1
-1
@@ -5,7 +5,6 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialogComponent;
|
||||
import com.sap.sailing.gwt.ui.common.client.DateAndTimeFormatterUtil;
|
||||
import com.sap.sailing.gwt.ui.shared.MarkPassingTimesDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RaceTimesInfoDTO;
|
||||
@@ -14,6 +13,7 @@ import com.sap.sse.gwt.client.player.TimeRangeWithZoomProvider;
|
||||
import com.sap.sse.gwt.client.player.Timer;
|
||||
import com.sap.sse.gwt.client.player.Timer.PlayModes;
|
||||
import com.sap.sse.gwt.client.player.Timer.PlayStates;
|
||||
import com.sap.sse.gwt.client.shared.components.SettingsDialogComponent;
|
||||
|
||||
public class RaceTimePanel extends TimePanel<RaceTimePanelSettings> implements RaceSelectionChangeListener, RaceTimesInfoProviderListener {
|
||||
private final RaceTimesInfoProvider raceTimesInfoProvider;
|
||||
|
||||
+3
@@ -1049,6 +1049,9 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages, c
|
||||
String addRaces();
|
||||
String withNamePrefix();
|
||||
String pleaseSelectASeriesFirst();
|
||||
String image();
|
||||
String video();
|
||||
String flagImageURL();
|
||||
String imageURLs();
|
||||
String videoURLs();
|
||||
String sponsorImageURLs();
|
||||
|
||||
+3
@@ -1029,6 +1029,9 @@ leaderboardGroupsOfSelectedEvent=Leaderboard Groups Assigned to Event
|
||||
addRaces=Add races
|
||||
withNamePrefix=with name prefix
|
||||
pleaseSelectASeriesFirst=Please select a series first.
|
||||
image=Image
|
||||
video=Video
|
||||
flagImageURL=Flag image URL
|
||||
imageURLs=Image URLs
|
||||
videoURLs=Video URLs
|
||||
sponsorImageURLs=Sponsor Image URLs
|
||||
|
||||
+4
@@ -1023,6 +1023,9 @@ leaderboardGroupsOfSelectedEvent=Der Veranstaltung zugewiesene Ranglisten-Gruppe
|
||||
addRaces=Wettfahrten hinzufügen
|
||||
withNamePrefix=mit Namenspräfix
|
||||
pleaseSelectASeriesFirst=Bitte zuerst eine Serie auswählen.
|
||||
image=Bild
|
||||
video=Video
|
||||
flagImageURL=Flaggenbild-URL
|
||||
imageURLs=Bilder-URLs
|
||||
videoURLs=Video-URLs
|
||||
sponsorImageURLs=Sponsorenlogo-URLs
|
||||
@@ -1179,6 +1182,7 @@ dashboardSpeedInKts=Geschwindigkeit in kts
|
||||
fixedMarkPassing=(fest)
|
||||
suppressedMarkPassing=(unterdrückt)
|
||||
windUp=Wind von oben anzeigen
|
||||
filterBy=Gefiltert nach
|
||||
currentFilterSelection=Aktuelle Filter-Selektion
|
||||
notCapableOfGeneratingACodeForIdentifier=Für diesen Identifier kann kein Barcode generiert werden.
|
||||
serverUrl=Server URL
|
||||
|
||||
+3
@@ -984,6 +984,9 @@ leaderboardGroupsOfSelectedEvent=Leaderboard Groups Assigned to Event
|
||||
addRaces=Add races
|
||||
withNamePrefix=with name prefix
|
||||
pleaseSelectASeriesFirst=Please select a series first.
|
||||
image=Image
|
||||
video=Video
|
||||
flagImageURL=Flag image URL
|
||||
imageURLs=Image URLs
|
||||
videoURLs=Video URLs
|
||||
sponsorImageURLs=Sponsor Image URLs
|
||||
|
||||
+3
-3
@@ -20,9 +20,6 @@ import com.google.gwt.user.client.ui.RequiresResize;
|
||||
import com.google.gwt.user.client.ui.SimplePanel;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.gwt.ui.client.TimePanelCssResources.TimePanelCss;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.Component;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialog;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialogComponent;
|
||||
import com.sap.sse.gwt.client.controls.slider.SliderBar;
|
||||
import com.sap.sse.gwt.client.controls.slider.TimeSlider;
|
||||
import com.sap.sse.gwt.client.player.PlayStateListener;
|
||||
@@ -33,6 +30,9 @@ import com.sap.sse.gwt.client.player.TimeZoomChangeListener;
|
||||
import com.sap.sse.gwt.client.player.Timer;
|
||||
import com.sap.sse.gwt.client.player.Timer.PlayModes;
|
||||
import com.sap.sse.gwt.client.player.Timer.PlayStates;
|
||||
import com.sap.sse.gwt.client.shared.components.Component;
|
||||
import com.sap.sse.gwt.client.shared.components.SettingsDialog;
|
||||
import com.sap.sse.gwt.client.shared.components.SettingsDialogComponent;
|
||||
|
||||
public class TimePanel<T extends TimePanelSettings> extends SimplePanel implements Component<T>, TimeListener, TimeZoomChangeListener,
|
||||
TimeRangeChangeListener, PlayStateListener, RequiresResize {
|
||||
|
||||
+3
-1
@@ -1,6 +1,8 @@
|
||||
package com.sap.sailing.gwt.ui.client;
|
||||
|
||||
public class TimePanelSettings {
|
||||
import com.sap.sse.common.settings.AbstractSettings;
|
||||
|
||||
public class TimePanelSettings extends AbstractSettings {
|
||||
private long refreshInterval;
|
||||
|
||||
public TimePanelSettings() {
|
||||
|
||||
+1
-1
@@ -5,9 +5,9 @@ import com.google.gwt.user.client.ui.FlowPanel;
|
||||
import com.google.gwt.user.client.ui.FocusWidget;
|
||||
import com.google.gwt.user.client.ui.Label;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialogComponent;
|
||||
import com.sap.sse.gwt.client.dialog.DataEntryDialog;
|
||||
import com.sap.sse.gwt.client.dialog.DataEntryDialog.Validator;
|
||||
import com.sap.sse.gwt.client.shared.components.SettingsDialogComponent;
|
||||
|
||||
public class TimePanelSettingsDialogComponent<T extends TimePanelSettings>
|
||||
implements SettingsDialogComponent<T> {
|
||||
|
||||
+6
-5
@@ -36,10 +36,9 @@ import com.sap.sailing.gwt.ui.client.media.popup.YoutubeWindowPlayer;
|
||||
import com.sap.sailing.gwt.ui.client.media.shared.MediaPlayer;
|
||||
import com.sap.sailing.gwt.ui.client.media.shared.VideoPlayer;
|
||||
import com.sap.sailing.gwt.ui.client.media.shared.VideoSynchPlayer;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.Component;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialogComponent;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
import com.sap.sse.common.impl.MillisecondsTimePoint;
|
||||
import com.sap.sse.common.settings.AbstractSettings;
|
||||
import com.sap.sse.gwt.client.ErrorReporter;
|
||||
import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback;
|
||||
import com.sap.sse.gwt.client.player.PlayStateListener;
|
||||
@@ -47,13 +46,15 @@ import com.sap.sse.gwt.client.player.TimeListener;
|
||||
import com.sap.sse.gwt.client.player.Timer;
|
||||
import com.sap.sse.gwt.client.player.Timer.PlayModes;
|
||||
import com.sap.sse.gwt.client.player.Timer.PlayStates;
|
||||
import com.sap.sse.gwt.client.shared.components.Component;
|
||||
import com.sap.sse.gwt.client.shared.components.SettingsDialogComponent;
|
||||
import com.sap.sse.gwt.client.useragent.UserAgentDetails;
|
||||
import com.sap.sse.gwt.client.useragent.UserAgentDetails.AgentTypes;
|
||||
import com.sap.sse.security.shared.DefaultRoles;
|
||||
import com.sap.sse.security.ui.client.UserService;
|
||||
import com.sap.sse.security.ui.shared.UserDTO;
|
||||
|
||||
public class MediaPlayerManagerComponent implements Component<Void>, PlayStateListener, TimeListener,
|
||||
public class MediaPlayerManagerComponent implements Component<AbstractSettings>, PlayStateListener, TimeListener,
|
||||
MediaPlayerManager, CloseHandler<Window>, ClosingHandler {
|
||||
|
||||
static interface VideoContainerFactory<T> {
|
||||
@@ -733,12 +734,12 @@ public class MediaPlayerManagerComponent implements Component<Void>, PlayStateLi
|
||||
}
|
||||
|
||||
@Override
|
||||
public SettingsDialogComponent<Void> getSettingsDialogComponent() {
|
||||
public SettingsDialogComponent<AbstractSettings> getSettingsDialogComponent() {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateSettings(Void newSettings) {
|
||||
public void updateSettings(AbstractSettings newSettings) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -6,9 +6,9 @@ import com.google.gwt.user.client.ui.Label;
|
||||
import com.google.gwt.user.client.ui.VerticalPanel;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialogComponent;
|
||||
import com.sap.sse.gwt.client.dialog.DataEntryDialog;
|
||||
import com.sap.sse.gwt.client.dialog.DataEntryDialog.Validator;
|
||||
import com.sap.sse.gwt.client.shared.components.SettingsDialogComponent;
|
||||
|
||||
public abstract class AbstractChartSettingsComponent<SettingsType extends ChartSettings> implements SettingsDialogComponent<SettingsType> {
|
||||
private final ChartSettings settings;
|
||||
|
||||
+4
-3
@@ -39,21 +39,22 @@ import com.sap.sailing.gwt.ui.client.CompetitorSelectionProvider;
|
||||
import com.sap.sailing.gwt.ui.client.DetailTypeFormatter;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.AbstractLazyComponent;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.Component;
|
||||
import com.sap.sse.common.Util;
|
||||
import com.sap.sse.common.filter.Filter;
|
||||
import com.sap.sse.common.filter.FilterSet;
|
||||
import com.sap.sse.common.settings.AbstractSettings;
|
||||
import com.sap.sse.gwt.client.ErrorReporter;
|
||||
import com.sap.sse.gwt.client.async.AsyncActionsExecutor;
|
||||
import com.sap.sse.gwt.client.player.TimeListener;
|
||||
import com.sap.sse.gwt.client.player.Timer;
|
||||
import com.sap.sse.gwt.client.player.Timer.PlayModes;
|
||||
import com.sap.sse.gwt.client.shared.components.AbstractLazyComponent;
|
||||
import com.sap.sse.gwt.client.shared.components.Component;
|
||||
|
||||
/**
|
||||
* A base class for a leaderboard chart showing competitor data for all race columns of a leaderboard.
|
||||
*/
|
||||
public abstract class AbstractCompetitorLeaderboardChart<SettingsType> extends AbstractLazyComponent<SettingsType> implements Component<SettingsType>,
|
||||
public abstract class AbstractCompetitorLeaderboardChart<SettingsType extends AbstractSettings> extends AbstractLazyComponent<SettingsType> implements Component<SettingsType>,
|
||||
CompetitorSelectionChangeListener, RequiresResize, TimeListener {
|
||||
public static final String LODA_LEADERBOARD_CHART_DATA_CATEGORY = "loadLeaderboradChartData";
|
||||
|
||||
|
||||
+1
-1
@@ -48,7 +48,6 @@ import com.sap.sailing.gwt.ui.client.DetailTypeFormatter;
|
||||
import com.sap.sailing.gwt.ui.client.RaceSelectionProvider;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.Component;
|
||||
import com.sap.sailing.gwt.ui.shared.CompetitorRaceDataDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.CompetitorsRaceDataDTO;
|
||||
import com.sap.sse.common.Util;
|
||||
@@ -59,6 +58,7 @@ import com.sap.sse.gwt.client.async.AsyncActionsExecutor;
|
||||
import com.sap.sse.gwt.client.player.TimeRangeWithZoomProvider;
|
||||
import com.sap.sse.gwt.client.player.Timer;
|
||||
import com.sap.sse.gwt.client.player.Timer.PlayModes;
|
||||
import com.sap.sse.gwt.client.shared.components.Component;
|
||||
|
||||
/**
|
||||
* AbstractCompetitorChart is a chart that can show one sort of competitor data (e.g. current speed over ground, windward
|
||||
|
||||
+2
-2
@@ -22,7 +22,6 @@ import com.sap.sailing.gwt.ui.client.RaceSelectionChangeListener;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.charts.ChartCssResources.ChartsCss;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialog;
|
||||
import com.sap.sse.gwt.client.ErrorReporter;
|
||||
import com.sap.sse.gwt.client.async.AsyncActionsExecutor;
|
||||
import com.sap.sse.gwt.client.controls.busyindicator.SimpleBusyIndicator;
|
||||
@@ -32,6 +31,7 @@ import com.sap.sse.gwt.client.player.TimeRangeWithZoomProvider;
|
||||
import com.sap.sse.gwt.client.player.TimeZoomChangeListener;
|
||||
import com.sap.sse.gwt.client.player.Timer;
|
||||
import com.sap.sse.gwt.client.player.Timer.PlayModes;
|
||||
import com.sap.sse.gwt.client.shared.components.SettingsDialog;
|
||||
|
||||
public abstract class AbstractRaceChart extends AbsolutePanel implements RaceSelectionChangeListener,
|
||||
TimeListener, TimeZoomChangeListener, TimeRangeChangeListener {
|
||||
@@ -93,7 +93,7 @@ public abstract class AbstractRaceChart extends AbsolutePanel implements RaceSel
|
||||
}
|
||||
|
||||
/**
|
||||
* Subclasses implement this, e.g., by calling {@link SettingsDialog#createSettingsButton(com.sap.sailing.gwt.ui.client.shared.components.Component, StringMessages)}.
|
||||
* Subclasses implement this, e.g., by calling {@link SettingsDialog#createSettingsButton(com.sap.sse.gwt.client.shared.components.Component, StringMessages)}.
|
||||
* This class's constructor will add the {@link ChartsCss#settingsButtonStyle()} and the {@link ChartsCss#settingsButtonBackgroundImage()}.
|
||||
*/
|
||||
protected abstract Button createSettingsButton();
|
||||
|
||||
+3
-1
@@ -1,6 +1,8 @@
|
||||
package com.sap.sailing.gwt.ui.client.shared.charts;
|
||||
|
||||
public class ChartSettings {
|
||||
import com.sap.sse.common.settings.AbstractSettings;
|
||||
|
||||
public class ChartSettings extends AbstractSettings {
|
||||
private final long stepSize;
|
||||
|
||||
public ChartSettings(long stepSize) {
|
||||
|
||||
+6
-5
@@ -34,20 +34,21 @@ import com.sap.sailing.gwt.ui.client.CompetitorSelectionProvider;
|
||||
import com.sap.sailing.gwt.ui.client.RaceSelectionChangeListener;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.Component;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialogComponent;
|
||||
import com.sap.sailing.gwt.ui.shared.RaceCourseDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.WaypointDTO;
|
||||
import com.sap.sse.common.Util;
|
||||
import com.sap.sse.common.Util.Pair;
|
||||
import com.sap.sse.common.filter.Filter;
|
||||
import com.sap.sse.common.filter.FilterSet;
|
||||
import com.sap.sse.common.settings.AbstractSettings;
|
||||
import com.sap.sse.gwt.client.ErrorReporter;
|
||||
import com.sap.sse.gwt.client.async.AsyncAction;
|
||||
import com.sap.sse.gwt.client.async.AsyncActionsExecutor;
|
||||
import com.sap.sse.gwt.client.player.Timer;
|
||||
import com.sap.sse.gwt.client.shared.components.Component;
|
||||
import com.sap.sse.gwt.client.shared.components.SettingsDialogComponent;
|
||||
|
||||
public class EditMarkPassingsPanel extends AbsolutePanel implements Component<Void>, RaceSelectionChangeListener,
|
||||
public class EditMarkPassingsPanel extends AbsolutePanel implements Component<AbstractSettings>, RaceSelectionChangeListener,
|
||||
CompetitorSelectionChangeListener {
|
||||
|
||||
private static class AnchorCell extends AbstractCell<SafeHtml> {
|
||||
@@ -434,12 +435,12 @@ public class EditMarkPassingsPanel extends AbsolutePanel implements Component<Vo
|
||||
}
|
||||
|
||||
@Override
|
||||
public SettingsDialogComponent<Void> getSettingsDialogComponent() {
|
||||
public SettingsDialogComponent<AbstractSettings> getSettingsDialogComponent() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateSettings(Void newSettings) {
|
||||
public void updateSettings(AbstractSettings newSettings) {
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+1
-1
@@ -4,10 +4,10 @@ import com.sap.sailing.domain.common.DetailType;
|
||||
import com.sap.sailing.gwt.ui.client.CompetitorSelectionProvider;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialogComponent;
|
||||
import com.sap.sse.gwt.client.ErrorReporter;
|
||||
import com.sap.sse.gwt.client.async.AsyncActionsExecutor;
|
||||
import com.sap.sse.gwt.client.player.Timer;
|
||||
import com.sap.sse.gwt.client.shared.components.SettingsDialogComponent;
|
||||
|
||||
public class MultiCompetitorLeaderboardChart extends AbstractCompetitorLeaderboardChart<MultiCompetitorLeaderboardChartSettings> {
|
||||
private MultiCompetitorLeaderboardChartSettings settings;
|
||||
|
||||
+2
-1
@@ -1,8 +1,9 @@
|
||||
package com.sap.sailing.gwt.ui.client.shared.charts;
|
||||
|
||||
import com.sap.sailing.domain.common.DetailType;
|
||||
import com.sap.sse.common.settings.AbstractSettings;
|
||||
|
||||
public class MultiCompetitorLeaderboardChartSettings {
|
||||
public class MultiCompetitorLeaderboardChartSettings extends AbstractSettings {
|
||||
private final DetailType detailType;
|
||||
|
||||
public MultiCompetitorLeaderboardChartSettings(DetailType detailType) {
|
||||
|
||||
+1
-1
@@ -11,9 +11,9 @@ import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.domain.common.DetailType;
|
||||
import com.sap.sailing.gwt.ui.client.DetailTypeFormatter;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialogComponent;
|
||||
import com.sap.sse.gwt.client.dialog.DataEntryDialog;
|
||||
import com.sap.sse.gwt.client.dialog.DataEntryDialog.Validator;
|
||||
import com.sap.sse.gwt.client.shared.components.SettingsDialogComponent;
|
||||
|
||||
public class MultiCompetitorLeaderboardChartSettingsDialogComponent implements SettingsDialogComponent<MultiCompetitorLeaderboardChartSettings> {
|
||||
private ListBox chartTypeSelectionListBox;
|
||||
|
||||
+3
-3
@@ -7,14 +7,14 @@ import com.sap.sailing.gwt.ui.client.CompetitorSelectionProvider;
|
||||
import com.sap.sailing.gwt.ui.client.RaceSelectionProvider;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.Component;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialog;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialogComponent;
|
||||
import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO;
|
||||
import com.sap.sse.gwt.client.ErrorReporter;
|
||||
import com.sap.sse.gwt.client.async.AsyncActionsExecutor;
|
||||
import com.sap.sse.gwt.client.player.TimeRangeWithZoomProvider;
|
||||
import com.sap.sse.gwt.client.player.Timer;
|
||||
import com.sap.sse.gwt.client.shared.components.Component;
|
||||
import com.sap.sse.gwt.client.shared.components.SettingsDialog;
|
||||
import com.sap.sse.gwt.client.shared.components.SettingsDialogComponent;
|
||||
|
||||
/**
|
||||
* MultiCompetitorRaceChart is a GWT panel that can show competitor data (e.g. current speed over ground, windward distance to
|
||||
|
||||
+1
-1
@@ -11,8 +11,8 @@ import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.domain.common.DetailType;
|
||||
import com.sap.sailing.gwt.ui.client.DetailTypeFormatter;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialogComponent;
|
||||
import com.sap.sse.gwt.client.dialog.DataEntryDialog;
|
||||
import com.sap.sse.gwt.client.shared.components.SettingsDialogComponent;
|
||||
|
||||
public class MultiCompetitorRaceChartSettingsComponent extends AbstractChartSettingsComponent<MultiCompetitorRaceChartSettings> implements
|
||||
SettingsDialogComponent<MultiCompetitorRaceChartSettings> {
|
||||
|
||||
+3
-3
@@ -48,9 +48,6 @@ import com.sap.sailing.gwt.ui.client.RaceSelectionProvider;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.WindSourceTypeFormatter;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.Component;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialog;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialogComponent;
|
||||
import com.sap.sailing.gwt.ui.shared.WindDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.WindInfoForRaceDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.WindTrackInfoDTO;
|
||||
@@ -60,6 +57,9 @@ import com.sap.sse.gwt.client.async.AsyncActionsExecutor;
|
||||
import com.sap.sse.gwt.client.player.TimeRangeWithZoomProvider;
|
||||
import com.sap.sse.gwt.client.player.Timer;
|
||||
import com.sap.sse.gwt.client.player.Timer.PlayModes;
|
||||
import com.sap.sse.gwt.client.shared.components.Component;
|
||||
import com.sap.sse.gwt.client.shared.components.SettingsDialog;
|
||||
import com.sap.sse.gwt.client.shared.components.SettingsDialogComponent;
|
||||
|
||||
public class WindChart extends AbstractRaceChart implements Component<WindChartSettings>, RequiresResize {
|
||||
public static final String LODA_WIND_CHART_DATA_CATEGORY = "loadWindChartData";
|
||||
|
||||
+2
-1
@@ -4,8 +4,9 @@ import java.util.LinkedHashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import com.sap.sailing.domain.common.WindSourceType;
|
||||
import com.sap.sse.common.settings.AbstractSettings;
|
||||
|
||||
public class WindChartSettings {
|
||||
public class WindChartSettings extends AbstractSettings {
|
||||
public static final long DEFAULT_RESOLUTION_IN_MILLISECONDS = 10000;
|
||||
|
||||
private final Set<WindSourceType> windDirectionSourcesToDisplay;
|
||||
|
||||
+1
-1
@@ -18,10 +18,10 @@ import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.domain.common.WindSourceType;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.WindSourceTypeFormatter;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialogComponent;
|
||||
import com.sap.sse.gwt.client.controls.IntegerBox;
|
||||
import com.sap.sse.gwt.client.dialog.DataEntryDialog;
|
||||
import com.sap.sse.gwt.client.dialog.DataEntryDialog.Validator;
|
||||
import com.sap.sse.gwt.client.shared.components.SettingsDialogComponent;
|
||||
|
||||
public class WindChartSettingsDialogComponent implements SettingsDialogComponent<WindChartSettings> {
|
||||
private final WindChartSettings initialSettings;
|
||||
|
||||
-28
@@ -1,28 +0,0 @@
|
||||
package com.sap.sailing.gwt.ui.client.shared.components;
|
||||
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
|
||||
public interface Component<SettingsType> extends ComponentSettings<SettingsType> {
|
||||
/**
|
||||
* @return the name to display to a user for quick navigation to this component
|
||||
*/
|
||||
String getLocalizedShortName();
|
||||
|
||||
/**
|
||||
* A component may or may not have a {@link Widget} used to render its contents. Typically,
|
||||
* entries with sub-entries don't afford a widget of their own but let the framework choose a container
|
||||
* in which to aggregate their entries' widgets.
|
||||
*/
|
||||
Widget getEntryWidget();
|
||||
|
||||
boolean isVisible();
|
||||
|
||||
void setVisible(boolean visibility);
|
||||
|
||||
/**
|
||||
* If the component wants to add its specific styling rules, e.g., for the expand/collapse toggle buttons or
|
||||
* the dragger handle, it should return a non-<code>null</code> value from this method which is then used as
|
||||
* a dependent CSS class name for those components.
|
||||
*/
|
||||
String getDependentCssClassName();
|
||||
}
|
||||
-10
@@ -1,10 +0,0 @@
|
||||
package com.sap.sailing.gwt.ui.client.shared.components;
|
||||
|
||||
public interface ComponentGroup<SettingsType> extends Component<SettingsType> {
|
||||
|
||||
boolean addComponent(Component<?> component);
|
||||
|
||||
boolean removeComponent(Component<?> component);
|
||||
|
||||
Iterable<Component<?>> getComponents();
|
||||
}
|
||||
-19
@@ -1,19 +0,0 @@
|
||||
package com.sap.sailing.gwt.ui.client.shared.components;
|
||||
|
||||
import com.google.gwt.resources.client.ClientBundle;
|
||||
import com.google.gwt.resources.client.ImageResource;
|
||||
|
||||
interface ComponentResources extends ClientBundle {
|
||||
|
||||
@Source("com/sap/sailing/gwt/ui/client/images/open.png")
|
||||
ImageResource openIcon();
|
||||
|
||||
@Source("com/sap/sailing/gwt/ui/client/images/close.png")
|
||||
ImageResource closeIcon();
|
||||
|
||||
@Source("com/sap/sailing/gwt/ui/client/images/settings.png")
|
||||
ImageResource settingsIcon();
|
||||
|
||||
@Source("com/sap/sailing/gwt/ui/client/images/leaderboardsettings.png")
|
||||
ImageResource darkSettingsIcon();
|
||||
}
|
||||
-30
@@ -1,30 +0,0 @@
|
||||
package com.sap.sailing.gwt.ui.client.shared.components;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Axel Uhl (d043530)
|
||||
*
|
||||
* @param <SettingsType>
|
||||
* the type that describes this component's settings (if any). Use {@link Object} in case your components
|
||||
* doesn't support any settings.
|
||||
*/public interface ComponentSettings<SettingsType> {
|
||||
|
||||
/**
|
||||
* @return whether this component has settings that a user may change; if so,
|
||||
*/
|
||||
boolean hasSettings();
|
||||
|
||||
/**
|
||||
* If this component {@link #hasSettings has settings}, this method may return a component for the settings dialog.
|
||||
* It will be used to obtain a widget shown in the settings dialog, a validator for the component-specific settings,
|
||||
* as well as to produce a result from the widget's state when the settings dialog wants to validate or return the
|
||||
* settings.
|
||||
*/
|
||||
SettingsDialogComponent<SettingsType> getSettingsDialogComponent();
|
||||
|
||||
/**
|
||||
* Updates the settings of this component. Expected to be called when a settings dialog using this component's
|
||||
* {@link #getSettingsDialogComponent()} has been confirmed.
|
||||
*/
|
||||
void updateSettings(SettingsType newSettings);
|
||||
}
|
||||
-11
@@ -1,11 +0,0 @@
|
||||
package com.sap.sailing.gwt.ui.client.shared.components;
|
||||
|
||||
/**
|
||||
* Used to describe different view modes for a component viewer
|
||||
* The view modes are driven by media types.
|
||||
* @author Frank
|
||||
*
|
||||
*/
|
||||
public enum ComponentViewerViewModes {
|
||||
WEB_VIEW, TV_VIEW
|
||||
}
|
||||
-7
@@ -1,7 +0,0 @@
|
||||
package com.sap.sailing.gwt.ui.client.shared.components;
|
||||
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
|
||||
public interface LazyComponent<SettingsType> extends Component<SettingsType> {
|
||||
Widget createWidget();
|
||||
}
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.sap.sailing.gwt.ui.client.shared.components;
|
||||
package com.sap.sailing.gwt.ui.client.shared.controls;
|
||||
|
||||
import com.google.gwt.text.shared.AbstractRenderer;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.sap.sailing.gwt.ui.client.shared.components;
|
||||
package com.sap.sailing.gwt.ui.client.shared.controls;
|
||||
|
||||
import com.google.gwt.cell.client.AbstractSafeHtmlCell;
|
||||
import com.google.gwt.cell.client.FieldUpdater;
|
||||
Loaded 100 of 294 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user