Merge branch 'master' into bug4371

This commit is contained in:
Steffen Schaefer committed 2017-12-12 09:44:29 +01:00
commit 6b9b9f7bad
1134 files changed
+4054 -2469

No files matched your search

@@ -1,4 +1,4 @@
eclipse.preferences.version=1
entryPointModules=
filesCopiedToWebInfLib=
gwtCompileSettings=PGd3dC1jb21waWxlLXNldHRpbmdzPjxsb2ctbGV2ZWw+SU5GTzwvbG9nLWxldmVsPjxvdXRwdXQtc3R5bGU+T0JGVVNDQVRFRDwvb3V0cHV0LXN0eWxlPjxleHRyYS1hcmdzPjwhW0NEQVRBWy13YXIgLiAtbG9jYWxXb3JrZXJzIDMgLXN0cmljdCAtbG9nTGV2ZWwgVFJBQ0VdXT48L2V4dHJhLWFyZ3M+PHZtLWFyZ3M+PCFbQ0RBVEFbLVhteDIwMjRtXV0+PC92bS1hcmdzPjxlbnRyeS1wb2ludC1tb2R1bGU+Y29tLnNhcC5zYWlsaW5nLmRhc2hib2FyZHMuZ3d0LlJpYkRhc2hib2FyZDwvZW50cnktcG9pbnQtbW9kdWxlPjwvZ3d0LWNvbXBpbGUtc2V0dGluZ3M+
gwtCompileSettings=PGd3dC1jb21waWxlLXNldHRpbmdzPjxsb2ctbGV2ZWw+SU5GTzwvbG9nLWxldmVsPjxvdXRwdXQtc3R5bGU+T0JGVVNDQVRFRDwvb3V0cHV0LXN0eWxlPjxleHRyYS1hcmdzPjwhW0NEQVRBWy13YXIgLiAtbG9jYWxXb3JrZXJzIDMgLXN0cmljdCAtbG9nTGV2ZWwgVFJBQ0UgLVhmcmFnbWVudENvdW50IDRdXT48L2V4dHJhLWFyZ3M+PHZtLWFyZ3M+PCFbQ0RBVEFbLVhteDIwMjRtXV0+PC92bS1hcmdzPjxlbnRyeS1wb2ludC1tb2R1bGU+Y29tLnNhcC5zYWlsaW5nLmRhc2hib2FyZHMuZ3d0LlJpYkRhc2hib2FyZDwvZW50cnktcG9pbnQtbW9kdWxlPjwvZ3d0LWNvbXBpbGUtc2V0dGluZ3M+
@@ -25,7 +25,8 @@ Require-Bundle: com.sap.sailing.domain,
com.sap.sailing.udpconnector,
com.googlecode.mgwt;bundle-version="2.0.0";resolution:=optional,
com.sap.sse.gwt.adminconsole,
org.apache.commons.math;bundle-version="2.1.0"
org.apache.commons.math;bundle-version="2.1.0",
com.sap.sse.security.ui
Bundle-ActivationPolicy: lazy
Import-Package: com.sap.sse.util,
javax.servlet;version="3.1.0",
@@ -23,12 +23,6 @@
<version>1.0.0.GA</version>
<classifier>sources</classifier>
</dependency>
<dependency>
<groupId>com.github.gwtbootstrap</groupId>
<artifactId>gwt-bootstrap</artifactId>
<version>2.3.2.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<!-- This dependency is required because the GWT Maven Plugin searches
other GWT modules only in Maven dependencies -->
@@ -10,7 +10,7 @@ import com.sap.sailing.domain.racelog.tracking.SensorFixMapper;
import com.sap.sailing.domain.tracking.BravoFixTrack;
import com.sap.sailing.domain.tracking.DynamicSensorFixTrack;
import com.sap.sailing.domain.tracking.DynamicTrackedRace;
import com.sap.sailing.domain.tracking.impl.BravoFixTrackImpl;
import com.sap.sailing.domain.tracking.impl.CompetitorBravoFixTrackImpl;
/**
* {@link SensorFixMapper} implementation to handle {@link BravoFix}es.
@@ -20,7 +20,7 @@ public class BravoDataFixMapper implements SensorFixMapper<BravoFix, DynamicSens
@Override
public DynamicSensorFixTrack<Competitor, BravoFix> getTrack(DynamicTrackedRace race, Competitor key) {
return race.getOrCreateSensorTrack(key, BravoFixTrack.TRACK_NAME,
() -> new BravoFixTrackImpl<Competitor>(key, BravoFixTrack.TRACK_NAME, /* hasExtendedFixes */ false,
() -> new CompetitorBravoFixTrackImpl(key, BravoFixTrack.TRACK_NAME, /* hasExtendedFixes */ false,
race.getTrack(key)));
}
@@ -11,7 +11,7 @@ import com.sap.sailing.domain.racelog.tracking.SensorFixMapper;
import com.sap.sailing.domain.tracking.BravoFixTrack;
import com.sap.sailing.domain.tracking.DynamicSensorFixTrack;
import com.sap.sailing.domain.tracking.DynamicTrackedRace;
import com.sap.sailing.domain.tracking.impl.BravoFixTrackImpl;
import com.sap.sailing.domain.tracking.impl.CompetitorBravoFixTrackImpl;
/**
* {@link SensorFixMapper} implementation to handle {@link BravoExtendedFix}es.
@@ -21,7 +21,7 @@ public class BravoExtendedDataFixMapper implements SensorFixMapper<BravoFix, Dyn
@Override
public DynamicSensorFixTrack<Competitor, BravoFix> getTrack(DynamicTrackedRace race, Competitor key) {
return race.getOrCreateSensorTrack(key, BravoFixTrack.TRACK_NAME,
() -> new BravoFixTrackImpl<Competitor>(key, BravoFixTrack.TRACK_NAME, /* hasExtendedFixes */ true,
() -> new CompetitorBravoFixTrackImpl(key, BravoFixTrack.TRACK_NAME, /* hasExtendedFixes */ true,
race.getTrack(key)));
}
@@ -11,7 +11,7 @@ import com.sap.sailing.domain.racelog.tracking.SensorFixMapper;
import com.sap.sailing.domain.tracking.BravoFixTrack;
import com.sap.sailing.domain.tracking.DynamicSensorFixTrack;
import com.sap.sailing.domain.tracking.DynamicTrackedRace;
import com.sap.sailing.domain.tracking.impl.BravoFixTrackImpl;
import com.sap.sailing.domain.tracking.impl.CompetitorBravoFixTrackImpl;
/**
* {@link SensorFixMapper} implementation to product {@link BravoExtendedFix}es from {@link DoubleVectorFix}es
@@ -25,7 +25,7 @@ public class ExpeditionExtendedDataFixMapper implements SensorFixMapper<BravoFix
@Override
public DynamicSensorFixTrack<Competitor, BravoFix> getTrack(DynamicTrackedRace race, Competitor key) {
return race.getOrCreateSensorTrack(key, BravoFixTrack.TRACK_NAME,
() -> new BravoFixTrackImpl<Competitor>(key, BravoFixTrack.TRACK_NAME, /* hasExtendedFixes */ true,
() -> new CompetitorBravoFixTrackImpl(key, BravoFixTrack.TRACK_NAME, /* hasExtendedFixes */ true,
race.getTrack(key)));
}
@@ -13,5 +13,9 @@ import com.sap.sse.common.WithID;
*/
public interface DynamicSensorFixTrack<ItemType extends WithID & Serializable, FixT extends SensorFix> extends
SensorFixTrack<ItemType, FixT>, DynamicTrack<FixT> {
/**
* Invoked when this track is added to a tracked race. The method is also invoked after de-serializing the
* containing {@link TrackedRace}. This default implementation does nothing.
*/
default void addedToTrackedRace(TrackedRace trackedRace) {}
}
@@ -45,7 +45,7 @@ public class BravoFixTrackImpl<ItemType extends WithID & Serializable> extends S
* If a GPS track was provided at construction time, remember it non-transiently. It is needed when restoring
* the object after de-serialization, so the cache invalidation listener can be re-established.
*/
private GPSFixTrack<ItemType, GPSFixMoving> gpsTrack;
private transient GPSFixTrack<ItemType, GPSFixMoving> gpsTrack;
private class CacheInvalidationGpsTrackListener implements GPSTrackListener<ItemType, GPSFixMoving> {
private static final long serialVersionUID = 6395529765232404414L;
@@ -89,6 +89,23 @@ public class BravoFixTrackImpl<ItemType extends WithID & Serializable> extends S
this.foilingTimeCache = createFoilingTimeCache(trackedItem);
this.foilingDistanceCache = createFoilingDistanceCache(trackedItem);
this.averageRideHeightCache = createAverageRideHeightCache(trackedItem);
setGpsTrack(gpsTrack);
}
public GPSFixTrack<ItemType, GPSFixMoving> getGpsTrack() {
return gpsTrack;
}
/**
* Sets the {@link #gpsTrack} field and registers a cache invalidation listener
* on the {@code gpsTrack} to ensure that the foiling distance is invalidated if needed.<p>
*
* Must be called only once for a non-{@code null} {@code gpsTrack}.
*/
protected void setGpsTrack(GPSFixTrack<ItemType, GPSFixMoving> gpsTrack) {
if (gpsTrack != null) {
assert this.gpsTrack == null;
}
this.gpsTrack = gpsTrack;
if (gpsTrack != null) {
gpsTrack.addListener(new CacheInvalidationGpsTrackListener());
@@ -119,9 +136,6 @@ public class BravoFixTrackImpl<ItemType extends WithID & Serializable> extends S
this.foilingTimeCache = createFoilingTimeCache(getTrackedItem());
this.foilingDistanceCache = createFoilingDistanceCache(getTrackedItem());
this.averageRideHeightCache = createAverageRideHeightCache(getTrackedItem());
if (gpsTrack != null) {
gpsTrack.addListener(new CacheInvalidationGpsTrackListener());
}
}
@Override
@@ -215,8 +229,8 @@ public class BravoFixTrackImpl<ItemType extends WithID & Serializable> extends S
@Override
public Distance getDistanceSpentFoiling(TimePoint from, TimePoint to) {
assert gpsTrack != null;
return getValueSum(from, to, /* nullElement */ Distance.NULL, Distance::add, foilingDistanceCache,
return getGpsTrack() == null ? null :
getValueSum(from, to, /* nullElement */ Distance.NULL, Distance::add, foilingDistanceCache,
/* valueCalculator */ new Track.TimeRangeValueCalculator<Distance>() {
@Override
public Distance calculate(TimePoint from, TimePoint to) {
@@ -226,7 +240,7 @@ public class BravoFixTrackImpl<ItemType extends WithID & Serializable> extends S
for (final BravoFix fix : getFixes(from, true, to, true)) {
final boolean fixFoils = isFoiling(fix);
if (isFoiling && fixFoils) {
result = result.add(gpsTrack.getDistanceTraveled(last, fix.getTimePoint()));
result = result.add(getGpsTrack().getDistanceTraveled(last, fix.getTimePoint()));
}
last = fix.getTimePoint();
isFoiling = fixFoils;
@@ -0,0 +1,26 @@
package com.sap.sailing.domain.tracking.impl;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
import com.sap.sailing.domain.tracking.GPSFixTrack;
import com.sap.sailing.domain.tracking.TrackedRace;
public class CompetitorBravoFixTrackImpl extends BravoFixTrackImpl<Competitor> {
private static final long serialVersionUID = 569731925060211875L;
public CompetitorBravoFixTrackImpl(Competitor trackedItem, String trackName, boolean hasExtendedFixes,
GPSFixTrack<Competitor, GPSFixMoving> gpsTrack) {
super(trackedItem, trackName, hasExtendedFixes, gpsTrack);
}
public CompetitorBravoFixTrackImpl(Competitor trackedItem, String trackName, boolean hasExtendedFixes) {
super(trackedItem, trackName, hasExtendedFixes);
}
@Override
public void addedToTrackedRace(TrackedRace trackedRace) {
if (this.getGpsTrack() == null) {
this.setGpsTrack(trackedRace.getTrack(getTrackedItem()));
}
}
}
@@ -13,6 +13,7 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.NavigableSet;
import java.util.Optional;
import java.util.Set;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.logging.Level;
@@ -609,7 +610,7 @@ DynamicTrackedRace, GPSTrackListener<Competitor, GPSFixMoving> {
notifyListeners(listener -> listener.markPassingReceived(competitor, oldMarkPassings, markPassings));
}
private void notifyListeners(DynamicSensorFixTrack<Competitor, ?> track) {
private void notifyListenersAboutSensorTrackAdded(DynamicSensorFixTrack<Competitor, ?> track) {
notifyListeners(listener -> listener.competitorSensorTrackAdded(track));
}
@@ -1206,7 +1207,7 @@ DynamicTrackedRace, GPSTrackListener<Competitor, GPSFixMoving> {
}
@Override
protected <FixT extends SensorFix> void addSensorTrackInternal(Pair<Competitor, String> key,
protected <FixT extends SensorFix> Optional<Runnable> addSensorTrackInternal(Pair<Competitor, String> key,
DynamicSensorFixTrack<Competitor, FixT> track) {
super.addSensorTrackInternal(key, track);
track.addListener(new SensorFixTrackListener<Competitor, FixT>() {
@@ -1222,6 +1223,6 @@ DynamicTrackedRace, GPSTrackListener<Competitor, GPSFixMoving> {
notifyListeners(item, trackName, fix);
}
});
notifyListeners(track);
return Optional.of(()->notifyListenersAboutSensorTrackAdded(track));
}
}
@@ -19,6 +19,7 @@ import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.NavigableSet;
import java.util.Optional;
import java.util.Set;
import java.util.Timer;
import java.util.TimerTask;
@@ -124,7 +125,6 @@ import com.sap.sailing.domain.ranking.RankingMetric.RankingInfo;
import com.sap.sailing.domain.ranking.RankingMetricConstructor;
import com.sap.sailing.domain.tracking.BravoFixTrack;
import com.sap.sailing.domain.tracking.DynamicSensorFixTrack;
import com.sap.sailing.domain.tracking.DynamicTrack;
import com.sap.sailing.domain.tracking.GPSFixTrack;
import com.sap.sailing.domain.tracking.GPSTrackListener;
import com.sap.sailing.domain.tracking.LineDetails;
@@ -303,11 +303,11 @@ public abstract class TrackedRaceImpl extends TrackedRaceWithWindEssentials impl
private final ConcurrentMap<Mark, GPSFixTrack<Mark, GPSFix>> markTracks;
/**
* Mapping of {@link Competitor} to generic {@link DynamicTrack} implementation. Because the same competitor could
* Mapping of {@link Competitor} to generic {@link DynamicSensorFixTrack} implementation. Because the same competitor could
* be mapped to several different tracks, a combined key of competitor object and track name identifier string is
* used. This identifier is usually defined within the track interface (e.g. see {@link BravoFixTrack#TRACK_NAME}).
*/
private final Map<Pair<Competitor, String>, DynamicTrack<?>> sensorTracks;
private final Map<Pair<Competitor, String>, DynamicSensorFixTrack<Competitor, ?>> sensorTracks;
private final Map<String, Sideline> courseSidelines;
@@ -635,6 +635,9 @@ public abstract class TrackedRaceImpl extends TrackedRaceWithWindEssentials impl
private void readObject(ObjectInputStream ois) throws ClassNotFoundException, IOException, PatchFailedException {
ois.defaultReadObject();
getRace().getCourse().addCourseListener(this);
for (DynamicSensorFixTrack<Competitor, ?> sensorTrack : sensorTracks.values()) {
sensorTrack.addedToTrackedRace(this);
}
raceStates = new WeakHashMap<>();
attachedRaceLogs = new ConcurrentHashMap<>();
attachedRegattaLogs = new ConcurrentHashMap<>();
@@ -4147,40 +4150,54 @@ public abstract class TrackedRaceImpl extends TrackedRaceWithWindEssentials impl
protected <FixT extends SensorFix, TrackT extends DynamicSensorFixTrack<Competitor, FixT>> TrackT getOrCreateSensorTrack(
Competitor competitor, String trackName, TrackFactory<TrackT> newTrackFactory) {
Pair<Competitor, String> key = new Pair<>(competitor, trackName);
Optional<Runnable> executeAfterReleasingLock = Optional.empty();
TrackT result;
LockUtil.lockForWrite(sensorTracksLock);
try {
TrackT result = getTrackInternal(key);
result = getTrackInternal(key);
if (result == null && tracks.containsKey(competitor)) {
// A track is only added if the given Competitor is known to participate in this race
result = newTrackFactory.get();
addSensorTrackInternal(key, result);
executeAfterReleasingLock = addSensorTrackInternal(key, result);
}
return result;
} finally {
LockUtil.unlockAfterWrite(sensorTracksLock);
}
executeAfterReleasingLock.ifPresent(r->r.run());
return result;
}
protected void addSensorTrack(Competitor competitor, String trackName, DynamicSensorFixTrack<Competitor, ?> track) {
Pair<Competitor, String> key = new Pair<>(competitor, trackName);
Optional<Runnable> executeAfterReleasingLock = Optional.empty();
LockUtil.lockForWrite(sensorTracksLock);
try {
if(getTrackInternal(key) != null) {
if (getTrackInternal(key) != null) {
if (logger != null && logger.getLevel() != null && logger.getLevel().equals(Level.WARNING)) {
logger.warning(SensorFixTrack.class.getName() + " already exists for competitor: "
+ competitor.getName() + "; trackName: " + trackName);
}
} else {
this.addSensorTrackInternal(key, track);
executeAfterReleasingLock = this.addSensorTrackInternal(key, track);
}
} finally {
LockUtil.unlockAfterWrite(sensorTracksLock);
}
executeAfterReleasingLock.ifPresent(r->r.run());
}
protected <FixT extends SensorFix> void addSensorTrackInternal(Pair<Competitor, String> key,
/**
* To call this method, the caller must have obtained the write lock of {@link #sensorTracksLock}.
* Optionally, the method may return a {@link Runnable} to execute after the lock has been released.
* This may, e.g., be a routine that notifies listeners. Callers are responsible for invoking this
* {@link Runnable} <em>after</em> releasing the write lock.
*/
protected <FixT extends SensorFix> Optional<Runnable> addSensorTrackInternal(Pair<Competitor, String> key,
DynamicSensorFixTrack<Competitor, FixT> track) {
assert sensorTracksLock.isWriteLockedByCurrentThread();
sensorTracks.put(key, track);
track.addedToTrackedRace(this);
return Optional.empty();
}
@SuppressWarnings("unchecked")
@@ -5,6 +5,7 @@ import com.sap.sailing.domain.common.dto.LeaderboardRowDTO;
import com.sap.sailing.domain.common.dto.RaceColumnDTO;
import com.sap.sailing.gwt.settings.client.leaderboard.MultiRaceLeaderboardSettings;
import com.sap.sailing.gwt.ui.client.CompetitorSelectionModel;
import com.sap.sailing.gwt.ui.client.FlagImageResolverImpl;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.client.shared.controls.AbstractSortableColumnWithMinMax;
@@ -22,7 +23,8 @@ public class LeaderboardPanelMock extends MultiRaceLeaderboardPanel {
super(null, null, sailingService, new AsyncActionsExecutor(), new MultiRaceLeaderboardSettings(),
new CompetitorSelectionModel(
/* hasMultiSelection */true),
leaderboardName, errorReporter, stringMessages, /* showRaceDetails */ true,new ClassicLeaderboardStyle());
leaderboardName, errorReporter, stringMessages, /* showRaceDetails */ true, new ClassicLeaderboardStyle(),
FlagImageResolverImpl.get());
}
@Override
-1
View File
@@ -5,7 +5,6 @@
<classpathentry excluding="com/sap/sailing/gwt/ui/jre/" kind="src" path="src/main/java"/>
<classpathentry exported="true" kind="lib" path="WEB-INF/lib/gwt-maps-api-3.9.0-build-17.jar"/>
<classpathentry exported="true" kind="lib" path="WEB-INF/lib/gwt-ajaxloader.jar"/>
<classpathentry exported="true" kind="lib" path="WEB-INF/lib/gwt-bootstrap-2.3.2.0.jar"/>
<classpathentry exported="true" kind="lib" path="WEB-INF/classes/"/>
<classpathentry kind="con" path="com.google.gwt.eclipse.core.GWT_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
@@ -1,4 +1,4 @@
eclipse.preferences.version=1
entryPointModules=
filesCopiedToWebInfLib=gwt-servlet.jar
gwtCompileSettings=PGd3dC1jb21waWxlLXNldHRpbmdzPjxsb2ctbGV2ZWw+SU5GTzwvbG9nLWxldmVsPjxvdXRwdXQtc3R5bGU+T0JGVVNDQVRFRDwvb3V0cHV0LXN0eWxlPjxleHRyYS1hcmdzPjwhW0NEQVRBWy13YXIgLiAtbG9jYWxXb3JrZXJzIDE1IC1zdHJpY3QgLWxvZ0xldmVsIFRSQUNFXV0+PC9leHRyYS1hcmdzPjx2bS1hcmdzPjwhW0NEQVRBWy1YbXgyMDI0bSAtRGd3dC51c2VhcmNoaXZlcz1mYWxzZV1dPjwvdm0tYXJncz48ZW50cnktcG9pbnQtbW9kdWxlPmNvbS5zYXAuc2FpbGluZy5nd3QudWkuQWRtaW5Db25zb2xlPC9lbnRyeS1wb2ludC1tb2R1bGU+PGVudHJ5LXBvaW50LW1vZHVsZT5jb20uc2FwLnNhaWxpbmcuZ3d0LnVpLlJhY2VCb2FyZDwvZW50cnktcG9pbnQtbW9kdWxlPjxlbnRyeS1wb2ludC1tb2R1bGU+Y29tLnNhcC5zYWlsaW5nLmd3dC5ob21lLkhvbWU8L2VudHJ5LXBvaW50LW1vZHVsZT48ZW50cnktcG9pbnQtbW9kdWxlPmNvbS5zYXAuc2FpbGluZy5nd3QudWkuTGVhZGVyYm9hcmRFZGl0aW5nPC9lbnRyeS1wb2ludC1tb2R1bGU+PGVudHJ5LXBvaW50LW1vZHVsZT5jb20uc2FwLnNhaWxpbmcuZ3d0LnVpLkxlYWRlcmJvYXJkPC9lbnRyeS1wb2ludC1tb2R1bGU+PGVudHJ5LXBvaW50LW1vZHVsZT5jb20uc2FwLnNhaWxpbmcuZ3d0LnJlZ2F0dGFvdmVydmlldy5SZWdhdHRhT3ZlcnZpZXc8L2VudHJ5LXBvaW50LW1vZHVsZT48L2d3dC1jb21waWxlLXNldHRpbmdzPg\=\=
gwtCompileSettings=PGd3dC1jb21waWxlLXNldHRpbmdzPjxsb2ctbGV2ZWw+SU5GTzwvbG9nLWxldmVsPjxvdXRwdXQtc3R5bGU+T0JGVVNDQVRFRDwvb3V0cHV0LXN0eWxlPjxleHRyYS1hcmdzPjwhW0NEQVRBWy13YXIgLiAtbG9jYWxXb3JrZXJzIDE1IC1zdHJpY3QgLWxvZ0xldmVsIFRSQUNFIC1YZnJhZ21lbnRDb3VudCA0XV0+PC9leHRyYS1hcmdzPjx2bS1hcmdzPjwhW0NEQVRBWy1YbXgyMDI0bSAtRGd3dC51c2VhcmNoaXZlcz1mYWxzZV1dPjwvdm0tYXJncz48ZW50cnktcG9pbnQtbW9kdWxlPmNvbS5zYXAuc2FpbGluZy5nd3QudWkuQWRtaW5Db25zb2xlPC9lbnRyeS1wb2ludC1tb2R1bGU+PGVudHJ5LXBvaW50LW1vZHVsZT5jb20uc2FwLnNhaWxpbmcuZ3d0LnVpLlJhY2VCb2FyZDwvZW50cnktcG9pbnQtbW9kdWxlPjxlbnRyeS1wb2ludC1tb2R1bGU+Y29tLnNhcC5zYWlsaW5nLmd3dC5ob21lLkhvbWU8L2VudHJ5LXBvaW50LW1vZHVsZT48ZW50cnktcG9pbnQtbW9kdWxlPmNvbS5zYXAuc2FpbGluZy5nd3QudWkuTGVhZGVyYm9hcmRFZGl0aW5nPC9lbnRyeS1wb2ludC1tb2R1bGU+PGVudHJ5LXBvaW50LW1vZHVsZT5jb20uc2FwLnNhaWxpbmcuZ3d0LnVpLkxlYWRlcmJvYXJkPC9lbnRyeS1wb2ludC1tb2R1bGU+PGVudHJ5LXBvaW50LW1vZHVsZT5jb20uc2FwLnNhaWxpbmcuZ3d0LnJlZ2F0dGFvdmVydmlldy5SZWdhdHRhT3ZlcnZpZXc8L2VudHJ5LXBvaW50LW1vZHVsZT48L2d3dC1jb21waWxlLXNldHRpbmdzPg\=\=
@@ -26,8 +26,6 @@
<link rel="stylesheet" type="text/css" href="/sailing-fontface-1.0.cache.css">
<link rel="stylesheet" type="text/css" href="SettingsDialog.css">
<link rel="stylesheet" type="text/css" href="AdminConsole.css">
<link rel="stylesheet" type="text/css" href="AdminConsoleDateTimePicker.css">
<link rel="stylesheet" type="text/css" href="AdminConsoleProgressBar.css">
<script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>
@@ -1,88 +0,0 @@
/*!
* Extracted from Bootstrap v3.0.2 by @fat and @mdo
* Copyright 2013 Twitter, Inc.
* Licensed under http://www.apache.org/licenses/LICENSE-2.0
*/
.table-condensed > thead > tr > th,
.table-condensed > tbody > tr > th,
.table-condensed > tfoot > tr > th,
.table-condensed > thead > tr > td,
.table-condensed > tbody > tr > td,
.table-condensed > tfoot > tr > td {
padding: 5px;
}
.dropdown-menu {
position: absolute;
top: 100%;
left: 0;
z-index: 1000;
display: none;
float: left;
min-width: 160px;
padding: 5px 0;
margin: 2px 0 0;
font-size: 14px;
list-style: none;
background-color: #ffffff;
border: 1px solid #cccccc;
border: 1px solid rgba(0, 0, 0, 0.15);
border-radius: 4px;
-webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
background-clip: padding-box;
}
.dropdown-menu.pull-right {
right: 0;
left: auto;
}
.dropdown-menu .divider {
height: 1px;
margin: 9px 0;
overflow: hidden;
background-color: #e5e5e5;
}
.dropdown-menu > li > a {
display: block;
padding: 3px 20px;
clear: both;
font-weight: normal;
line-height: 1.428571429;
color: #333333;
white-space: nowrap;
}
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
color: #262626;
text-decoration: none;
background-color: #f5f5f5;
}
.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus {
color: #ffffff;
text-decoration: none;
background-color: #428bca;
outline: 0;
}
.dropdown-menu > .disabled > a,
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
color: #999999;
}
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
text-decoration: none;
cursor: not-allowed;
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
}
@@ -1,226 +0,0 @@
/*!
* Bootstrap v2.3.2
*
* Copyright 2013 Twitter, Inc
* Licensed under the Apache License v2.0
* http://www.apache.org/licenses/LICENSE-2.0
*
* Designed and built with all the love in the world @twitter by @mdo and @fat.
*/
.clearfix {
*zoom: 1;
}
.clearfix:before,
.clearfix:after {
display: table;
content: "";
line-height: 0;
}
.clearfix:after {
clear: both;
}
.hide-text {
font: 0/0 a;
color: transparent;
text-shadow: none;
background-color: transparent;
border: 0;
}
.input-block-level {
display: block;
width: 100%;
min-height: 30px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
@-webkit-keyframes progress-bar-stripes {
from {
background-position: 40px 0;
}
to {
background-position: 0 0;
}
}
@-moz-keyframes progress-bar-stripes {
from {
background-position: 40px 0;
}
to {
background-position: 0 0;
}
}
@-ms-keyframes progress-bar-stripes {
from {
background-position: 40px 0;
}
to {
background-position: 0 0;
}
}
@-o-keyframes progress-bar-stripes {
from {
background-position: 0 0;
}
to {
background-position: 40px 0;
}
}
@keyframes progress-bar-stripes {
from {
background-position: 40px 0;
}
to {
background-position: 0 0;
}
}
.progress {
overflow: hidden;
height: 20px;
margin-bottom: 20px;
background-color: #f7f7f7;
background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));
background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9);
background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9);
background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0);
-webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
-moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
}
.progress .bar {
width: 0%;
height: 100%;
color: #ffffff;
float: left;
font-size: 12px;
text-align: center;
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
background-color: #0e90d2;
background-image: -moz-linear-gradient(top, #149bdf, #0480be);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));
background-image: -webkit-linear-gradient(top, #149bdf, #0480be);
background-image: -o-linear-gradient(top, #149bdf, #0480be);
background-image: linear-gradient(to bottom, #149bdf, #0480be);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0);
-webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
-moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-transition: width 0.6s ease;
-moz-transition: width 0.6s ease;
-o-transition: width 0.6s ease;
transition: width 0.6s ease;
}
.progress .bar + .bar {
-webkit-box-shadow: inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15);
-moz-box-shadow: inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15);
box-shadow: inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15);
}
.progress-striped .bar {
background-color: #149bdf;
background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-webkit-background-size: 40px 40px;
-moz-background-size: 40px 40px;
-o-background-size: 40px 40px;
background-size: 40px 40px;
}
.progress.active .bar {
-webkit-animation: progress-bar-stripes 2s linear infinite;
-moz-animation: progress-bar-stripes 2s linear infinite;
-ms-animation: progress-bar-stripes 2s linear infinite;
-o-animation: progress-bar-stripes 2s linear infinite;
animation: progress-bar-stripes 2s linear infinite;
}
.progress-danger .bar,
.progress .bar-danger {
background-color: #dd514c;
background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));
background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);
background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
background-image: linear-gradient(to bottom, #ee5f5b, #c43c35);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0);
}
.progress-danger.progress-striped .bar,
.progress-striped .bar-danger {
background-color: #ee5f5b;
background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.progress-success .bar,
.progress .bar-success {
background-color: #5eb95e;
background-image: -moz-linear-gradient(top, #62c462, #57a957);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957));
background-image: -webkit-linear-gradient(top, #62c462, #57a957);
background-image: -o-linear-gradient(top, #62c462, #57a957);
background-image: linear-gradient(to bottom, #62c462, #57a957);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0);
}
.progress-success.progress-striped .bar,
.progress-striped .bar-success {
background-color: #62c462;
background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.progress-info .bar,
.progress .bar-info {
background-color: #4bb1cf;
background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9));
background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);
background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
background-image: linear-gradient(to bottom, #5bc0de, #339bb9);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0);
}
.progress-info.progress-striped .bar,
.progress-striped .bar-info {
background-color: #5bc0de;
background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.progress-warning .bar,
.progress .bar-warning {
background-color: #faa732;
background-image: -moz-linear-gradient(top, #fbb450, #f89406);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));
background-image: -webkit-linear-gradient(top, #fbb450, #f89406);
background-image: -o-linear-gradient(top, #fbb450, #f89406);
background-image: linear-gradient(to bottom, #fbb450, #f89406);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);
}
.progress-warning.progress-striped .bar,
.progress-striped .bar-warning {
background-color: #fbb450;
background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
@@ -69,8 +69,7 @@ Import-Package: javax.servlet;version="3.1.0",
Web-ContextPath: /gwt
Bundle-ClassPath: WEB-INF/classes/,
WEB-INF/lib/gwt-maps-api-3.9.0-build-17.jar,
WEB-INF/lib/gwt-ajaxloader.jar,
WEB-INF/lib/gwt-bootstrap-2.3.2.0.jar
WEB-INF/lib/gwt-ajaxloader.jar
TrackLifecycle: true
Export-Package: com.google.gwt.user.client.rpc.core.com.sap.sailing.domain.common.confidence.impl,
com.google.gwt.user.client.rpc.core.com.sap.sailing.domain.common.impl,
@@ -37,10 +37,8 @@ bin.includes = META-INF/,\
com.sap.sailing.gwt.ui.DataMining/,\
DataMining.css,\
DataMining.html,\
AdminConsoleDateTimePicker.css,\
qrcode/,\
js/,\
AdminConsoleProgressBar.css,\
AutoPlay.css,\
AutoPlay.html,\
Home.css,\
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 308 B

@@ -1,13 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Ebene_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 30 30" enable-background="new 0 0 30 30" xml:space="preserve">
<g>
<path fill="#FFFFFF" d="M27.2,12.3L26.4,12c-1.1-0.3-2.8-0.8-3.9-1.1l-0.8-0.2c-1.1-0.3-1.3-1.2-0.5-1.9l0.5-0.5
c0.1-0.1,0.3-0.3,0.5-0.5c-0.1,0-0.2-0.1-0.2-0.1c-4-4-10.6-4-14.7,0c-4,4-4,10.6,0,14.7c4,4,10.6,4,14.7,0c0.6-0.6,1.5-0.6,2.1,0
s0.6,1.5,0,2.1c-2.6,2.6-6,3.9-9.5,3.9c-3.4,0-6.8-1.3-9.5-3.9c-5.2-5.2-5.2-13.7,0-18.9c5.2-5.2,13.7-5.2,18.9,0
c0.1,0.1,0.1,0.1,0.1,0.2c0.1-0.1,0.2-0.2,0.3-0.3l0.5-0.5c0.8-0.8,1.7-0.5,1.9,0.5l0.2,0.8c0.3,1.1,0.8,2.8,1.1,3.9l0.2,0.8
C28.9,11.9,28.2,12.5,27.2,12.3z M12,15.1v5l4.2-2.5l4.3-2.5l-4.3-2.5L12,10.1V15.1z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1014 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30"><path fill="#fff" d="M18.5 12.7h-2.2v-1.5c.2-1.4 2.5-1.1 2.5-1.1V7.7c-.1 0-4.6-1.1-5.5 2.3-.1.4-.1 2.4-.1 2.6h-1.9v2.6h2.1v7.2h3v-7.2h2.3l.3-2.6-.5.1z"/></svg>

Before

Width:  |  Height:  |  Size: 219 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 236 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 284 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 211 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 865 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 308 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 270 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 177 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 199 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 179 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 281 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 612 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 492 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1012 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 713 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

-10
View File
@@ -333,16 +333,6 @@
],
"key": "ASL2.0"
},
{
"name": "GWT-Bootstrap",
"version": "2.3.2.0",
"owner": "GWT-Bootstrap",
"homepage": "http://gwtbootstrap.github.com/",
"acknowledgements": [
"Copyright ${year} GWT-Bootstrap"
],
"key": "ASL2.0"
},
{
"name": "gwt-google-apis",
"version": "ajaxloader-svn",
-6
View File
@@ -104,12 +104,6 @@
<version>${project.version}</version>
<classifier>sources</classifier>
</dependency>
<dependency>
<groupId>com.github.gwtbootstrap</groupId>
<artifactId>gwt-bootstrap</artifactId>
<version>2.3.2.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.sap.sailing</groupId>
<artifactId>com.sap.sse.security.common</artifactId>
@@ -17,10 +17,6 @@
<inherits name='com.google.gwt.ajaxloader.AjaxLoader' />
<inherits name='com.google.gwt.maps.Maps' />
<!-- Bootstrap API -->
<inherits name="com.github.gwtbootstrap.BootstrapNoResources" />
<inherits name='com.github.gwtbootstrap.datetimepicker.DatetimepickerNoResources' />
<!-- Specify the paths for translatable code -->
<!-- module containing locale configuration -->
<inherits name='com.sap.sailing.gwt.common.SailingLocalesAllPermutations' />
@@ -14,6 +14,7 @@ import com.sap.sailing.gwt.settings.client.leaderboard.MultiRaceLeaderboardSetti
import com.sap.sailing.gwt.settings.client.leaderboard.RaceColumnSelectionStrategies;
import com.sap.sailing.gwt.ui.client.CompetitorSelectionModel;
import com.sap.sailing.gwt.ui.client.CompetitorSelectionProvider;
import com.sap.sailing.gwt.ui.client.FlagImageResolverImpl;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardEntryPoint;
import com.sap.sailing.gwt.ui.leaderboard.MultiRaceLeaderboardPanel;
@@ -61,9 +62,11 @@ public class IdleOverallLeaderBoardNode extends FiresPlaceNode {
String overallLeaderboardName = result.get(0);
CompetitorSelectionProvider provider = new CompetitorSelectionModel(true);
MultiRaceLeaderboardPanel leaderboardPanel = new MultiRaceLeaderboardPanel(null,null,cf.getSailingService(),
new AsyncActionsExecutor(), leaderboardSettings,false, provider,timer,null, overallLeaderboardName, cf.getErrorReporter(),
StringMessages.INSTANCE, false,null,false,null,false,true,false,false,false,new SixtyInchLeaderBoardStyle(true));
MultiRaceLeaderboardPanel leaderboardPanel = new MultiRaceLeaderboardPanel(null, null,
cf.getSailingService(), new AsyncActionsExecutor(), leaderboardSettings, false,
provider, timer, null, overallLeaderboardName, cf.getErrorReporter(),
StringMessages.INSTANCE, false, null, false, null, false, true, false, false, false,
new SixtyInchLeaderBoardStyle(true), FlagImageResolverImpl.get());
IdleOverallLeaderBoardPlace place = new IdleOverallLeaderBoardPlace(leaderboardPanel);
@@ -15,6 +15,7 @@ import com.sap.sailing.gwt.autoplay.client.app.AutoPlayPresenterConfigured;
import com.sap.sailing.gwt.autoplay.client.events.AutoPlayHeaderEvent;
import com.sap.sailing.gwt.settings.client.leaderboard.SingleRaceLeaderboardSettings;
import com.sap.sailing.gwt.ui.client.CompetitorSelectionModel;
import com.sap.sailing.gwt.ui.client.FlagImageResolverImpl;
import com.sap.sailing.gwt.ui.client.LeaderboardUpdateListener;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.StringMessages;
@@ -69,7 +70,8 @@ public class RaceEndWithBoatsPresenterImpl extends AutoPlayPresenterConfigured<A
leaderboardPanel = new SingleRaceLeaderboardPanel(null,null,sailingService, new AsyncActionsExecutor(), leaderboardSettings,
true, liveRace, competitorSelectionProvider, timer, null,
getSlideCtx().getContextDefinition().getLeaderboardName(), errorReporter, StringMessages.INSTANCE,
false, null, false, null, false, true, false, false, false,new SixtyInchLeaderBoardStyle(true));
false, null, false, null, false, true, false, false, false, new SixtyInchLeaderBoardStyle(true),
FlagImageResolverImpl.get());
int competitorCount = getPlace().getStatistic().getCompetitors();
@@ -16,6 +16,7 @@ import com.sap.sailing.gwt.autoplay.client.app.AutoPlayClientFactory;
import com.sap.sailing.gwt.autoplay.client.app.AutoPlayPresenterConfigured;
import com.sap.sailing.gwt.autoplay.client.utils.AutoplayHelper;
import com.sap.sailing.gwt.settings.client.leaderboard.SingleRaceLeaderboardSettings;
import com.sap.sailing.gwt.ui.client.FlagImageResolverImpl;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.client.shared.racemap.RaceCompetitorSet;
@@ -157,7 +158,8 @@ public class LiveRaceWithRacemapAndLeaderBoardPresenterImpl
leaderboardPanel = new SingleRaceLeaderboardPanel(null,null,sailingService, new AsyncActionsExecutor(), leaderboardSettings,
true, lifeRace, getPlace().getRaceMapSelectionProvider(), timer, null,
getSlideCtx().getContextDefinition().getLeaderboardName(), errorReporter, StringMessages.INSTANCE,
false, null, false, null, false, true, false, false, false,new SixtyInchLeaderBoardStyle(true));
false, null, false, null, false, true, false, false, false, new SixtyInchLeaderBoardStyle(true),
FlagImageResolverImpl.get());
getPlace().getRaceMap().setQuickRanksDTOProvider(new QuickRanksDTOFromLeaderboardDTOProvider(new RaceCompetitorSet(getPlace().getRaceMapSelectionProvider()), lifeRace));
@@ -15,6 +15,7 @@ import com.sap.sailing.gwt.autoplay.client.app.AutoPlayClientFactory;
import com.sap.sailing.gwt.autoplay.client.app.AutoPlayPresenterConfigured;
import com.sap.sailing.gwt.settings.client.leaderboard.SingleRaceLeaderboardSettings;
import com.sap.sailing.gwt.ui.client.CompetitorSelectionModel;
import com.sap.sailing.gwt.ui.client.FlagImageResolverImpl;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardEntryPoint;
@@ -106,7 +107,8 @@ public class PreLiveRaceLeaderBoardWithImagePresenterImpl
leaderboardPanel = new SingleRaceLeaderboardPanel(null,null,sailingService, new AsyncActionsExecutor(),
leaderboardSettings, true, liveRace, competitorSelectionProvider, timer, null,
getSlideCtx().getContextDefinition().getLeaderboardName(), errorReporter, StringMessages.INSTANCE,
false, null, false, null, false, true, false, false, false,new SixtyInchLeaderBoardStyle(false));
false, null, false, null, false, true, false, false, false, new SixtyInchLeaderBoardStyle(false),
FlagImageResolverImpl.get());
view.setLeaderBoard(leaderboardPanel);
selectionTimer.schedule(AnimationPanel.DELAY + AnimationPanel.ANIMATION_DURATION);
@@ -10,8 +10,8 @@ import com.google.gwt.user.client.ui.ResizeComposite;
import com.google.gwt.user.client.ui.Widget;
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
import com.sap.sailing.gwt.autoplay.client.places.screens.preliveraceloop.racemap.statistic.PreRaceStatisticsBox;
import com.sap.sailing.gwt.autoplay.client.places.screens.preliveraceloop.racemap.statistic.PreRaceStatisticsBoxResources;
import com.sap.sailing.gwt.home.communication.event.sixtyinch.GetSixtyInchStatisticDTO;
import com.sap.sailing.gwt.home.shared.partials.statistics.StatisticsBoxConstants;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.client.shared.racemap.RaceMap;
import com.sap.sse.gwt.client.panels.ResizableFlowPanel;
@@ -53,23 +53,23 @@ public class PreRaceRacemapViewImpl extends ResizeComposite implements PreRaceRa
racemap.onResize();
statistics.clear();
statistics.addItem(PreRaceStatisticsBox.ICON_COMPETITORS, StringMessages.INSTANCE.competitors(),
statistics.addItem(PreRaceStatisticsBoxResources.INSTANCE.competitors(), StringMessages.INSTANCE.competitors(),
result.getCompetitors());
statistics.addItem(StatisticsBoxConstants.ICON_WIND_FIX, StringMessages.INSTANCE.wind(), windSpeed);
statistics.addItem(PreRaceStatisticsBox.ICON_WIND, StringMessages.INSTANCE.averageDirection(), windDegree);
statistics.addItem(PreRaceStatisticsBox.ICON_LEGS, StringMessages.INSTANCE.legs(), result.getLegs());
statistics.addItem(PreRaceStatisticsBoxResources.INSTANCE.strongestWind(), StringMessages.INSTANCE.wind(), windSpeed);
statistics.addItem(PreRaceStatisticsBoxResources.INSTANCE.wind(), StringMessages.INSTANCE.averageDirection(), windDegree);
statistics.addItem(PreRaceStatisticsBoxResources.INSTANCE.legs(), StringMessages.INSTANCE.legs(), result.getLegs());
try {
statistics.addItem(StatisticsBoxConstants.ICON_SUM_MILES, StringMessages.INSTANCE.estimatedDistance(),
statistics.addItem(PreRaceStatisticsBoxResources.INSTANCE.sumMiles(), StringMessages.INSTANCE.estimatedDistance(),
compactFormat.format(result.getDistance().getSeaMiles()) + " "
+ StringMessages.INSTANCE.seaMiles());
} catch (Exception e) {
}
try {
statistics.addItem(PreRaceStatisticsBox.ICON_TIME, StringMessages.INSTANCE.estimatedTime(),
statistics.addItem(PreRaceStatisticsBoxResources.INSTANCE.time(), StringMessages.INSTANCE.estimatedTime(),
compactFormat.format(result.getDuration().asMinutes()) + " " + StringMessages.INSTANCE.minutes());
} catch (Exception e) {
}
statistics.addQRItem(PreRaceStatisticsBox.ICON_RACEVIEWER, StringMessages.INSTANCE.raceViewer(), url);
statistics.addQRItem(PreRaceStatisticsBoxResources.INSTANCE.raceviewer(), StringMessages.INSTANCE.raceViewer(), url);
}
@Override
@@ -2,19 +2,13 @@ package com.sap.sailing.gwt.autoplay.client.places.screens.preliveraceloop.racem
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.UListElement;
import com.google.gwt.resources.client.DataResource;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Widget;
public class PreRaceStatisticsBox extends Composite {
public static final String ICON_COMPETITORS = "images/mobile/icon-competitors.svg";
public static final String ICON_LEGS = "images/mobile/icon-legs.svg";
public static final String ICON_LENGTH = "images/mobile/icon-length.svg";
public static final String ICON_RACEVIEWER = "images/mobile/icon-raceviewer.svg";
public static final String ICON_TIME = "images/mobile/icon-time.svg";
public static final String ICON_WIND = "images/mobile/icon-wind.svg";
private static StatisticsBoxUiBinder uiBinder = GWT.create(StatisticsBoxUiBinder.class);
@@ -33,11 +27,15 @@ public class PreRaceStatisticsBox extends Composite {
itemContainerUi.removeAllChildren();
}
public void addItem(DataResource icon, String name, Object payload) {
addItem(icon.getSafeUri().asString(), name, payload);
}
public void addItem(String iconUrl, String name, Object payload) {
itemContainerUi.appendChild(new PreRaceStatisticsBoxItem(iconUrl, name, payload).getElement());
}
public void addQRItem(String iconUrl, String name, String url) {
itemContainerUi.appendChild(new PreRaceStatisticsBoxQR(iconUrl, name, url).getElement());
public void addQRItem(DataResource icon, String name, String url) {
itemContainerUi.appendChild(new PreRaceStatisticsBoxQR(icon.getSafeUri().asString(), name, url).getElement());
}
}
@@ -1,14 +1,40 @@
package com.sap.sailing.gwt.autoplay.client.places.screens.preliveraceloop.racemap.statistic;
import com.google.gwt.core.client.GWT;
import com.google.gwt.resources.client.ClientBundle;
import com.google.gwt.resources.client.CssResource;
import com.google.gwt.resources.client.DataResource;
import com.google.gwt.resources.client.DataResource.MimeType;
import com.sap.sailing.gwt.home.shared.partials.statistics.StatisticsBoxResources;
public interface PreRaceStatisticsBoxResources extends ClientBundle {
public interface PreRaceStatisticsBoxResources extends StatisticsBoxResources {
public static final PreRaceStatisticsBoxResources INSTANCE = GWT.create(PreRaceStatisticsBoxResources.class);
@Source("PreRaceStatisticsBox.gss")
LocalCss css();
@Source("icon-competitors.svg")
@MimeType("image/svg+xml")
DataResource competitors();
@Source("icon-legs.svg")
@MimeType("image/svg+xml")
DataResource legs();
@Source("icon-length.svg")
@MimeType("image/svg+xml")
DataResource length();
@Source("icon-raceviewer.svg")
@MimeType("image/svg+xml")
DataResource raceviewer();
@Source("icon-time.svg")
@MimeType("image/svg+xml")
DataResource time();
@Source("icon-wind.svg")
@MimeType("image/svg+xml")
DataResource wind();
public interface LocalCss extends CssResource {
String box();
@@ -15,6 +15,7 @@ import com.sap.sailing.gwt.common.client.FullscreenUtil;
import com.sap.sailing.gwt.settings.client.leaderboard.MultiRaceLeaderboardPanelLifecycle;
import com.sap.sailing.gwt.settings.client.leaderboard.MultiRaceLeaderboardSettings;
import com.sap.sailing.gwt.ui.client.CompetitorSelectionProvider;
import com.sap.sailing.gwt.ui.client.FlagImageResolverImpl;
import com.sap.sailing.gwt.ui.client.LeaderboardUpdateListener;
import com.sap.sailing.gwt.ui.client.LeaderboardUpdateProvider;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
@@ -194,7 +195,8 @@ public class MultiRaceLeaderboardWithZoomingPerspective extends AbstractPerspect
leaderboardName, errorReporter, stringMessages,
/* showRaceDetails */false, /* competitorSearchTextBox */ null, /* showRegattaRank */
/* showSelectionCheckbox */false, /* raceTimesInfoProvider */null, false, /* autoExpandLastRaceColumn */
/* adjustTimerDelay */ true, /* autoApplyTopNFilter */ false, /* showCompetitorFilterStatus */ false, /* enableSyncScroller */ false,new ClassicLeaderboardStyle());
/* adjustTimerDelay */ true, /* autoApplyTopNFilter */ false, /* showCompetitorFilterStatus */ false, /* enableSyncScroller */ false,
new ClassicLeaderboardStyle(), FlagImageResolverImpl.get());
return leaderboardPanel;
}
@@ -3,319 +3,424 @@ package com.sap.sailing.gwt.common.client;
import com.google.gwt.core.client.GWT;
import com.google.gwt.resources.client.ClientBundle;
import com.google.gwt.resources.client.ImageResource;
import com.google.gwt.resources.client.ImageResource.ImageOptions;
public interface BoatClassImageResources extends ClientBundle {
public static final BoatClassImageResources INSTANCE = GWT.create(BoatClassImageResources.class);
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/GENERIC_BOATCLASS.png")
@ImageOptions(preventInlining = true)
ImageResource genericBoatClass();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/12MR.png")
@ImageOptions(preventInlining = true)
ImageResource _12mRIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/18FOOTER.png")
@ImageOptions(preventInlining = true)
ImageResource _18FooterIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/2_4M.png")
@ImageOptions(preventInlining = true)
ImageResource _2_4mIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/29ER.png")
@ImageOptions(preventInlining = true)
ImageResource _29erIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/420.png")
@ImageOptions(preventInlining = true)
ImageResource _420Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/470.png")
@ImageOptions(preventInlining = true)
ImageResource _470Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/49ER_FX.png")
@ImageOptions(preventInlining = true)
ImageResource _49erFXIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/49ER.png")
@ImageOptions(preventInlining = true)
ImageResource _49erIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/505.png")
@ImageOptions(preventInlining = true)
ImageResource _505mIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/5.5mR.png")
@ImageOptions(preventInlining = true)
ImageResource _5_5MRIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/6MR.png")
@ImageOptions(preventInlining = true)
ImageResource _6MRIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/8MR.png")
@ImageOptions(preventInlining = true)
ImageResource _8MRIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/A_CAT.png")
@ImageOptions(preventInlining = true)
ImageResource A_CatIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/ALBIN_EXPRESS.png")
@ImageOptions(preventInlining = true)
ImageResource AlbinExpressIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/ALBIN_BALLAD.png")
@ImageOptions(preventInlining = true)
ImageResource AlbinBalladIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/B_ONE.png")
@ImageOptions(preventInlining = true)
ImageResource BOne();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/CADET.png")
@ImageOptions(preventInlining = true)
ImageResource CadetIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/CANOE_IC.png")
@ImageOptions(preventInlining = true)
ImageResource CanoeICIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/CANOE_TAIFUN.png")
@ImageOptions(preventInlining = true)
ImageResource CanoeTaifunIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/CONTENDER.png")
@ImageOptions(preventInlining = true)
ImageResource ContenderIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/DRAGON.png")
@ImageOptions(preventInlining = true)
ImageResource DragonIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/EUROPE.png")
@ImageOptions(preventInlining = true)
ImageResource EuropeIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/EXTREME40.png")
@ImageOptions(preventInlining = true)
ImageResource Extreme40Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/D35.png")
@ImageOptions(preventInlining = true)
ImageResource D35Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/DELPHIA_24.png")
@ImageOptions(preventInlining = true)
ImageResource Delphia24Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/F16.png")
@ImageOptions(preventInlining = true)
ImageResource F16Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/F18.png")
@ImageOptions(preventInlining = true)
ImageResource F18Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/FARR_30.png")
@ImageOptions(preventInlining = true)
ImageResource Farr30Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/FARR_280.png")
@ImageOptions(preventInlining = true)
ImageResource Farr280Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/FINN.png")
@ImageOptions(preventInlining = true)
ImageResource FinnIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/FLYING_DUTCHMAN.png")
@ImageOptions(preventInlining = true)
ImageResource FlyingDutchmanIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/FOLKBOAT.png")
@ImageOptions(preventInlining = true)
ImageResource FolkBoatIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/FUN.png")
@ImageOptions(preventInlining = true)
ImageResource FUNIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/H_BOAT.png")
@ImageOptions(preventInlining = true)
ImageResource H_BoatIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/HANSA_303.png")
@ImageOptions(preventInlining = true)
ImageResource Hansa303Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/HOBIE.png")
@ImageOptions(preventInlining = true)
ImageResource HobieIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/J22.png")
@ImageOptions(preventInlining = true)
ImageResource J22Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/J24.png")
@ImageOptions(preventInlining = true)
ImageResource J24Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/J70.png")
@ImageOptions(preventInlining = true)
ImageResource J70Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/J80.png")
@ImageOptions(preventInlining = true)
ImageResource J80Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/J88.png")
ImageResource J88Icon();
@ImageOptions(preventInlining = true)
ImageResource J88Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/J105.png")
@ImageOptions(preventInlining = true)
ImageResource J105Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/J111.png")
@ImageOptions(preventInlining = true)
ImageResource J111Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/LASER2.png")
@ImageOptions(preventInlining = true)
ImageResource Laser2Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/LASER_SB3.png")
@ImageOptions(preventInlining = true)
ImageResource LaserSB3Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/LASER.png")
@ImageOptions(preventInlining = true)
ImageResource LaserIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/LAGO_26.png")
@ImageOptions(preventInlining = true)
ImageResource Lago26Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/LONGTZE.png")
@ImageOptions(preventInlining = true)
ImageResource LongtzeIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/M32.png")
@ImageOptions(preventInlining = true)
ImageResource M32Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/MELGES_20.png")
@ImageOptions(preventInlining = true)
ImageResource Melges20Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/MELGES_24.png")
@ImageOptions(preventInlining = true)
ImageResource Melges24Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/MINI_TRANSAT.png")
@ImageOptions(preventInlining = true)
ImageResource MiniTransatIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/MUSTO_SKIFF.png")
@ImageOptions(preventInlining = true)
ImageResource MustoSkiffIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/NACRA_15.png")
@ImageOptions(preventInlining = true)
ImageResource Nacra15Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/NACRA_17.png")
@ImageOptions(preventInlining = true)
ImageResource Nacra17Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/OK.png")
@ImageOptions(preventInlining = true)
ImageResource OKIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/OPTIMIST.png")
@ImageOptions(preventInlining = true)
ImageResource OptimistIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/PIRAT.png")
@ImageOptions(preventInlining = true)
ImageResource PiratIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/PLATU_25.png")
@ImageOptions(preventInlining = true)
ImageResource Platu25Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/RS_X.png")
@ImageOptions(preventInlining = true)
ImageResource RSXIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/RS_FEVA.png")
@ImageOptions(preventInlining = true)
ImageResource RSFevaIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/SONAR.png")
@ImageOptions(preventInlining = true)
ImageResource SonarIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/SKUD18.png")
@ImageOptions(preventInlining = true)
ImageResource Skud18Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/SOLING.png")
@ImageOptions(preventInlining = true)
ImageResource SolingIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/STAR.png")
@ImageOptions(preventInlining = true)
ImageResource StarIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/STREAMLINE.png")
@ImageOptions(preventInlining = true)
ImageResource StreamlineIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/SUNBEAM22.png")
@ImageOptions(preventInlining = true)
ImageResource Sunbeam22Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/SWAN_45.png")
@ImageOptions(preventInlining = true)
ImageResource Swan45Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/TECHNO_293.png")
@ImageOptions(preventInlining = true)
ImageResource Techno293Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/TECHNO_293_PLUS.png")
@ImageOptions(preventInlining = true)
ImageResource Techno293PlusIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/TEENY.png")
@ImageOptions(preventInlining = true)
ImageResource TeenyIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/TORNADO.png")
@ImageOptions(preventInlining = true)
ImageResource TornadoIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/X_99.png")
@ImageOptions(preventInlining = true)
ImageResource X99Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/DYAS.png")
@ImageOptions(preventInlining = true)
ImageResource DyasIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/INTERNATIONAL_14.png")
@ImageOptions(preventInlining = true)
ImageResource International14Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/OPENBIC.png")
@ImageOptions(preventInlining = true)
ImageResource OpenBicIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/RS100.png")
@ImageOptions(preventInlining = true)
ImageResource RS100Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/RS200.png")
@ImageOptions(preventInlining = true)
ImageResource RS200Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/RS400.png")
@ImageOptions(preventInlining = true)
ImageResource RS400Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/RS500.png")
@ImageOptions(preventInlining = true)
ImageResource RS500Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/RS800.png")
@ImageOptions(preventInlining = true)
ImageResource RS800Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/RSAERO.png")
@ImageOptions(preventInlining = true)
ImageResource RSAEROIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/SPLASH_BLUE.png")
@ImageOptions(preventInlining = true)
ImageResource SplashBlueIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/SPLASH_RED.png")
@ImageOptions(preventInlining = true)
ImageResource SplashRedIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/SPLASH_GREEN.png")
@ImageOptions(preventInlining = true)
ImageResource SplashGreenIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/ORC.png")
@ImageOptions(preventInlining = true)
ImageResource ORCIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/PHRF.png")
@ImageOptions(preventInlining = true)
ImageResource PHRFIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/KIELZUGVOGEL.png")
@ImageOptions(preventInlining = true)
ImageResource KielzugvogelIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/FORMULA_KITE.png")
@ImageOptions(preventInlining = true)
ImageResource FormulaKiteIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/TRIAS.png")
@ImageOptions(preventInlining = true)
ImageResource TriasIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/O_JOLLE.png")
@ImageOptions(preventInlining = true)
ImageResource OJolleIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/D_ONE.png")
@ImageOptions(preventInlining = true)
ImageResource DOneIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/PWA.png")
@ImageOptions(preventInlining = true)
ImageResource PWAIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/GC_32.png")
@ImageOptions(preventInlining = true)
ImageResource GC32Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/CC_30.png")
@ImageOptions(preventInlining = true)
ImageResource CC30Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/GP_26.png")
@ImageOptions(preventInlining = true)
ImageResource GP26Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/VX_ONE.png")
@ImageOptions(preventInlining = true)
ImageResource VXOneIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/TARTAN_10.png")
@ImageOptions(preventInlining = true)
ImageResource Tartan10Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/VIPER_640.png")
@ImageOptions(preventInlining = true)
ImageResource Viper640Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/WETA.png")
@ImageOptions(preventInlining = true)
ImageResource WetaIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/TOM_28_MAX.png")
@ImageOptions(preventInlining = true)
ImageResource Tom28MaxIcon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/TP52.png")
@ImageOptions(preventInlining = true)
ImageResource TP52Icon();
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/RUNNING.png")
ImageResource RunningIcon();
@ImageOptions(preventInlining = true)
ImageResource RunningIcon();
}
@@ -3,9 +3,10 @@ package com.sap.sailing.gwt.common.client;
import com.google.gwt.core.client.GWT;
import com.google.gwt.resources.client.ClientBundle;
import com.google.gwt.resources.client.CssResource;
import com.sap.sse.gwt.common.CommonIcons;
import com.sap.sse.gwt.common.CommonSharedResources;
public interface SharedResources extends ClientBundle, CommonSharedResources {
public interface SharedResources extends ClientBundle, CommonSharedResources, CommonIcons {
public static final SharedResources INSTANCE = GWT.create(SharedResources.class);
@Source("main.gss")
@@ -26,8 +27,6 @@ public interface SharedResources extends ClientBundle, CommonSharedResources {
String buttonprimary();
String buttonprimaryoutlined();
String buttonred();
String buttonrefresh();
String buttonarrowdown();
String buttonsearch();
String buttonarrowrightwhite();
String label();
@@ -145,23 +145,8 @@ figcaption {
.buttonred:hover {
background-color: #d54115;
}
.buttonrefresh {
background-image: url("data:image/png;base64,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");
}
.buttonrefresh,
.buttonarrowdown {
background-repeat: no-repeat;
background-position: left top;
background-size: cover;
width: 2.333333333333333em;
height: 0;
padding: 2.333333333333333em 0 0 0;
border: 0;
overflow: hidden;
white-space: nowrap;
}
.buttonsearch {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2NTg0MEE1MTVFN0UxMUU0QkNGMTk0Q0UzOUEwNUNFMyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2NTg0MEE1MjVFN0UxMUU0QkNGMTk0Q0UzOUEwNUNFMyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjY1ODQwQTRGNUU3RTExRTRCQ0YxOTRDRTM5QTA1Q0UzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjY1ODQwQTUwNUU3RTExRTRCQ0YxOTRDRTM5QTA1Q0UzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+tERf2gAAArFJREFUeNrMmE1kXFEUx28SwjAMjxCGIQwhzCoMQysVugqlhJBVyCqLbELpqtmEUFJddZFNFhVSpd20uqgw1VIhixgSIqREYiKRSExkhNTruZzhOO5999737m3m8DdzZt6773fP/Trn9cRxLBysD/QUNAaKQEP4eQI6xc/voN/Cl0lAC1VBG6Cr2M6aoHegkmX7WpkuKIPW4/R2B1oBRSEAJ0G3BoAz0DaoZbjuGEfBG+CS5kG7oFegiua+MYxYU3Gv7OyUD0AV3CFo2qHhHGhBM2efZQGcUjT4ER+YZg7JRbLF2msljEAiYFkx515nXYXYuS+s3QNQvyvghiJywpPyoAZr/4ULYFXRw5xHQKkh3HY6dmGz/fTifv2S7d+LoLbwa39Ab4gvT6BZm5MkYj3b9Rw5qojN84ZNBB+B+gnzexHOLvGs7lgFVEy6oQNI7asIax+YP2oCLBP/BrQXGHCH+RUT4ADxZcr0NzDgEfMLJsA88dsivN0wP2cCvCZ+/j8ARsw/NwGeEr+IWXNIK7kC7hNfbje1wIA1xQaeCPiL/TYRGHCSzfkfppMkx/K2Q9tMI2X6dU+e9dPmJGmzzVNWanOBorfE5viqbVWnyjSKnqNXY9E7thkp6qywlGvLY8pVVNQpc64Ja4S9ovbJA2QJMyRqm2lrkqoi7W9kKMBrmgpvPEtVN60pGZdBBYeorRnePAxnqYufa4rxFg677MQoSdlL6MtS8xtbDJkgk/6s4J7ow+qgCcVwGyFtC/CLlGBNtlpHXCFtJ3sBQesWUPe4Smc0+5wTZI/j+0GBCa488Acx+xkk7waP8Gw15ZUjoE28lybLT1jyIkTACs4kq0g+JKAV5EMDGiHTzMEQNgyqK+bk424B1EF+7hXdY/u4immNJLopgh2TLxLe4vf5fwIMADtbDGrkqxb2AAAAAElFTkSuQmCC");
background-image: resourceUrl("search");
background-color: transparent;
background-size: contain;
background-position: center center;
@@ -175,11 +160,6 @@ figcaption {
outline: none;
text-decoration: none;
}
.buttonarrowdown {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAALFJREFUeNrs1TEOgjAUxnFx5iDscgPvwXkYuYdXwBPgAYwrsxPGIAPPvKQkxLQO5UE0+X9J06Ff0186tImI7H45CUCAAAECBAgQIMA1s1+y+dkUpUXna/QGY0Z/q0QztCcJddyauG7UOdHA8XWXKT7khNO47rbArj5kIeQnTrubA0NIS9xioA9piTMB+pBWODPgHGmJ02H6UD/OeaZzerxc+eoAAgQIECBAgAD/AvgWYACm/8hEADYaXwAAAABJRU5ErkJggg==");
width: 2.666666666666667em;
padding: 2.733333333333333em 0 0 0;
}
.buttonarrowrightwhite:after {
content: '';
display: inline-block;
@@ -22,10 +22,6 @@
<inherits name='com.google.gwt.ajaxloader.AjaxLoader' />
<inherits name='com.google.gwt.maps.Maps' />
<!-- Bootstrap API -->
<inherits name="com.github.gwtbootstrap.BootstrapNoResources" />
<inherits name='com.github.gwtbootstrap.datetimepicker.DatetimepickerNoResources' />
<!-- module containing locale configuration -->
<inherits name='com.sap.sailing.gwt.common.SailingLocalesAllPermutations' />
@@ -19,8 +19,6 @@ import com.sap.sailing.gwt.ui.client.ServerConfigurationServiceAsync;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sse.gwt.client.EntryPointHelper;
import com.sap.sse.gwt.client.mvp.AbstractMvpEntryPoint;
import com.sap.sse.gwt.resources.CommonControlsCSS;
import com.sap.sse.gwt.resources.Highcharts;
/**
* Desktop/tablet EntryPoint for the Home module. Be aware that this EntryPoint isn't directly started but instead the
@@ -33,9 +31,6 @@ public class DesktopEntryPoint extends AbstractMvpEntryPoint<StringMessages, Des
public void doOnModuleLoad() {
Document.get().getBody().addClassName(SharedResources.INSTANCE.mainCss().desktop());
CommonControlsCSS.ensureInjected();
Highcharts.ensureInjected();
ServerConfigurationServiceAsync serverConfigService = GWT.create(ServerConfigurationService.class);
EntryPointHelper.registerASyncService((ServiceDefTarget) serverConfigService, RemoteServiceMappingConstants.serverConfigurationServiceRemotePath);
@@ -9,12 +9,12 @@ import com.sap.sailing.gwt.home.desktop.places.contact.ContactActivityProxy;
import com.sap.sailing.gwt.home.desktop.places.contact.ContactPlace;
import com.sap.sailing.gwt.home.desktop.places.error.ErrorActivityProxy;
import com.sap.sailing.gwt.home.desktop.places.event.EventActivityProxy;
import com.sap.sailing.gwt.home.desktop.places.events.EventsActivityProxy;
import com.sap.sailing.gwt.home.desktop.places.events.EventsActivity;
import com.sap.sailing.gwt.home.desktop.places.morelogininformation.MoreLoginInformationActivityProxy;
import com.sap.sailing.gwt.home.desktop.places.solutions.SolutionsActivityProxy;
import com.sap.sailing.gwt.home.desktop.places.sponsoring.SponsoringActivityProxy;
import com.sap.sailing.gwt.home.desktop.places.sponsoring.SponsoringPlace;
import com.sap.sailing.gwt.home.desktop.places.start.StartActivityProxy;
import com.sap.sailing.gwt.home.desktop.places.start.StartActivity;
import com.sap.sailing.gwt.home.desktop.places.user.profile.UserProfileActivityProxy;
import com.sap.sailing.gwt.home.desktop.places.whatsnew.WhatsNewActivityProxy;
import com.sap.sailing.gwt.home.desktop.places.whatsnew.WhatsNewPlace;
@@ -68,11 +68,11 @@ public class DesktopActivityMapper implements ActivityMapper {
} else if (place instanceof AbstractSeriesPlace) {
return new com.sap.sailing.gwt.home.desktop.places.fakeseries.SeriesActivityProxy((AbstractSeriesPlace) place, clientFactory, clientFactory.getHomePlacesNavigator());
} else if (place instanceof EventsPlace) {
return new EventsActivityProxy((EventsPlace) place, clientFactory, clientFactory.getHomePlacesNavigator());
return new EventsActivity((EventsPlace) place, clientFactory, clientFactory.getHomePlacesNavigator());
} else if (place instanceof AbstractUserProfilePlace) {
return new UserProfileActivityProxy((AbstractUserProfilePlace) place, clientFactory, clientFactory.getHomePlacesNavigator());
} else if (place instanceof StartPlace) {
return new StartActivityProxy((StartPlace) place, clientFactory);
return new StartActivity((StartPlace) place, clientFactory);
} else if (place instanceof SponsoringPlace) {
return new SponsoringActivityProxy((SponsoringPlace) place, clientFactory);
} else if (place instanceof SolutionsPlace) {
@@ -46,7 +46,7 @@
margin-left: 0.714285714285714em;
height: 0.285714285714286em;
width: 0.428571428571429em;
background-image: url("images/home/dropdown__button--arrow@2x.png");
background-image: resourceUrl("arrowDownFilledBlack");
background-position: center bottom;
background-repeat: no-repeat;
background-size: 100%;
@@ -107,7 +107,7 @@
top: 50%;
height: 0.933333333333333em;
width: 0.933333333333333em;
background-image: url("images/home/dropdown__check@2x.png");
background-image: resourceUrl("dropdownCheck");
background-repeat: no-repeat;
background-position: right center;
background-size: contain;
@@ -133,25 +133,6 @@
font-weight: 600;
padding: 0.666666666666667em 0;
}
.eventheader_breadcrumbback {
position: absolute;
top: 0;
bottom: 0;
left: 0;
width: 1.333333333333333em;
border-right: 1px solid #cfcfcf;
background-color: #dedede;
background-image: url("images/home/breadcrumb-arrow__back.png");
background-position: center center;
background-repeat: no-repeat;
background-size: 50%;
-webkit-transition: background-color 0.2s, border-color 0.2s;
-moz-transition: background-color 0.2s, border-color 0.2s;
transition: background-color 0.2s, border-color 0.2s;
}
.eventheader_breadcrumbback:hover {
background-color: #cfcfcf;
}
.eventheader_intro {
padding-left: 6em;
margin: 0.666666666666667em 0;
@@ -241,7 +222,7 @@
width: 0.8em;
height: 0.533333333333333em;
vertical-align: middle;
background-image: url("images/home/dropdown__button--arrow@2x.png");
background-image: resourceUrl("arrowDownFilledBlack");
background-size: 100%;
background-repeat: no-repeat;
background-position: center bottom;
@@ -42,7 +42,7 @@
<div ui:field="eventDate" class="{local_res.css.eventheader_intro_details_item}">
</div>
<div ui:field="eventVenueContainer" class="{local_res.css.eventheader_intro_details_item}">
<img src="images/home/location-icon.png" class="{local_res.css.locationicon}"></img>
<img src="{local_res.location.getSafeUri}" class="{local_res.css.locationicon}"></img>
<span ui:field="eventVenue"></span>
</div>
<a ui:field="eventLink" class="{local_res.css.eventheader_intro_details_item}"></a>
@@ -1,14 +1,18 @@
package com.sap.sailing.gwt.home.desktop.partials.eventheader;
import com.google.gwt.core.client.GWT;
import com.google.gwt.resources.client.ClientBundle;
import com.google.gwt.resources.client.CssResource;
import com.google.gwt.resources.client.ImageResource;
import com.sap.sailing.gwt.home.desktop.resources.SharedDesktopResources;
public interface EventHeaderResources extends ClientBundle {
public interface EventHeaderResources extends SharedDesktopResources {
public static final EventHeaderResources INSTANCE = GWT.create(EventHeaderResources.class);
@Source("EventHeader.gss")
LocalCss css();
@Source("location-icon.png")
ImageResource location();
public interface LocalCss extends CssResource {
String jsdropdown();
@@ -27,7 +31,6 @@ public interface EventHeaderResources extends ClientBundle {
String leaderboardquickaccess();
String eventheader();
String eventheader_breadcrumb();
String eventheader_breadcrumbback();
String eventheader_intro();
String eventheader_intro_logo();
String eventheader_intro_logo_image();
@@ -3,6 +3,7 @@
<ui:with field="i18n" type="com.sap.sailing.gwt.ui.client.StringMessages" />
<ui:with field="res" type="com.sap.sailing.gwt.common.client.SharedResources" />
<ui:with field="local_res" type="com.sap.sailing.gwt.home.desktop.partials.eventsrecent.EventsOverviewRecentResources" />
<ui:with field="shr" type="com.sap.sailing.gwt.home.shared.resources.SharedHomeResources" />
<ui:style>
.quickFix {
padding: 0px 10px;
@@ -26,7 +27,7 @@
</td>
<td>
<div class="{local_res.css.eventsoverviewrecent_year_header_info_arrow}">
<img src="images/home/arrow-down-grey.png" class="{local_res.css.eventsoverviewrecent_year_header_info_arrow_image}"></img>
<img src="{shr.arrowDownGrey.getSafeUri}" class="{local_res.css.eventsoverviewrecent_year_header_info_arrow_image}"></img>
</div>
</td>
</tr>
@@ -3,12 +3,13 @@
<ui:with field="i18n" type="com.sap.sailing.gwt.ui.client.StringMessages" />
<ui:with field="res" type="com.sap.sailing.gwt.common.client.SharedResources" />
<ui:with field="local_res" type="com.sap.sailing.gwt.home.desktop.partials.eventsupcoming.EventsOverviewUpcomingResources" />
<ui:with field="shr" type="com.sap.sailing.gwt.home.shared.resources.SharedHomeResources" />
<g:HTMLPanel addStyleNames="{local_res.css.eventsoverviewupcoming} {local_res.css.accordion}">
<!-- IFEND upcomingEvents.events.length > 1 ADD CLASS local_res.css.accordion ELSE ADD CLASS local_res.css.accordioncollapsed -->
<g:HTMLPanel ui:field="header" addStyleNames="{local_res.css.eventsoverviewupcoming_header} {local_res.css.accordion_trigger}">
<div class="{res.mediaCss.grid}">
<div class="{res.mediaCss.small9} {res.mediaCss.columns}">
<img src="images/home/upcoming-events-icon.png" class="{local_res.css.eventsoverviewupcoming_header_icon}"></img>
<img src="{local_res.upcomingEvents.getSafeUri}" class="{local_res.css.eventsoverviewupcoming_header_icon}"></img>
<!-- IF upcomingEvents.events.length < 2 -->
<span>
<h3 class="{local_res.css.eventsoverviewupcoming_header_title}">
@@ -30,7 +31,7 @@
</td>
<td>
<div class="{local_res.css.eventsoverviewupcoming_header_info_arrow}">
<img src="images/home/arrow-down-grey.png" class="{local_res.css.eventsoverviewupcoming_header_info_arrow_image}"></img>
<img src="{shr.arrowDownGrey.getSafeUri}" class="{local_res.css.eventsoverviewupcoming_header_info_arrow_image}"></img>
</div>
</td>
</tr>
@@ -3,12 +3,16 @@ package com.sap.sailing.gwt.home.desktop.partials.eventsupcoming;
import com.google.gwt.core.client.GWT;
import com.google.gwt.resources.client.ClientBundle;
import com.google.gwt.resources.client.CssResource;
import com.google.gwt.resources.client.ImageResource;
public interface EventsOverviewUpcomingResources extends ClientBundle {
public static final EventsOverviewUpcomingResources INSTANCE = GWT.create(EventsOverviewUpcomingResources.class);
@Source("EventsOverviewUpcoming.gss")
LocalCss css();
@Source("upcoming-events-icon.png")
ImageResource upcomingEvents();
public interface LocalCss extends CssResource {
String accordion();
Loaded 100 of 1134 files, more files were not shown because too many files have changed in this diff. Show more