Merge remote-tracking branch 'ExternalGit/master' into raceboard-simulation
No files matched your search
@@ -77,4 +77,62 @@
|
||||
height: 22.5pt;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.wrongOrientationNotification {
|
||||
position: absolute !important;
|
||||
top: 50%;
|
||||
right: 50%;
|
||||
background-color: white;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.wrongOrientationNotification_shown {
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
margin-right: -100px;
|
||||
margin-top: -100px;
|
||||
border-radius: 100px;
|
||||
-webkit-transition: all 700ms cubic-bezier(0.480, 0, 0.000, 1);
|
||||
/* older webkit */
|
||||
-webkit-transition: all 700ms cubic-bezier(0.480, -0.035, 0.000, 1.250);
|
||||
-moz-transition: all 700ms cubic-bezier(0.480, -0.035, 0.000, 1.250);
|
||||
-o-transition: all 700ms cubic-bezier(0.480, -0.035, 0.000, 1.250);
|
||||
transition: all 700ms cubic-bezier(0.480, -0.035, 0.000, 1.250);
|
||||
opacity: 1.0;
|
||||
}
|
||||
|
||||
.wrongOrientationNotification_hidden {
|
||||
width: 0px;
|
||||
height: 0px;
|
||||
marin-right: 0px;
|
||||
margin-top: 0px;
|
||||
border-radius: 0px;
|
||||
overflow: hidden;
|
||||
-webkit-transition: all 300ms;
|
||||
/* older webkit */
|
||||
-webkit-transition: all 300ms;
|
||||
-moz-transition: all 300ms;
|
||||
-o-transition: all 300ms;
|
||||
transition: all 300ms;
|
||||
opacity: 0.0;
|
||||
}
|
||||
|
||||
.wrongOrientationNotification_logo {
|
||||
max-width: 40%;
|
||||
max-height: 40%;
|
||||
margin: 30%;
|
||||
margin-top: 23%
|
||||
}
|
||||
|
||||
.wrongOrientationNotification_text {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 14px;
|
||||
top: 76%;
|
||||
line-height: 10px;
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
font-size: 13px;
|
||||
color: grey;
|
||||
font-family: "Arial";
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<launchConfiguration type="com.google.gdt.eclipse.suite.webapp">
|
||||
<booleanAttribute key="com.google.gdt.eclipse.core.RUN_SERVER" value="false"/>
|
||||
<stringAttribute key="com.google.gdt.eclipse.suiteMainTypeProcessor.PREVIOUSLY_SET_MAIN_TYPE_NAME" value="com.google.gwt.dev.GWTShell"/>
|
||||
<booleanAttribute key="com.google.gdt.eclipse.suiteWarArgumentProcessor.IS_WAR_FROM_PROJECT_PROPERTIES" value="false"/>
|
||||
<stringAttribute key="com.google.gwt.eclipse.core.CODE_SERVER_PORT" value="9998"/>
|
||||
<booleanAttribute key="com.google.gwt.eclipse.core.CODE_SERVER_PORT_AUTO" value="true"/>
|
||||
<listAttribute key="com.google.gwt.eclipse.core.ENTRY_POINT_MODULES">
|
||||
<listEntry value="com.sap.sailing.dashboards.gwt.RibDashboard"/>
|
||||
</listAttribute>
|
||||
<stringAttribute key="com.google.gwt.eclipse.core.URL" value="/dashboards/RibDashboard.html"/>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||
<listEntry value="/com.sap.sailing.dashboards.gwt"/>
|
||||
</listAttribute>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||
<listEntry value="4"/>
|
||||
</listAttribute>
|
||||
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
|
||||
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
|
||||
<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
|
||||
</listAttribute>
|
||||
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
|
||||
<listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry containerPath="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6" path="1" type="4"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.gwt.ui/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.gwt.ui/src/main/java" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.dashboards.gwt/src/main/java" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.dashboards.gwt/src/main/resources" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.domain/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.server/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.gwt/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.common/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry id="org.eclipse.jdt.launching.classpathentry.defaultClasspath"> <memento exportedEntriesOnly="false" project="com.sap.sailing.dashboards.gwt"/> </runtimeClasspathEntry> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.google.gwt.osgi/lib/gwt-servlet.jar" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.google.gwt.osgi/lib/gwt-user.jar" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.domain.common/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/org.moxieapps.gwt.highcharts/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.gwt.adminconsole/src" path="3" type="2"/> "/>
|
||||
</listAttribute>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="com.google.gwt.eclipse.core.moduleClasspathProvider"/>
|
||||
<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.google.gwt.dev.DevMode"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-nosuperDevMode -incremental -war "${project_loc:com.sap.sailing.dashboards.gwt}" -startupUrl /dashboards/RibDashboard.html -noserver -remoteUI "${gwt_remote_ui_server_port}:${unique_id}" -logLevel INFO -codeServerPort auto com.sap.sailing.dashboards.gwt.RibDashboard"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="com.sap.sailing.dashboards.gwt"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-XstartOnFirstThread -Xmx2048m"/>
|
||||
</launchConfiguration>
|
||||
@@ -4,6 +4,20 @@
|
||||
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
|
||||
version="2.5">
|
||||
|
||||
<servlet>
|
||||
<servlet-name>default</servlet-name>
|
||||
<servlet-class>org.eclipse.jetty.servlet.DefaultServlet
|
||||
</servlet-class>
|
||||
<init-param>
|
||||
<param-name>dirAllowed</param-name>
|
||||
<param-value>false</param-value>
|
||||
</init-param>
|
||||
<init-param>
|
||||
<param-name>useFileMappedBuffer</param-name>
|
||||
<param-value>false</param-value>
|
||||
</init-param>
|
||||
</servlet>
|
||||
|
||||
<servlet>
|
||||
<display-name>Rib Dashboard Service</display-name>
|
||||
<servlet-name>RibDashboardService</servlet-name>
|
||||
|
||||
@@ -8,6 +8,8 @@ import com.googlecode.mgwt.ui.client.MGWTSettings;
|
||||
import com.googlecode.mgwt.ui.client.MGWTSettings.StatusBarStyle;
|
||||
import com.googlecode.mgwt.ui.client.MGWTSettings.ViewPort;
|
||||
import com.googlecode.mgwt.ui.client.MGWTStyle;
|
||||
import com.sap.sailing.dashboards.gwt.client.dataretriever.RibDashboardDataRetriever;
|
||||
import com.sap.sailing.dashboards.gwt.client.dataretriever.WindBotDataRetriever;
|
||||
import com.sap.sailing.gwt.ui.client.SailingService;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
@@ -61,6 +63,6 @@ public class RibDashboardEntryPoint extends AbstractEntryPoint<StringMessages> {
|
||||
|
||||
@Override
|
||||
protected StringMessages createStringMessages() {
|
||||
return GWT.create(StringMessages.class);
|
||||
return StringMessages.INSTANCE;
|
||||
}
|
||||
}
|
||||
@@ -41,4 +41,7 @@ public interface RibDashboardImageResources extends ClientBundle {
|
||||
|
||||
@Source("images/settings.png")
|
||||
ImageResource settings();
|
||||
|
||||
@Source("images/rotatedevice.png")
|
||||
ImageResource rotatedevice();
|
||||
}
|
||||
@@ -17,6 +17,12 @@ import com.google.gwt.user.client.ui.Image;
|
||||
import com.google.gwt.user.client.ui.LayoutPanel;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.googlecode.mgwt.ui.client.widget.carousel.Carousel;
|
||||
import com.sap.sailing.dashboards.gwt.client.dataretriever.NumberOfWindBotsChangeListener;
|
||||
import com.sap.sailing.dashboards.gwt.client.dataretriever.RibDashboardDataRetriever;
|
||||
import com.sap.sailing.dashboards.gwt.client.dataretriever.RibDashboardDataRetrieverListener;
|
||||
import com.sap.sailing.dashboards.gwt.client.dataretriever.WindBotDataRetrieverProvider;
|
||||
import com.sap.sailing.dashboards.gwt.client.eventlogo.EventLogo;
|
||||
import com.sap.sailing.dashboards.gwt.client.notifications.WrongDeviceOrientationNotification;
|
||||
import com.sap.sailing.dashboards.gwt.client.startanalysis.StartlineAnalysisComponent;
|
||||
import com.sap.sailing.dashboards.gwt.client.startlineadvantage.StartLineAdvantageComponent;
|
||||
import com.sap.sailing.dashboards.gwt.client.windchart.WindBotComponent;
|
||||
@@ -89,9 +95,10 @@ public class RibDashboardPanel extends Composite implements RibDashboardDataRetr
|
||||
initWidget(uiBinder.createAndBindUi(this));
|
||||
initLogos();
|
||||
windcharthint.getElement().setInnerText(stringConstants.dashboardWindChartHint());
|
||||
windloadinghintleft.setInnerText(stringConstants.dashboardWindBotLoading());
|
||||
windloadinghintright.setInnerText(stringConstants.dashboardWindBotLoading());
|
||||
loadAndDisplayEventLogo(sailingServiceAsync);
|
||||
windloadinghintleft.setInnerHTML(stringConstants.dashboardWindBotLoadingText()+"<br>"+stringConstants.dashboardWindBotLoadingMessage());
|
||||
windloadinghintright.setInnerHTML(stringConstants.dashboardWindBotLoadingText()+"<br>"+stringConstants.dashboardWindBotLoadingMessage());
|
||||
loadAndAddEventLogo(sailingServiceAsync);
|
||||
initAndAddWrongOrientationNotification();
|
||||
}
|
||||
|
||||
private void initLogos() {
|
||||
@@ -101,7 +108,7 @@ public class RibDashboardPanel extends Composite implements RibDashboardDataRetr
|
||||
Document.get().getBody().appendChild(logo.getElement());
|
||||
}
|
||||
|
||||
private void loadAndDisplayEventLogo(SailingServiceAsync sailingServiceAsync){
|
||||
private void loadAndAddEventLogo(SailingServiceAsync sailingServiceAsync){
|
||||
String eventId = Window.Location.getParameter(EVENT_ID_PARAMETER);
|
||||
if (eventId != null) {
|
||||
EventLogo eventLogo = EventLogo.getEventLogoFromEventId(sailingServiceAsync, eventId);
|
||||
@@ -110,6 +117,11 @@ public class RibDashboardPanel extends Composite implements RibDashboardDataRetr
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void initAndAddWrongOrientationNotification(){
|
||||
WrongDeviceOrientationNotification wrongDeviceOrientationNotification = new WrongDeviceOrientationNotification();
|
||||
Document.get().getBody().appendChild(wrongDeviceOrientationNotification.getElement());
|
||||
}
|
||||
|
||||
private void initWindBotComponents(List<String> windBotIDs,
|
||||
WindBotDataRetrieverProvider windBotDataRetrieverProvider) {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.sap.sailing.dashboards.gwt.client;
|
||||
package com.sap.sailing.dashboards.gwt.client.dataretriever;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.sap.sailing.dashboards.gwt.client;
|
||||
package com.sap.sailing.dashboards.gwt.client.dataretriever;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
@@ -7,6 +7,7 @@ import java.util.List;
|
||||
|
||||
import com.google.gwt.user.client.Window;
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
import com.sap.sailing.dashboards.gwt.client.RibDashboardServiceAsync;
|
||||
import com.sap.sailing.dashboards.gwt.client.actions.GetRibDashboardRaceInfoAction;
|
||||
import com.sap.sailing.dashboards.gwt.shared.dto.RibDashboardRaceInfoDTO;
|
||||
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
*
|
||||
*/
|
||||
package com.sap.sailing.dashboards.gwt.client;
|
||||
package com.sap.sailing.dashboards.gwt.client.dataretriever;
|
||||
|
||||
import com.sap.sailing.dashboards.gwt.shared.dto.RibDashboardRaceInfoDTO;
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
package com.sap.sailing.dashboards.gwt.client;
|
||||
package com.sap.sailing.dashboards.gwt.client.dataretriever;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
|
||||
@@ -24,9 +26,13 @@ public class WindBotDataRetriever implements TimeListener, RaceSelectionChangeLi
|
||||
private List<WindBotDataRetrieverListener> windBotDataRetrieverListeners;
|
||||
private List<String> windBotIDsInLiveRace;
|
||||
|
||||
private static final int WIND_CHART_RESOLUTION_IN_MILLISECONDS = 5000;
|
||||
public static final String LODA_WIND_CHART_DATA_CATEGORY = "loadWindChartData";
|
||||
private final Set<String> windSourceTypeNames;
|
||||
private final int WIND_CHART_RESOLUTION_IN_MILLISECONDS = 5000;
|
||||
private final int ONE_HOUR_IN_MILLISECONDS = 1000*60*60;
|
||||
private final String LODA_WIND_CHART_DATA_CATEGORY = "loadWindChartData";
|
||||
private boolean didInitialLoading;
|
||||
|
||||
|
||||
|
||||
public WindBotDataRetriever(SailingServiceAsync sailingService) {
|
||||
this.sailingService = sailingService;
|
||||
@@ -36,15 +42,17 @@ public class WindBotDataRetriever implements TimeListener, RaceSelectionChangeLi
|
||||
numberOfWindBotsChangeListeners = new ArrayList<NumberOfWindBotsChangeListener>();
|
||||
windBotDataRetrieverListeners = new ArrayList<WindBotDataRetrieverListener>();
|
||||
windBotIDsInLiveRace = new ArrayList<String>();
|
||||
windSourceTypeNames = new HashSet<>();
|
||||
windSourceTypeNames.add(WindSourceType.EXPEDITION.name());
|
||||
}
|
||||
|
||||
private void loadWindBotData(Date from, Date to, RegattaAndRaceIdentifier selectedRaceIdentifier) {
|
||||
if(!didInitialLoading){
|
||||
didInitialLoading = true;
|
||||
from = new Date(from.getTime()-1000*60*15);
|
||||
from = new Date(from.getTime()-ONE_HOUR_IN_MILLISECONDS);
|
||||
}
|
||||
GetWindInfoAction getWindInfoAction = new GetWindInfoAction(sailingService, selectedRaceIdentifier, from, to,
|
||||
WIND_CHART_RESOLUTION_IN_MILLISECONDS, null, /*
|
||||
WIND_CHART_RESOLUTION_IN_MILLISECONDS, windSourceTypeNames, /*
|
||||
* onlyUpToNewestEvent==true because we don't want to
|
||||
* overshoot the evidence so far
|
||||
*/true);
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.sap.sailing.dashboards.gwt.client;
|
||||
package com.sap.sailing.dashboards.gwt.client.dataretriever;
|
||||
|
||||
import com.sap.sailing.gwt.ui.shared.WindInfoForRaceDTO;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.sap.sailing.dashboards.gwt.client;
|
||||
package com.sap.sailing.dashboards.gwt.client.dataretriever;
|
||||
|
||||
import com.sap.sailing.gwt.ui.shared.WindInfoForRaceDTO;
|
||||
|
||||
@@ -3,6 +3,8 @@ package com.sap.sailing.dashboards.gwt.client.device;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.sap.sse.common.Util.Pair;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Alexander Ries (D062114)
|
||||
@@ -62,8 +64,38 @@ public class Orientation {
|
||||
}
|
||||
|
||||
public void notifiyListenerAboutHeadingChange(double orientationHeading) {
|
||||
Pair<OrientationType, Double> orienationPair = new Pair<OrientationType, Double>(getOrientationTypeForHeadingInSafari(orientationHeading), new Double(orientationHeading));
|
||||
for (OrientationListener orientationListener : orientationListeners) {
|
||||
orientationListener.orientationChanged(orientationHeading);
|
||||
orientationListener.orientationChanged(orienationPair);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private OrientationType getOrientationTypeForHeadingInSafari(double heading){
|
||||
OrientationType orientationType = null;
|
||||
if (heading > -45 && heading <= 0 || heading > 0 && heading < 45){
|
||||
orientationType = OrientationType.PORTRAIT_UP;
|
||||
}else if (heading > 45 && heading < 135){
|
||||
orientationType = OrientationType.LANDSCAPE_RIGHT;
|
||||
}else if (heading > 135 && heading <= 180 || heading >=-180 && heading < -135){
|
||||
orientationType = OrientationType.PORTRAIT_DOWN;
|
||||
}else if (heading > -135 && heading < -45){
|
||||
orientationType = OrientationType.LANDSCAPE_LEFT;
|
||||
}
|
||||
return orientationType;
|
||||
}
|
||||
|
||||
private OrientationType getOrientationTypeForHeadingInChrome(double heading){
|
||||
OrientationType orientationType = null;
|
||||
if (heading > -45 && heading <= 0 || heading > 0 && heading < 45){
|
||||
orientationType = OrientationType.LANDSCAPE_RIGHT;
|
||||
}else if (heading > 45 && heading < 135){
|
||||
orientationType = OrientationType.PORTRAIT_DOWN;
|
||||
}else if (heading > 135 && heading <= 180 || heading >=-180 && heading < -135){
|
||||
orientationType = OrientationType.LANDSCAPE_LEFT;
|
||||
}else if (heading > -135 && heading < -45){
|
||||
orientationType = OrientationType.PORTRAIT_UP;
|
||||
}
|
||||
return orientationType;
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,11 @@
|
||||
package com.sap.sailing.dashboards.gwt.client.device;
|
||||
|
||||
import com.sap.sse.common.Util.Pair;
|
||||
|
||||
public interface OrientationListener {
|
||||
|
||||
public void orientationChanged(double orientationHeading);
|
||||
/**
|
||||
* Returns a Pair containing the {@link OrientationType} and the exact angle.
|
||||
* */
|
||||
public void orientationChanged(Pair <OrientationType, Double> orientation);
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
package com.sap.sailing.dashboards.gwt.client.device;
|
||||
|
||||
|
||||
public enum OrientationType {
|
||||
PORTRAIT_UP, PORTRAIT_DOWN, LANDSCAPE_RIGHT, LANDSCAPE_LEFT;
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.sap.sailing.dashboards.gwt.client;
|
||||
package com.sap.sailing.dashboards.gwt.client.eventlogo;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.sap.sailing.dashboards.gwt.client.i18n;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
|
||||
public interface StringMessages extends com.sap.sailing.gwt.ui.client.StringMessages {
|
||||
public static final StringMessages INSTANCE = GWT.create(StringMessages.class);
|
||||
|
||||
String sampleText();
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
sampleText=some Text
|
||||
@@ -0,0 +1 @@
|
||||
sampleText=irgendein Text
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.sap.sailing.dashboards.gwt.client.bottomnotification;
|
||||
package com.sap.sailing.dashboards.gwt.client.notifications;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.sap.sailing.dashboards.gwt.client.bottomnotification;
|
||||
package com.sap.sailing.dashboards.gwt.client.notifications;
|
||||
|
||||
public interface BottomNotificationClickListener {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.sap.sailing.dashboards.gwt.client.bottomnotification;
|
||||
package com.sap.sailing.dashboards.gwt.client.notifications;
|
||||
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
package com.sap.sailing.dashboards.gwt.client.notifications;
|
||||
|
||||
import com.google.gwt.user.client.ui.AbsolutePanel;
|
||||
import com.google.gwt.user.client.ui.Image;
|
||||
import com.google.gwt.user.client.ui.Label;
|
||||
import com.google.gwt.user.client.ui.RootLayoutPanel;
|
||||
import com.sap.sailing.dashboards.gwt.client.RibDashboardImageResources;
|
||||
import com.sap.sailing.dashboards.gwt.client.device.Orientation;
|
||||
import com.sap.sailing.dashboards.gwt.client.device.OrientationListener;
|
||||
import com.sap.sailing.dashboards.gwt.client.device.OrientationType;
|
||||
import com.sap.sailing.dashboards.gwt.client.visualeffects.BlurEffect;
|
||||
import com.sap.sse.common.Util.Pair;
|
||||
|
||||
public class WrongDeviceOrientationNotification extends AbsolutePanel implements OrientationListener {
|
||||
|
||||
private Label rotateDeviceLabel;
|
||||
|
||||
public WrongDeviceOrientationNotification() {
|
||||
super();
|
||||
this.addStyleName("wrongOrientationNotification");
|
||||
this.addStyleName("wrongOrientationNotification_hidden");
|
||||
|
||||
Image rotateDeviceIcon = new Image();
|
||||
rotateDeviceIcon.setResource(RibDashboardImageResources.INSTANCE.rotatedevice());
|
||||
rotateDeviceIcon.getElement().addClassName("wrongOrientationNotification_logo");
|
||||
add(rotateDeviceIcon);
|
||||
|
||||
rotateDeviceLabel = new Label();
|
||||
rotateDeviceLabel.getElement().addClassName("wrongOrientationNotification_text");
|
||||
rotateDeviceLabel.setText("Rotate Device");
|
||||
add(rotateDeviceLabel);
|
||||
|
||||
Orientation.getInstance().addListener(this);
|
||||
Orientation.getInstance().triggerDeviceOrientationRead();
|
||||
}
|
||||
|
||||
public void show() {
|
||||
this.removeStyleName("wrongOrientationNotification_hidden");
|
||||
this.addStyleName("wrongOrientationNotification_shown");
|
||||
BlurEffect.getInstance().addToView(RootLayoutPanel.get());
|
||||
}
|
||||
|
||||
public void hide() {
|
||||
this.removeStyleName("wrongOrientationNotification_shown");
|
||||
this.addStyleName("wrongOrientationNotification_hidden");
|
||||
BlurEffect.getInstance().removeFromView(RootLayoutPanel.get());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void orientationChanged(Pair<OrientationType, Double> orientation) {
|
||||
OrientationType orientationType = orientation.getA();
|
||||
switch (orientationType) {
|
||||
case PORTRAIT_UP:
|
||||
show();
|
||||
break;
|
||||
case PORTRAIT_DOWN:
|
||||
show();
|
||||
break;
|
||||
case LANDSCAPE_RIGHT:
|
||||
hide();
|
||||
break;
|
||||
case LANDSCAPE_LEFT:
|
||||
hide();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -75,13 +75,3 @@
|
||||
transition: margin-top ease-in-out 500ms;
|
||||
margin-top: -600pt;
|
||||
}
|
||||
|
||||
.blurred {
|
||||
-webkit-filter: blur(10pt) brightness(0.92);
|
||||
filter: blur(10pt) brightness(0.92);
|
||||
}
|
||||
|
||||
.not_blurred {
|
||||
-webkit-filter: blur(0pt) brightness(1);
|
||||
filter: blur(0pt) brightness(1);
|
||||
}
|
||||
@@ -17,6 +17,7 @@ import com.google.gwt.user.client.ui.HasWidgets;
|
||||
import com.google.gwt.user.client.ui.RootLayoutPanel;
|
||||
import com.google.gwt.user.client.ui.RootPanel;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.dashboards.gwt.client.visualeffects.BlurEffect;
|
||||
import com.sap.sailing.domain.common.dto.CompetitorDTO;
|
||||
|
||||
public class CompetitorSelectionPopup extends Composite implements HasWidgets, CompetitorTableRowSelectionListener {
|
||||
@@ -27,10 +28,6 @@ public class CompetitorSelectionPopup extends Composite implements HasWidgets, C
|
||||
String popuphide();
|
||||
|
||||
String buttonshow();
|
||||
|
||||
String blurred();
|
||||
|
||||
String not_blurred();
|
||||
}
|
||||
|
||||
@UiField
|
||||
@@ -68,16 +65,14 @@ public class CompetitorSelectionPopup extends Composite implements HasWidgets, C
|
||||
this.button.setText("OK");
|
||||
this.getElement().addClassName(style.popupshow());
|
||||
this.getElement().removeClassName(style.popuphide());
|
||||
RootLayoutPanel.get().addStyleName(style.blurred());
|
||||
RootLayoutPanel.get().removeStyleName(style.not_blurred());
|
||||
BlurEffect.getInstance().addToView(RootLayoutPanel.get());
|
||||
isVisible = true;
|
||||
}
|
||||
|
||||
public void hide() {
|
||||
this.getElement().addClassName(style.popuphide());
|
||||
this.getElement().removeClassName(style.popupshow());
|
||||
RootLayoutPanel.get().addStyleName(style.not_blurred());
|
||||
RootLayoutPanel.get().removeStyleName(style.blurred());
|
||||
BlurEffect.getInstance().removeFromView(RootLayoutPanel.get());
|
||||
RootPanel.get().remove(this);
|
||||
isVisible = false;
|
||||
}
|
||||
|
||||
@@ -10,11 +10,8 @@
|
||||
}
|
||||
|
||||
.settings_button_image {
|
||||
position: absolute;
|
||||
height: 23.5pt;
|
||||
width: 23.5pt;
|
||||
right: 10pt;
|
||||
top: 17.5pt;
|
||||
}
|
||||
|
||||
.settings_indication_label {
|
||||
|
||||
@@ -5,8 +5,9 @@
|
||||
type='com.sap.sailing.dashboards.gwt.client.popups.competitorselection.SettingsButtonWithSelectionIndicationLabel.SettingsButtonWithSelectionIndicationLabelStyle'
|
||||
src='SettingsButtonWithSelectionIndicationLabel.css'></ui:style>
|
||||
<g:HTMLPanel>
|
||||
<g:FocusPanel ui:field="settingsButton" styleName="{style.settings_button}"></g:FocusPanel>
|
||||
<g:Image ui:field="settingsButtonImage" styleName="{style.settings_button_image}"></g:Image>
|
||||
<g:FocusPanel ui:field="settingsButton" styleName="{style.settings_button}">
|
||||
<g:Image ui:field="settingsButtonImage" styleName="{style.settings_button_image}"></g:Image>
|
||||
</g:FocusPanel>
|
||||
<g:Label ui:field="settingsIndicationLabel" styleName="{style.settings_indication_label}"></g:Label>
|
||||
</g:HTMLPanel>
|
||||
</ui:UiBinder>
|
||||
@@ -24,9 +24,9 @@ import com.google.gwt.user.client.ui.RootPanel;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.dashboards.gwt.client.RibDashboardImageResources;
|
||||
import com.sap.sailing.dashboards.gwt.client.RibDashboardServiceAsync;
|
||||
import com.sap.sailing.dashboards.gwt.client.bottomnotification.BottomNotification;
|
||||
import com.sap.sailing.dashboards.gwt.client.bottomnotification.BottomNotificationClickListener;
|
||||
import com.sap.sailing.dashboards.gwt.client.bottomnotification.BottomNotificationType;
|
||||
import com.sap.sailing.dashboards.gwt.client.notifications.BottomNotification;
|
||||
import com.sap.sailing.dashboards.gwt.client.notifications.BottomNotificationClickListener;
|
||||
import com.sap.sailing.dashboards.gwt.client.notifications.BottomNotificationType;
|
||||
import com.sap.sailing.dashboards.gwt.client.popups.competitorselection.CompetitorSelectionListener;
|
||||
import com.sap.sailing.dashboards.gwt.client.popups.competitorselection.CompetitorSelectionPopup;
|
||||
import com.sap.sailing.dashboards.gwt.client.popups.competitorselection.SettingsButtonWithSelectionIndicationLabel;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.sap.sailing.dashboards.gwt.client.startlineadvantage;
|
||||
|
||||
import com.google.gwt.i18n.client.NumberFormat;
|
||||
import com.sap.sailing.dashboards.gwt.client.RibDashboardDataRetriever;
|
||||
import com.sap.sailing.dashboards.gwt.client.RibDashboardDataRetrieverListener;
|
||||
import com.sap.sailing.dashboards.gwt.client.dataretriever.RibDashboardDataRetriever;
|
||||
import com.sap.sailing.dashboards.gwt.client.dataretriever.RibDashboardDataRetrieverListener;
|
||||
import com.sap.sailing.dashboards.gwt.client.startanalysis.StartlineAdvantageType;
|
||||
import com.sap.sailing.dashboards.gwt.shared.dto.RibDashboardRaceInfoDTO;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
@CHARSET "UTF-8";
|
||||
|
||||
.blurred {
|
||||
-webkit-filter: blur(10pt) brightness(0.92);
|
||||
filter: blur(10pt) brightness(0.92);
|
||||
}
|
||||
|
||||
.not_blurred {
|
||||
-webkit-filter: blur(0pt) brightness(1);
|
||||
filter: blur(0pt) brightness(1);
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.sap.sailing.dashboards.gwt.client.visualeffects;
|
||||
|
||||
import com.google.gwt.core.shared.GWT;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
|
||||
|
||||
public class BlurEffect {
|
||||
|
||||
private static BlurEffect INSTANCE = null;
|
||||
private VisualEffectsResources visualEffectsResources = GWT.create(VisualEffectsResources.class);
|
||||
|
||||
private BlurEffect() {
|
||||
visualEffectsResources.blurEffectStyle().ensureInjected();
|
||||
}
|
||||
|
||||
public static BlurEffect getInstance() {
|
||||
synchronized (BlurEffect.class) {
|
||||
if (INSTANCE == null) {
|
||||
INSTANCE = new BlurEffect();
|
||||
}
|
||||
}
|
||||
return INSTANCE;
|
||||
}
|
||||
|
||||
public void addToView(Widget widget){
|
||||
widget.removeStyleName(visualEffectsResources.blurEffectStyle().not_blurred());
|
||||
widget.addStyleName(visualEffectsResources.blurEffectStyle().blurred());
|
||||
}
|
||||
|
||||
public void removeFromView(Widget widget){
|
||||
widget.removeStyleName(visualEffectsResources.blurEffectStyle().blurred());
|
||||
widget.addStyleName(visualEffectsResources.blurEffectStyle().not_blurred());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.sap.sailing.dashboards.gwt.client.visualeffects;
|
||||
|
||||
import com.google.gwt.resources.client.CssResource;
|
||||
import com.google.gwt.resources.client.CssResource.Shared;
|
||||
|
||||
@Shared
|
||||
public interface BlurEffectStyle extends CssResource{
|
||||
|
||||
public String blurred();
|
||||
|
||||
public String not_blurred();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.sap.sailing.dashboards.gwt.client.visualeffects;
|
||||
|
||||
import com.google.gwt.resources.client.ClientBundle;
|
||||
|
||||
public interface VisualEffectsResources extends ClientBundle{
|
||||
|
||||
@Source("BlurEffect.css")
|
||||
BlurEffectStyle blurEffectStyle();
|
||||
}
|
||||
@@ -26,6 +26,8 @@ import org.moxieapps.gwt.highcharts.client.plotOptions.BarPlotOptions;
|
||||
import org.moxieapps.gwt.highcharts.client.plotOptions.Marker;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.core.client.Scheduler;
|
||||
import com.google.gwt.core.client.Scheduler.ScheduledCommand;
|
||||
import com.google.gwt.event.dom.client.ClickEvent;
|
||||
import com.google.gwt.resources.client.CssResource;
|
||||
import com.google.gwt.uibinder.client.UiBinder;
|
||||
@@ -90,8 +92,8 @@ public class VerticalWindChart extends Composite implements HasWidgets {
|
||||
initWidget(uiBinder.createAndBindUi(this));
|
||||
}
|
||||
|
||||
public @UiConstructor VerticalWindChart(String positiveFillColor, String negativeFillColor) {
|
||||
initVerticalWindChartWithColors(positiveFillColor, negativeFillColor);
|
||||
public @UiConstructor VerticalWindChart(String positiveFillColorAsHex, String negativeFillColorAsHex) {
|
||||
initVerticalWindChartWithColors(positiveFillColorAsHex, negativeFillColorAsHex);
|
||||
initWidget(uiBinder.createAndBindUi(this));
|
||||
}
|
||||
|
||||
@@ -175,18 +177,24 @@ public class VerticalWindChart extends Composite implements HasWidgets {
|
||||
* {@link #setXAxisExtremesForSeriesPointRangeIsSmallerThanChartDisplayIntervall()} and
|
||||
* {@link #setXAxisExtremesForSeriesPointRangeIsBiggerThanChartDisplayIntervall()}.
|
||||
* */
|
||||
public void addPointsToSeriesWithAverage(Point[] points, double average) {
|
||||
if (verticalWindChartSeries == null) {
|
||||
initVerticalWindChartSeries();
|
||||
verticalWindChartSeries.setPoints(points, true);
|
||||
} else {
|
||||
for (Point point : points) {
|
||||
verticalWindChartSeries.addPoint(point, true, false, false);
|
||||
public void addPointsToSeriesWithAverage(final Point[] points, final double average) {
|
||||
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
|
||||
|
||||
@Override
|
||||
public void execute() {
|
||||
if (verticalWindChartSeries == null) {
|
||||
initVerticalWindChartSeries();
|
||||
verticalWindChartSeries.setPoints(points, true);
|
||||
} else {
|
||||
for (Point point : points) {
|
||||
verticalWindChartSeries.addPoint(point, true, false, false);
|
||||
}
|
||||
}
|
||||
verticalWindChartSeries.updateThreshold("" + average);
|
||||
adaptVerticalWindChartExtemes();
|
||||
verticalWindChart.setSizeToMatchContainer();
|
||||
}
|
||||
}
|
||||
verticalWindChartSeries.updateThreshold("" + average);
|
||||
adaptVerticalWindChartExtemes();
|
||||
verticalWindChart.setSizeToMatchContainer();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -194,23 +202,7 @@ public class VerticalWindChart extends Composite implements HasWidgets {
|
||||
* interval or not. So there are two cases where the extreme points of the x-axis get calculated differently.
|
||||
* */
|
||||
private void adaptVerticalWindChartExtemes() {
|
||||
if (getVerticalWindChartSeriesPointsTimeRangeInMilliseconds() < chartIntervallinMinutes * 60 * 1000) {
|
||||
setXAxisExtremesForSeriesPointRangeIsSmallerThanChartDisplayIntervall();
|
||||
} else {
|
||||
setXAxisExtremesForSeriesPointRangeIsBiggerThanChartDisplayIntervall();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* When the time range of the series points is smaller than the current selected display interval represented by
|
||||
* either LARGE_DISPLAY_INTERVALL_IN_MINUTES or SMALL_DISPLAY_INTERVALL_IN_MINUTES the x-axis extremes min value is
|
||||
* the the first points time and the maximum value the min value plus the selected display interval. The chart gets
|
||||
* other extremes, because the values fit easily into the selected display interval.
|
||||
* */
|
||||
private void setXAxisExtremesForSeriesPointRangeIsSmallerThanChartDisplayIntervall() {
|
||||
long minimumExtremeValueInMillis = getFirstPointOfVerticalWindChartSeries().getX().longValue();
|
||||
long maximumExtremeValueInMillis = minimumExtremeValueInMillis + chartIntervallinMinutes * 60 * 1000;
|
||||
verticalWindChart.getXAxis().setExtremes(minimumExtremeValueInMillis, maximumExtremeValueInMillis, true, true);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -220,29 +212,11 @@ public class VerticalWindChart extends Composite implements HasWidgets {
|
||||
* gets other extremes, because the values do not fit anymore into the selected display interval.
|
||||
* */
|
||||
private void setXAxisExtremesForSeriesPointRangeIsBiggerThanChartDisplayIntervall() {
|
||||
long maximumExtremeValueInMillis = getLastPointOfVerticalWindChartSeries().getX().longValue();
|
||||
long minimumExtremeValueInMillis = maximumExtremeValueInMillis - chartIntervallinMinutes * 60 * 1000;
|
||||
verticalWindChart.getXAxis().setExtremes(minimumExtremeValueInMillis, maximumExtremeValueInMillis, true, true);
|
||||
long maximumExtremeValueInMillis = getLastPointOfVerticalWindChartSeries().getX().longValue();
|
||||
long minimumExtremeValueInMillis = maximumExtremeValueInMillis - chartIntervallinMinutes * 60 * 1000;
|
||||
verticalWindChart.getXAxis().setExtremes(minimumExtremeValueInMillis, maximumExtremeValueInMillis, true, true);
|
||||
}
|
||||
|
||||
private long getVerticalWindChartSeriesPointsTimeRangeInMilliseconds() {
|
||||
Point[] seriesPoints = verticalWindChartSeries.getPoints();
|
||||
long pointRangeInMilliseconds;
|
||||
int seriesPointsLenght = seriesPoints.length;
|
||||
if (seriesPointsLenght > 0 && seriesPoints[0].getX() != null) {
|
||||
long earliesPointAsTimestamp = seriesPoints[0].getX().longValue();
|
||||
long latestPointAsTimestamp;
|
||||
if (seriesPointsLenght > 1) {
|
||||
latestPointAsTimestamp = seriesPoints[seriesPointsLenght - 1].getX().longValue();
|
||||
} else {
|
||||
latestPointAsTimestamp = earliesPointAsTimestamp;
|
||||
}
|
||||
pointRangeInMilliseconds = latestPointAsTimestamp - earliesPointAsTimestamp;
|
||||
} else {
|
||||
pointRangeInMilliseconds = 0;
|
||||
}
|
||||
return pointRangeInMilliseconds;
|
||||
}
|
||||
|
||||
private Point getLastPointOfVerticalWindChartSeries() {
|
||||
Point lastPointOfVerticalWindChartSeries = null;
|
||||
@@ -256,16 +230,6 @@ public class VerticalWindChart extends Composite implements HasWidgets {
|
||||
return lastPointOfVerticalWindChartSeries;
|
||||
}
|
||||
|
||||
private Point getFirstPointOfVerticalWindChartSeries() {
|
||||
Point firstPointOfVerticalWindChartSeries = null;
|
||||
Point[] seriesPoints = verticalWindChartSeries.getPoints();
|
||||
int seriesPointsLenght = seriesPoints.length;
|
||||
if (seriesPointsLenght > 0) {
|
||||
firstPointOfVerticalWindChartSeries = seriesPoints[0];
|
||||
}
|
||||
return firstPointOfVerticalWindChartSeries;
|
||||
}
|
||||
|
||||
public void addVerticalWindChartClickListener(VerticalWindChartClickListener verticalWindChartClickListener) {
|
||||
verticalWindChartClickListeners.add(verticalWindChartClickListener);
|
||||
}
|
||||
@@ -291,8 +255,13 @@ public class VerticalWindChart extends Composite implements HasWidgets {
|
||||
} else {
|
||||
chartIntervallinMinutes = SMALL_DISPLAY_INTERVALL_IN_MINUTES;
|
||||
}
|
||||
adaptVerticalWindChartExtemes();
|
||||
notifyVerticalWindChartClickListeners(chartIntervallinMinutes);
|
||||
Scheduler.get().scheduleFinally(new ScheduledCommand() {
|
||||
|
||||
@Override
|
||||
public void execute() {
|
||||
adaptVerticalWindChartExtemes();
|
||||
notifyVerticalWindChartClickListeners(chartIntervallinMinutes);
|
||||
}});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -15,8 +15,8 @@ import com.google.gwt.user.client.ui.Composite;
|
||||
import com.google.gwt.user.client.ui.HTMLPanel;
|
||||
import com.google.gwt.user.client.ui.HasWidgets;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.dashboards.gwt.client.RibDashboardDataRetrieverListener;
|
||||
import com.sap.sailing.dashboards.gwt.client.WindBotDataRetrieverListener;
|
||||
import com.sap.sailing.dashboards.gwt.client.dataretriever.RibDashboardDataRetrieverListener;
|
||||
import com.sap.sailing.dashboards.gwt.client.dataretriever.WindBotDataRetrieverListener;
|
||||
import com.sap.sailing.dashboards.gwt.client.startlineadvantage.LiveAverageComponent;
|
||||
import com.sap.sailing.dashboards.gwt.client.windchart.compass.LocationPointerCompass;
|
||||
import com.sap.sailing.dashboards.gwt.shared.MovingAverage;
|
||||
@@ -85,14 +85,14 @@ public class WindBotComponent extends Composite implements HasWidgets, WindBotDa
|
||||
* One of two {@link VerticalWindChart}s that shows the wind fixes speed measured by the wind bot in a chart
|
||||
* vertically.
|
||||
* */
|
||||
@UiField
|
||||
@UiField(provided = true)
|
||||
public VerticalWindChart trueWindSpeedVerticalWindChart;
|
||||
|
||||
/**
|
||||
* One of two {@link VerticalWindChart}s that shows the wind fixes direction measured by the wind bot in a chart
|
||||
* vertically.
|
||||
* */
|
||||
@UiField
|
||||
@UiField(provided = true)
|
||||
public VerticalWindChart trueWindDirectionVerticalWindChart;
|
||||
|
||||
/**
|
||||
@@ -104,6 +104,7 @@ public class WindBotComponent extends Composite implements HasWidgets, WindBotDa
|
||||
|
||||
private String windBotId;
|
||||
private StringMessages stringConstants;
|
||||
private final static String UNIT_WIND_DIRECTION = "°";
|
||||
|
||||
public WindBotComponent(String windBotId) {
|
||||
this.windBotId = windBotId;
|
||||
@@ -119,7 +120,9 @@ public class WindBotComponent extends Composite implements HasWidgets, WindBotDa
|
||||
movingAverageSpeed = new MovingAverage(500);
|
||||
movingAverageDirection = new MovingAverage(500);
|
||||
trueWindSpeedLiveAverageComponent = new LiveAverageComponent(stringConstants.dashboardTrueWindSpeed(), stringConstants.dashboardTrueWindSpeedUnit());
|
||||
trueWindDirectionLiveAverageComponent = new LiveAverageComponent(stringConstants.dashboardTrueWindDirection(), stringConstants.dashboardTrueWindDirectionUnit());
|
||||
trueWindDirectionLiveAverageComponent = new LiveAverageComponent(stringConstants.dashboardTrueWindDirection(), UNIT_WIND_DIRECTION);
|
||||
trueWindSpeedVerticalWindChart = new VerticalWindChart("#008FFF", "#6ADBFF");
|
||||
trueWindDirectionVerticalWindChart = new VerticalWindChart("#008FFF", "#6ADBFF");
|
||||
initWidget(uiBinder.createAndBindUi(this));
|
||||
windBotNamePanel.getElement().setInnerText(stringConstants.dashboardWindBot()+" "+ windBotId);
|
||||
trueWindSpeedVerticalWindChart.addVerticalWindChartClickListener(trueWindSpeedLiveAverageComponent);
|
||||
@@ -197,16 +200,16 @@ public class WindBotComponent extends Composite implements HasWidgets, WindBotDa
|
||||
Point[] points = new Point[windFixes.size()];
|
||||
int counter = 0;
|
||||
if (windtype.equals(WindType.DIRECTION)) {
|
||||
Point previouspoint = new Point(windFixes.get(0).requestTimepoint, windFixes.get(0).trueWindBearingDeg);
|
||||
Point previouspoint = new Point(windFixes.get(0).requestTimepoint, windFixes.get(0).trueWindFromDeg);
|
||||
for (WindDTO windDTO : windFixes) {
|
||||
double nextSinusValue = 0;
|
||||
if (inSimulationMode == true) {
|
||||
nextSinusValue = directionSinWave.getNexNumber();
|
||||
}
|
||||
points[counter] = new Point(windDTO.requestTimepoint, windDTO.trueWindBearingDeg + nextSinusValue);
|
||||
points[counter] = new Point(windDTO.requestTimepoint, windDTO.trueWindFromDeg + nextSinusValue);
|
||||
points[counter] = adaptWindDirectionPointToStayCloseToLastPoint(previouspoint, points[counter]);
|
||||
previouspoint = points[counter];
|
||||
movingAverageDirection.add(windDTO.trueWindBearingDeg + nextSinusValue);
|
||||
movingAverageDirection.add(windDTO.trueWindFromDeg + nextSinusValue);
|
||||
counter++;
|
||||
}
|
||||
} else if (windtype.equals(WindType.SPEED)) {
|
||||
|
||||
@@ -23,14 +23,12 @@
|
||||
<g:HTMLPanel
|
||||
styleName="{style.wind_bot_component_windchart_container} {style.wind_bot_component_left}">
|
||||
<windchart:VerticalWindChart ui:field="trueWindSpeedVerticalWindChart"
|
||||
styleName="{style.wind_bot_component_windchart}" positiveFillColor="#008FFF"
|
||||
negativeFillColor="#6ADBFF"></windchart:VerticalWindChart>
|
||||
styleName="{style.wind_bot_component_windchart}"></windchart:VerticalWindChart>
|
||||
</g:HTMLPanel>
|
||||
<g:HTMLPanel
|
||||
styleName="{style.wind_bot_component_windchart_container} {style.wind_bot_component_right}">
|
||||
<windchart:VerticalWindChart ui:field="trueWindDirectionVerticalWindChart"
|
||||
styleName="{style.wind_bot_component_windchart}" positiveFillColor="#008FFF"
|
||||
negativeFillColor="#6ADBFF"></windchart:VerticalWindChart>
|
||||
styleName="{style.wind_bot_component_windchart}"></windchart:VerticalWindChart>
|
||||
</g:HTMLPanel>
|
||||
<g:HTMLPanel styleName="{style.wind_bot_component_compass_container}">
|
||||
<compass:LocationPointerCompass
|
||||
|
||||
@@ -9,8 +9,10 @@ import com.sap.sailing.dashboards.gwt.client.device.Location;
|
||||
import com.sap.sailing.dashboards.gwt.client.device.LocationListener;
|
||||
import com.sap.sailing.dashboards.gwt.client.device.Orientation;
|
||||
import com.sap.sailing.dashboards.gwt.client.device.OrientationListener;
|
||||
import com.sap.sailing.dashboards.gwt.client.device.OrientationType;
|
||||
import com.sap.sailing.domain.common.Position;
|
||||
import com.sap.sailing.domain.common.impl.DegreePosition;
|
||||
import com.sap.sse.common.Util.Pair;
|
||||
|
||||
/**
|
||||
* The classes task is to notify its listeners about changes in distance and angle from the actual device to a pointed
|
||||
@@ -137,7 +139,7 @@ public class LocationPointerCompassAngleDistance implements LocationListener, Co
|
||||
}
|
||||
|
||||
@Override
|
||||
public void orientationChanged(double orintationHeading) {
|
||||
setAngleOffsetAtListeners(orintationHeading);
|
||||
public void orientationChanged(Pair<OrientationType, Double> orientation) {
|
||||
setAngleOffsetAtListeners(orientation.getB().doubleValue());
|
||||
}
|
||||
}
|
||||
@@ -6,24 +6,49 @@ import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.Waypoint;
|
||||
import com.sap.sailing.domain.tracking.MarkPassing;
|
||||
import com.sap.sailing.domain.tracking.TrackedRace;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
|
||||
public abstract class AbstractStartAnalysisCreationValidator {
|
||||
|
||||
private static int MINIMUM_NUMBER_COMPETITORS_FOR_STARTANALYSIS = 3;
|
||||
private static int MINIMUM_MARKPASSIINGS_AT_FIRST_MARK = 3;
|
||||
private static long MINIMUM_RACE_PROGRESSION_IN_MILLISECONDS = 6*60*1000;
|
||||
|
||||
protected boolean threeCompetitorsPassedSecondWayPoint(TrackedRace trackedRace){
|
||||
Waypoint secondWaypoint = trackedRace.getRace().getCourse().getFirstLeg().getTo();
|
||||
Iterator<MarkPassing> markPassingsInOrder = trackedRace.getMarkPassingsInOrder(secondWaypoint).iterator();
|
||||
int counter = 0;
|
||||
while (markPassingsInOrder.hasNext()) {
|
||||
int markPassingsCounter = 0;
|
||||
while (markPassingsInOrder.hasNext() && markPassingsCounter < MINIMUM_MARKPASSIINGS_AT_FIRST_MARK) {
|
||||
markPassingsInOrder.next();
|
||||
counter ++;
|
||||
markPassingsCounter ++;
|
||||
}
|
||||
return counter >= MINIMUM_NUMBER_COMPETITORS_FOR_STARTANALYSIS ? true : false;
|
||||
return markPassingsCounter >= MINIMUM_MARKPASSIINGS_AT_FIRST_MARK ? true : false;
|
||||
}
|
||||
|
||||
protected boolean competitorPassedSecondWayPoint(Competitor competitor, TrackedRace trackedRace){
|
||||
private boolean competitorPassedSecondWayPoint(Competitor competitor, TrackedRace trackedRace){
|
||||
Waypoint secondWaypoint = trackedRace.getRace().getCourse().getFirstLeg().getTo();
|
||||
return trackedRace.getMarkPassing(competitor, secondWaypoint) == null ? false : true;
|
||||
}
|
||||
|
||||
private boolean gateStartGolfFlagIsDown(TrackedRace trackedRace){
|
||||
if(trackedRace.getGateStartGolfDownTime() != 0){
|
||||
return true;
|
||||
}else{
|
||||
TimePoint timeStartOfRace = trackedRace.getStartOfRace();
|
||||
TimePoint timeNewestEvent = trackedRace.getTimePointOfNewestEvent();
|
||||
if(timeStartOfRace != null && timeNewestEvent != null){
|
||||
if(timeStartOfRace.asMillis()+MINIMUM_RACE_PROGRESSION_IN_MILLISECONDS > timeNewestEvent.asMillis()){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
protected boolean raceProgressedFarEnough(Competitor competitor, TrackedRace trackedRace){
|
||||
if(trackedRace.isGateStart()){
|
||||
return gateStartGolfFlagIsDown(trackedRace);
|
||||
}else{
|
||||
return competitorPassedSecondWayPoint(competitor, trackedRace);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -21,7 +21,7 @@ public class StartAnalysisCreationController extends AbstractStartAnalysisCreati
|
||||
public StartAnalysisDTO checkStartAnalysisForCompetitorInTrackedRace(Competitor competitor, TrackedRace trackedRace) {
|
||||
StartAnalysisDTO startAnalysisDTO;
|
||||
if (threeCompetitorsPassedSecondWayPoint(trackedRace) &&
|
||||
competitorPassedSecondWayPoint(competitor, trackedRace))
|
||||
raceProgressedFarEnough(competitor, trackedRace))
|
||||
{
|
||||
logger.log(Level.INFO, "Trigger StartAnalysisDTO creation");
|
||||
startAnalysisDTO = startAnalysisDTOFactory.createStartAnalysisForCompetitorAndTrackedRace(competitor, trackedRace);
|
||||
|
||||
@@ -34,6 +34,7 @@ public class StartAnalysisDTOFactory extends AbstractStartAnalysisCreationValida
|
||||
|
||||
private static int MINIMUM_NUMBER_COMPETITORS_FOR_STARTANALYSIS = 3;
|
||||
private static int DEFAULT_GATE_START_INTERVALL_IN_MILLISECONDS = 5*60*1000;
|
||||
private static int ONE_MINUTE_INTERVALL_IN_MILLISECONDS = 60*1000;
|
||||
|
||||
private static final Logger logger = Logger.getLogger(StartAnalysisDTOFactory.class.getName());
|
||||
|
||||
@@ -72,7 +73,6 @@ public class StartAnalysisDTOFactory extends AbstractStartAnalysisCreationValida
|
||||
if (trackedRace.isGateStart()) {
|
||||
logger.log(Level.INFO, "IS GATESTART");
|
||||
startAnalysisDTO.racingProcedureType = RacingProcedureType.GateStart;
|
||||
// Waypoint startLineWaypoint = trackedRace.getStartLine(trackedRace.getStartOfRace()).getWaypoint();
|
||||
long timePointOfGolfDownTime = trackedRace.getGateStartGolfDownTime();
|
||||
startAnalysisDTO.timeOfStartInMilliSeconds = trackedRace.getStartOfRace().asMillis();
|
||||
if(timePointOfGolfDownTime < trackedRace.getStartOfRace().asMillis() || timePointOfGolfDownTime == 0){
|
||||
@@ -83,6 +83,7 @@ public class StartAnalysisDTOFactory extends AbstractStartAnalysisCreationValida
|
||||
} else {
|
||||
startAnalysisDTO.racingProcedureType = RacingProcedureType.ESS;
|
||||
startAnalysisDTO.timeOfStartInMilliSeconds = trackedRace.getStartOfRace().asMillis();
|
||||
startAnalysisDTO.tailLenghtInMilliseconds = ONE_MINUTE_INTERVALL_IN_MILLISECONDS;
|
||||
}
|
||||
startAnalysisDTO.regattaAndRaceIdentifier = trackedRace.getRaceIdentifier();
|
||||
logger.log(Level.INFO, "Created StartAnalysis For Competitor " + competitor.getName() + " and "+ trackedRace.getRace().getName());
|
||||
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
@@ -2,9 +2,9 @@ package com.sap.sailing.datamining.data;
|
||||
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.tracking.TrackedLegOfCompetitor;
|
||||
import com.sap.sse.datamining.shared.Unit;
|
||||
import com.sap.sse.datamining.shared.annotations.Connector;
|
||||
import com.sap.sse.datamining.shared.annotations.Statistic;
|
||||
import com.sap.sse.datamining.shared.data.Unit;
|
||||
|
||||
public interface HasTrackedLegOfCompetitorContext {
|
||||
|
||||
|
||||
@@ -4,8 +4,8 @@ import java.io.Serializable;
|
||||
|
||||
import com.sap.sse.common.Duration;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
import com.sap.sse.datamining.shared.Unit;
|
||||
import com.sap.sse.datamining.shared.annotations.Statistic;
|
||||
import com.sap.sse.datamining.shared.data.Unit;
|
||||
|
||||
/**
|
||||
* A speed, convertible in various units of measure. Can be negative.
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package com.sap.sailing.domain.base;
|
||||
|
||||
import java.net.URI;
|
||||
|
||||
import com.sap.sse.common.Color;
|
||||
|
||||
public interface CompetitorChangeListener extends BoatChangeListener, NationalityChangeListener {
|
||||
@@ -8,4 +10,6 @@ public interface CompetitorChangeListener extends BoatChangeListener, Nationalit
|
||||
void nameChanged(String oldName, String newName);
|
||||
|
||||
void emailChanged(String oldEmail, String newEmail);
|
||||
|
||||
void flagImageChanged(URI oldFlagImageURI, URI newFlagImageURI);
|
||||
}
|
||||
@@ -145,6 +145,12 @@ public class CompetitorImpl implements DynamicCompetitor {
|
||||
|
||||
@Override
|
||||
public void setFlagImage(URI flagImage) {
|
||||
final URI oldFlagImage = this.flagImage;
|
||||
this.flagImage = flagImage;
|
||||
if (!Util.equalsWithNull(oldFlagImage, flagImage)) {
|
||||
for (CompetitorChangeListener listener : getListeners()) {
|
||||
listener.flagImageChanged(oldFlagImage, flagImage);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -7,6 +7,8 @@ import static org.junit.Assert.assertSame;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
@@ -45,6 +47,12 @@ public class CompetitorListenerTest extends AbstractSerializationTest {
|
||||
private Color newColor;
|
||||
private DynamicCompetitor competitor;
|
||||
private DomainFactoryImpl baseDomainFactory;
|
||||
private boolean emailChanged;
|
||||
private String oldEmail;
|
||||
private String newEmail;
|
||||
private boolean flagImageChanged;
|
||||
private URI oldFlagImageURL;
|
||||
private URI newFlagImageURL;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
@@ -63,6 +71,12 @@ public class CompetitorListenerTest extends AbstractSerializationTest {
|
||||
colorChanged = false;
|
||||
oldColor = null;
|
||||
newColor = null;
|
||||
emailChanged = false;
|
||||
oldEmail = null;
|
||||
newEmail = null;
|
||||
flagImageChanged = false;
|
||||
oldFlagImageURL = null;
|
||||
newFlagImageURL = null;
|
||||
listener = new CompetitorChangeListener() {
|
||||
private static final long serialVersionUID = 4581029778988240209L;
|
||||
|
||||
@@ -97,7 +111,16 @@ public class CompetitorListenerTest extends AbstractSerializationTest {
|
||||
|
||||
@Override
|
||||
public void emailChanged(String oldEmail, String newEmail) {
|
||||
//TODO
|
||||
emailChanged = true;
|
||||
CompetitorListenerTest.this.oldEmail = oldEmail;
|
||||
CompetitorListenerTest.this.newEmail = newEmail;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void flagImageChanged(URI oldFlagImageURL, URI newFlagImageURL) {
|
||||
flagImageChanged = true;
|
||||
CompetitorListenerTest.this.oldFlagImageURL = oldFlagImageURL;
|
||||
CompetitorListenerTest.this.newFlagImageURL = newFlagImageURL;
|
||||
}
|
||||
};
|
||||
competitor.addCompetitorChangeListener(listener);
|
||||
@@ -126,6 +149,22 @@ public class CompetitorListenerTest extends AbstractSerializationTest {
|
||||
assertFalse(nationalityChanged);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFlagChange() throws URISyntaxException {
|
||||
competitor.setFlagImage(new URI("http://www.something.de/pic.png"));
|
||||
assertTrue(flagImageChanged);
|
||||
assertNull(oldFlagImageURL);
|
||||
assertEquals(new URI("http://www.something.de/pic.png"), newFlagImageURL);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEmailChange() throws URISyntaxException {
|
||||
competitor.setEmail("hasso.plattner@sap.com");
|
||||
assertTrue(emailChanged);
|
||||
assertNull(oldEmail);
|
||||
assertEquals("hasso.plattner@sap.com", newEmail);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSimpleCompetitorListenerPatternForSailId() {
|
||||
final String myOldSailId = competitor.getBoat().getSailID();
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.sap.sailing.domain.leaderboard;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
@@ -121,7 +122,11 @@ public class LeaderboardCacheManager {
|
||||
public void emailChanged(String oldEmail, String newEmail) {
|
||||
//ignore (email not shown in leaderboard)
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void flagImageChanged(URI oldFlagImageURL, URI newFlagImageURL) {
|
||||
removeFromCache(leaderboard);
|
||||
}
|
||||
}
|
||||
|
||||
private class CacheInvalidationUponScoreCorrectionListener implements ScoreCorrectionListener {
|
||||
|
||||
@@ -2773,7 +2773,7 @@ public abstract class TrackedRaceImpl extends TrackedRaceWithWindEssentials impl
|
||||
} else {
|
||||
result = new Pair<Double, Double>(averageAngleInDegMinusThreshold, average.getConfidence());
|
||||
}
|
||||
} catch (NotEnoughDataHasBeenAddedException e) {
|
||||
} catch (NotEnoughDataHasBeenAddedException | IllegalArgumentException e) {
|
||||
result = new Pair<Double, Double>(defaultAngle, 0.1);
|
||||
}
|
||||
} else {
|
||||
@@ -3481,13 +3481,12 @@ public abstract class TrackedRaceImpl extends TrackedRaceWithWindEssentials impl
|
||||
@Override
|
||||
public long getGateStartGolfDownTime() {
|
||||
long result = 0;
|
||||
if (isGateStart()) {
|
||||
Boolean isGateStart = isGateStart();
|
||||
if (isGateStart != null && isGateStart.booleanValue() == true) {
|
||||
for (RaceLog raceLog : attachedRaceLogs.values()) {
|
||||
raceLog.lockForRead();
|
||||
for(RaceLogEvent raceLogEvent: raceLog.getRawFixes()) {
|
||||
logger.log(Level.INFO, ""+raceLogEvent.getClass().getName());
|
||||
if(raceLogEvent.getClass().equals(RaceLogGateLineOpeningTimeEventImpl.class)){
|
||||
logger.log(Level.INFO, "GOT RIGHT EVENT"+raceLogEvent.getClass().getName());
|
||||
RaceLogGateLineOpeningTimeEvent raceLogGateLineOpeningTimeEvent = (RaceLogGateLineOpeningTimeEvent) raceLogEvent;
|
||||
result = raceLogGateLineOpeningTimeEvent.getGateLineOpeningTimes().getGolfDownTime();
|
||||
}
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
eclipse.preferences.version=1
|
||||
encoding//src/main/java/com/sap/sailing/gwt/common/client/i18n/TextMessages.properties=UTF-8
|
||||
encoding//src/main/java/com/sap/sailing/gwt/common/client/i18n/TextMessages_cn.properties=UTF-8
|
||||
encoding//src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties=UTF-8
|
||||
encoding//src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_cn.properties=UTF-8
|
||||
encoding//src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties=UTF-8
|
||||
encoding//src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ru.properties=UTF-8
|
||||
@@ -42,8 +42,8 @@
|
||||
<script type="text/javascript" src="highcharts/js/themes/grid.js"></script>
|
||||
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="js/jquery.slick/slick-1.3.15.css"/>
|
||||
<script type="text/javascript" src="js/jquery.slick/slick-1.3.15.min.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="js/jquery.slick/slick-1.5.0.css"/>
|
||||
<script type="text/javascript" src="js/jquery.slick/slick-1.5.0.min.js"></script>
|
||||
|
||||
</head>
|
||||
|
||||
|
||||
@@ -46,7 +46,8 @@ Require-Bundle: com.sap.sailing.domain,
|
||||
com.sap.sse,
|
||||
com.sap.sse.security.common,
|
||||
com.sap.sse.filestorage,
|
||||
org.apache.shiro.core;bundle-version="1.2.2"
|
||||
org.apache.shiro.core;bundle-version="1.2.2",
|
||||
com.sap.sse.gwt.theme
|
||||
Bundle-Activator: com.sap.sailing.gwt.ui.server.Activator
|
||||
Bundle-ActivationPolicy: lazy
|
||||
Import-Package: javax.jms;version="1.1.0",
|
||||
|
||||
@@ -1,76 +1,77 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<launchConfiguration type="com.google.gdt.eclipse.suite.webapp">
|
||||
<booleanAttribute key="com.google.gdt.eclipse.core.RUN_SERVER" value="false"/>
|
||||
<stringAttribute key="com.google.gdt.eclipse.suiteMainTypeProcessor.PREVIOUSLY_SET_MAIN_TYPE_NAME" value="com.google.gwt.dev.GWTShell"/>
|
||||
<booleanAttribute key="com.google.gdt.eclipse.suiteWarArgumentProcessor.IS_WAR_FROM_PROJECT_PROPERTIES" value="true"/>
|
||||
<booleanAttribute key="com.google.gwt.eclipse.core.CODE_SERVER_PORT_AUTO" value="true"/>
|
||||
<listAttribute key="com.google.gwt.eclipse.core.ENTRY_POINT_MODULES">
|
||||
<listEntry value="com.sap.sailing.gwt.ui.Simulator"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.Leaderboard"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.PolarSheets"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.RegattaOverview"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.Spectator"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.AdminConsole"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.LeaderboardEditing"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.DataMining"/>
|
||||
<listEntry value="com.sap.sailing.gwt.Home"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.RaceBoard"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.YoutubePopup"/>
|
||||
<listEntry value="com.sap.sailing.gwt.AutoPlay"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.VideoPopup"/>
|
||||
</listAttribute>
|
||||
<booleanAttribute key="com.google.gwt.eclipse.core.SUPERDEVMODE_ENABLED" value="true"/>
|
||||
<stringAttribute key="com.google.gwt.eclipse.core.URL" value="/gwt/Home.html"/>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||
<listEntry value="/com.sap.sailing.gwt.ui"/>
|
||||
</listAttribute>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||
<listEntry value="4"/>
|
||||
</listAttribute>
|
||||
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
|
||||
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
|
||||
<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
|
||||
</listAttribute>
|
||||
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="false"/>
|
||||
<listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry containerPath="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6" javaProject="com.sap.sailing.gwt.ui" path="1" type="4"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.gwt.ui/src/main/resources" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.gwt.ui/src/main/java" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.domain/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.googlecode.java-diff-utils/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.domain.common/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/org.json.simple/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.server/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.domain.tractracadapter/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.expeditionconnector/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.declination/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.declination/resources" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.udpconnector/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.mongodb/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.domain.swisstimingadapter/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.domain.persistence/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.domain.swisstimingadapter.persistence/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.operationaltransformation/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.replication/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.domain.tractracadapter.persistence/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/org.moxieapps.gwt.highcharts/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.geocoding/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.datamining.shared/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.common/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.datamining.shared/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.gwt/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.google.gwt.osgi/lib/gwt-user.jar" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry id="org.eclipse.jdt.launching.classpathentry.defaultClasspath"> <memento exportedEntriesOnly="false" project="com.sap.sailing.gwt.ui"/> </runtimeClasspathEntry> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.security/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.security.ui/src/main/java" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.gwt.adminconsole/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.security.common/src" path="3" type="2"/> "/>
|
||||
</listAttribute>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="com.google.gwt.eclipse.core.moduleClasspathProvider"/>
|
||||
<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.google.gwt.dev.DevMode"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-superDevMode -incremental -war "${project_loc:com.sap.sailing.gwt.ui}" -noserver -remoteUI "${gwt_remote_ui_server_port}:${unique_id}" -logLevel INFO -codeServerPort auto -startupUrl /gwt/Home.html com.sap.sailing.gwt.Home -startupUrl /gwt/AdminConsole.html com.sap.sailing.gwt.ui.AdminConsole -startupUrl /gwt/LeaderboardEditing.html com.sap.sailing.gwt.ui.LeaderboardEditing -startupUrl /gwt/Leaderboard.html com.sap.sailing.gwt.ui.Leaderboard -startupUrl /gwt/Spectator.html com.sap.sailing.gwt.ui.Spectator -startupUrl /gwt/RaceBoard.html com.sap.sailing.gwt.ui.RaceBoard -startupUrl /gwt/PolarSheets.html com.sap.sailing.gwt.ui.PolarSheets -startupUrl /gwt/RegattaOverview.html com.sap.sailing.gwt.ui.RegattaOverview -startupUrl /gwt/DataMining.html com.sap.sailing.gwt.ui.DataMining -startupUrl /gwt/Simulator.html com.sap.sailing.gwt.ui.Simulator -startupUrl /gwt/VideoPopup.html com.sap.sailing.gwt.ui.VideoPopup com.sap.sailing.gwt.AutoPlay com.sap.sailing.gwt.ui.YoutubePopup com.sap.sailing.gwt.ui.Simulator com.sap.sailing.gwt.ui.Leaderboard com.sap.sailing.gwt.ui.PolarSheets com.sap.sailing.gwt.ui.RegattaOverview com.sap.sailing.gwt.ui.Spectator com.sap.sailing.gwt.ui.AdminConsole com.sap.sailing.gwt.ui.LeaderboardEditing com.sap.sailing.gwt.ui.DataMining com.sap.sailing.gwt.Home com.sap.sailing.gwt.ui.RaceBoard"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="com.sap.sailing.gwt.ui"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms1024m -Xmx3072m"/>
|
||||
</launchConfiguration>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<launchConfiguration type="com.google.gdt.eclipse.suite.webapp">
|
||||
<booleanAttribute key="com.google.gdt.eclipse.core.RUN_SERVER" value="false"/>
|
||||
<stringAttribute key="com.google.gdt.eclipse.suiteMainTypeProcessor.PREVIOUSLY_SET_MAIN_TYPE_NAME" value="com.google.gwt.dev.GWTShell"/>
|
||||
<booleanAttribute key="com.google.gdt.eclipse.suiteWarArgumentProcessor.IS_WAR_FROM_PROJECT_PROPERTIES" value="true"/>
|
||||
<booleanAttribute key="com.google.gwt.eclipse.core.CODE_SERVER_PORT_AUTO" value="true"/>
|
||||
<listAttribute key="com.google.gwt.eclipse.core.ENTRY_POINT_MODULES">
|
||||
<listEntry value="com.sap.sailing.gwt.ui.Simulator"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.Leaderboard"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.PolarSheets"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.RegattaOverview"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.Spectator"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.AdminConsole"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.LeaderboardEditing"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.DataMining"/>
|
||||
<listEntry value="com.sap.sailing.gwt.Home"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.RaceBoard"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.YoutubePopup"/>
|
||||
<listEntry value="com.sap.sailing.gwt.AutoPlay"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.VideoPopup"/>
|
||||
</listAttribute>
|
||||
<booleanAttribute key="com.google.gwt.eclipse.core.SUPERDEVMODE_ENABLED" value="true"/>
|
||||
<stringAttribute key="com.google.gwt.eclipse.core.URL" value="/gwt/Home.html"/>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||
<listEntry value="/com.sap.sailing.gwt.ui"/>
|
||||
</listAttribute>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||
<listEntry value="4"/>
|
||||
</listAttribute>
|
||||
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
|
||||
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
|
||||
<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
|
||||
</listAttribute>
|
||||
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="false"/>
|
||||
<listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry containerPath="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6" javaProject="com.sap.sailing.gwt.ui" path="1" type="4"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.gwt.ui/src/main/resources" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.gwt.ui/src/main/java" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.gwt.theme/src/main/java" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.domain/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.googlecode.java-diff-utils/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.domain.common/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/org.json.simple/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.server/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.domain.tractracadapter/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.expeditionconnector/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.declination/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.declination/resources" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.udpconnector/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.mongodb/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.domain.swisstimingadapter/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.domain.persistence/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.domain.swisstimingadapter.persistence/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.operationaltransformation/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.replication/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.domain.tractracadapter.persistence/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/org.moxieapps.gwt.highcharts/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.geocoding/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.datamining.shared/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.common/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.datamining.shared/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.gwt/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.google.gwt.osgi/lib/gwt-user.jar" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry id="org.eclipse.jdt.launching.classpathentry.defaultClasspath"> <memento exportedEntriesOnly="false" project="com.sap.sailing.gwt.ui"/> </runtimeClasspathEntry> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.security/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.security.ui/src/main/java" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.gwt.adminconsole/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.security.common/src" path="3" type="2"/> "/>
|
||||
</listAttribute>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="com.google.gwt.eclipse.core.moduleClasspathProvider"/>
|
||||
<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.google.gwt.dev.DevMode"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-superDevMode -incremental -war "${project_loc:com.sap.sailing.gwt.ui}" -noserver -remoteUI "${gwt_remote_ui_server_port}:${unique_id}" -logLevel INFO -codeServerPort auto -startupUrl /gwt/Home.html com.sap.sailing.gwt.Home -startupUrl /gwt/AdminConsole.html com.sap.sailing.gwt.ui.AdminConsole -startupUrl /gwt/LeaderboardEditing.html com.sap.sailing.gwt.ui.LeaderboardEditing -startupUrl /gwt/Leaderboard.html com.sap.sailing.gwt.ui.Leaderboard -startupUrl /gwt/Spectator.html com.sap.sailing.gwt.ui.Spectator -startupUrl /gwt/RaceBoard.html com.sap.sailing.gwt.ui.RaceBoard -startupUrl /gwt/PolarSheets.html com.sap.sailing.gwt.ui.PolarSheets -startupUrl /gwt/RegattaOverview.html com.sap.sailing.gwt.ui.RegattaOverview -startupUrl /gwt/DataMining.html com.sap.sailing.gwt.ui.DataMining -startupUrl /gwt/Simulator.html com.sap.sailing.gwt.ui.Simulator -startupUrl /gwt/VideoPopup.html com.sap.sailing.gwt.ui.VideoPopup com.sap.sailing.gwt.AutoPlay com.sap.sailing.gwt.ui.YoutubePopup com.sap.sailing.gwt.ui.Simulator com.sap.sailing.gwt.ui.Leaderboard com.sap.sailing.gwt.ui.PolarSheets com.sap.sailing.gwt.ui.RegattaOverview com.sap.sailing.gwt.ui.Spectator com.sap.sailing.gwt.ui.AdminConsole com.sap.sailing.gwt.ui.LeaderboardEditing com.sap.sailing.gwt.ui.DataMining com.sap.sailing.gwt.Home com.sap.sailing.gwt.ui.RaceBoard"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="com.sap.sailing.gwt.ui"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms1024m -Xmx3072m"/>
|
||||
</launchConfiguration>
|
||||
@@ -1,74 +1,75 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<launchConfiguration type="com.google.gdt.eclipse.suite.webapp">
|
||||
<booleanAttribute key="com.google.gdt.eclipse.core.RUN_SERVER" value="false"/>
|
||||
<stringAttribute key="com.google.gdt.eclipse.suiteMainTypeProcessor.PREVIOUSLY_SET_MAIN_TYPE_NAME" value="com.google.gwt.dev.GWTShell"/>
|
||||
<booleanAttribute key="com.google.gdt.eclipse.suiteWarArgumentProcessor.IS_WAR_FROM_PROJECT_PROPERTIES" value="true"/>
|
||||
<booleanAttribute key="com.google.gwt.eclipse.core.CODE_SERVER_PORT_AUTO" value="true"/>
|
||||
<listAttribute key="com.google.gwt.eclipse.core.ENTRY_POINT_MODULES">
|
||||
<listEntry value="com.sap.sailing.gwt.ui.RaceBoard"/>
|
||||
<listEntry value="com.sap.sailing.gwt.Home"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.DataMining"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.YoutubePopup"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.LeaderboardEditing"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.AdminConsole"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.Spectator"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.RegattaOverview"/>
|
||||
<listEntry value="com.sap.sailing.gwt.AutoPlay"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.VideoPopup"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.PolarSheets"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.Leaderboard"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.Simulator"/>
|
||||
</listAttribute>
|
||||
<stringAttribute key="com.google.gwt.eclipse.core.URL" value="/gwt/Home.html"/>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||
<listEntry value="/com.sap.sailing.gwt.ui"/>
|
||||
</listAttribute>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||
<listEntry value="4"/>
|
||||
</listAttribute>
|
||||
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
|
||||
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
|
||||
<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
|
||||
</listAttribute>
|
||||
<listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry containerPath="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6" javaProject="com.sap.sailing.gwt.ui" path="1" type="4"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.gwt.ui/src/main/resources" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.gwt.ui/src/main/java" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.domain/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.googlecode.java-diff-utils/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.domain.common/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/org.json.simple/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.server/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.domain.tractracadapter/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.expeditionconnector/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.declination/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.declination/resources" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.udpconnector/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.mongodb/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.domain.swisstimingadapter/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.domain.persistence/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.domain.swisstimingadapter.persistence/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.operationaltransformation/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.replication/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.domain.tractracadapter.persistence/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/org.moxieapps.gwt.highcharts/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.geocoding/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.datamining.shared/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.common/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.datamining.shared/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.gwt/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.google.gwt.osgi/lib/gwt-user.jar" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry id="org.eclipse.jdt.launching.classpathentry.defaultClasspath"> <memento exportedEntriesOnly="false" project="com.sap.sailing.gwt.ui"/> </runtimeClasspathEntry> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.security/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.security.ui/src/main/java" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.gwt.adminconsole/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.security.common/src" path="3" type="2"/> "/>
|
||||
</listAttribute>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="com.google.gwt.eclipse.core.moduleClasspathProvider"/>
|
||||
<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.google.gwt.dev.DevMode"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-nosuperDevMode -war "${project_loc:com.sap.sailing.gwt.ui}" -noserver -remoteUI "${gwt_remote_ui_server_port}:${unique_id}" -logLevel INFO -codeServerPort auto -startupUrl /gwt/Home.html com.sap.sailing.gwt.Home -startupUrl /gwt/AdminConsole.html com.sap.sailing.gwt.ui.AdminConsole -startupUrl /gwt/LeaderboardEditing.html com.sap.sailing.gwt.ui.LeaderboardEditing -startupUrl /gwt/Leaderboard.html com.sap.sailing.gwt.ui.Leaderboard -startupUrl /gwt/Spectator.html com.sap.sailing.gwt.ui.Spectator -startupUrl /gwt/RaceBoard.html com.sap.sailing.gwt.ui.RaceBoard -startupUrl /gwt/PolarSheets.html com.sap.sailing.gwt.ui.PolarSheets -startupUrl /gwt/RegattaOverview.html com.sap.sailing.gwt.ui.RegattaOverview -startupUrl /gwt/DataMining.html com.sap.sailing.gwt.ui.DataMining -startupUrl /gwt/Simulator.html com.sap.sailing.gwt.ui.Simulator -startupUrl /gwt/VideoPopup.html com.sap.sailing.gwt.ui.VideoPopup -startupUrl /security/ui/Login.html com.sap.sse.security.ui.Login -startupUrl /security/ui/EditProfile.html com.sap.sse.security.ui.EditProfile -startupUrl /security/ui/EmailValidation.html com.sap.sse.security.ui.EmailValidation com.sap.sailing.gwt.ui.Simulator com.sap.sailing.gwt.ui.Leaderboard com.sap.sailing.gwt.ui.PolarSheets com.sap.sailing.gwt.ui.VideoPopup com.sap.sailing.gwt.AutoPlay com.sap.sailing.gwt.ui.RegattaOverview com.sap.sailing.gwt.ui.Spectator com.sap.sailing.gwt.ui.AdminConsole com.sap.sailing.gwt.ui.LeaderboardEditing com.sap.sailing.gwt.ui.YoutubePopup com.sap.sailing.gwt.ui.DataMining com.sap.sailing.gwt.Home com.sap.sailing.gwt.ui.RaceBoard"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="com.sap.sailing.gwt.ui"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx2048m -Dgwt-usearchives=false -Dgwt.persistentunitcache=false"/>
|
||||
</launchConfiguration>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<launchConfiguration type="com.google.gdt.eclipse.suite.webapp">
|
||||
<booleanAttribute key="com.google.gdt.eclipse.core.RUN_SERVER" value="false"/>
|
||||
<stringAttribute key="com.google.gdt.eclipse.suiteMainTypeProcessor.PREVIOUSLY_SET_MAIN_TYPE_NAME" value="com.google.gwt.dev.GWTShell"/>
|
||||
<booleanAttribute key="com.google.gdt.eclipse.suiteWarArgumentProcessor.IS_WAR_FROM_PROJECT_PROPERTIES" value="true"/>
|
||||
<booleanAttribute key="com.google.gwt.eclipse.core.CODE_SERVER_PORT_AUTO" value="true"/>
|
||||
<listAttribute key="com.google.gwt.eclipse.core.ENTRY_POINT_MODULES">
|
||||
<listEntry value="com.sap.sailing.gwt.ui.RaceBoard"/>
|
||||
<listEntry value="com.sap.sailing.gwt.Home"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.DataMining"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.YoutubePopup"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.LeaderboardEditing"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.AdminConsole"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.Spectator"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.RegattaOverview"/>
|
||||
<listEntry value="com.sap.sailing.gwt.AutoPlay"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.VideoPopup"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.PolarSheets"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.Leaderboard"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.Simulator"/>
|
||||
</listAttribute>
|
||||
<stringAttribute key="com.google.gwt.eclipse.core.URL" value="/gwt/Home.html"/>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||
<listEntry value="/com.sap.sailing.gwt.ui"/>
|
||||
</listAttribute>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||
<listEntry value="4"/>
|
||||
</listAttribute>
|
||||
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
|
||||
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
|
||||
<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
|
||||
</listAttribute>
|
||||
<listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry containerPath="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6" javaProject="com.sap.sailing.gwt.ui" path="1" type="4"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.gwt.ui/src/main/resources" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.gwt.ui/src/main/java" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.gwt.theme/src/main/java" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.domain/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.googlecode.java-diff-utils/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.domain.common/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/org.json.simple/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.server/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.domain.tractracadapter/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.expeditionconnector/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.declination/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.declination/resources" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.udpconnector/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.mongodb/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.domain.swisstimingadapter/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.domain.persistence/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.domain.swisstimingadapter.persistence/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.operationaltransformation/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.replication/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.domain.tractracadapter.persistence/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/org.moxieapps.gwt.highcharts/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.geocoding/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.datamining.shared/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.common/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.datamining.shared/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.gwt/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.google.gwt.osgi/lib/gwt-user.jar" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry id="org.eclipse.jdt.launching.classpathentry.defaultClasspath"> <memento exportedEntriesOnly="false" project="com.sap.sailing.gwt.ui"/> </runtimeClasspathEntry> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.security/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.security.ui/src/main/java" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.gwt.adminconsole/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.security.common/src" path="3" type="2"/> "/>
|
||||
</listAttribute>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="com.google.gwt.eclipse.core.moduleClasspathProvider"/>
|
||||
<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.google.gwt.dev.DevMode"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-nosuperDevMode -war "${project_loc:com.sap.sailing.gwt.ui}" -noserver -remoteUI "${gwt_remote_ui_server_port}:${unique_id}" -logLevel INFO -codeServerPort auto -startupUrl /gwt/Home.html com.sap.sailing.gwt.Home -startupUrl /gwt/AdminConsole.html com.sap.sailing.gwt.ui.AdminConsole -startupUrl /gwt/LeaderboardEditing.html com.sap.sailing.gwt.ui.LeaderboardEditing -startupUrl /gwt/Leaderboard.html com.sap.sailing.gwt.ui.Leaderboard -startupUrl /gwt/Spectator.html com.sap.sailing.gwt.ui.Spectator -startupUrl /gwt/RaceBoard.html com.sap.sailing.gwt.ui.RaceBoard -startupUrl /gwt/PolarSheets.html com.sap.sailing.gwt.ui.PolarSheets -startupUrl /gwt/RegattaOverview.html com.sap.sailing.gwt.ui.RegattaOverview -startupUrl /gwt/DataMining.html com.sap.sailing.gwt.ui.DataMining -startupUrl /gwt/Simulator.html com.sap.sailing.gwt.ui.Simulator -startupUrl /gwt/VideoPopup.html com.sap.sailing.gwt.ui.VideoPopup -startupUrl /security/ui/Login.html com.sap.sse.security.ui.Login -startupUrl /security/ui/EditProfile.html com.sap.sse.security.ui.EditProfile -startupUrl /security/ui/EmailValidation.html com.sap.sse.security.ui.EmailValidation com.sap.sailing.gwt.ui.Simulator com.sap.sailing.gwt.ui.Leaderboard com.sap.sailing.gwt.ui.PolarSheets com.sap.sailing.gwt.ui.VideoPopup com.sap.sailing.gwt.AutoPlay com.sap.sailing.gwt.ui.RegattaOverview com.sap.sailing.gwt.ui.Spectator com.sap.sailing.gwt.ui.AdminConsole com.sap.sailing.gwt.ui.LeaderboardEditing com.sap.sailing.gwt.ui.YoutubePopup com.sap.sailing.gwt.ui.DataMining com.sap.sailing.gwt.Home com.sap.sailing.gwt.ui.RaceBoard"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="com.sap.sailing.gwt.ui"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx2048m -Dgwt-usearchives=false -Dgwt.persistentunitcache=false"/>
|
||||
</launchConfiguration>
|
||||
@@ -63,6 +63,16 @@
|
||||
<url-pattern>/service/sailing</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<servlet>
|
||||
<display-name>Home Service</display-name>
|
||||
<servlet-name>HomeService</servlet-name>
|
||||
<servlet-class>com.sap.sailing.gwt.home.server.HomeServiceImpl</servlet-class>
|
||||
</servlet>
|
||||
<servlet-mapping>
|
||||
<servlet-name>HomeService</servlet-name>
|
||||
<url-pattern>/service/home</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<servlet>
|
||||
<display-name>Media Service</display-name>
|
||||
<servlet-name>MediaService</servlet-name>
|
||||
|
||||
|
After Width: | Height: | Size: 865 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 6.2 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 623 B |
@@ -1,57 +0,0 @@
|
||||
@charset "UTF-8";
|
||||
/* Slider */
|
||||
.slick-slider { position: relative; display: block; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; -ms-touch-action: pan-y; touch-action: pan-y; -webkit-tap-highlight-color: transparent; }
|
||||
|
||||
.slick-list { position: relative; overflow: hidden; display: block; margin: 0; padding: 0; }
|
||||
.slick-list:focus { outline: none; }
|
||||
.slick-loading .slick-list { background: #fff url("./ajax-loader.gif") center center no-repeat; }
|
||||
.slick-list.dragging { cursor: pointer; cursor: hand; }
|
||||
|
||||
.slick-slider .slick-track { -webkit-transform: translate3d(0, 0, 0); -moz-transform: translate3d(0, 0, 0); -ms-transform: translate3d(0, 0, 0); -o-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); }
|
||||
|
||||
.slick-track { position: relative; left: 0; top: 0; display: block; }
|
||||
.slick-track:before, .slick-track:after { content: ""; display: table; }
|
||||
.slick-track:after { clear: both; }
|
||||
.slick-loading .slick-track { visibility: hidden; }
|
||||
|
||||
.slick-slide { float: left; height: 100%; min-height: 1px; display: none; }
|
||||
[dir="rtl"] .slick-slide { float: right; }
|
||||
.slick-slide img { display: block; }
|
||||
.slick-slide.slick-loading img { display: none; }
|
||||
.slick-slide.dragging img { pointer-events: none; }
|
||||
.slick-initialized .slick-slide { display: block; }
|
||||
.slick-loading .slick-slide { visibility: hidden; }
|
||||
.slick-vertical .slick-slide { display: block; height: auto; border: 1px solid transparent; }
|
||||
|
||||
/* Icons */
|
||||
@font-face { font-family: "slick"; src: url("./fonts/slick.eot"); src: url("./fonts/slick.eot?#iefix") format("embedded-opentype"), url("./fonts/slick.woff") format("woff"), url("./fonts/slick.ttf") format("truetype"), url("./fonts/slick.svg#slick") format("svg"); font-weight: normal; font-style: normal; }
|
||||
/* Arrows */
|
||||
.slick-prev, .slick-next { position: absolute; display: block; height: 20px; width: 20px; line-height: 0; font-size: 0; cursor: pointer; background: transparent; color: transparent; top: 50%; margin-top: -10px; padding: 0; border: none; outline: none; }
|
||||
.slick-prev:hover, .slick-prev:focus, .slick-next:hover, .slick-next:focus { outline: none; background: transparent; color: transparent; }
|
||||
.slick-prev:hover:before, .slick-prev:focus:before, .slick-next:hover:before, .slick-next:focus:before { opacity: 1; }
|
||||
.slick-prev.slick-disabled:before, .slick-next.slick-disabled:before { opacity: 0.25; }
|
||||
|
||||
.slick-prev:before, .slick-next:before { font-family: "slick"; font-size: 20px; line-height: 1; color: white; opacity: 0.75; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
|
||||
|
||||
.slick-prev { left: -25px; }
|
||||
[dir="rtl"] .slick-prev { left: auto; right: -25px; }
|
||||
.slick-prev:before { content: "←"; }
|
||||
[dir="rtl"] .slick-prev:before { content: "→"; }
|
||||
|
||||
.slick-next { right: -25px; }
|
||||
[dir="rtl"] .slick-next { left: -25px; right: auto; }
|
||||
.slick-next:before { content: "→"; }
|
||||
[dir="rtl"] .slick-next:before { content: "←"; }
|
||||
|
||||
/* Dots */
|
||||
.slick-slider { margin-bottom: 30px; }
|
||||
|
||||
.slick-dots { position: absolute; bottom: -45px; list-style: none; display: block; text-align: center; padding: 0; width: 100%; }
|
||||
.slick-dots li { position: relative; display: inline-block; height: 20px; width: 20px; margin: 0 5px; padding: 0; cursor: pointer; }
|
||||
.slick-dots li button { border: 0; background: transparent; display: block; height: 20px; width: 20px; outline: none; line-height: 0; font-size: 0; color: transparent; padding: 5px; cursor: pointer; }
|
||||
.slick-dots li button:hover, .slick-dots li button:focus { outline: none; }
|
||||
.slick-dots li button:hover:before, .slick-dots li button:focus:before { opacity: 1; }
|
||||
.slick-dots li button:before { position: absolute; top: 0; left: 0; content: "•"; width: 20px; height: 20px; font-family: "slick"; font-size: 6px; line-height: 20px; text-align: center; color: black; opacity: 0.25; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
|
||||
.slick-dots li.slick-active button:before { color: black; opacity: 0.75; }
|
||||
|
||||
/*# sourceMappingURL=slick.css.map */
|
||||
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"version": 3,
|
||||
"mappings": ";;AAuCA,aAAc,GACV,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,KAAK,EACd,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,UAAU,EAC3B,qBAAqB,EAAE,IAAI,EAC3B,mBAAmB,EAAE,IAAI,EACzB,kBAAkB,EAAE,IAAI,EACxB,gBAAgB,EAAE,IAAI,EACtB,eAAe,EAAE,IAAI,EACrB,WAAW,EAAE,IAAI,EACjB,gBAAgB,EAAE,KAAK,EACvB,YAAY,EAAE,KAAK,EACnB,2BAA2B,EAAE,WAAW;;AAE5C,WAAY,GACR,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,KAAK,EACd,MAAM,EAAE,CAAC,EACT,OAAO,EAAE,CAAC;AAEV,iBAAQ,GACJ,OAAO,EAAE,IAAI;AAGjB,0BAAiB,GACb,UAAU,EAAE,qDAA+D;AAG/E,oBAAW,GACP,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,IAAI;;AAGpB,0BAA2B,GACvB,iBAAiB,EAAE,oBAAoB,EACvC,cAAc,EAAE,oBAAoB,EACpC,aAAa,EAAE,oBAAoB,EACnC,YAAY,EAAE,oBAAoB,EAClC,SAAS,EAAE,oBAAoB;;AAGnC,YAAa,GACT,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,CAAC,EACP,GAAG,EAAE,CAAC,EACN,OAAO,EAAE,KAAK;AAEd,uCACQ,GACJ,OAAO,EAAE,EAAE,EACX,OAAO,EAAE,KAAK;AAGlB,kBAAQ,GACJ,KAAK,EAAE,IAAI;AAGf,2BAAiB,GACb,UAAU,EAAE,MAAM;;AAG1B,YAAa,GACT,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,EACZ,UAAU,EAAE,GAAG,EAWf,OAAO,EAAE,IAAI;AAVb,wBAAc,GACV,KAAK,EAAE,KAAK;AAEhB,gBAAI,GACA,OAAO,EAAE,KAAK;AAElB,8BAAoB,GAChB,OAAO,EAAE,IAAI;AAKjB,yBAAe,GACX,cAAc,EAAE,IAAI;AAGxB,+BAAqB,GACjB,OAAO,EAAE,KAAK;AAGlB,2BAAiB,GACb,UAAU,EAAE,MAAM;AAGtB,4BAAkB,GACd,OAAO,EAAE,KAAK,EACd,MAAM,EAAE,IAAI,EACZ,MAAM,EAAE,qBAAqB;;;AAMnC,UASC,GARG,WAAW,EAAC,OAAO,EACnB,GAAG,EAAK,wBAA2B,EACnC,GAAG,EAAK,gMAA8D,EAItE,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM;;AAMxB,wBACY,GACR,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,KAAK,EACd,MAAM,EAAE,IAAI,EACZ,KAAK,EAAE,IAAI,EACX,WAAW,EAAE,CAAC,EACd,SAAS,EAAE,CAAC,EACZ,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,WAAW,EACvB,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,KAAK,EACjB,OAAO,EAAE,CAAC,EACV,MAAM,EAAE,IAAI,EACZ,OAAO,EAAE,IAAI;AACb,0EAAiB,GACf,OAAO,EAAE,IAAI,EACb,UAAU,EAAE,WAAW,EACvB,KAAK,EAAE,WAAW;AAClB,sGAAS,GACP,OAAO,EA/JI,CAAC;AAkKhB,oEAAwB,GACpB,OAAO,EAlKM,IAAG;;AAqKxB,sCAAuC,GACnC,WAAW,EAjLK,OAAO,EAkLvB,SAAS,EAAE,IAAI,EACf,WAAW,EAAE,CAAC,EACd,KAAK,EAlLW,KAAK,EAmLrB,OAAO,EA5KO,IAAG,EA6KjB,sBAAsB,EAAE,WAAW,EACnC,uBAAuB,EAAE,SAAS;;AAEtC,WAAY,GACR,IAAI,EAAE,KAAK;AACX,uBAAc,GACV,IAAI,EAAG,IAAI,EACX,KAAK,EAAE,KAAK;AAEhB,kBAAS,GACL,OAAO,EA3LQ,GAAO;AA4LtB,8BAAc,GACV,OAAO,EA5LI,GAAO;;AAgM9B,WAAY,GACR,KAAK,EAAE,KAAK;AACZ,uBAAc,GACV,IAAI,EAAG,KAAK,EACZ,KAAK,EAAE,IAAI;AAEf,kBAAS,GACL,OAAO,EAvMQ,GAAO;AAwMtB,8BAAc,GACV,OAAO,EA1MI,GAAO;;;AAiN9B,aAAc,GACV,aAAa,EAAE,IAAI;;AAEvB,WAAY,GACR,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,KAAK,EACb,UAAU,EAAE,IAAI,EAChB,OAAO,EAAE,KAAK,EACd,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,IAAI;AAEX,cAAG,GACC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,IAAI,EACZ,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,KAAK,EACb,OAAO,EAAE,CAAC,EACV,MAAM,EAAE,OAAO;AAEf,qBAAO,GACH,MAAM,EAAE,CAAC,EACT,UAAU,EAAE,WAAW,EACvB,OAAO,EAAE,KAAK,EACd,MAAM,EAAE,IAAI,EACZ,KAAK,EAAE,IAAI,EACX,OAAO,EAAE,IAAI,EACb,WAAW,EAAE,CAAC,EACd,SAAS,EAAE,CAAC,EACZ,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,GAAG,EACZ,MAAM,EAAE,OAAO;AACf,wDAAiB,GACb,OAAO,EAAE,IAAI;AACb,sEAAS,GACP,OAAO,EAhPN,CAAC;AAoPR,4BAAS,GACL,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,CAAC,EACN,IAAI,EAAE,CAAC,EACP,OAAO,EA3PD,GAAO,EA4Pb,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,EACZ,WAAW,EArQP,OAAO,EAsQX,SAAS,EA9PR,GAAG,EA+PJ,WAAW,EAAE,IAAI,EACjB,UAAU,EAAE,MAAM,EAClB,KAAK,EArQI,KAAgB,EAsQzB,OAAO,EA/PF,IAAG,EAgQR,sBAAsB,EAAE,WAAW,EACnC,uBAAuB,EAAE,SAAS;AAK1C,yCAA6B,GACzB,KAAK,EA9QQ,KAAgB,EA+Q7B,OAAO,EA1QD,IAAG",
|
||||
"sources": ["slick.scss"],
|
||||
"names": [],
|
||||
"file": "slick.css"
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
/*
|
||||
_ _ _ _
|
||||
___| (_) ___| | __ (_)___
|
||||
/ __| | |/ __| |/ / | / __|
|
||||
\__ \ | | (__| < _ | \__ \
|
||||
|___/_|_|\___|_|\_(_)/ |___/
|
||||
|__/
|
||||
|
||||
Version: 1.3.15
|
||||
Author: Ken Wheeler
|
||||
Website: http://kenwheeler.github.io
|
||||
Docs: http://kenwheeler.github.io/slick
|
||||
Repo: http://github.com/kenwheeler/slick
|
||||
Issues: http://github.com/kenwheeler/slick/issues
|
||||
|
||||
*/
|
||||
|
||||
!function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):"undefined"!=typeof exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){"use strict";var b=window.Slick||{};b=function(){function c(c,d){var f,g,e=this;if(e.defaults={accessibility:!0,adaptiveHeight:!1,appendArrows:a(c),appendDots:a(c),arrows:!0,asNavFor:null,prevArrow:'<button type="button" data-role="none" class="slick-prev">Previous</button>',nextArrow:'<button type="button" data-role="none" class="slick-next">Next</button>',autoplay:!1,autoplaySpeed:3e3,centerMode:!1,centerPadding:"50px",cssEase:"ease",customPaging:function(a,b){return'<button type="button" data-role="none">'+(b+1)+"</button>"},dots:!1,dotsClass:"slick-dots",draggable:!0,easing:"linear",fade:!1,focusOnSelect:!1,infinite:!0,initialSlide:0,lazyLoad:"ondemand",onBeforeChange:null,onAfterChange:null,onInit:null,onReInit:null,onSetPosition:null,pauseOnHover:!0,pauseOnDotsHover:!1,respondTo:"window",responsive:null,rtl:!1,slide:"div",slidesToShow:1,slidesToScroll:1,speed:500,swipe:!0,swipeToSlide:!1,touchMove:!0,touchThreshold:5,useCSS:!0,variableWidth:!1,vertical:!1,waitForAnimate:!0},e.initials={animating:!1,dragging:!1,autoPlayTimer:null,currentDirection:0,currentLeft:null,currentSlide:0,direction:1,$dots:null,listWidth:null,listHeight:null,loadIndex:0,$nextArrow:null,$prevArrow:null,slideCount:null,slideWidth:null,$slideTrack:null,$slides:null,sliding:!1,slideOffset:0,swipeLeft:null,$list:null,touchObject:{},transformsEnabled:!1},a.extend(e,e.initials),e.activeBreakpoint=null,e.animType=null,e.animProp=null,e.breakpoints=[],e.breakpointSettings=[],e.cssTransitions=!1,e.paused=!1,e.positionProp=null,e.respondTo=null,e.shouldClick=!0,e.$slider=a(c),e.$slidesCache=null,e.transformType=null,e.transitionType=null,e.windowWidth=0,e.windowTimer=null,e.options=a.extend({},e.defaults,d),e.currentSlide=e.options.initialSlide,e.originalSettings=e.options,f=e.options.responsive||null,f&&f.length>-1){e.respondTo=e.options.respondTo||"window";for(g in f)f.hasOwnProperty(g)&&(e.breakpoints.push(f[g].breakpoint),e.breakpointSettings[f[g].breakpoint]=f[g].settings);e.breakpoints.sort(function(a,b){return b-a})}e.autoPlay=a.proxy(e.autoPlay,e),e.autoPlayClear=a.proxy(e.autoPlayClear,e),e.changeSlide=a.proxy(e.changeSlide,e),e.clickHandler=a.proxy(e.clickHandler,e),e.selectHandler=a.proxy(e.selectHandler,e),e.setPosition=a.proxy(e.setPosition,e),e.swipeHandler=a.proxy(e.swipeHandler,e),e.dragHandler=a.proxy(e.dragHandler,e),e.keyHandler=a.proxy(e.keyHandler,e),e.autoPlayIterator=a.proxy(e.autoPlayIterator,e),e.instanceUid=b++,e.htmlExpr=/^(?:\s*(<[\w\W]+>)[^>]*)$/,e.init(),e.checkResponsive()}var b=0;return c}(),b.prototype.addSlide=function(b,c,d){var e=this;if("boolean"==typeof c)d=c,c=null;else if(0>c||c>=e.slideCount)return!1;e.unload(),"number"==typeof c?0===c&&0===e.$slides.length?a(b).appendTo(e.$slideTrack):d?a(b).insertBefore(e.$slides.eq(c)):a(b).insertAfter(e.$slides.eq(c)):d===!0?a(b).prependTo(e.$slideTrack):a(b).appendTo(e.$slideTrack),e.$slides=e.$slideTrack.children(this.options.slide),e.$slideTrack.children(this.options.slide).detach(),e.$slideTrack.append(e.$slides),e.$slides.each(function(b,c){a(c).attr("index",b)}),e.$slidesCache=e.$slides,e.reinit()},b.prototype.animateSlide=function(b,c){var d={},e=this;if(1===e.options.slidesToShow&&e.options.adaptiveHeight===!0&&e.options.vertical===!1){var f=e.$slides.eq(e.currentSlide).outerHeight(!0);e.$list.animate({height:f},e.options.speed)}e.options.rtl===!0&&e.options.vertical===!1&&(b=-b),e.transformsEnabled===!1?e.options.vertical===!1?e.$slideTrack.animate({left:b},e.options.speed,e.options.easing,c):e.$slideTrack.animate({top:b},e.options.speed,e.options.easing,c):e.cssTransitions===!1?a({animStart:e.currentLeft}).animate({animStart:b},{duration:e.options.speed,easing:e.options.easing,step:function(a){e.options.vertical===!1?(d[e.animType]="translate("+a+"px, 0px)",e.$slideTrack.css(d)):(d[e.animType]="translate(0px,"+a+"px)",e.$slideTrack.css(d))},complete:function(){c&&c.call()}}):(e.applyTransition(),d[e.animType]=e.options.vertical===!1?"translate3d("+b+"px, 0px, 0px)":"translate3d(0px,"+b+"px, 0px)",e.$slideTrack.css(d),c&&setTimeout(function(){e.disableTransition(),c.call()},e.options.speed))},b.prototype.asNavFor=function(b){var c=this,d=null!=c.options.asNavFor?a(c.options.asNavFor).getSlick():null;null!=d&&d.slideHandler(b,!0)},b.prototype.applyTransition=function(a){var b=this,c={};c[b.transitionType]=b.options.fade===!1?b.transformType+" "+b.options.speed+"ms "+b.options.cssEase:"opacity "+b.options.speed+"ms "+b.options.cssEase,b.options.fade===!1?b.$slideTrack.css(c):b.$slides.eq(a).css(c)},b.prototype.autoPlay=function(){var a=this;a.autoPlayTimer&&clearInterval(a.autoPlayTimer),a.slideCount>a.options.slidesToShow&&a.paused!==!0&&(a.autoPlayTimer=setInterval(a.autoPlayIterator,a.options.autoplaySpeed))},b.prototype.autoPlayClear=function(){var a=this;a.autoPlayTimer&&clearIntLine truncated
|
||||
@@ -0,0 +1,116 @@
|
||||
/* Slider */
|
||||
.slick-slider
|
||||
{
|
||||
position: relative;
|
||||
|
||||
display: block;
|
||||
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
|
||||
-webkit-touch-callout: none;
|
||||
-khtml-user-select: none;
|
||||
-ms-touch-action: pan-y;
|
||||
touch-action: pan-y;
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
}
|
||||
|
||||
.slick-list
|
||||
{
|
||||
position: relative;
|
||||
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.slick-list:focus
|
||||
{
|
||||
outline: none;
|
||||
}
|
||||
.slick-list.dragging
|
||||
{
|
||||
cursor: pointer;
|
||||
cursor: hand;
|
||||
}
|
||||
|
||||
.slick-slider .slick-track,
|
||||
.slick-slider .slick-list
|
||||
{
|
||||
-webkit-transform: translate3d(0, 0, 0);
|
||||
-moz-transform: translate3d(0, 0, 0);
|
||||
-ms-transform: translate3d(0, 0, 0);
|
||||
-o-transform: translate3d(0, 0, 0);
|
||||
transform: translate3d(0, 0, 0);
|
||||
}
|
||||
|
||||
.slick-track
|
||||
{
|
||||
position: relative;
|
||||
top: 0;
|
||||
left: 0;
|
||||
|
||||
display: block;
|
||||
}
|
||||
.slick-track:before,
|
||||
.slick-track:after
|
||||
{
|
||||
display: table;
|
||||
|
||||
content: '';
|
||||
}
|
||||
.slick-track:after
|
||||
{
|
||||
clear: both;
|
||||
}
|
||||
.slick-loading .slick-track
|
||||
{
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.slick-slide
|
||||
{
|
||||
display: none;
|
||||
float: left;
|
||||
|
||||
height: 100%;
|
||||
min-height: 1px;
|
||||
}
|
||||
[dir='rtl'] .slick-slide
|
||||
{
|
||||
float: right;
|
||||
}
|
||||
.slick-slide img
|
||||
{
|
||||
display: block;
|
||||
}
|
||||
.slick-slide.slick-loading img
|
||||
{
|
||||
display: none;
|
||||
}
|
||||
.slick-slide.dragging img
|
||||
{
|
||||
pointer-events: none;
|
||||
}
|
||||
.slick-initialized .slick-slide
|
||||
{
|
||||
display: block;
|
||||
}
|
||||
.slick-loading .slick-slide
|
||||
{
|
||||
visibility: hidden;
|
||||
}
|
||||
.slick-vertical .slick-slide
|
||||
{
|
||||
display: block;
|
||||
|
||||
height: auto;
|
||||
|
||||
border: 1px solid transparent;
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
/*
|
||||
_ _ _ _
|
||||
___| (_) ___| | __ (_)___
|
||||
/ __| | |/ __| |/ / | / __|
|
||||
\__ \ | | (__| < _ | \__ \
|
||||
|___/_|_|\___|_|\_(_)/ |___/
|
||||
|__/
|
||||
|
||||
Version: 1.5.0
|
||||
Author: Ken Wheeler
|
||||
Website: http://kenwheeler.github.io
|
||||
Docs: http://kenwheeler.github.io/slick
|
||||
Repo: http://github.com/kenwheeler/slick
|
||||
Issues: http://github.com/kenwheeler/slick/issues
|
||||
|
||||
*/
|
||||
/* global window, document, define, jQuery, setInterval, clearInterval */
|
||||
|
||||
!function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):"undefined"!=typeof exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){"use strict";var b=window.Slick||{};b=function(){function c(c,d){var f,g,h,e=this;if(e.defaults={accessibility:!0,adaptiveHeight:!1,appendArrows:a(c),appendDots:a(c),arrows:!0,asNavFor:null,prevArrow:'<button type="button" data-role="none" class="slick-prev" aria-label="previous">Previous</button>',nextArrow:'<button type="button" data-role="none" class="slick-next" aria-label="next">Next</button>',autoplay:!1,autoplaySpeed:3e3,centerMode:!1,centerPadding:"50px",cssEase:"ease",customPaging:function(a,b){return'<button type="button" data-role="none">'+(b+1)+"</button>"},dots:!1,dotsClass:"slick-dots",draggable:!0,easing:"linear",edgeFriction:.35,fade:!1,focusOnSelect:!1,infinite:!0,initialSlide:0,lazyLoad:"ondemand",mobileFirst:!1,pauseOnHover:!0,pauseOnDotsHover:!1,respondTo:"window",responsive:null,rows:1,rtl:!1,slide:"",slidesPerRow:1,slidesToShow:1,slidesToScroll:1,speed:500,swipe:!0,swipeToSlide:!1,touchMove:!0,touchThreshold:5,useCSS:!0,variableWidth:!1,vertical:!1,verticalSwiping:!1,waitForAnimate:!0},e.initials={animating:!1,dragging:!1,autoPlayTimer:null,currentDirection:0,currentLeft:null,currentSlide:0,direction:1,$dots:null,listWidth:null,listHeight:null,loadIndex:0,$nextArrow:null,$prevArrow:null,slideCount:null,slideWidth:null,$slideTrack:null,$slides:null,sliding:!1,slideOffset:0,swipeLeft:null,$list:null,touchObject:{},transformsEnabled:!1},a.extend(e,e.initials),e.activeBreakpoint=null,e.animType=null,e.animProp=null,e.breakpoints=[],e.breakpointSettings=[],e.cssTransitions=!1,e.hidden="hidden",e.paused=!1,e.positionProp=null,e.respondTo=null,e.rowCount=1,e.shouldClick=!0,e.$slider=a(c),e.$slidesCache=null,e.transformType=null,e.transitionType=null,e.visibilityChange="visibilitychange",e.windowWidth=0,e.windowTimer=null,f=a(c).data("slick")||{},e.options=a.extend({},e.defaults,f,d),e.currentSlide=e.options.initialSlide,e.originalSettings=e.options,g=e.options.responsive||null,g&&g.length>-1){e.respondTo=e.options.respondTo||"window";for(h in g)g.hasOwnProperty(h)&&(e.breakpoints.push(g[h].breakpoint),e.breakpointSettings[g[h].breakpoint]=g[h].settings);e.breakpoints.sort(function(a,b){return e.options.mobileFirst===!0?a-b:b-a})}"undefined"!=typeof document.mozHidden?(e.hidden="mozHidden",e.visibilityChange="mozvisibilitychange"):"undefined"!=typeof document.msHidden?(e.hidden="msHidden",e.visibilityChange="msvisibilitychange"):"undefined"!=typeof document.webkitHidden&&(e.hidden="webkitHidden",e.visibilityChange="webkitvisibilitychange"),e.autoPlay=a.proxy(e.autoPlay,e),e.autoPlayClear=a.proxy(e.autoPlayClear,e),e.changeSlide=a.proxy(e.changeSlide,e),e.clickHandler=a.proxy(e.clickHandler,e),e.selectHandler=a.proxy(e.selectHandler,e),e.setPosition=a.proxy(e.setPosition,e),e.swipeHandler=a.proxy(e.swipeHandler,e),e.dragHandler=a.proxy(e.dragHandler,e),e.keyHandler=a.proxy(e.keyHandler,e),e.autoPlayIterator=a.proxy(e.autoPlayIterator,e),e.instanceUid=b++,e.htmlExpr=/^(?:\s*(<[\w\W]+>)[^>]*)$/,e.init(),e.checkResponsive(!0)}var b=0;return c}(),b.prototype.addSlide=b.prototype.slickAdd=function(b,c,d){var e=this;if("boolean"==typeof c)d=c,c=null;else if(0>c||c>=e.slideCount)return!1;e.unload(),"number"==typeof c?0===c&&0===e.$slides.length?a(b).appendTo(e.$slideTrack):d?a(b).insertBefore(e.$slides.eq(c)):a(b).insertAfter(e.$slides.eq(c)):d===!0?a(b).prependTo(e.$slideTrack):a(b).appendTo(e.$slideTrack),e.$slides=e.$slideTrack.children(this.options.slide),e.$slideTrack.children(this.options.slide).detach(),e.$slideTrack.append(e.$slides),e.$slides.each(function(b,c){a(c).attr("data-slick-index",b)}),e.$slidesCache=e.$slides,e.reinit()},b.prototype.animateHeight=function(){var a=this;if(1===a.options.slidesToShow&&a.options.adaptiveHeight===!0&&a.options.vertical===!1){var b=a.$slides.eq(a.currentSlide).outerHeight(!0);a.$list.animate({height:b},a.options.speed)}},b.prototype.animateSlide=function(b,c){var d={},e=this;e.animateHeight(),e.options.rtl===!0&&e.options.vertical===!1&&(b=-b),e.transformsEnabled===!1?e.options.vertical===!1?e.$slideTrack.animate({left:b},e.options.speed,e.options.easing,c):e.$slideTrack.animate({top:b},e.options.speed,e.options.easing,c):e.cssTransitions===!1?(e.options.rtl===!0&&(e.currentLeft=-e.currentLeft),a({animStart:e.currentLeft}).animate({animStart:b},{duration:e.options.speed,easing:e.options.easing,step:function(a){a=Math.ceil(a),e.options.vertical===!1?(d[e.animType]="translate("+a+"px, 0px)",e.$slideTrack.css(d)):(d[e.animType]="translate(0px,"+a+"px)",e.$slideTrack.css(d))},complete:function(){c&&c.call()}})):(e.applyTransition(),b=Math.ceil(b),d[e.animType]=e.options.vertical===!1?"translate3d("+b+"px, 0px, 0px)":"translate3d(0px,"+b+"px, 0px)",e.$slideTrack.css(d),c&&setTimeout(function(){e.disableTransition(),c.call()},e.options.speed))},b.prototype.asNavFor=function(b){var c=this,d=nLine truncated
|
||||
if(!(b.options.swipe===!1||"ontouchend"in document&&b.options.swipe===!1||b.options.draggable===!1&&-1!==a.type.indexOf("mouse")))switch(b.touchObject.fingerCount=a.originalEvent&&void 0!==a.originalEvent.touches?a.originalEvent.touches.length:1,b.touchObject.minSwipe=b.listWidth/b.options.touchThreshold,b.options.verticalSwiping===!0&&(b.touchObject.minSwipe=b.listHeight/b.options.touchThreshold),a.data.action){case"start":b.swipeStart(a);break;case"move":b.swipeMove(a);break;case"end":b.swipeEnd(a)}},b.prototype.swipeMove=function(a){var d,e,f,g,h,b=this;return h=void 0!==a.originalEvent?a.originalEvent.touches:null,!b.dragging||h&&1!==h.length?!1:(d=b.getLeft(b.currentSlide),b.touchObject.curX=void 0!==h?h[0].pageX:a.clientX,b.touchObject.curY=void 0!==h?h[0].pageY:a.clientY,b.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(b.touchObject.curX-b.touchObject.startX,2))),b.options.verticalSwiping===!0&&(b.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(b.touchObject.curY-b.touchObject.startY,2)))),e=b.swipeDirection(),"vertical"!==e?(void 0!==a.originalEvent&&b.touchObject.swipeLength>4&&a.preventDefault(),g=(b.options.rtl===!1?1:-1)*(b.touchObject.curX>b.touchObject.startX?1:-1),b.options.verticalSwiping===!0&&(g=b.touchObject.curY>b.touchObject.startY?1:-1),f=b.touchObject.swipeLength,b.touchObject.edgeHit=!1,b.options.infinite===!1&&(0===b.currentSlide&&"right"===e||b.currentSlide>=b.getDotCount()&&"left"===e)&&(f=b.touchObject.swipeLength*b.options.edgeFriction,b.touchObject.edgeHit=!0),b.swipeLeft=b.options.vertical===!1?d+f*g:d+f*(b.$list.height()/b.listWidth)*g,b.options.verticalSwiping===!0&&(b.swipeLeft=d+f*g),b.options.fade===!0||b.options.touchMove===!1?!1:b.animating===!0?(b.swipeLeft=null,!1):(b.setCSS(b.swipeLeft),void 0)):void 0)},b.prototype.swipeStart=function(a){var c,b=this;return 1!==b.touchObject.fingerCount||b.slideCount<=b.options.slidesToShow?(b.touchObject={},!1):(void 0!==a.originalEvent&&void 0!==a.originalEvent.touches&&(c=a.originalEvent.touches[0]),b.touchObject.startX=b.touchObject.curX=void 0!==c?c.pageX:a.clientX,b.touchObject.startY=b.touchObject.curY=void 0!==c?c.pageY:a.clientY,b.dragging=!0,void 0)},b.prototype.unfilterSlides=b.prototype.slickUnfilter=function(){var a=this;null!==a.$slidesCache&&(a.unload(),a.$slideTrack.children(this.options.slide).detach(),a.$slidesCache.appendTo(a.$slideTrack),a.reinit())},b.prototype.unload=function(){var b=this;a(".slick-cloned",b.$slider).remove(),b.$dots&&b.$dots.remove(),b.$prevArrow&&"object"!=typeof b.options.prevArrow&&b.$prevArrow.remove(),b.$nextArrow&&"object"!=typeof b.options.nextArrow&&b.$nextArrow.remove(),b.$slides.removeClass("slick-slide slick-active slick-visible").attr("aria-hidden","true").css("width","")},b.prototype.unslick=function(){var a=this;a.destroy()},b.prototype.updateArrows=function(){var b,a=this;b=Math.floor(a.options.slidesToShow/2),a.options.arrows===!0&&a.options.infinite!==!0&&a.slideCount>a.options.slidesToShow&&(a.$prevArrow.removeClass("slick-disabled"),a.$nextArrow.removeClass("slick-disabled"),0===a.currentSlide?(a.$prevArrow.addClass("slick-disabled"),a.$nextArrow.removeClass("slick-disabled")):a.currentSlide>=a.slideCount-a.options.slidesToShow&&a.options.centerMode===!1?(a.$nextArrow.addClass("slick-disabled"),a.$prevArrow.removeClass("slick-disabled")):a.currentSlide>=a.slideCount-1&&a.options.centerMode===!0&&(a.$nextArrow.addClass("slick-disabled"),a.$prevArrow.removeClass("slick-disabled")))},b.prototype.updateDots=function(){var a=this;null!==a.$dots&&(a.$dots.find("li").removeClass("slick-active").attr("aria-hidden","true"),a.$dots.find("li").eq(Math.floor(a.currentSlide/a.options.slidesToScroll)).addClass("slick-active").attr("aria-hidden","false"))},b.prototype.visibility=function(){var a=this;document[a.hidden]?(a.paused=!0,a.autoPlayClear()):(a.paused=!1,a.autoPlay())},a.fn.slick=function(){var g,a=this,c=arguments[0],d=Array.prototype.slice.call(arguments,1),e=a.length,f=0;for(f;e>f;f++)if("object"==typeof c||"undefined"==typeof c?a[f].slick=new b(a[f],c):g=a[f].slick[c].apply(a[f].slick,d),"undefined"!=typeof g)return g;return a}});
|
||||
@@ -0,0 +1,90 @@
|
||||
@charset 'UTF-8';
|
||||
|
||||
/* Dots */
|
||||
.slick-slider
|
||||
{
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
.slick-dots
|
||||
{
|
||||
position: absolute;
|
||||
bottom: -45px;
|
||||
|
||||
display: block;
|
||||
|
||||
width: 100%;
|
||||
padding: 0;
|
||||
|
||||
list-style: none;
|
||||
|
||||
text-align: center;
|
||||
}
|
||||
.slick-dots li
|
||||
{
|
||||
position: relative;
|
||||
|
||||
display: inline-block;
|
||||
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
margin: 0 5px;
|
||||
padding: 0;
|
||||
|
||||
cursor: pointer;
|
||||
}
|
||||
.slick-dots li button
|
||||
{
|
||||
font-size: 0;
|
||||
line-height: 0;
|
||||
|
||||
display: block;
|
||||
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
padding: 5px;
|
||||
|
||||
cursor: pointer;
|
||||
|
||||
color: transparent;
|
||||
border: 0;
|
||||
outline: none;
|
||||
background: transparent;
|
||||
}
|
||||
.slick-dots li button:hover,
|
||||
.slick-dots li button:focus
|
||||
{
|
||||
outline: none;
|
||||
}
|
||||
.slick-dots li button:hover:before,
|
||||
.slick-dots li button:focus:before
|
||||
{
|
||||
opacity: 1;
|
||||
}
|
||||
.slick-dots li button:before
|
||||
{
|
||||
font-family: 'slick';
|
||||
font-size: 6px;
|
||||
line-height: 20px;
|
||||
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
|
||||
content: '•';
|
||||
text-align: center;
|
||||
|
||||
opacity: .25;
|
||||
color: black;
|
||||
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
.slick-dots li.slick-active button:before
|
||||
{
|
||||
opacity: .75;
|
||||
color: black;
|
||||
}
|
||||
@@ -68,6 +68,12 @@
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
<classifier>sources</classifier>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.sap.sailing</groupId>
|
||||
<artifactId>com.sap.sse.gwt.theme</artifactId>
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
<classifier>sources</classifier>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.sap.sailing</groupId>
|
||||
<artifactId>com.sap.sse.gwt.adminconsole</artifactId>
|
||||
|
||||
@@ -5,6 +5,8 @@ import com.google.gwt.place.shared.Place;
|
||||
import com.google.gwt.place.shared.PlaceController;
|
||||
import com.google.web.bindery.event.shared.EventBus;
|
||||
import com.sap.sailing.gwt.autoplay.client.place.start.StartPlace;
|
||||
import com.sap.sailing.gwt.home.client.HomeService;
|
||||
import com.sap.sailing.gwt.home.client.HomeServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.MediaService;
|
||||
import com.sap.sailing.gwt.ui.client.MediaServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.SailingService;
|
||||
@@ -13,6 +15,7 @@ import com.sap.sse.security.ui.client.SecureClientFactoryImpl;
|
||||
|
||||
public abstract class AbstractApplicationClientFactory extends SecureClientFactoryImpl implements AutoPlayAppClientFactory {
|
||||
private final SailingServiceAsync sailingService;
|
||||
private final HomeServiceAsync homeService;
|
||||
private final MediaServiceAsync mediaService;
|
||||
private final PlaceNavigator navigator;
|
||||
|
||||
@@ -20,6 +23,7 @@ public abstract class AbstractApplicationClientFactory extends SecureClientFacto
|
||||
super(root, eventBus, placeController);
|
||||
navigator = new PlaceNavigatorImpl(placeController);
|
||||
sailingService = GWT.create(SailingService.class);
|
||||
homeService = GWT.create(HomeService.class);
|
||||
mediaService = GWT.create(MediaService.class);
|
||||
}
|
||||
|
||||
@@ -33,6 +37,11 @@ public abstract class AbstractApplicationClientFactory extends SecureClientFacto
|
||||
return sailingService;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HomeServiceAsync getHomeService() {
|
||||
return homeService;
|
||||
}
|
||||
|
||||
@Override
|
||||
public MediaServiceAsync getMediaService() {
|
||||
return mediaService;
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<g:HTMLPanel>
|
||||
<s:header.SAPHeader ui:field="sapHeader" />
|
||||
<div style="height:1em;" />
|
||||
<div class="{res.mainCss.grid}" style="padding-bottom:1em;">
|
||||
<div class="{res.mediaCss.grid}" style="padding-bottom:1em;">
|
||||
<div class="{res.mediaCss.small2} {res.mediaCss.columns}">
|
||||
<span>Display language:</span>
|
||||
</div>
|
||||
@@ -15,7 +15,7 @@
|
||||
<g:ListBox ui:field="localeSelectionBox" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="{res.mainCss.grid}" style="padding-bottom:1em;">
|
||||
<div class="{res.mediaCss.grid}" style="padding-bottom:1em;">
|
||||
<div class="{res.mediaCss.small2} {res.mediaCss.columns}">
|
||||
<span>Start browser in full screen mode:</span>
|
||||
</div>
|
||||
@@ -23,7 +23,7 @@
|
||||
<g:CheckBox ui:field="startInFullscreenModeBox" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="{res.mainCss.grid}" style="padding-bottom:1em;">
|
||||
<div class="{res.mediaCss.grid}" style="padding-bottom:1em;">
|
||||
<div class="{res.mediaCss.small2} {res.mediaCss.columns}">
|
||||
<span>Event:</span>
|
||||
</div>
|
||||
@@ -31,7 +31,7 @@
|
||||
<g:ListBox ui:field="eventSelectionBox" />
|
||||
</div>
|
||||
</div>
|
||||
<div ui:field="leaderboardSelectionDiv" class="{res.mainCss.grid}" style="padding-bottom:1em;">
|
||||
<div ui:field="leaderboardSelectionDiv" class="{res.mediaCss.grid}" style="padding-bottom:1em;">
|
||||
<div class="{res.mediaCss.small2} {res.mediaCss.columns}">
|
||||
<span>Leaderboard:</span>
|
||||
</div>
|
||||
@@ -39,7 +39,7 @@
|
||||
<g:ListBox ui:field="leaderboardSelectionBox" />
|
||||
</div>
|
||||
</div>
|
||||
<div ui:field="leaderboardAutoZoomDiv" class="{res.mainCss.grid}" style="padding-bottom:1em;">
|
||||
<div ui:field="leaderboardAutoZoomDiv" class="{res.mediaCss.grid}" style="padding-bottom:1em;">
|
||||
<div class="{res.mediaCss.small2} {res.mediaCss.columns}">
|
||||
<span>Leaderboard Auto-Zoom:</span>
|
||||
</div>
|
||||
@@ -47,7 +47,7 @@
|
||||
<g:CheckBox ui:field="leaderboardAutoZoomBox" />
|
||||
</div>
|
||||
</div>
|
||||
<div ui:field="leaderboardZoomDiv" class="{res.mainCss.grid}" style="padding-bottom:1em;">
|
||||
<div ui:field="leaderboardZoomDiv" class="{res.mediaCss.grid}" style="padding-bottom:1em;">
|
||||
<div class="{res.mediaCss.small2} {res.mediaCss.columns}">
|
||||
<span>Leaderboard Zoom-Factor:</span>
|
||||
</div>
|
||||
@@ -55,7 +55,7 @@
|
||||
<g:TextBox ui:field="leaderboardZoomBox" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="{res.mainCss.grid}" style="padding-bottom:1em;">
|
||||
<div class="{res.mediaCss.grid}" style="padding-bottom:1em;">
|
||||
<div class="{res.mediaCss.small2} {res.mediaCss.columns}">
|
||||
<span>Auto-Play video:</span>
|
||||
</div>
|
||||
@@ -63,7 +63,7 @@
|
||||
<g:CheckBox ui:field="autoSelectMediaBox" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="{res.mainCss.grid}">
|
||||
<div class="{res.mediaCss.grid}">
|
||||
<div class="{res.mediaCss.small2} {res.mediaCss.columns}">
|
||||
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
package com.sap.sailing.gwt.common.client;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import com.google.gwt.place.shared.Place;
|
||||
import com.google.gwt.place.shared.PlaceTokenizer;
|
||||
|
||||
public abstract class AbstractMapTokenizer<P extends Place> implements PlaceTokenizer<P> {
|
||||
|
||||
private static final Logger logger = Logger.getLogger(AbstractMapTokenizer.class.getName());
|
||||
|
||||
@Override
|
||||
public P getPlace(String token) {
|
||||
return getPlaceFromParameters(toParameterMap(token));
|
||||
}
|
||||
|
||||
protected abstract P getPlaceFromParameters(Map<String, String> parameters);
|
||||
|
||||
protected abstract Map<String, String> getParameters(P place);
|
||||
|
||||
@Override
|
||||
public String getToken(P place) {
|
||||
return toToken(getParameters(place));
|
||||
}
|
||||
|
||||
private String toToken(Map<String, String> parameters) {
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
|
||||
for (Map.Entry<String, String> entry : parameters.entrySet()) {
|
||||
if(entry.getValue() == null || entry.getValue().isEmpty()) {
|
||||
continue;
|
||||
}
|
||||
if(stringBuilder.length() > 0) {
|
||||
stringBuilder.append("&");
|
||||
}
|
||||
stringBuilder.append(entry.getKey() + "=" + entry.getValue());
|
||||
}
|
||||
|
||||
return stringBuilder.toString();
|
||||
}
|
||||
|
||||
private Map<String, String> toParameterMap(String placeParametersAsToken) {
|
||||
List<String> list = Arrays.asList(placeParametersAsToken.split("&"));
|
||||
|
||||
if (list == null || list.size() < 1) {
|
||||
logger.warning("Token empty, no-op");
|
||||
Collections.emptyMap();
|
||||
}
|
||||
|
||||
Map<String, String> result = new HashMap<>();
|
||||
for (String listItem : list) {
|
||||
String[] nvPair = listItem.split("=");
|
||||
if (nvPair == null || nvPair.length != 2) {
|
||||
logger.warning("Invalid parameters");
|
||||
continue;
|
||||
}
|
||||
result.put(nvPair[0], nvPair[1]);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -57,4 +57,10 @@ public class DateUtil {
|
||||
Date now = new Date();
|
||||
return date.before(now) && !isToday(date);
|
||||
}
|
||||
|
||||
public static int daysFromNow(Date date) {
|
||||
long day = date.getTime() / DAY_IN_MILLIS;
|
||||
long today= new Date().getTime() / DAY_IN_MILLIS;
|
||||
return (int) (day - today);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.sap.sailing.gwt.common.client;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.user.client.Event;
|
||||
import com.google.gwt.user.client.ui.impl.HyperlinkImpl;
|
||||
|
||||
public final class LinkUtil {
|
||||
private static final HyperlinkImpl HYPERLINK_IMPL = GWT.create(HyperlinkImpl.class);
|
||||
|
||||
private LinkUtil() {
|
||||
}
|
||||
|
||||
public static boolean handleLinkClick(Event event) {
|
||||
if(event.getTypeInt() != Event.ONCLICK) {
|
||||
return false;
|
||||
}
|
||||
return HYPERLINK_IMPL.handleAsClick(event);
|
||||
}
|
||||
}
|
||||
@@ -3,7 +3,6 @@ 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.google.gwt.resources.client.CssResource.Shared;
|
||||
|
||||
public interface SharedResources extends ClientBundle {
|
||||
public static final SharedResources INSTANCE = GWT.create(SharedResources.class);
|
||||
@@ -14,20 +13,24 @@ public interface SharedResources extends ClientBundle {
|
||||
@Source("com/sap/sailing/gwt/home/media.gss")
|
||||
MediaCss mediaCss();
|
||||
|
||||
@Shared
|
||||
public interface MainCss extends CssResource {
|
||||
String grid();
|
||||
String stackenblochen();
|
||||
public interface MainCss extends CssResource{
|
||||
String wrapper();
|
||||
String navbar();
|
||||
String navbar_button();
|
||||
String navbar_buttonhidden();
|
||||
String navbar_buttonactive();
|
||||
String button();
|
||||
String buttonsmall();
|
||||
String buttonstrong();
|
||||
String buttoninactive();
|
||||
String buttonprimary();
|
||||
String buttonred();
|
||||
String buttonrefresh();
|
||||
String buttonsearch();
|
||||
String buttonarrowdown();
|
||||
String buttonsearch();
|
||||
String buttonarrowrightwhite();
|
||||
String label();
|
||||
String labellarge();
|
||||
String morelink();
|
||||
String dummy();
|
||||
String mainsection();
|
||||
@@ -36,22 +39,19 @@ public interface SharedResources extends ClientBundle {
|
||||
String mainsection_navigation();
|
||||
String lightbox();
|
||||
String lightbox_overlay();
|
||||
String lightbox_overlayhidden();
|
||||
String lightbox_content();
|
||||
String lightbox_contenthidden();
|
||||
String lightbox_content_enlargeditem();
|
||||
String lightbox_content_enlargeditem_caption();
|
||||
String lightbox_content_enlargeditem_close();
|
||||
String media_slideshow_controls();
|
||||
String lightbox_data();
|
||||
String lightbox_item();
|
||||
String lightbox_close();
|
||||
String stickyheader();
|
||||
String slideto();
|
||||
String slidetonav();
|
||||
String slidetoactive();
|
||||
}
|
||||
|
||||
@Shared
|
||||
public interface MediaCss extends CssResource {
|
||||
|
||||
public interface MediaCss extends CssResource{
|
||||
String grid();
|
||||
String stackenblochen();
|
||||
String column();
|
||||
String columns();
|
||||
|
||||
String small1();
|
||||
String small2();
|
||||
String small3();
|
||||
@@ -76,11 +76,14 @@ public interface SharedResources extends ClientBundle {
|
||||
String smalloffset9();
|
||||
String smalloffset10();
|
||||
String smalloffset11();
|
||||
String smallcentered();
|
||||
String smalluncentered();
|
||||
String showonsmall();
|
||||
String hideonsmall();
|
||||
|
||||
String showonmedium();
|
||||
String hideonmedium();
|
||||
String showonlarge();
|
||||
String hideonlarge();
|
||||
String smallcentered();
|
||||
String smalluncentered();
|
||||
String medium1();
|
||||
String medium2();
|
||||
String medium3();
|
||||
@@ -107,9 +110,6 @@ public interface SharedResources extends ClientBundle {
|
||||
String mediumoffset11();
|
||||
String mediumcentered();
|
||||
String mediumuncentered();
|
||||
String showonmedium();
|
||||
String hideonmedium();
|
||||
|
||||
String large1();
|
||||
String large2();
|
||||
String large3();
|
||||
@@ -136,9 +136,5 @@ public interface SharedResources extends ClientBundle {
|
||||
String largeoffset11();
|
||||
String largecentered();
|
||||
String largeuncentered();
|
||||
String showonlarge();
|
||||
String hideonlarge();
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
@CHARSET "UTF-8";
|
||||
|
||||
.event_header__breadcrumb {
|
||||
font-size: 15px;
|
||||
font-size: 1rem;
|
||||
font-size: 0.866666666666667em;
|
||||
font-weight: 600;
|
||||
padding: 0.666666666666667em 0;
|
||||
}
|
||||
|
||||
.event_header__breadcrumb__item {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
padding-left: 1.923076923076923em;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.event_header__breadcrumb__item:before {
|
||||
content: ' ';
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAUCAYAAAC58NwRAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2OUUzNjU2OTYyN0ExMUU0OTkzRUFBMUUyRUFGQjM4NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2OUUzNjU2QTYyN0ExMUU0OTkzRUFBMUUyRUFGQjM4NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjY5RTM2NTY3NjI3QTExRTQ5OTNFQUExRTJFQUZCMzg3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjY5RTM2NTY4NjI3QTExRTQ5OTNFQUExRTJFQUZCMzg3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+yfJlBgAAAK5JREFUeNpinDlz5goGBgZXIM4F4mUMBAATEDsBsRAQLwLiKGI0RADxdyBmJkYTSMM+IPYkVhMTlD5IrCYmJDZRmpjQ+CBNbvg0MWGx9Qg+TUw4/IZTExOeEIRp+oKkSZeJgTTAhk+DDRBvB2IeIP4LxIlAfJaJBMWLQRIsOBTvAmJOdMXYPI1XMboGe0KKkTXYQ92MVzFyfiBKMUzDCmIVI+eHd0AcR0gxCAAEGACmPjby/HEDIgAAAABJRU5ErkJggg==");
|
||||
height: 100%;
|
||||
width: 6px;
|
||||
position: absolute;
|
||||
background-size: contain;
|
||||
background-position: center center;
|
||||
background-repeat: no-repeat;
|
||||
left: 0.666666666666667em;
|
||||
}
|
||||
.event_header__breadcrumb__item:first-of-type {
|
||||
padding-left: 0;
|
||||
}
|
||||
.event_header__breadcrumb__item:first-of-type:before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
package com.sap.sailing.gwt.common.client.controls.tabbar;
|
||||
|
||||
import com.google.gwt.core.shared.GWT;
|
||||
import com.google.gwt.dom.client.AnchorElement;
|
||||
import com.google.gwt.dom.client.DivElement;
|
||||
import com.google.gwt.dom.client.Document;
|
||||
import com.google.gwt.resources.client.ClientBundle;
|
||||
import com.google.gwt.resources.client.CssResource;
|
||||
import com.google.gwt.safehtml.shared.SafeUri;
|
||||
import com.google.gwt.safehtml.shared.UriUtils;
|
||||
import com.google.gwt.user.client.Event;
|
||||
import com.google.gwt.user.client.EventListener;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.gwt.common.client.LinkUtil;
|
||||
|
||||
/**
|
||||
* @author zhorvath
|
||||
*
|
||||
*/
|
||||
public class BreadcrumbPane extends Widget {
|
||||
|
||||
interface Resources extends ClientBundle {
|
||||
@Source("Breadcrumb.css")
|
||||
Style style();
|
||||
}
|
||||
|
||||
interface Style extends CssResource {
|
||||
|
||||
String event_header__breadcrumb();
|
||||
|
||||
String event_header__breadcrumb__item();
|
||||
|
||||
}
|
||||
|
||||
private static Resources resources;
|
||||
|
||||
private static Resources getResources() {
|
||||
if (resources == null) {
|
||||
resources = GWT.create(Resources.class);
|
||||
resources.style().ensureInjected();
|
||||
}
|
||||
return resources;
|
||||
}
|
||||
|
||||
private final Style style = getResources().style();
|
||||
|
||||
private final DivElement breadcrumDiv;
|
||||
|
||||
public BreadcrumbPane() {
|
||||
breadcrumDiv = Document.get().createDivElement();
|
||||
breadcrumDiv.addClassName(style.event_header__breadcrumb());
|
||||
|
||||
setElement(breadcrumDiv);
|
||||
}
|
||||
|
||||
public void addBreadcrumbItem(String title, String link, final Runnable runnable) {
|
||||
addBreadcrumbItem(title, UriUtils.fromString(link), runnable);
|
||||
}
|
||||
|
||||
public void addBreadcrumbItem(String title, SafeUri link, final Runnable runnable) {
|
||||
AnchorElement breadcrumItem = Document.get().createAnchorElement();
|
||||
breadcrumItem.setHref(link);
|
||||
breadcrumItem.setInnerText(title);
|
||||
breadcrumItem.addClassName(style.event_header__breadcrumb__item());
|
||||
|
||||
breadcrumDiv.appendChild(breadcrumItem);
|
||||
|
||||
Event.sinkEvents(breadcrumItem, Event.ONCLICK);
|
||||
Event.setEventListener(breadcrumItem, new EventListener() {
|
||||
@Override
|
||||
public void onBrowserEvent(Event event) {
|
||||
if (LinkUtil.handleLinkClick(event)) {
|
||||
event.stopPropagation();
|
||||
event.preventDefault();
|
||||
runnable.run();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,118 @@
|
||||
package com.sap.sailing.gwt.common.client.controls.tabbar;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.google.gwt.core.shared.GWT;
|
||||
import com.google.gwt.dom.client.AnchorElement;
|
||||
import com.google.gwt.dom.client.DivElement;
|
||||
import com.google.gwt.dom.client.Document;
|
||||
import com.google.gwt.dom.client.Element;
|
||||
import com.google.gwt.dom.client.EventTarget;
|
||||
import com.google.gwt.event.logical.shared.HasSelectionHandlers;
|
||||
import com.google.gwt.event.logical.shared.SelectionEvent;
|
||||
import com.google.gwt.event.logical.shared.SelectionHandler;
|
||||
import com.google.gwt.event.shared.HandlerRegistration;
|
||||
import com.google.gwt.place.shared.Place;
|
||||
import com.google.gwt.user.client.Event;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.gwt.common.client.LinkUtil;
|
||||
import com.sap.sailing.gwt.common.client.SharedResources;
|
||||
import com.sap.sailing.gwt.common.client.SharedResources.MainCss;
|
||||
|
||||
/**
|
||||
* Capsulates functionality for a tab bar.
|
||||
*
|
||||
* @author zhorvath
|
||||
*
|
||||
*/
|
||||
public class TabBar extends Widget implements HasSelectionHandlers<Class<Place>> {
|
||||
|
||||
private final MainCss style = SharedResources.INSTANCE.mainCss();
|
||||
|
||||
private final List<Class<Place>> knownPlaceClasses = new ArrayList<>();
|
||||
private final DivElement tabBarDiv;
|
||||
|
||||
public TabBar() {
|
||||
tabBarDiv = Document.get().createDivElement();
|
||||
tabBarDiv.addClassName(style.navbar());
|
||||
|
||||
setElement(tabBarDiv);
|
||||
|
||||
sinkEvents(Event.ONCLICK);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBrowserEvent(Event event) {
|
||||
EventTarget eventTarget = event.getEventTarget();
|
||||
|
||||
if (Element.is(eventTarget)) {
|
||||
// An event target can be any JavaScript object, but we are interested in events related to DOM events only
|
||||
Element element = eventTarget.cast();
|
||||
|
||||
if (LinkUtil.handleLinkClick(event)) {
|
||||
// The user clicked somewhere into the tab bar -> we have to find the tab that was clicked
|
||||
for (int i = 0; i < tabBarDiv.getChildCount(); i++) {
|
||||
if (tabBarDiv.getChild(i).isOrHasChild(element)) {
|
||||
event.stopPropagation();
|
||||
event.preventDefault();
|
||||
// the specific tab was clicked -> fire SelectionEvent with the associated place
|
||||
GWT.log("Found " + knownPlaceClasses.get(i));
|
||||
SelectionEvent.fire(this, knownPlaceClasses.get(i));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
super.onBrowserEvent(event);
|
||||
}
|
||||
|
||||
/**
|
||||
* Selects the tab associated with the given place.
|
||||
*
|
||||
* @param place
|
||||
* the place that should get selected.
|
||||
*/
|
||||
public void select(Place place) {
|
||||
GWT.log("Should activate: " + place.getClass().getName());
|
||||
// remove all previous selections
|
||||
for (int i = 0; i < tabBarDiv.getChildCount(); i++) {
|
||||
Element.as(tabBarDiv.getChild(i)).removeClassName(style.navbar_buttonactive());
|
||||
}
|
||||
// find the tab that has to be selected for the given place
|
||||
for (int i = 0; i < knownPlaceClasses.size(); i++) {
|
||||
if (place.getClass().equals(knownPlaceClasses.get(i))) {
|
||||
GWT.log("Activate: " + place.getClass().getName());
|
||||
// found the associated tab -> set the selected style.
|
||||
Element.as(tabBarDiv.getChild(i)).addClassName(style.navbar_buttonactive());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a tab with an associated place to be fired when the tab is selected
|
||||
*
|
||||
* TODO: create custom widget for tab
|
||||
*
|
||||
* @param title
|
||||
* the label of the tab header.
|
||||
* @param place
|
||||
* the place that should be associated with the tab.
|
||||
*/
|
||||
public void addTab(String title, Class<Place> place, String link) {
|
||||
AnchorElement tabElement = Document.get().createAnchorElement();
|
||||
tabElement.setHref(link);
|
||||
tabElement.setInnerText(title);
|
||||
tabElement.addClassName(style.navbar_button());
|
||||
|
||||
tabBarDiv.appendChild(tabElement);
|
||||
knownPlaceClasses.add(place);
|
||||
}
|
||||
|
||||
/** {@inheritDoc} */
|
||||
@Override
|
||||
public HandlerRegistration addSelectionHandler(SelectionHandler<Class<Place>> handler) {
|
||||
return addHandler(handler, SelectionEvent.getType());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,181 @@
|
||||
package com.sap.sailing.gwt.common.client.controls.tabbar;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.event.logical.shared.SelectionEvent;
|
||||
import com.google.gwt.event.shared.HandlerRegistration;
|
||||
import com.google.gwt.place.shared.Place;
|
||||
import com.google.gwt.place.shared.PlaceHistoryMapper;
|
||||
import com.google.gwt.safehtml.shared.SafeUri;
|
||||
import com.google.gwt.uibinder.client.UiBinder;
|
||||
import com.google.gwt.uibinder.client.UiChild;
|
||||
import com.google.gwt.uibinder.client.UiField;
|
||||
import com.google.gwt.uibinder.client.UiHandler;
|
||||
import com.google.gwt.user.client.ui.Composite;
|
||||
import com.google.gwt.user.client.ui.FlowPanel;
|
||||
import com.google.gwt.user.client.ui.IsWidget;
|
||||
import com.google.gwt.user.client.ui.SimplePanel;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.gwt.common.client.controls.tabbar.TabView.State;
|
||||
|
||||
/**
|
||||
* Defines whole layout for site, including the header with the breadcrumbs and tab bar, and the content.
|
||||
* <p/>
|
||||
* Created by pgtaboada on 25.11.14.
|
||||
*/
|
||||
|
||||
public class TabPanel<PRESENTER> extends Composite {
|
||||
private static TabPanelUiBinder ourUiBinder = GWT.create(TabPanelUiBinder.class);
|
||||
private final Map<Class<Place>, TabView<Place, PRESENTER>> knownTabs = new LinkedHashMap<>();
|
||||
private final Map<Class<Place>, String> knownTabTitles = new HashMap<>();
|
||||
|
||||
@UiField
|
||||
SimplePanel additionalHeader;
|
||||
@UiField
|
||||
SimplePanel tabContentPanelUi;
|
||||
@UiField
|
||||
TabBar tabBar;
|
||||
@UiField BreadcrumbPane breadcrumbs;
|
||||
@UiField FlowPanel tabExtension;
|
||||
private TabView<Place, PRESENTER> currentTab;
|
||||
|
||||
|
||||
private final PlaceHistoryMapper historyMapper;
|
||||
private final PRESENTER presenter;
|
||||
|
||||
public TabPanel(PRESENTER presenter, PlaceHistoryMapper historyMapper) {
|
||||
this.presenter = presenter;
|
||||
this.historyMapper = historyMapper;
|
||||
initWidget(ourUiBinder.createAndBindUi(this));
|
||||
}
|
||||
|
||||
public TabView<?, PRESENTER> getCurrentTab() {
|
||||
return currentTab;
|
||||
}
|
||||
|
||||
@UiChild
|
||||
public void addHeader(Widget widget) {
|
||||
additionalHeader.setWidget(widget);
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds all tabs to the tab bar.
|
||||
*
|
||||
* @param tab
|
||||
* The tab to add
|
||||
* @param title
|
||||
* The label for the tab.
|
||||
*/
|
||||
@UiChild
|
||||
public void addTabContent(final TabView<Place, PRESENTER> tab, String title) {
|
||||
|
||||
GWT.log("Adding TAB: " + title);
|
||||
|
||||
// TODO: check if place class already known, reject...
|
||||
tab.setPresenter(presenter);
|
||||
final Class<Place> classForActivation = tab.getPlaceClassForActivation();
|
||||
knownTabs.put(classForActivation, tab);
|
||||
knownTabTitles.put(classForActivation, title);
|
||||
|
||||
if(tab.getState() == State.VISIBLE) {
|
||||
String link = "#" + historyMapper.getToken(tab.placeToFire());
|
||||
tabBar.addTab(title, classForActivation, link);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Handles given SelectionEvent, when tab is clicked. Fires a TabPanelPlaceSelectionEvent. The listener to this
|
||||
* event should properly fire place change events.
|
||||
*
|
||||
* @param event
|
||||
*/
|
||||
@UiHandler("tabBar")
|
||||
void onTabSelection(SelectionEvent<Class<Place>> event) {
|
||||
|
||||
TabView<?, PRESENTER> selectedTabActivity = knownTabs.get(event.getSelectedItem());
|
||||
if (selectedTabActivity != null) {
|
||||
GWT.log("Tab selection: " + selectedTabActivity.getPlaceClassForActivation().getName());
|
||||
if (currentTab != null) {
|
||||
currentTab.stop();
|
||||
}
|
||||
fireEvent(new TabPanelPlaceSelectionEvent(selectedTabActivity));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Starts the tab Activity and selects the tab based on the given Place.
|
||||
*
|
||||
* @param placeToGo
|
||||
* the given place.
|
||||
*/
|
||||
public void activatePlace(Place placeToGo) {
|
||||
if (knownTabs.containsKey(placeToGo.getClass())) {
|
||||
final TabView<Place, PRESENTER> newTab = knownTabs.get(placeToGo.getClass());
|
||||
|
||||
if (newTab.getState() == State.NOT_AVAILABLE_REDIRECT
|
||||
|| newTab.getState() == State.NOT_AVAILABLE_SHOW_NEXT_AVAILABLE) {
|
||||
for(TabView<Place, PRESENTER> tab : knownTabs.values()) {
|
||||
if(tab.getState() == State.VISIBLE) {
|
||||
// TODO is this redirect wanted? Just silently select another tab?
|
||||
if (currentTab != null) {
|
||||
currentTab.stop();
|
||||
}
|
||||
|
||||
if (newTab.getState() == State.NOT_AVAILABLE_REDIRECT) {
|
||||
fireEvent(new TabPanelPlaceSelectionEvent(tab));
|
||||
} else {
|
||||
activatePlace(tab.placeToFire());
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
newTab.start(placeToGo, tabContentPanelUi);
|
||||
tabBar.select(placeToGo);
|
||||
|
||||
currentTab = newTab;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Directly sets the content of the current widget until it is reloaded/ reset
|
||||
*
|
||||
* @param widget
|
||||
*/
|
||||
public void overrideCurrentContentInTab(IsWidget widget) {
|
||||
tabContentPanelUi.setWidget(widget);
|
||||
}
|
||||
|
||||
public void addBreadcrumbItem(String title, String link, final Runnable runnable) {
|
||||
breadcrumbs.addBreadcrumbItem(title, link, runnable);
|
||||
}
|
||||
|
||||
public void addBreadcrumbItem(String title, SafeUri link, final Runnable runnable) {
|
||||
breadcrumbs.addBreadcrumbItem(title, link, runnable);
|
||||
}
|
||||
|
||||
public HandlerRegistration addTabPanelPlaceSelectionEventHandler(TabPanelPlaceSelectionEvent.Handler handler) {
|
||||
return addHandler(handler, TabPanelPlaceSelectionEvent.TYPE);
|
||||
}
|
||||
|
||||
interface TabPanelUiBinder extends UiBinder<FlowPanel, TabPanel<?>> {
|
||||
}
|
||||
|
||||
public String getCurrentTabTitle() {
|
||||
if (currentTab == null)
|
||||
return null;
|
||||
return knownTabTitles.get(currentTab.getPlaceClassForActivation());
|
||||
}
|
||||
|
||||
@UiChild
|
||||
public void addTabExtension(IsWidget widget) {
|
||||
tabExtension.add(widget);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
|
||||
xmlns:g='urn:import:com.google.gwt.user.client.ui' xmlns:c="urn:import:com.sap.sailing.gwt.common.client.controls.tabbar">
|
||||
<ui:with field="res"
|
||||
type="com.sap.sailing.gwt.common.client.SharedResources" />
|
||||
<ui:style>
|
||||
.header {
|
||||
position: relative;
|
||||
font-size: 1rem;
|
||||
color: #666;
|
||||
background: #f2f2f2;
|
||||
border-bottom: 1px solid #dedede;
|
||||
}
|
||||
|
||||
.breadcrumb {
|
||||
font-size: 1rem;
|
||||
/* @alternate */ font-size: 0.866666666666667em;
|
||||
font-weight: 600;
|
||||
padding: 0.666666666666667em 0;
|
||||
}
|
||||
|
||||
.back:hover {
|
||||
background-color: #cfcfcf;
|
||||
}
|
||||
|
||||
.content {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.navigation {
|
||||
/* font-size: 0; */
|
||||
margin-bottom: -1px;
|
||||
}
|
||||
.navigation a{
|
||||
border-top-left-radius:4px;
|
||||
border-top-right-radius:4px;
|
||||
}
|
||||
.tabExtension {
|
||||
float: right;
|
||||
margin-left: 0.5em;
|
||||
}
|
||||
</ui:style>
|
||||
<g:FlowPanel>
|
||||
<g:HTMLPanel addStyleNames="{style.header}">
|
||||
<div class="{res.mediaCss.grid}">
|
||||
<div class="{res.mediaCss.small12} {res.mediaCss.columns}">
|
||||
<c:BreadcrumbPane ui:field="breadcrumbs"
|
||||
addStyleNames="{style.breadcrumb}" />
|
||||
</div>
|
||||
</div>
|
||||
<g:SimplePanel ui:field="additionalHeader" />
|
||||
<div class="{res.mediaCss.grid}">
|
||||
<div class="{res.mediaCss.small12} {res.mediaCss.columns}">
|
||||
<g:FlowPanel ui:field="tabExtension" addStyleNames="{style.tabExtension}" />
|
||||
<c:TabBar ui:field="tabBar"
|
||||
addStyleNames="{style.navigation}" />
|
||||
</div>
|
||||
</div>
|
||||
</g:HTMLPanel>
|
||||
<g:SimplePanel ui:field="tabContentPanelUi"
|
||||
addStyleNames="{style.content}" />
|
||||
</g:FlowPanel>
|
||||
</ui:UiBinder>
|
||||
@@ -0,0 +1,40 @@
|
||||
package com.sap.sailing.gwt.common.client.controls.tabbar;
|
||||
|
||||
import com.google.gwt.event.shared.EventHandler;
|
||||
import com.google.gwt.event.shared.GwtEvent;
|
||||
|
||||
/**
|
||||
* Created by pgtaboada on 01.12.14.
|
||||
*/
|
||||
public class TabPanelPlaceSelectionEvent extends GwtEvent<TabPanelPlaceSelectionEvent.Handler> {
|
||||
|
||||
public final static Type<Handler> TYPE = new Type<Handler>();
|
||||
|
||||
private TabView<?, ?> selectedActivity;
|
||||
|
||||
public TabPanelPlaceSelectionEvent(TabView<?, ?> selectedActivity) {
|
||||
this.selectedActivity = selectedActivity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type<Handler> getAssociatedType() {
|
||||
return TYPE;
|
||||
}
|
||||
|
||||
public TabView<?, ?> getSelectedActivity() {
|
||||
return selectedActivity;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dispatch(Handler handler) {
|
||||
|
||||
handler.onTabSelected(this);
|
||||
}
|
||||
|
||||
public interface Handler extends EventHandler {
|
||||
|
||||
void onTabSelected(TabPanelPlaceSelectionEvent event);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
package com.sap.sailing.gwt.common.client.controls.tabbar;
|
||||
|
||||
import com.google.gwt.place.shared.Place;
|
||||
import com.google.gwt.user.client.ui.AcceptsOneWidget;
|
||||
|
||||
/**
|
||||
* Defines lifecycle handling for the tab view.
|
||||
* <p/>
|
||||
* <p/>
|
||||
* Created by pgtaboada on 25.11.14.
|
||||
*/
|
||||
public interface TabView<PLACE extends Place, PRESENTER> {
|
||||
|
||||
public enum State {
|
||||
VISIBLE, INVISIBLE, NOT_AVAILABLE_REDIRECT, NOT_AVAILABLE_SHOW_NEXT_AVAILABLE
|
||||
}
|
||||
|
||||
/**
|
||||
* The place type that activates this tab.
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
Class<PLACE> getPlaceClassForActivation();
|
||||
|
||||
/**
|
||||
* Lifecycle method that triggers tab view start
|
||||
*
|
||||
* @param placeToGo
|
||||
* @param contentArea
|
||||
*/
|
||||
void start(PLACE requestedPlace, AcceptsOneWidget contentArea);
|
||||
|
||||
void setPresenter(PRESENTER presenter);
|
||||
|
||||
/**
|
||||
* Tells the tab that it is going to be deactiviated (not visible anymore), because of tab switch
|
||||
*/
|
||||
void stop();
|
||||
|
||||
PLACE placeToFire();
|
||||
|
||||
// TODO implement as defender method when Java 8 is ready as this is "VISIBLE" in most cases
|
||||
State getState();
|
||||
}
|
||||
@@ -1,8 +1,11 @@
|
||||
package com.sap.sailing.gwt.common.client.i18n;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.i18n.client.LocalizableResource.DefaultLocale;
|
||||
import com.google.gwt.i18n.client.Messages;
|
||||
|
||||
|
||||
@DefaultLocale("en")
|
||||
public interface TextMessages extends Messages {
|
||||
public static final TextMessages INSTANCE = GWT.create(TextMessages.class);
|
||||
|
||||
|
||||
@@ -66,7 +66,7 @@ eventHeaderOverview=Overview
|
||||
eventHeaderRaces=Schedule
|
||||
eventHeaderRegattas=Regattas
|
||||
seriesHeaderOverview=About the Series
|
||||
seriesHeaderUpcoming=Upcoming Events
|
||||
seriesHeaderUpcoming=Upcoming
|
||||
seriesHeaderRecent=Recent Events
|
||||
seriesHeaderLeaderboard=Leaderboard
|
||||
seriesOverviewHeaderRecent=Latest Series Events
|
||||
@@ -113,15 +113,15 @@ eventRegattaRacesLegendAudio=Audio Stream
|
||||
eventSponsorsTitle=Event Sponsorships
|
||||
footerJobs=Jobs
|
||||
footerCopyright=\u00A9 2015 SAP Sailing Analytics
|
||||
footerLanguage=SAP Sailing offered in
|
||||
footerLanguage=SAP Sailing in
|
||||
footerLegal=Legal Disclosure
|
||||
footerPrivacy=Privacy
|
||||
footerFeedback=Feedback
|
||||
headerEvents=Events
|
||||
headerHome=Home
|
||||
headerLogo=SAP Sailing Analytics
|
||||
headerLogo=Sailing Analytics
|
||||
headerSearch=Search
|
||||
headerSearchPlaceholder=Search SAPSailing.com
|
||||
headerSearchPlaceholder=Search
|
||||
headerSolutions=Solutions
|
||||
headerSponsoring=Sponsoring
|
||||
latestRaceResultsHeadline=Latest Official Race Results
|
||||
|
||||
@@ -0,0 +1,183 @@
|
||||
socialFooterShare=Share this on
|
||||
home=主页
|
||||
aboutUs=关于我们
|
||||
contact=联络
|
||||
sponsoring=赞助商
|
||||
solutions=解决方案
|
||||
events=比赛
|
||||
german=德语
|
||||
english=英语
|
||||
officalEventWebsite=官方活动网站
|
||||
leg=站
|
||||
races=赛事
|
||||
moreInfo=更多信息
|
||||
viewAnalysis=观看分析
|
||||
overallLeaderboard=总排行榜
|
||||
pleaseEnterASearchTerm=请输入搜索词
|
||||
pleaseTryAgain=请再试一次
|
||||
reloadPage=重新载入页面
|
||||
errorMessageLoadingData=加载该页的数据时出错
|
||||
errorMessageNoSuchLeaderboard=无法利用这词寻找排行榜
|
||||
raceNotScheduled=没有确认时间
|
||||
regattaDetails=帆船赛细节
|
||||
regatta=帆船赛
|
||||
competitorsAnalytics=队伍分析
|
||||
chooseChart=选择图标类型
|
||||
series=系列
|
||||
regattaLeaderboards=帆船赛排行榜
|
||||
features=功能
|
||||
releaseNotes=软件更新发布
|
||||
whatsNew=最新信息
|
||||
overview=概览
|
||||
sapSailing=SAP帆船
|
||||
search=搜索
|
||||
startSimulator=启动模拟器
|
||||
live=实时
|
||||
finished=结束
|
||||
watchNow=马上观看
|
||||
lastUpdate=最后更新
|
||||
leaderboard=排行榜
|
||||
eventHeaderMedia=媒体
|
||||
eventHeaderOverview=概览
|
||||
eventHeaderRaces=赛程
|
||||
eventHeaderRegattas=帆船赛
|
||||
seriesHeaderOverview=关于比赛系列
|
||||
seriesHeaderUpcoming=未来赛事
|
||||
seriesHeaderRecent=最近赛事
|
||||
seriesHeaderLeaderboard=排行榜
|
||||
eventsOverviewRecentEvents=赛事
|
||||
eventsOverviewRecentCountries=国家
|
||||
eventsOverviewRecentSailors=运动员
|
||||
eventsOverviewRecentTrackedRaces=赛事(含比赛分析)
|
||||
eventResultsHeadline=比赛结果
|
||||
eventResultsBoatClassesDropDown=所有帆船级别
|
||||
eventOverviewMoreEvents=更多赛事
|
||||
eventOverviewRecentEvents=最近赛事
|
||||
eventOverviewUpcomingDate=日期
|
||||
eventOverviewUpcomingEvent=赛事
|
||||
eventOverviewUpcomingLocation=地点
|
||||
eventOverviewUpcomingSchedule=未来赛程
|
||||
eventOverviewUpcomingSeries=系列
|
||||
eventOverviewUpcomingTeaser=更多赛事即将公布
|
||||
eventQuickfinderTitle=赛事快速查找
|
||||
eventRegattaHeaderLeaderboard=排行榜
|
||||
eventRegattaHeaderRaceRaces=赛事
|
||||
eventRegattaListAllBoatClasses=所有帆船级别
|
||||
eventRegattaLeaderboardCompetitor=比赛队伍
|
||||
eventRegattaLeaderboardExtendLeaderboard=详细排行榜
|
||||
eventRegattaLeaderboardFinishedMessage=没有更多比赛
|
||||
eventRegattaLeaderboardLastScoreUpdate=最后积分更新
|
||||
eventRegattaLeaderboardName=队伍名称
|
||||
eventRegattaLeaderboardRegattaRank=帆船赛排名
|
||||
eventRegattaLeaderboardTotalPoints=总积分
|
||||
eventRegattaRaceWatch=实时观看
|
||||
eventRegattaRaceAnalyse=赛事分析
|
||||
eventRegattaRaceNotTracked=不含比赛分析
|
||||
mainEventShowAll=显示所有赛事
|
||||
mainEventTitle=最新帆船赛事
|
||||
mainMediaSubtitle=
|
||||
mainMediaTitle=照片
|
||||
mainMediaVideosSubtitle=
|
||||
mainMediaVideosTitle=最新视频
|
||||
mainSponsorsReadMore=阅读更多
|
||||
mediaTeaserPhotosTitle=照片
|
||||
mediaTeaserVideosTitle=视频
|
||||
regattaCompetitors=比赛队伍\竞争对手
|
||||
regattaRaces=赛事
|
||||
regattaTracked=Tracked
|
||||
regattaRegattaStarts=帆船比赛即将开始
|
||||
regattaPts=积分
|
||||
regattaCourse=帆船赛程
|
||||
regattaArea=地点
|
||||
regattaFinishedAt=结束时间为
|
||||
regattaScheduledAt=开始时间为
|
||||
regattaStartedAt=开始时间为
|
||||
regattasResultsTitle=比赛结果
|
||||
searchResultHeaderButton=搜寻
|
||||
searchResultHeaderLabel=您的搜寻
|
||||
searchResultsFound=搜寻结果
|
||||
searchResultHeaderPlaceholder=输入您的搜寻关键词
|
||||
searchResultMore=更多
|
||||
searchResultSearch=搜寻
|
||||
searchResultSearchAgain=重新搜寻
|
||||
searchResultSortLabel=排序方式
|
||||
searchResultSortNewest=最近
|
||||
searchResultSortOldest=最旧
|
||||
searchResultSortRelevance=相关性
|
||||
solutionsSAPNav=SAP帆船比赛分析
|
||||
solutionsSAPHeadline=SAP帆船比赛分析
|
||||
countdownDays=Days
|
||||
countdownHours=Hrs
|
||||
countdownMinutes=Min
|
||||
countdownSeconds=Sec
|
||||
countdownDay=Day
|
||||
countdownHour=Hour
|
||||
countdownMinute=Min
|
||||
countdownSecond=Sec
|
||||
boxNewsUpdateMoreLink=Report news
|
||||
boxNewsUpdateTitle=News Update
|
||||
boxUpcomingRacesCountdownStarted1=Started
|
||||
boxUpcomingRacesCountdownStarted2=hrs and
|
||||
boxUpcomingRacesCountdownStarted3=minutes ago
|
||||
boxUpcomingRacesCountdownStarting1=Starting in
|
||||
boxUpcomingRacesCountdownStarting2=hrs and
|
||||
boxUpcomingRacesCountdownStarting3=minutes
|
||||
boxUpcomingRacesMoreLink=Event Schedule
|
||||
boxUpcomingRacesTitle=Upcoming Races Today
|
||||
boxWeather=Weather
|
||||
boxWeatherUnit=KTS
|
||||
defaultTitle=SAP帆船
|
||||
seriesOverviewHeaderRecent=Latest Series Events
|
||||
seriesOverviewReadMore=More
|
||||
eventRegattaRaceFinished=Finished at:
|
||||
eventRegattaRaceStarted=Started at:
|
||||
eventRegattaRaceScheduled=Scheduled for:
|
||||
eventRegattaRaceRace=Race
|
||||
eventRegattaRaceWind=Wind Strength:
|
||||
eventRegattaRaceWinner=Winner
|
||||
eventRegattaRaceLeader=Leader
|
||||
eventRegattaRacesLegendGps=Tracking
|
||||
eventRegattaRacesLegendWind=Wind Data
|
||||
eventRegattaRacesLegendVideo=Video Stream
|
||||
eventRegattaRacesLegendAudio=Audio Stream
|
||||
eventSponsorsTitle=Event Sponsorships
|
||||
footerJobs=Jobs
|
||||
footerCopyright=\u00A9 2015 SAP帆船
|
||||
footerLanguage=SAP Sailing offered in
|
||||
footerLegal=Legal Disclosure
|
||||
footerPrivacy=Privacy
|
||||
footerFeedback=Feedback
|
||||
headerEvents=比赛
|
||||
headerHome=主页
|
||||
headerLogo=SAP帆船
|
||||
headerSearch=搜索
|
||||
headerSearchPlaceholder=搜索
|
||||
headerSolutions=Solutions
|
||||
headerSponsoring=Sponsoring
|
||||
latestRaceResultsHeadline=Latest Official Race Results
|
||||
latestRaceResultsIsNew=New
|
||||
latestRaceResultsIsUpdated=Updated
|
||||
latestRaceResultsRaceCountLabel=Result after
|
||||
latestRaceResultsRaceCountUnit=races
|
||||
latestRaceResultsRefresh=refresh
|
||||
leaderboardQuickAccessLabel=Leaderboard Quick Access
|
||||
searchResultCount=About 2,450 results where found for 'Schnitzel'
|
||||
sharingEmail=Send an email
|
||||
sharingFacebook=Share on Facebook
|
||||
sharingTwitter=Tweet about it
|
||||
socialFooterTitle=Recommend SAP Sailing Analytics
|
||||
solutionsSAPText1=By delivering real time analytics around race rankings, speeds, maneuvers, bearings etc., SAP is helping to simplify and demystify the complex sport of sailing.
|
||||
solutionsSAPText2=SAP Sailing Analytics provide insights and transparency to the world of sailing by utilizing Cloud and In-Memory Technology, processing GPS and wind measurement data in real time and visualizing contents in various frontends accessible from anywhere.
|
||||
solutionsRaceNav=Race Committee App
|
||||
solutionsRaceHeadline=Race Committee App
|
||||
solutionsRaceText=The SAP Race Committee App delivers greater efficiency and control to race organizers by automating and simplifying their manual tasks and communication during running sailing regattas. The Race Committee App helps simplify the operation of running and managing race events to help race committees operate smarter.
|
||||
solutionsPostNav=Post-Race Analytics
|
||||
solutionsPostHeadline=Post-Race Analytics
|
||||
solutionsPostText=Access to data collected at sailing events gives sailors the opportunity to assess and analyse their performances to help develop strategies and sail better.<br> SAP Business Analytics solutions provide sailors, coaches, fans and media with tools to browse and analyse historical data across many regattas and races. SAP HANA allows them to learn about performance patterns, tendencies and sailor profiles in a simple, fast and efficient way in order to optimize their own performance and develop successful strategies for future regattas.
|
||||
solutionsTrainingNav=Training Diary
|
||||
solutionsTrainingHeadline=SAP Sail Better \u2013 STG Training Diary
|
||||
solutionsTrainingText=The STG Training Diary supports the daily documentation and analysis of an athlete\u2019s physical condition and training efforts in the areas of water training, physical training, boat work, mental, theory as well as other activities like education or travel.
|
||||
solutionsSimulatorNav=Strategy Simulator
|
||||
solutionsSimulatorHeadline=Strategy Simulator
|
||||
solutionsSimulatorText=Choosing the right strategy can provide great competitive advantage during a race. The Strategy Simulator simplifies determining the best sailing strategy for various wind conditions and water currents. Since wind and current can be changed in the simulation right away, the robustness of a strategy can be easily evaluated even for uncertain weather conditions.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
chartSelectionHint=Hinweis: Sie können auch Ergebnisstabelle (im Menü ERGEBNISSE) nutzen, um die im Diagramm angezeigten Teilnehmer auszuwählen.
|
||||
chartSelectionHint=Hinweis: Sie können auch Ergebnisstabelle (im Menü ERGEBNISSE) nutzen, um die im Diagramm angezeigten Teilnehmer auszuwählen.
|
||||
chooseALanguage=Wähle eine Sprache
|
||||
events=Veranstaltungen
|
||||
home=Startseite
|
||||
@@ -13,7 +13,7 @@ officalEventWebsite=Offizielle Internetseite
|
||||
leg=Schenkel
|
||||
races=Rennen
|
||||
moreInfo=Weitere Informationen
|
||||
viewAnalysis=Analyzen ansehen
|
||||
viewAnalysis=Analysen ansehen
|
||||
overallLeaderboard=Gesamtergebnis
|
||||
pleaseEnterASearchTerm=Bitte gebe einen Suchbegriff ein.
|
||||
pleaseTryAgain=Bitte versuchen sie es erneut...
|
||||
@@ -30,7 +30,7 @@ regattaLeaderboards=Regattaergebnisse
|
||||
features=Funktionen
|
||||
releaseNotes=Anmerkungen zur Version
|
||||
whatsNew=Neuigkeiten
|
||||
overview=Übersicht
|
||||
overview=Übersicht
|
||||
sapSailing=SAP Sailing
|
||||
search=Suche
|
||||
startSimulator=Simulator starten
|
||||
@@ -66,7 +66,7 @@ eventHeaderOverview=Übersicht
|
||||
eventHeaderRaces=Zeitplan
|
||||
eventHeaderRegattas=Regatten
|
||||
seriesHeaderOverview=Über die Serie
|
||||
seriesHeaderUpcoming=Noch kommende Veranstaltungen
|
||||
seriesHeaderUpcoming=Demnächst
|
||||
seriesHeaderRecent=Letzte Veranstaltungen
|
||||
seriesHeaderLeaderboard=Ergebnisliste
|
||||
seriesOverviewHeaderRecent=Letzte Serienveranstaltungen
|
||||
@@ -98,7 +98,7 @@ eventRegattaLeaderboardRegattaRank=Platz in der Regatta
|
||||
eventRegattaLeaderboardTotalPoints=Gesamtpunkte
|
||||
eventRegattaRaceWatch=Live ansehen
|
||||
eventRegattaRaceAnalyse=Rennen analysieren
|
||||
eventRegattaRaceNotTracked=Nicht getracked
|
||||
eventRegattaRaceNotTracked=Nicht getrackt
|
||||
eventRegattaRaceFinished=Beendet um:
|
||||
eventRegattaRaceStarted=Gestartet um:
|
||||
eventRegattaRaceScheduled=Geplant um:
|
||||
@@ -119,7 +119,7 @@ footerPrivacy=Datenschutz
|
||||
footerFeedback=Feedback
|
||||
headerEvents=Veranstaltungen
|
||||
headerHome=Startseite
|
||||
headerLogo=SAP Sailing Analytics
|
||||
headerLogo=Sailing Analytics
|
||||
headerSearch=Suche in SAPSailing.com
|
||||
headerSearchPlaceholder=Suche
|
||||
headerSolutions=Lösungen
|
||||
@@ -134,7 +134,7 @@ leaderboardQuickAccessLabel=Ergebnisliste Schnellzugang
|
||||
mainEventShowAll=Zeige alle Veranstaltungen
|
||||
mainEventTitle=Die letzten Veranstaltungen aus der Segelwelt
|
||||
mainMediaSubtitle=Hier gibt es die aktuellsten und schönsten Impressionen aus deiner beliebtesten Segelveranstaltung.
|
||||
mainMediaTitle=Segeln liebt Fotographie
|
||||
mainMediaTitle=Segeln liebt Fotografie
|
||||
mainMediaVideosSubtitle=Tauche ein in die Welt des Segelns und besuche auch die anderen Veranstaltungen für mehr Videos.
|
||||
mainMediaVideosTitle= Die Letzten Videoeinträge
|
||||
mainSponsorsReadMore=Lese mehr
|
||||
@@ -142,7 +142,7 @@ mediaTeaserPhotosTitle=Fotos
|
||||
mediaTeaserVideosTitle=Videos
|
||||
regattaCompetitors=Teilnehmer
|
||||
regattaRaces=Rennen
|
||||
regattaTracked=Getracked
|
||||
regattaTracked=Getrackt
|
||||
regattaRegattaStarts=Regatta wird starten
|
||||
regattaPts=Pkt.
|
||||
regattaCourse=Kurs
|
||||
|
||||
@@ -16,6 +16,7 @@ public class HomeEntryPoint extends AbstractMvpEntryPoint<StringMessages> {
|
||||
public void doOnModuleLoad() {
|
||||
ApplicationClientFactory clientFactory = GWT.create(ApplicationClientFactory.class);
|
||||
EntryPointHelper.registerASyncService((ServiceDefTarget) clientFactory.getSailingService(), RemoteServiceMappingConstants.sailingServiceRemotePath);
|
||||
EntryPointHelper.registerASyncService((ServiceDefTarget) clientFactory.getHomeService(), RemoteServiceMappingConstants.homeServiceRemotePath);
|
||||
ApplicationHistoryMapper applicationHistoryMapper = GWT.create(ApplicationHistoryMapper.class);
|
||||
initMvp(clientFactory, applicationHistoryMapper, new ApplicationActivityMapper(clientFactory));
|
||||
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.sap.sailing.gwt.home.client;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import com.google.gwt.user.client.rpc.RemoteService;
|
||||
import com.sap.sailing.gwt.ui.shared.eventlist.EventListViewDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.eventview.EventViewDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.fakeseries.EventSeriesViewDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.media.MediaDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.start.StartViewDTO;
|
||||
|
||||
public interface HomeService extends RemoteService {
|
||||
EventViewDTO getEventViewById(UUID id);
|
||||
|
||||
EventSeriesViewDTO getEventSeriesViewById(UUID id);
|
||||
|
||||
MediaDTO getMediaForEvent(UUID eventId);
|
||||
|
||||
MediaDTO getMediaForEventSeries(UUID seriesId);
|
||||
|
||||
EventListViewDTO getEventListView() throws Exception;
|
||||
|
||||
StartViewDTO getStartView() throws Exception;
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.sap.sailing.gwt.home.client;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
import com.sap.sailing.gwt.ui.shared.eventlist.EventListViewDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.eventview.EventViewDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.fakeseries.EventSeriesViewDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.media.MediaDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.start.StartViewDTO;
|
||||
|
||||
|
||||
/**
|
||||
* The async counterpart of {@link HomeService}
|
||||
*/
|
||||
public interface HomeServiceAsync {
|
||||
void getEventViewById(UUID id, AsyncCallback<EventViewDTO> callback);
|
||||
|
||||
void getEventSeriesViewById(UUID id, AsyncCallback<EventSeriesViewDTO> asyncCallback);
|
||||
|
||||
void getMediaForEvent(UUID eventId, AsyncCallback<MediaDTO> callback);
|
||||
|
||||
void getMediaForEventSeries(UUID seriesId, AsyncCallback<MediaDTO> callback);
|
||||
|
||||
void getEventListView(AsyncCallback<EventListViewDTO> callback);
|
||||
|
||||
void getStartView(AsyncCallback<StartViewDTO> callback);
|
||||
}
|
||||
@@ -4,6 +4,8 @@ import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.place.shared.Place;
|
||||
import com.google.gwt.place.shared.PlaceController;
|
||||
import com.google.web.bindery.event.shared.EventBus;
|
||||
import com.sap.sailing.gwt.home.client.HomeService;
|
||||
import com.sap.sailing.gwt.home.client.HomeServiceAsync;
|
||||
import com.sap.sailing.gwt.home.client.place.start.StartPlace;
|
||||
import com.sap.sailing.gwt.ui.client.MediaService;
|
||||
import com.sap.sailing.gwt.ui.client.MediaServiceAsync;
|
||||
@@ -14,6 +16,7 @@ import com.sap.sse.security.ui.client.SecureClientFactoryImpl;
|
||||
|
||||
public abstract class AbstractApplicationClientFactory extends SecureClientFactoryImpl implements ApplicationClientFactory {
|
||||
private final SailingServiceAsync sailingService;
|
||||
private final HomeServiceAsync homeService;
|
||||
private final MediaServiceAsync mediaService;
|
||||
private final HomePlacesNavigator navigator;
|
||||
|
||||
@@ -21,6 +24,7 @@ public abstract class AbstractApplicationClientFactory extends SecureClientFacto
|
||||
super(root, eventBus, placeController);
|
||||
navigator = new HomePlacesNavigator(placeController);
|
||||
sailingService = GWT.create(SailingService.class);
|
||||
homeService = GWT.create(HomeService.class);
|
||||
mediaService = GWT.create(MediaService.class);
|
||||
}
|
||||
|
||||
@@ -34,6 +38,11 @@ public abstract class AbstractApplicationClientFactory extends SecureClientFacto
|
||||
return sailingService;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HomeServiceAsync getHomeService() {
|
||||
return homeService;
|
||||
}
|
||||
|
||||
@Override
|
||||
public MediaServiceAsync getMediaService() {
|
||||
return mediaService;
|
||||
|
||||
@@ -1,15 +1,19 @@
|
||||
package com.sap.sailing.gwt.home.client.app;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.place.shared.Place;
|
||||
import com.google.gwt.place.shared.PlaceController;
|
||||
import com.google.gwt.place.shared.PlaceTokenizer;
|
||||
import com.google.gwt.user.client.History;
|
||||
import com.google.gwt.user.client.Window;
|
||||
|
||||
public abstract class AbstractPlaceNavigator implements PlaceNavigator {
|
||||
protected final PlaceController placeController;
|
||||
public final static String DEFAULT_SAPSAILING_SERVER = "www.sapsailing.com";
|
||||
public final static String DEFAULT_SAPSAILING_SERVER_URL = "http://" + DEFAULT_SAPSAILING_SERVER;
|
||||
|
||||
private final ApplicationHistoryMapper mapper = GWT.create(ApplicationHistoryMapper.class);
|
||||
|
||||
public final static String DEFAULT_SAPSAILING_SERVER = "www.sapsailing.com";
|
||||
public final static String DEFAULT_SAPSAILING_DEV_SERVER = "dev.sapsailing.com";
|
||||
public final static String DEFAULT_SAPSAILING_SERVER_URL = "http://" + DEFAULT_SAPSAILING_SERVER;
|
||||
|
||||
protected AbstractPlaceNavigator(PlaceController placeController) {
|
||||
this.placeController = placeController;
|
||||
@@ -25,20 +29,24 @@ public abstract class AbstractPlaceNavigator implements PlaceNavigator {
|
||||
}
|
||||
}
|
||||
|
||||
protected <T extends Place> PlaceNavigation<T> createLocalPlaceNavigation(T destinationPlace, PlaceTokenizer<T> tokenizer) {
|
||||
return new PlaceNavigation<T>(null, destinationPlace, tokenizer, false);
|
||||
protected <T extends Place> PlaceNavigation<T> createLocalPlaceNavigation(T destinationPlace) {
|
||||
return new PlaceNavigation<T>(null, destinationPlace, false, this);
|
||||
}
|
||||
|
||||
protected <T extends Place> PlaceNavigation<T> createGlobalPlaceNavigation(T destinationPlace, PlaceTokenizer<T> tokenizer) {
|
||||
return new PlaceNavigation<T>(destinationPlace, tokenizer);
|
||||
|
||||
protected <T extends Place> PlaceNavigation<T> createGlobalPlaceNavigation(T destinationPlace) {
|
||||
return new PlaceNavigation<T>(destinationPlace, this);
|
||||
}
|
||||
|
||||
protected <T extends Place> PlaceNavigation<T> createPlaceNavigation(String baseUrl, boolean isOnRemoteServer, T destinationPlace, PlaceTokenizer<T> tokenizer) {
|
||||
return new PlaceNavigation<T>(baseUrl, destinationPlace, tokenizer, isOnRemoteServer);
|
||||
|
||||
protected <T extends Place> PlaceNavigation<T> createPlaceNavigation(String baseUrl, boolean isOnRemoteServer,
|
||||
T destinationPlace) {
|
||||
return new PlaceNavigation<T>(baseUrl, destinationPlace, isOnRemoteServer, this);
|
||||
}
|
||||
|
||||
public <T extends Place> void pushPlaceToHistoryStack(T destinationPlace, PlaceTokenizer<T> tokenizer) {
|
||||
String placeHistoryToken = destinationPlace.getClass().getSimpleName() + ":" + tokenizer.getToken(destinationPlace);
|
||||
|
||||
|
||||
public <T extends Place> void pushPlaceToHistoryStack(T destinationPlace) {
|
||||
String placeHistoryToken = mapper.getToken(destinationPlace);
|
||||
History.newItem(placeHistoryToken, false);
|
||||
}
|
||||
}
|
||||
@@ -7,16 +7,33 @@ import com.sap.sailing.gwt.home.client.place.aboutus.AboutUsActivityProxy;
|
||||
import com.sap.sailing.gwt.home.client.place.aboutus.AboutUsPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.contact.ContactActivityProxy;
|
||||
import com.sap.sailing.gwt.home.client.place.contact.ContactPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.error.ErrorActivityProxy;
|
||||
import com.sap.sailing.gwt.home.client.place.error.ErrorPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.event.AbstractEventPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.event.EventActivityProxy;
|
||||
import com.sap.sailing.gwt.home.client.place.event.EventPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.event.EventContext;
|
||||
import com.sap.sailing.gwt.home.client.place.event.EventDefaultPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.event.legacy.EventPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.event.legacy.RegattaPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.event.legacy.SeriesPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.event.multiregatta.tabs.MultiregattaMediaPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.event.multiregatta.tabs.MultiregattaOverviewPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.event.multiregatta.tabs.MultiregattaRegattasPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.event.regatta.tabs.RegattaCompetitorAnalyticsPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.event.regatta.tabs.RegattaLeaderboardPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.event.regatta.tabs.RegattaMediaPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.event.regatta.tabs.RegattaOverviewPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.event.regatta.tabs.RegattaRacesPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.events.EventsActivityProxy;
|
||||
import com.sap.sailing.gwt.home.client.place.events.EventsPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.regatta.RegattaActivityProxy;
|
||||
import com.sap.sailing.gwt.home.client.place.regatta.RegattaPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.fakeseries.AbstractSeriesPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.fakeseries.SeriesContext;
|
||||
import com.sap.sailing.gwt.home.client.place.fakeseries.SeriesDefaultPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.fakeseries.tabs.EventSeriesCompetitorAnalyticsPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.fakeseries.tabs.EventSeriesLeaderboardsPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.fakeseries.tabs.EventSeriesOverallLeaderboardPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.searchresult.SearchResultActivityProxy;
|
||||
import com.sap.sailing.gwt.home.client.place.searchresult.SearchResultPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.series.SeriesActivityProxy;
|
||||
import com.sap.sailing.gwt.home.client.place.series.SeriesPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.solutions.SolutionsActivityProxy;
|
||||
import com.sap.sailing.gwt.home.client.place.solutions.SolutionsPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.sponsoring.SponsoringActivityProxy;
|
||||
@@ -38,10 +55,19 @@ public class ApplicationActivityMapper implements ActivityMapper {
|
||||
public Activity getActivity(Place place) {
|
||||
if (place instanceof AboutUsPlace) {
|
||||
return new AboutUsActivityProxy((AboutUsPlace) place, clientFactory);
|
||||
} else if (place instanceof ErrorPlace) {
|
||||
return new ErrorActivityProxy((ErrorPlace) place, clientFactory);
|
||||
} else if (place instanceof ContactPlace) {
|
||||
return new ContactActivityProxy((ContactPlace) place, clientFactory);
|
||||
} else if (place instanceof EventPlace) {
|
||||
return new EventActivityProxy((EventPlace) place, clientFactory);
|
||||
// return new EventActivityProxy((EventPlace) place, clientFactory);
|
||||
// rerouting old place to new place to make bookmarked URLs to work with the new interface.
|
||||
return getActivity(getRealEventPlace((EventPlace) place));
|
||||
} else if (place instanceof AbstractEventPlace) {
|
||||
AbstractEventPlace eventPlace = (AbstractEventPlace) place;
|
||||
return new EventActivityProxy(eventPlace, clientFactory, clientFactory.getHomePlacesNavigator());
|
||||
} else if (place instanceof AbstractSeriesPlace) {
|
||||
return new com.sap.sailing.gwt.home.client.place.fakeseries.SeriesActivityProxy((AbstractSeriesPlace) place, clientFactory, clientFactory.getHomePlacesNavigator());
|
||||
} else if (place instanceof EventsPlace) {
|
||||
return new EventsActivityProxy((EventsPlace) place, clientFactory);
|
||||
} else if (place instanceof StartPlace) {
|
||||
@@ -53,13 +79,93 @@ public class ApplicationActivityMapper implements ActivityMapper {
|
||||
} else if (place instanceof WhatsNewPlace) {
|
||||
return new WhatsNewActivityProxy((WhatsNewPlace) place, clientFactory);
|
||||
} else if (place instanceof RegattaPlace) {
|
||||
return new RegattaActivityProxy((RegattaPlace) place, clientFactory);
|
||||
// return new RegattaActivityProxy((RegattaPlace) place, clientFactory);
|
||||
// rerouting old place to new place to make bookmarked URLs to work with the new interface.
|
||||
return getActivity(getRealRegattaPlace((RegattaPlace) place));
|
||||
} else if (place instanceof SeriesPlace) {
|
||||
return new SeriesActivityProxy((SeriesPlace) place, clientFactory);
|
||||
// return new SeriesActivityProxy((SeriesPlace) place, clientFactory);
|
||||
// rerouting old place to new place to make bookmarked URLs to work with the new interface.
|
||||
return getActivity(getRealSeriesPlace((SeriesPlace) place));
|
||||
} else if (place instanceof SearchResultPlace) {
|
||||
return new SearchResultActivityProxy((SearchResultPlace) place, clientFactory);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
private Place getRealRegattaPlace(RegattaPlace place) {
|
||||
String eventId = place.getEventUuidAsString();
|
||||
if(eventId == null || eventId.isEmpty()) {
|
||||
return new EventsPlace();
|
||||
}
|
||||
EventContext eventContext = new EventContext().withId(eventId);
|
||||
String regattaId = place.getLeaderboardIdAsNameString();
|
||||
boolean hasRegattaId = (regattaId != null && !regattaId.isEmpty());
|
||||
|
||||
// TODO evaluate additional parameters
|
||||
|
||||
if(hasRegattaId) {
|
||||
switch (place.getNavigationTab()) {
|
||||
case CompetitorAnalytics:
|
||||
return new RegattaCompetitorAnalyticsPlace(eventContext);
|
||||
case Leaderboard:
|
||||
return new RegattaLeaderboardPlace(eventContext);
|
||||
}
|
||||
}
|
||||
return new EventDefaultPlace(eventContext);
|
||||
}
|
||||
|
||||
@SuppressWarnings("incomplete-switch")
|
||||
private Place getRealEventPlace(EventPlace place) {
|
||||
String eventId = place.getEventUuidAsString();
|
||||
if(eventId == null || eventId.isEmpty()) {
|
||||
return new EventsPlace();
|
||||
}
|
||||
EventContext eventContext = new EventContext().withId(eventId);
|
||||
String regattaId = place.getLeaderboardIdAsNameString();
|
||||
boolean hasRegattaId = (regattaId != null && !regattaId.isEmpty());
|
||||
if(hasRegattaId) {
|
||||
eventContext.withRegattaId(regattaId);
|
||||
|
||||
switch (place.getNavigationTab()) {
|
||||
case Media:
|
||||
return new RegattaMediaPlace(eventContext);
|
||||
case Overview:
|
||||
return new RegattaOverviewPlace(eventContext);
|
||||
case Regatta:
|
||||
return new RegattaRacesPlace(eventContext);
|
||||
}
|
||||
} else {
|
||||
switch (place.getNavigationTab()) {
|
||||
// TODO some places aren't implemented yet
|
||||
case Media:
|
||||
return new MultiregattaMediaPlace(eventContext);
|
||||
case Overview:
|
||||
return new MultiregattaOverviewPlace(eventContext);
|
||||
case Schedule:
|
||||
// Schedule not implemented yet -> using race list
|
||||
case Regattas:
|
||||
return new MultiregattaRegattasPlace(eventContext);
|
||||
}
|
||||
}
|
||||
|
||||
return new EventDefaultPlace(eventContext);
|
||||
}
|
||||
|
||||
private Place getRealSeriesPlace(SeriesPlace place) {
|
||||
String seriesId = place.getEventUuidAsString();
|
||||
SeriesContext context = new SeriesContext().withId(seriesId);
|
||||
|
||||
// TODO evaluate additional parameters
|
||||
|
||||
switch (place.getNavigationTab()) {
|
||||
case OverallLeaderboard:
|
||||
return new EventSeriesOverallLeaderboardPlace(context);
|
||||
case RegattaLeaderboards:
|
||||
return new EventSeriesLeaderboardsPlace(context);
|
||||
case CompetitorAnalytics:
|
||||
return new EventSeriesCompetitorAnalyticsPlace(context);
|
||||
}
|
||||
return new SeriesDefaultPlace(context);
|
||||
}
|
||||
}
|
||||
@@ -2,11 +2,11 @@ package com.sap.sailing.gwt.home.client.app;
|
||||
|
||||
import com.sap.sailing.gwt.home.client.place.aboutus.AboutUsClientFactory;
|
||||
import com.sap.sailing.gwt.home.client.place.contact.ContactClientFactory;
|
||||
import com.sap.sailing.gwt.home.client.place.error.ErrorClientFactory;
|
||||
import com.sap.sailing.gwt.home.client.place.event.EventClientFactory;
|
||||
import com.sap.sailing.gwt.home.client.place.event.legacy.SeriesClientFactory;
|
||||
import com.sap.sailing.gwt.home.client.place.events.EventsClientFactory;
|
||||
import com.sap.sailing.gwt.home.client.place.regatta.RegattaClientFactory;
|
||||
import com.sap.sailing.gwt.home.client.place.searchresult.SearchResultClientFactory;
|
||||
import com.sap.sailing.gwt.home.client.place.series.SeriesClientFactory;
|
||||
import com.sap.sailing.gwt.home.client.place.solutions.SolutionsClientFactory;
|
||||
import com.sap.sailing.gwt.home.client.place.sponsoring.SponsoringClientFactory;
|
||||
import com.sap.sailing.gwt.home.client.place.start.StartClientFactory;
|
||||
@@ -14,6 +14,6 @@ import com.sap.sailing.gwt.home.client.place.whatsnew.WhatsNewClientFactory;
|
||||
|
||||
public interface ApplicationClientFactory extends AboutUsClientFactory, ContactClientFactory, EventClientFactory,
|
||||
EventsClientFactory, StartClientFactory, SponsoringClientFactory, SolutionsClientFactory, SearchResultClientFactory,
|
||||
WhatsNewClientFactory, RegattaClientFactory, SeriesClientFactory {
|
||||
WhatsNewClientFactory, SeriesClientFactory, ErrorClientFactory {
|
||||
HomePlacesNavigator getHomePlacesNavigator();
|
||||
}
|
||||
@@ -4,18 +4,56 @@ import com.google.gwt.place.shared.PlaceHistoryMapper;
|
||||
import com.google.gwt.place.shared.WithTokenizers;
|
||||
import com.sap.sailing.gwt.home.client.place.aboutus.AboutUsPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.contact.ContactPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.event.EventPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.event.EventDefaultPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.event.legacy.EventPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.event.legacy.RegattaPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.event.legacy.SeriesPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.event.multiregatta.tabs.MultiregattaMediaPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.event.multiregatta.tabs.MultiregattaOverviewPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.event.multiregatta.tabs.MultiregattaRegattasPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.event.regatta.tabs.RegattaCompetitorAnalyticsPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.event.regatta.tabs.RegattaLeaderboardPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.event.regatta.tabs.RegattaMediaPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.event.regatta.tabs.RegattaOverviewPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.event.regatta.tabs.RegattaRacesPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.events.EventsPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.regatta.RegattaPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.fakeseries.SeriesDefaultPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.fakeseries.tabs.EventSeriesCompetitorAnalyticsPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.fakeseries.tabs.EventSeriesLeaderboardsPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.fakeseries.tabs.EventSeriesOverallLeaderboardPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.fakeseries.tabs.SeriesEventsPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.fakeseries.tabs.SeriesMediaPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.searchresult.SearchResultPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.series.SeriesPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.solutions.SolutionsPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.sponsoring.SponsoringPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.start.StartPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.whatsnew.WhatsNewPlace;
|
||||
|
||||
@WithTokenizers({ AboutUsPlace.Tokenizer.class, ContactPlace.Tokenizer.class, EventPlace.Tokenizer.class, EventsPlace.Tokenizer.class,
|
||||
SolutionsPlace.Tokenizer.class, WhatsNewPlace.Tokenizer.class, SponsoringPlace.Tokenizer.class, SearchResultPlace.Tokenizer.class, StartPlace.Tokenizer.class,
|
||||
RegattaPlace.Tokenizer.class, SeriesPlace.Tokenizer.class })
|
||||
@WithTokenizers({ AboutUsPlace.Tokenizer.class, ContactPlace.Tokenizer.class, EventPlace.Tokenizer.class,
|
||||
EventsPlace.Tokenizer.class, SolutionsPlace.Tokenizer.class, WhatsNewPlace.Tokenizer.class,
|
||||
SponsoringPlace.Tokenizer.class, SearchResultPlace.Tokenizer.class, StartPlace.Tokenizer.class,
|
||||
RegattaPlace.Tokenizer.class, SeriesPlace.Tokenizer.class,
|
||||
// Event tab places...
|
||||
EventDefaultPlace.Tokenizer.class,
|
||||
// Multiregatta places:
|
||||
MultiregattaOverviewPlace.Tokenizer.class,
|
||||
MultiregattaRegattasPlace.Tokenizer.class,
|
||||
MultiregattaMediaPlace.Tokenizer.class,
|
||||
// Regatta places:
|
||||
RegattaOverviewPlace.Tokenizer.class,
|
||||
RegattaRacesPlace.Tokenizer.class,
|
||||
RegattaLeaderboardPlace.Tokenizer.class,
|
||||
RegattaCompetitorAnalyticsPlace.Tokenizer.class,
|
||||
RegattaMediaPlace.Tokenizer.class,
|
||||
// Fake series places:
|
||||
SeriesDefaultPlace.Tokenizer.class,
|
||||
RegattaOverviewPlace.Tokenizer.class,
|
||||
SeriesEventsPlace.Tokenizer.class,
|
||||
EventSeriesCompetitorAnalyticsPlace.Tokenizer.class,
|
||||
EventSeriesOverallLeaderboardPlace.Tokenizer.class,
|
||||
EventSeriesLeaderboardsPlace.Tokenizer.class,
|
||||
SeriesMediaPlace.Tokenizer.class
|
||||
|
||||
})
|
||||
public interface ApplicationHistoryMapper extends PlaceHistoryMapper {
|
||||
}
|
||||
@@ -6,14 +6,16 @@ import java.util.Map;
|
||||
import com.google.gwt.place.shared.PlaceController;
|
||||
import com.sap.sailing.gwt.home.client.place.aboutus.AboutUsPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.contact.ContactPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.event.EventPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.event.EventPlace.EventNavigationTabs;
|
||||
import com.sap.sailing.gwt.home.client.place.event.AbstractEventPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.event.EventDefaultPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.event.multiregatta.tabs.MultiregattaRegattasPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.event.regatta.AbstractEventRegattaPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.event.regatta.tabs.RegattaCompetitorAnalyticsPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.event.regatta.tabs.RegattaLeaderboardPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.event.regatta.tabs.RegattaOverviewPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.events.EventsPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.regatta.RegattaPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.regatta.RegattaPlace.RegattaNavigationTabs;
|
||||
import com.sap.sailing.gwt.home.client.place.fakeseries.SeriesDefaultPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.searchresult.SearchResultPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.series.SeriesPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.series.SeriesPlace.SeriesNavigationTabs;
|
||||
import com.sap.sailing.gwt.home.client.place.solutions.SolutionsPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.solutions.SolutionsPlace.SolutionsNavigationTabs;
|
||||
import com.sap.sailing.gwt.home.client.place.sponsoring.SponsoringPlace;
|
||||
@@ -29,19 +31,19 @@ public class HomePlacesNavigator extends AbstractPlaceNavigator {
|
||||
}
|
||||
|
||||
public PlaceNavigation<StartPlace> getHomeNavigation() {
|
||||
return createGlobalPlaceNavigation(new StartPlace(), new StartPlace.Tokenizer());
|
||||
return createGlobalPlaceNavigation(new StartPlace());
|
||||
}
|
||||
|
||||
public PlaceNavigation<EventsPlace> getEventsNavigation() {
|
||||
return createGlobalPlaceNavigation(new EventsPlace(), new EventsPlace.Tokenizer());
|
||||
return createGlobalPlaceNavigation(new EventsPlace());
|
||||
}
|
||||
|
||||
public PlaceNavigation<SolutionsPlace> getSolutionsNavigation(SolutionsNavigationTabs navigationTab) {
|
||||
return createLocalPlaceNavigation(new SolutionsPlace(navigationTab), new SolutionsPlace.Tokenizer());
|
||||
return createLocalPlaceNavigation(new SolutionsPlace(navigationTab));
|
||||
}
|
||||
|
||||
public PlaceNavigation<WhatsNewPlace> getWhatsNewNavigation(WhatsNewNavigationTabs navigationTab) {
|
||||
return createLocalPlaceNavigation(new WhatsNewPlace(navigationTab), new WhatsNewPlace.Tokenizer());
|
||||
return createLocalPlaceNavigation(new WhatsNewPlace(navigationTab));
|
||||
}
|
||||
|
||||
public String getSimulatorURL() {
|
||||
@@ -50,40 +52,54 @@ public class HomePlacesNavigator extends AbstractPlaceNavigator {
|
||||
}
|
||||
|
||||
public PlaceNavigation<SponsoringPlace> getSponsoringNavigation() {
|
||||
return createGlobalPlaceNavigation(new SponsoringPlace(), new SponsoringPlace.Tokenizer());
|
||||
return createGlobalPlaceNavigation(new SponsoringPlace());
|
||||
}
|
||||
|
||||
public PlaceNavigation<AboutUsPlace> getAboutUsNavigation() {
|
||||
return createGlobalPlaceNavigation(new AboutUsPlace(), new AboutUsPlace.Tokenizer());
|
||||
return createGlobalPlaceNavigation(new AboutUsPlace());
|
||||
}
|
||||
|
||||
public PlaceNavigation<ContactPlace> getContactNavigation() {
|
||||
return createGlobalPlaceNavigation(new ContactPlace(), new ContactPlace.Tokenizer());
|
||||
return createGlobalPlaceNavigation(new ContactPlace());
|
||||
}
|
||||
|
||||
public PlaceNavigation<MultiregattaRegattasPlace> getEventRegattasNavigation(String eventUuidAsString, String baseUrl, boolean isOnRemoteServer) {
|
||||
MultiregattaRegattasPlace eventPlace = new MultiregattaRegattasPlace(eventUuidAsString);
|
||||
return createPlaceNavigation(baseUrl, isOnRemoteServer, eventPlace);
|
||||
}
|
||||
|
||||
public PlaceNavigation<SeriesDefaultPlace> getEventSeriesNavigation(String seriesId, String baseUrl, boolean isOnRemoteServer) {
|
||||
SeriesDefaultPlace place = new SeriesDefaultPlace(seriesId);
|
||||
return createPlaceNavigation(baseUrl, isOnRemoteServer, place);
|
||||
}
|
||||
|
||||
public PlaceNavigation<EventPlace> getEventNavigation(String eventUuidAsString, String baseUrl, boolean isOnRemoteServer) {
|
||||
EventPlace eventPlace = new EventPlace(eventUuidAsString, EventNavigationTabs.Regattas, null);
|
||||
return createPlaceNavigation(baseUrl, isOnRemoteServer, eventPlace, new EventPlace.Tokenizer());
|
||||
public PlaceNavigation<EventDefaultPlace> getEventNavigation(String eventUuidAsString, String baseUrl, boolean isOnRemoteServer) {
|
||||
EventDefaultPlace eventPlace = new EventDefaultPlace(eventUuidAsString);
|
||||
return createPlaceNavigation(baseUrl, isOnRemoteServer, eventPlace);
|
||||
}
|
||||
|
||||
public <P extends AbstractEventPlace> PlaceNavigation<P> getEventNavigation(P place, String baseUrl,
|
||||
boolean isOnRemoteServer) {
|
||||
return createPlaceNavigation(baseUrl, isOnRemoteServer, place);
|
||||
}
|
||||
|
||||
public PlaceNavigation<EventPlace> getRegattaNavigation(String eventUuidAsString, String leaderboardIdAsNameString, String baseUrl, boolean isOnRemoteServer) {
|
||||
EventPlace eventPlace = new EventPlace(eventUuidAsString, EventNavigationTabs.Regatta, leaderboardIdAsNameString);
|
||||
return createPlaceNavigation(baseUrl, isOnRemoteServer, eventPlace, new EventPlace.Tokenizer());
|
||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
||||
public PlaceNavigation<AbstractEventRegattaPlace> getRegattaNavigation(String eventUuidAsString, String leaderboardIdAsNameString, String baseUrl, boolean isOnRemoteServer) {
|
||||
RegattaOverviewPlace eventPlace = new RegattaOverviewPlace(eventUuidAsString, leaderboardIdAsNameString);
|
||||
return (PlaceNavigation) createPlaceNavigation(baseUrl, isOnRemoteServer, eventPlace);
|
||||
}
|
||||
|
||||
/** this place will be merged into the common regatta view as tab later on */
|
||||
public PlaceNavigation<RegattaPlace> getRegattaAnalyticsNavigation(String eventUuidAsString, RegattaNavigationTabs navigationTab, String leaderboardIdAsNameString, String baseUrl, boolean isOnRemoteServer) {
|
||||
RegattaPlace regattaPlace = new RegattaPlace(eventUuidAsString, navigationTab, leaderboardIdAsNameString, true, true);
|
||||
return createPlaceNavigation(baseUrl, isOnRemoteServer, regattaPlace, new RegattaPlace.Tokenizer());
|
||||
public PlaceNavigation<RegattaCompetitorAnalyticsPlace> getCompetitorAnalyticsNavigation(String eventUuidAsString, String regattaId, String baseUrl, boolean isOnRemoteServer) {
|
||||
RegattaCompetitorAnalyticsPlace regattaPlace = new RegattaCompetitorAnalyticsPlace(eventUuidAsString, regattaId);
|
||||
return createPlaceNavigation(baseUrl, isOnRemoteServer, regattaPlace);
|
||||
}
|
||||
|
||||
/** this place will be merged into the common series event view as tab later on */
|
||||
public PlaceNavigation<SeriesPlace> getSeriesAnalyticsNavigation(String eventUuidAsString, SeriesNavigationTabs navigationTab, String leaderboardIdAsNameString, String baseUrl, boolean isOnRemoteServer) {
|
||||
SeriesPlace seriesPlace = new SeriesPlace(eventUuidAsString, navigationTab, leaderboardIdAsNameString, true, true);
|
||||
return createPlaceNavigation(baseUrl, isOnRemoteServer, seriesPlace, new SeriesPlace.Tokenizer());
|
||||
|
||||
public PlaceNavigation<RegattaLeaderboardPlace> getLeaderboardNavigation(String eventUuidAsString, String regattaId, String baseUrl, boolean isOnRemoteServer) {
|
||||
RegattaLeaderboardPlace regattaPlace = new RegattaLeaderboardPlace(eventUuidAsString, regattaId);
|
||||
return createPlaceNavigation(baseUrl, isOnRemoteServer, regattaPlace);
|
||||
}
|
||||
|
||||
public PlaceNavigation<SearchResultPlace> getSearchResultNavigation(String searchQuery) {
|
||||
return createGlobalPlaceNavigation(new SearchResultPlace(searchQuery), new SearchResultPlace.Tokenizer());
|
||||
return createGlobalPlaceNavigation(new SearchResultPlace(searchQuery));
|
||||
}
|
||||
}
|
||||
@@ -2,28 +2,31 @@ package com.sap.sailing.gwt.home.client.app;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.place.shared.Place;
|
||||
import com.google.gwt.place.shared.PlaceTokenizer;
|
||||
import com.google.gwt.user.client.Window;
|
||||
|
||||
public class PlaceNavigation<T extends Place> {
|
||||
private final PlaceNavigator placeNavigator;
|
||||
|
||||
private final ApplicationHistoryMapper mapper = GWT.create(ApplicationHistoryMapper.class);
|
||||
|
||||
private final T destinationPlace;
|
||||
private final PlaceTokenizer<T> tokenizer;
|
||||
private final String baseUrl;
|
||||
private final boolean isDestinationOnRemoteServer;
|
||||
|
||||
public PlaceNavigation(T destinationPlace, PlaceTokenizer<T> tokenizer) {
|
||||
|
||||
public PlaceNavigation(T destinationPlace, PlaceNavigator placeNavigator) {
|
||||
this.placeNavigator = placeNavigator;
|
||||
this.destinationPlace = destinationPlace;
|
||||
this.tokenizer = tokenizer;
|
||||
String locationURL = getLocationURL();
|
||||
this.isDestinationOnRemoteServer = !(isLocationOnLocalhost(locationURL) || isLocationOnDefaultSapSailingServer(locationURL));
|
||||
this.baseUrl = isDestinationOnRemoteServer ? AbstractPlaceNavigator.DEFAULT_SAPSAILING_SERVER_URL : locationURL;
|
||||
this.isDestinationOnRemoteServer = !(isLocationOnLocalhostOrDevServer(locationURL) || isLocationOnDefaultSapSailingServer(locationURL));
|
||||
this.baseUrl = isDestinationOnRemoteServer ? AbstractPlaceNavigator.DEFAULT_SAPSAILING_SERVER_URL : locationURL;
|
||||
}
|
||||
|
||||
public PlaceNavigation(String baseUrl, T destinationPlace, PlaceTokenizer<T> tokenizer, boolean isDestinationOnRemoteServer) {
|
||||
public PlaceNavigation(String baseUrl, T destinationPlace, boolean isDestinationOnRemoteServer,
|
||||
PlaceNavigator placeNavigator) {
|
||||
this.destinationPlace = destinationPlace;
|
||||
this.tokenizer = tokenizer;
|
||||
this.isDestinationOnRemoteServer = isDestinationOnRemoteServer;
|
||||
this.baseUrl = isDestinationOnRemoteServer ? baseUrl : getLocationURL();
|
||||
this.placeNavigator = placeNavigator;
|
||||
this.baseUrl = isDestinationOnRemoteServer ? baseUrl : getLocationURL();
|
||||
}
|
||||
|
||||
public String getTargetUrl() {
|
||||
@@ -32,7 +35,7 @@ public class PlaceNavigation<T extends Place> {
|
||||
|
||||
public String getHistoryUrl() {
|
||||
String placeUrl = buildPlaceUrl();
|
||||
if(placeUrl.startsWith("#")) {
|
||||
if (placeUrl.startsWith("#")) {
|
||||
placeUrl = placeUrl.substring(1, placeUrl.length());
|
||||
}
|
||||
return placeUrl;
|
||||
@@ -44,10 +47,10 @@ public class PlaceNavigation<T extends Place> {
|
||||
|
||||
private String buildPlaceUrl() {
|
||||
String url = "";
|
||||
if(isRemotePlace()) {
|
||||
if (isRemotePlace()) {
|
||||
url = baseUrl + "/gwt/Home.html";
|
||||
if(!GWT.isProdMode()) {
|
||||
url += "?gwt.codesvr=127.0.0.1:9997";
|
||||
if (!GWT.isProdMode()) {
|
||||
url += "?gwt.codesvr=127.0.0.1:9997";
|
||||
}
|
||||
url += getPlaceToken();
|
||||
} else {
|
||||
@@ -55,24 +58,30 @@ public class PlaceNavigation<T extends Place> {
|
||||
}
|
||||
return url;
|
||||
}
|
||||
|
||||
|
||||
public boolean isRemotePlace() {
|
||||
return isDestinationOnRemoteServer;
|
||||
}
|
||||
|
||||
private String getPlaceToken() {
|
||||
return "#" + destinationPlace.getClass().getSimpleName() + ":" + tokenizer.getToken(destinationPlace);
|
||||
return "#" + mapper.getToken(destinationPlace);
|
||||
|
||||
}
|
||||
|
||||
private boolean isLocationOnDefaultSapSailingServer(String urlToCheck) {
|
||||
return urlToCheck.contains(HomePlacesNavigator.DEFAULT_SAPSAILING_SERVER);
|
||||
}
|
||||
|
||||
private boolean isLocationOnLocalhost(String urlToCheck) {
|
||||
return urlToCheck.contains("localhost") || urlToCheck.contains("127.0.0.1");
|
||||
private boolean isLocationOnLocalhostOrDevServer(String urlToCheck) {
|
||||
return urlToCheck.contains("localhost") || urlToCheck.contains("127.0.0.1")
|
||||
|| urlToCheck.contains(HomePlacesNavigator.DEFAULT_SAPSAILING_DEV_SERVER);
|
||||
}
|
||||
|
||||
|
||||
private String getLocationURL() {
|
||||
return Window.Location.getProtocol() + "//" + Window.Location.getHostName() + ":" + Window.Location.getPort();
|
||||
}
|
||||
|
||||
public void goToPlace() {
|
||||
placeNavigator.goToPlace(this);
|
||||
}
|
||||
}
|
||||
@@ -1,26 +1,13 @@
|
||||
package com.sap.sailing.gwt.home.client.app;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.google.gwt.event.shared.SimpleEventBus;
|
||||
import com.google.gwt.place.shared.PlaceController;
|
||||
import com.google.web.bindery.event.shared.EventBus;
|
||||
import com.sap.sailing.gwt.home.client.place.error.TabletAndDesktopErrorView;
|
||||
import com.sap.sailing.gwt.home.client.place.event.EventPlace.EventNavigationTabs;
|
||||
import com.sap.sailing.gwt.home.client.place.event.EventView;
|
||||
import com.sap.sailing.gwt.home.client.place.event.EventWithoutRegattasView;
|
||||
import com.sap.sailing.gwt.home.client.place.event.TabletAndDesktopEventView;
|
||||
import com.sap.sailing.gwt.home.client.place.event.TabletAndDesktopEventWithoutRegattasView;
|
||||
import com.sap.sailing.gwt.home.client.place.events.EventsView;
|
||||
import com.sap.sailing.gwt.home.client.place.events.TabletAndDesktopEventsView;
|
||||
import com.sap.sailing.gwt.home.client.place.regatta.RegattaAnalyticsView;
|
||||
import com.sap.sailing.gwt.home.client.place.regatta.RegattaPlace.RegattaNavigationTabs;
|
||||
import com.sap.sailing.gwt.home.client.place.regatta.TabletAndDesktopRegattaView;
|
||||
import com.sap.sailing.gwt.home.client.place.searchresult.SearchResultView;
|
||||
import com.sap.sailing.gwt.home.client.place.searchresult.TabletAndDesktopSearchResultView;
|
||||
import com.sap.sailing.gwt.home.client.place.series.SeriesAnalyticsView;
|
||||
import com.sap.sailing.gwt.home.client.place.series.SeriesPlace.SeriesNavigationTabs;
|
||||
import com.sap.sailing.gwt.home.client.place.series.TabletAndDesktopSeriesView;
|
||||
import com.sap.sailing.gwt.home.client.place.solutions.SolutionsPlace.SolutionsNavigationTabs;
|
||||
import com.sap.sailing.gwt.home.client.place.solutions.SolutionsView;
|
||||
import com.sap.sailing.gwt.home.client.place.solutions.TabletAndDesktopSolutionsView;
|
||||
@@ -28,12 +15,9 @@ import com.sap.sailing.gwt.home.client.place.sponsoring.SponsoringView;
|
||||
import com.sap.sailing.gwt.home.client.place.sponsoring.TabletAndDesktopSponsoringView;
|
||||
import com.sap.sailing.gwt.home.client.place.start.StartView;
|
||||
import com.sap.sailing.gwt.home.client.place.start.TabletAndDesktopStartView;
|
||||
import com.sap.sailing.gwt.home.client.place.whatsnew.TabletAndDesktopWhatsNewView;
|
||||
import com.sap.sailing.gwt.home.client.place.whatsnew.WhatsNewPlace.WhatsNewNavigationTabs;
|
||||
import com.sap.sailing.gwt.home.client.place.whatsnew.WhatsNewView;
|
||||
import com.sap.sailing.gwt.home.client.place.whatsnew.TabletAndDesktopWhatsNewView;
|
||||
import com.sap.sailing.gwt.ui.shared.EventDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RaceGroupDTO;
|
||||
import com.sap.sse.gwt.client.player.Timer;
|
||||
|
||||
|
||||
public class SmartphoneApplicationClientFactory extends AbstractApplicationClientFactory implements ApplicationClientFactory {
|
||||
@@ -46,18 +30,9 @@ public class SmartphoneApplicationClientFactory extends AbstractApplicationClien
|
||||
}
|
||||
|
||||
private SmartphoneApplicationClientFactory(EventBus eventBus, PlaceController placeController) {
|
||||
super(new TabletAndDesktopApplicationView(new HomePlacesNavigator(placeController)), eventBus, placeController);
|
||||
super(new TabletAndDesktopApplicationView(new HomePlacesNavigator(placeController), eventBus), eventBus, placeController);
|
||||
}
|
||||
|
||||
@Override
|
||||
public EventView createEventView(EventDTO event, EventNavigationTabs navigationTab, List<RaceGroupDTO> raceGroups, String leaderboardName, Timer timerForClientServerOffset) {
|
||||
return new TabletAndDesktopEventView(getSailingService(), event, navigationTab, raceGroups, leaderboardName, timerForClientServerOffset, getHomePlacesNavigator());
|
||||
}
|
||||
|
||||
@Override
|
||||
public EventWithoutRegattasView createEventWithoutRegattasView(EventDTO event) {
|
||||
return new TabletAndDesktopEventWithoutRegattasView(getSailingService(), event, getHomePlacesNavigator());
|
||||
}
|
||||
|
||||
@Override
|
||||
public EventsView createEventsView() {
|
||||
@@ -66,7 +41,7 @@ public class SmartphoneApplicationClientFactory extends AbstractApplicationClien
|
||||
|
||||
@Override
|
||||
public TabletAndDesktopErrorView createErrorView(String errorMessage, Throwable errorReason) {
|
||||
return new TabletAndDesktopErrorView(errorMessage, errorReason);
|
||||
return new TabletAndDesktopErrorView(errorMessage, errorReason, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -83,16 +58,6 @@ public class SmartphoneApplicationClientFactory extends AbstractApplicationClien
|
||||
return new TabletAndDesktopSolutionsView(navigationTab, getHomePlacesNavigator());
|
||||
}
|
||||
|
||||
@Override
|
||||
public RegattaAnalyticsView createRegattaAnalyticsView(EventDTO event, String leaderboardName, RegattaNavigationTabs navigationTab, Timer timerForClientServerOffset) {
|
||||
return new TabletAndDesktopRegattaView(event, leaderboardName, navigationTab, timerForClientServerOffset, getHomePlacesNavigator());
|
||||
}
|
||||
|
||||
@Override
|
||||
public SeriesAnalyticsView createSeriesAnalyticsView(EventDTO event, String leaderboardName, SeriesNavigationTabs navigationTab, Timer timerForClientServerOffset) {
|
||||
return new TabletAndDesktopSeriesView(event, leaderboardName, navigationTab, timerForClientServerOffset, getHomePlacesNavigator());
|
||||
}
|
||||
|
||||
@Override
|
||||
public SearchResultView createSearchResultView() {
|
||||
return new TabletAndDesktopSearchResultView(getHomePlacesNavigator());
|
||||
|
||||
@@ -1,26 +1,13 @@
|
||||
package com.sap.sailing.gwt.home.client.app;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.google.gwt.event.shared.SimpleEventBus;
|
||||
import com.google.gwt.place.shared.PlaceController;
|
||||
import com.google.web.bindery.event.shared.EventBus;
|
||||
import com.sap.sailing.gwt.home.client.place.error.TabletAndDesktopErrorView;
|
||||
import com.sap.sailing.gwt.home.client.place.event.EventPlace.EventNavigationTabs;
|
||||
import com.sap.sailing.gwt.home.client.place.event.EventView;
|
||||
import com.sap.sailing.gwt.home.client.place.event.EventWithoutRegattasView;
|
||||
import com.sap.sailing.gwt.home.client.place.event.TabletAndDesktopEventView;
|
||||
import com.sap.sailing.gwt.home.client.place.event.TabletAndDesktopEventWithoutRegattasView;
|
||||
import com.sap.sailing.gwt.home.client.place.events.EventsView;
|
||||
import com.sap.sailing.gwt.home.client.place.events.TabletAndDesktopEventsView;
|
||||
import com.sap.sailing.gwt.home.client.place.regatta.RegattaAnalyticsView;
|
||||
import com.sap.sailing.gwt.home.client.place.regatta.RegattaPlace.RegattaNavigationTabs;
|
||||
import com.sap.sailing.gwt.home.client.place.regatta.TabletAndDesktopRegattaView;
|
||||
import com.sap.sailing.gwt.home.client.place.searchresult.SearchResultView;
|
||||
import com.sap.sailing.gwt.home.client.place.searchresult.TabletAndDesktopSearchResultView;
|
||||
import com.sap.sailing.gwt.home.client.place.series.SeriesAnalyticsView;
|
||||
import com.sap.sailing.gwt.home.client.place.series.SeriesPlace.SeriesNavigationTabs;
|
||||
import com.sap.sailing.gwt.home.client.place.series.TabletAndDesktopSeriesView;
|
||||
import com.sap.sailing.gwt.home.client.place.solutions.SolutionsPlace.SolutionsNavigationTabs;
|
||||
import com.sap.sailing.gwt.home.client.place.solutions.SolutionsView;
|
||||
import com.sap.sailing.gwt.home.client.place.solutions.TabletAndDesktopSolutionsView;
|
||||
@@ -28,12 +15,9 @@ import com.sap.sailing.gwt.home.client.place.sponsoring.SponsoringView;
|
||||
import com.sap.sailing.gwt.home.client.place.sponsoring.TabletAndDesktopSponsoringView;
|
||||
import com.sap.sailing.gwt.home.client.place.start.StartView;
|
||||
import com.sap.sailing.gwt.home.client.place.start.TabletAndDesktopStartView;
|
||||
import com.sap.sailing.gwt.home.client.place.whatsnew.WhatsNewView;
|
||||
import com.sap.sailing.gwt.home.client.place.whatsnew.TabletAndDesktopWhatsNewView;
|
||||
import com.sap.sailing.gwt.home.client.place.whatsnew.WhatsNewPlace.WhatsNewNavigationTabs;
|
||||
import com.sap.sailing.gwt.ui.shared.EventDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RaceGroupDTO;
|
||||
import com.sap.sse.gwt.client.player.Timer;
|
||||
import com.sap.sailing.gwt.home.client.place.whatsnew.WhatsNewView;
|
||||
|
||||
|
||||
public class TabletAndDesktopApplicationClientFactory extends AbstractApplicationClientFactory implements ApplicationClientFactory {
|
||||
@@ -46,22 +30,12 @@ public class TabletAndDesktopApplicationClientFactory extends AbstractApplicatio
|
||||
}
|
||||
|
||||
private TabletAndDesktopApplicationClientFactory(EventBus eventBus, PlaceController placeController) {
|
||||
super(new TabletAndDesktopApplicationView(new HomePlacesNavigator(placeController)), eventBus, placeController);
|
||||
}
|
||||
|
||||
@Override
|
||||
public EventView createEventView(EventDTO event, EventNavigationTabs navigationTab, List<RaceGroupDTO> raceGroups, String leaderboardName, Timer timerForClientServerOffset) {
|
||||
return new TabletAndDesktopEventView(getSailingService(), event, navigationTab, raceGroups, leaderboardName, timerForClientServerOffset, getHomePlacesNavigator());
|
||||
super(new TabletAndDesktopApplicationView(new HomePlacesNavigator(placeController), eventBus), eventBus, placeController);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TabletAndDesktopErrorView createErrorView(String errorMessage, Throwable errorReason) {
|
||||
return new TabletAndDesktopErrorView(errorMessage, errorReason);
|
||||
}
|
||||
|
||||
@Override
|
||||
public EventWithoutRegattasView createEventWithoutRegattasView(EventDTO event) {
|
||||
return new TabletAndDesktopEventWithoutRegattasView(getSailingService(), event, getHomePlacesNavigator());
|
||||
return new TabletAndDesktopErrorView(errorMessage, errorReason, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -83,16 +57,6 @@ public class TabletAndDesktopApplicationClientFactory extends AbstractApplicatio
|
||||
public SolutionsView createSolutionsView(SolutionsNavigationTabs navigationTab) {
|
||||
return new TabletAndDesktopSolutionsView(navigationTab, getHomePlacesNavigator());
|
||||
}
|
||||
|
||||
@Override
|
||||
public RegattaAnalyticsView createRegattaAnalyticsView(EventDTO event, String leaderboardName, RegattaNavigationTabs navigationTab, Timer timerForClientServerOffset) {
|
||||
return new TabletAndDesktopRegattaView(event, leaderboardName, navigationTab, timerForClientServerOffset, getHomePlacesNavigator());
|
||||
}
|
||||
|
||||
@Override
|
||||
public SeriesAnalyticsView createSeriesAnalyticsView(EventDTO event, String leaderboardName, SeriesNavigationTabs navigationTab, Timer timerForClientServerOffset) {
|
||||
return new TabletAndDesktopSeriesView(event, leaderboardName, navigationTab, timerForClientServerOffset, getHomePlacesNavigator());
|
||||
}
|
||||
|
||||
@Override
|
||||
public SearchResultView createSearchResultView() {
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.google.gwt.user.client.ui.AcceptsOneWidget;
|
||||
import com.google.gwt.user.client.ui.Composite;
|
||||
import com.google.gwt.user.client.ui.SimplePanel;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.google.web.bindery.event.shared.EventBus;
|
||||
import com.sap.sailing.gwt.home.client.shared.footer.Footer;
|
||||
import com.sap.sailing.gwt.home.client.shared.header.Header;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
@@ -34,8 +35,8 @@ public class TabletAndDesktopApplicationView extends Composite implements Applic
|
||||
@UiField
|
||||
SimplePanel mainContentPanel;
|
||||
|
||||
public TabletAndDesktopApplicationView(HomePlacesNavigator navigator) {
|
||||
headerPanel = new Header(navigator);
|
||||
public TabletAndDesktopApplicationView(HomePlacesNavigator navigator, EventBus eventBus) {
|
||||
headerPanel = new Header(navigator, eventBus);
|
||||
footerPanel = new Footer(navigator);
|
||||
initWidget(uiBinder.createAndBindUi(this));
|
||||
}
|
||||
|
||||
@@ -1,10 +1,16 @@
|
||||
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
|
||||
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
|
||||
xmlns:g="urn:import:com.google.gwt.user.client.ui"
|
||||
xmlns:s="urn:import:com.sap.sailing.gwt.home.client.shared">
|
||||
xmlns:g="urn:import:com.google.gwt.user.client.ui" xmlns:s="urn:import:com.sap.sailing.gwt.home.client.shared">
|
||||
|
||||
<ui:style>
|
||||
.mainContent {
|
||||
min-height: 400px;
|
||||
}
|
||||
</ui:style>
|
||||
|
||||
<g:HTMLPanel>
|
||||
<s:header.Header ui:field="headerPanel" />
|
||||
<g:SimplePanel ui:field="mainContentPanel" />
|
||||
<s:footer.Footer ui:field="footerPanel" />
|
||||
</g:HTMLPanel>
|
||||
<g:SimplePanel ui:field="mainContentPanel" styleName="{style.mainContent}" />
|
||||
<s:footer.Footer ui:field="footerPanel" />
|
||||
</g:HTMLPanel>
|
||||
</ui:UiBinder>
|
||||
@@ -2,17 +2,46 @@ package com.sap.sailing.gwt.home.client.place.error;
|
||||
|
||||
import com.google.gwt.activity.shared.AbstractActivity;
|
||||
import com.google.gwt.event.shared.EventBus;
|
||||
import com.google.gwt.user.client.Command;
|
||||
import com.google.gwt.user.client.ui.AcceptsOneWidget;
|
||||
|
||||
public class ErrorActivity extends AbstractActivity {
|
||||
|
||||
private ErrorPlace currentPlace;
|
||||
private ErrorClientFactory clientFactory;
|
||||
|
||||
public ErrorActivity(ErrorPlace place, ErrorClientFactory clientFactory) {
|
||||
this.currentPlace = place;
|
||||
this.clientFactory = clientFactory;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void start(AcceptsOneWidget panel, EventBus eventBus) {
|
||||
// TODO: the error place should get the error message from the place
|
||||
panel.setWidget(new TabletAndDesktopErrorView(null, null));
|
||||
final TabletAndDesktopErrorView view;
|
||||
|
||||
Command reloadCommand = null;
|
||||
if (currentPlace.getComingFrom() != null) {
|
||||
reloadCommand = new Command() {
|
||||
|
||||
@Override
|
||||
public void execute() {
|
||||
clientFactory.getPlaceController().goTo(currentPlace.getComingFrom());
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
if (currentPlace.hasCustomErrorMessages()) {
|
||||
view = new TabletAndDesktopErrorView(
|
||||
currentPlace.getErrorMessage(),
|
||||
currentPlace.getErrorMessageDetail(),
|
||||
currentPlace.getException(), reloadCommand);
|
||||
} else {
|
||||
view = new TabletAndDesktopErrorView(currentPlace.getErrorMessageDetail(), currentPlace.getException(),
|
||||
reloadCommand);
|
||||
}
|
||||
|
||||
panel.setWidget(view);
|
||||
}
|
||||
|
||||
}
|
||||