mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-17 01:31:01 +00:00
Merge branch 'master' into foiling
This commit is contained in:
commit
853c1ee316
71 files changed
+1099
-669
No files matched your search
@@ -31,7 +31,6 @@ SAP is at the center of today’s technology revolution, developing innovations
|
||||
* [[EC2 mail relaying|wiki/mail-relaying]]
|
||||
* [[TracTrac|wiki/tractrac-lifecycle]]
|
||||
* [[Analytics on a stick|wiki/analytics-on-a-stick]]
|
||||
* [[Operating Igtimi WindBots/windbot-operations]]
|
||||
* [[Monitoring Apache and RabbitMQ|wiki/monitoring-apache-and-rabbitmq]]
|
||||
* [[JMX Support|wiki/jmx]]
|
||||
* [[Log File Analysis|wiki/log-file-analysis]]
|
||||
@@ -63,9 +62,11 @@ SAP is at the center of today’s technology revolution, developing innovations
|
||||
* [[Uploading Media Content|wiki/uploading-media-content]]
|
||||
* Information for Event Managers
|
||||
* [[Set up local network with replication server|wiki/event-network-with-replica]]
|
||||
* [[Operating Igtimi WindBots/windbot-operations]]
|
||||
* [[Operating Igtimi WindBots|wiki/windbot-operations]]
|
||||
* [[Linking Race Videos|wiki/linking-race-videos]]
|
||||
* [[Import official results|wiki/results-import]]
|
||||
* Information for League operators
|
||||
* [[FAQ|wiki/league-operators-faq]]
|
||||
* Planning and Event Information
|
||||
* [[Project Planning (bigger development)|wiki/planning]]
|
||||
* [[General Event Planning|wiki/general-event-planning]]
|
||||
|
||||
@@ -1,47 +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"/>
|
||||
<listAttribute key="com.google.gwt.eclipse.core.ENTRY_POINT_MODULES">
|
||||
<listEntry value="com.sap.sailing.dashboards.gwt.RibDashboard"/>
|
||||
</listAttribute>
|
||||
<booleanAttribute key="com.google.gwt.eclipse.core.SUPERDEVMODE_ENABLED" value="true"/>
|
||||
<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="-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 9998 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="-Xmx2048m"/>
|
||||
</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="false"/>
|
||||
<stringAttribute key="com.google.gwt.eclipse.core.CODE_SERVER_PORT" value="9998"/>
|
||||
<listAttribute key="com.google.gwt.eclipse.core.ENTRY_POINT_MODULES">
|
||||
<listEntry value="com.sap.sailing.dashboards.gwt.RibDashboard"/>
|
||||
</listAttribute>
|
||||
<booleanAttribute key="com.google.gwt.eclipse.core.SUPERDEVMODE_ENABLED" value="true"/>
|
||||
<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="-superDevMode -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 9998 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="-Xmx2048m"/>
|
||||
</launchConfiguration>
|
||||
@@ -1,47 +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="-Xmx2048m"/>
|
||||
</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="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="-Xmx2048m"/>
|
||||
</launchConfiguration>
|
||||
+4
-2
@@ -11,13 +11,14 @@ import com.sap.sailing.domain.common.impl.MeterDistance;
|
||||
public enum BoatClassMasterdata {
|
||||
_18Footer ("18Footer", true, 8.90, 2.00, BoatHullType.MONOHULL, true, "18.Footer", "18ft", "18ft Skiff", "18. Footer"),
|
||||
_2_4M ("2.4 Meter", true, 4.11, 0.81, BoatHullType.MONOHULL, false, "2.4M", "2.4mR", "2.4 Metre", "2.4-metre", "24MR"),
|
||||
_5O5 ("5O5", true, 5.03, 1.88, BoatHullType.MONOHULL, true, "505", "5o5", "505er", "5o5er"),
|
||||
_12M ("12 Meter", true, 5.97, 1.43, BoatHullType.MONOHULL, true, "12M", "12mR", "12SQM", "12-metre", "12 metre"),
|
||||
_12M ("12 Meter", true, 21.50, 3.60, BoatHullType.MONOHULL, true, "12M", "12mR", "12SQM", "12-metre", "12 metre"),
|
||||
_29ER ("29er", true, 4.45, 1.70, BoatHullType.MONOHULL, true),
|
||||
_49ER ("49er", true, 4.88, 1.93, BoatHullType.MONOHULL, true),
|
||||
_49ERFX ("49erFX", true, 4.88, 1.93, BoatHullType.MONOHULL, true, "49FX"),
|
||||
_420 ("420", true, 4.20, 1.65, BoatHullType.MONOHULL, true, "420er", "420M", "420W"),
|
||||
_470 ("470", true, 4.70, 1.68, BoatHullType.MONOHULL, true, "470er", "470M", "470W"),
|
||||
_5O5 ("5O5", true, 5.03, 1.88, BoatHullType.MONOHULL, true, "505", "5o5", "505er", "5o5er"),
|
||||
_5_5MR ("5.5mR", true, 9.50, 1.92, BoatHullType.MONOHULL, true, "5.5 Meter", "5.5 Metre", "5.5", "5.5M", "5.5-metre", "5.5 metre"),
|
||||
RS800 ("RS 800", true, 4.80, 1.88, BoatHullType.MONOHULL, true, "RS800"),
|
||||
A_CAT ("A-Catamaran", true, 5.49, 2.30, BoatHullType.CATAMARAN, false, "A-Cat", "ACat", "A-Class Catamaran"),
|
||||
ALBIN_EXPRESS ("Albin Express", true, 7.77, 2.50, BoatHullType.MONOHULL, false),
|
||||
@@ -85,6 +86,7 @@ public enum BoatClassMasterdata {
|
||||
SOLING ("Soling", true, 8.15, 1.91, BoatHullType.MONOHULL, true),
|
||||
STAR ("Star", true, 6.92, 1.74, BoatHullType.MONOHULL, false, "STR"),
|
||||
STREAMLINE ("Streamline", true, 7.15, 2.55, BoatHullType.MONOHULL, true),
|
||||
SUNBEAM_22 ("Sunbeam 22", true, 6.70, 2.15, BoatHullType.MONOHULL, true, "Sunbeam 22.1"),
|
||||
SWAN_45 ("Swan 45", true, 13.83, 3.91, BoatHullType.MONOHULL, true, "Swan", "Swan-45"),
|
||||
TARTAN_10 ("Tartan 10", true, 10.10, 2.82, BoatHullType.MONOHULL, true),
|
||||
TORNADO ("Tornado Catamaran", true, 6.10, 3.02, BoatHullType.CATAMARAN, true, "Tornado", "Tornado Cat"),
|
||||
|
||||
+1
-1
@@ -22,7 +22,7 @@ public class DurationTest {
|
||||
TimePoint t2 = t1.plus(d);
|
||||
assertEquals(123+234, t2.asMillis());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testDurationMinus() {
|
||||
TimePoint t1 = new MillisecondsTimePoint(234);
|
||||
|
||||
+29
@@ -1,10 +1,14 @@
|
||||
package com.sap.sailing.domain.common.test;
|
||||
|
||||
import static org.hamcrest.Matchers.is;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertThat;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.util.Calendar;
|
||||
import java.util.GregorianCalendar;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import com.sap.sse.common.TimePoint;
|
||||
@@ -54,4 +58,29 @@ public class TimePointTest {
|
||||
assertFalse(t.equals("s"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void nearestFullMinute() {
|
||||
Calendar cal = new GregorianCalendar();
|
||||
cal.set(Calendar.MILLISECOND, 0);
|
||||
cal.set(2016, 5, 15, 10, 12, 33); // 10:12:33 on June 15, 2016 in the local time zone
|
||||
final TimePoint start = new MillisecondsTimePoint(cal.getTime());
|
||||
cal.set(2016, 5, 15, 10, 8, 35); // 10:08:35 on June 15, 2016 in the local time zone
|
||||
final TimePoint t1 = new MillisecondsTimePoint(cal.getTime());
|
||||
cal.set(2016, 5, 15, 10, 8, 31); // 10:08:31 on June 15, 2016 in the local time zone
|
||||
final TimePoint t2 = new MillisecondsTimePoint(cal.getTime());
|
||||
cal.set(2016, 5, 15, 10, 15, 31); // 10:15:31 on June 15, 2016 in the local time zone
|
||||
final TimePoint t3 = new MillisecondsTimePoint(cal.getTime());
|
||||
cal.set(2016, 5, 15, 10, 15, 37); // 10:15:31 on June 15, 2016 in the local time zone
|
||||
final TimePoint t4 = new MillisecondsTimePoint(cal.getTime());
|
||||
assertEquals(new MillisecondsTimePoint(new GregorianCalendar(2016, 5, 15, 10, 12, 35).getTime()), start.getNearestModuloOneMinute(t1));
|
||||
assertEquals(new MillisecondsTimePoint(new GregorianCalendar(2016, 5, 15, 10, 12, 31).getTime()), start.getNearestModuloOneMinute(t2));
|
||||
assertEquals(new MillisecondsTimePoint(new GregorianCalendar(2016, 5, 15, 10, 12, 31).getTime()), start.getNearestModuloOneMinute(t3));
|
||||
assertEquals(new MillisecondsTimePoint(new GregorianCalendar(2016, 5, 15, 10, 12, 37).getTime()), start.getNearestModuloOneMinute(t4));
|
||||
// and now at least on milliseconds example
|
||||
cal.set(Calendar.MILLISECOND, 123);
|
||||
final TimePoint t5 = new MillisecondsTimePoint(cal.getTime());
|
||||
final Calendar t5Compare = new GregorianCalendar(2016, 5, 15, 10, 12, 37);
|
||||
t5Compare.set(Calendar.MILLISECOND, 123);
|
||||
assertEquals(new MillisecondsTimePoint(t5Compare.getTime()), start.getNearestModuloOneMinute(t5));
|
||||
}
|
||||
}
|
||||
+6
-6
@@ -299,11 +299,11 @@ public class TopLevelMasterData implements Serializable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Copies only those media tracks from allMediaTracks to filteredMediaTracks which are
|
||||
* assigned to races related to the exported LeaderboardGroup.
|
||||
* Copies only those media tracks from {@code allMediaTracks} to {@code filteredMediaTracks} which are
|
||||
* assigned to races related to any of exported {@link #leaderboardGroups}.
|
||||
*/
|
||||
private void filterMediaTracks(Iterable<MediaTrack> allMediaTracks, Set<MediaTrack> filteredMediaTracks) {
|
||||
Set<RaceIdentifier> raceIdentitifiersForMediaExport = collectRaceIdentifiersForMediaExport();
|
||||
final Set<RaceIdentifier> raceIdentitifiersForMediaExport = collectRaceIdentifiersForMediaExport();
|
||||
for (MediaTrack mediaTrack : allMediaTracks) {
|
||||
for (RegattaAndRaceIdentifier raceIdentifier : mediaTrack.assignedRaces) {
|
||||
if (raceIdentitifiersForMediaExport.contains(raceIdentifier)) {
|
||||
@@ -315,11 +315,11 @@ public class TopLevelMasterData implements Serializable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the set of races (in form of raceIdentifiers) related to the exported LeaderboardGroup.
|
||||
*
|
||||
* Returns the set of races (in the form of {@link RaceIdentifier}s) related to the exported
|
||||
* {@link #leaderboardGroups}.
|
||||
*/
|
||||
private Set<RaceIdentifier> collectRaceIdentifiersForMediaExport() {
|
||||
Set<RaceIdentifier> raceIdentifiers = new HashSet<>();
|
||||
final Set<RaceIdentifier> raceIdentifiers = new HashSet<>();
|
||||
for (LeaderboardGroup leaderboardGroup : leaderboardGroups) {
|
||||
for (Leaderboard leaderboard : leaderboardGroup.getLeaderboards()) {
|
||||
for (RaceColumn raceColumn : leaderboard.getRaceColumns()) {
|
||||
|
||||
@@ -1,78 +1,78 @@
|
||||
<?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"/>
|
||||
<stringAttribute key="com.google.gwt.eclipse.core.CODE_SERVER_PORT" value="9876"/>
|
||||
<listAttribute key="com.google.gwt.eclipse.core.ENTRY_POINT_MODULES">
|
||||
<listEntry value="com.sap.sailing.gwt.ui.EmbeddedMapAndWindChart"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.RaceBoard"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.DataMining"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.LeaderboardEditing"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.Spectator"/>
|
||||
<listEntry value="com.sap.sailing.gwt.regattaoverview.RegattaOverview"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.Leaderboard"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.Simulator"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.YoutubePopup"/>
|
||||
<listEntry value="com.sap.sailing.gwt.AutoPlay"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.AdminConsole"/>
|
||||
<listEntry value="com.sap.sailing.gwt.home.Home"/>
|
||||
<listEntry value="com.sap.sailing.gwt.AutoPlay"/>
|
||||
</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"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.polars.datamining.shared/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.datamining.annotations/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="-incremental -workDir "${project_loc:com.sap.sailing.gwt.ui}/.tmp/gwt-work" -war "${project_loc:com.sap.sailing.gwt.ui}" -noserver -remoteUI "${gwt_remote_ui_server_port}:${unique_id}" -logLevel INFO -codeServerPort 9876 -startupUrl /gwt/Home.html com.sap.sailing.gwt.home.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/EmbeddedMapAndWindChart com.sap.sailing.gwt.ui.EmbeddedMapAndWindChart -startupUrl /gwt/RaceBoard.html com.sap.sailing.gwt.ui.RaceBoard -startupUrl /gwt/RegattaOverview.html com.sap.sailing.gwt.regattaoverview.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 /gwt/AutoPlay.html com.sap.sailing.gwt.AutoPlay com.sap.sailing.gwt.home.Home com.sap.sailing.gwt.ui.AdminConsole 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.regattaoverview.RegattaOverview com.sap.sailing.gwt.ui.Spectator com.sap.sailing.gwt.ui.LeaderboardEditing com.sap.sailing.gwt.ui.DataMining com.sap.sailing.gwt.ui.RaceBoard com.sap.sailing.gwt.ui.EmbeddedMapAndWindChart"/>
|
||||
<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"/>
|
||||
<stringAttribute key="com.google.gwt.eclipse.core.CODE_SERVER_PORT" value="9876"/>
|
||||
<listAttribute key="com.google.gwt.eclipse.core.ENTRY_POINT_MODULES">
|
||||
<listEntry value="com.sap.sailing.gwt.ui.EmbeddedMapAndWindChart"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.RaceBoard"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.DataMining"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.LeaderboardEditing"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.Spectator"/>
|
||||
<listEntry value="com.sap.sailing.gwt.regattaoverview.RegattaOverview"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.Leaderboard"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.Simulator"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.YoutubePopup"/>
|
||||
<listEntry value="com.sap.sailing.gwt.AutoPlay"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.AdminConsole"/>
|
||||
<listEntry value="com.sap.sailing.gwt.home.Home"/>
|
||||
<listEntry value="com.sap.sailing.gwt.AutoPlay"/>
|
||||
</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"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.polars.datamining.shared/src" path="3" type="2"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.datamining.annotations/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 -workDir "${project_loc:com.sap.sailing.gwt.ui}/.tmp/gwt-work" -war "${project_loc:com.sap.sailing.gwt.ui}" -noserver -remoteUI "${gwt_remote_ui_server_port}:${unique_id}" -logLevel INFO -codeServerPort 9876 -startupUrl /gwt/Home.html com.sap.sailing.gwt.home.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/EmbeddedMapAndWindChart com.sap.sailing.gwt.ui.EmbeddedMapAndWindChart -startupUrl /gwt/RaceBoard.html com.sap.sailing.gwt.ui.RaceBoard -startupUrl /gwt/RegattaOverview.html com.sap.sailing.gwt.regattaoverview.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 /gwt/AutoPlay.html com.sap.sailing.gwt.AutoPlay com.sap.sailing.gwt.home.Home com.sap.sailing.gwt.ui.AdminConsole 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.regattaoverview.RegattaOverview com.sap.sailing.gwt.ui.Spectator com.sap.sailing.gwt.ui.LeaderboardEditing com.sap.sailing.gwt.ui.DataMining com.sap.sailing.gwt.ui.RaceBoard com.sap.sailing.gwt.ui.EmbeddedMapAndWindChart"/>
|
||||
<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,75 +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.ui.DataMining"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.LeaderboardEditing"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.Spectator"/>
|
||||
<listEntry value="com.sap.sailing.gwt.regattaoverview.RegattaOverview"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.Leaderboard"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.Simulator"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.YoutubePopup"/>
|
||||
<listEntry value="com.sap.sailing.gwt.AutoPlay"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.AdminConsole"/>
|
||||
<listEntry value="com.sap.sailing.gwt.home.Home"/>
|
||||
<listEntry value="com.sap.sailing.gwt.AutoPlay"/>
|
||||
</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>
|
||||
<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"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.polars.datamining.shared/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.gwt.ui}" -noserver -remoteUI "${gwt_remote_ui_server_port}:${unique_id}" -logLevel INFO -codeServerPort auto -startupUrl /gwt/Home.html com.sap.sailing.gwt.home.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/RegattaOverview.html com.sap.sailing.gwt.regattaoverview.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 /gwt/AutoPlay.html com.sap.sailing.gwt.AutoPlay com.sap.sailing.gwt.home.Home com.sap.sailing.gwt.ui.AdminConsole 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.regattaoverview.RegattaOverview com.sap.sailing.gwt.ui.Spectator com.sap.sailing.gwt.ui.LeaderboardEditing com.sap.sailing.gwt.ui.DataMining 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.ui.DataMining"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.LeaderboardEditing"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.Spectator"/>
|
||||
<listEntry value="com.sap.sailing.gwt.regattaoverview.RegattaOverview"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.Leaderboard"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.Simulator"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.YoutubePopup"/>
|
||||
<listEntry value="com.sap.sailing.gwt.AutoPlay"/>
|
||||
<listEntry value="com.sap.sailing.gwt.ui.AdminConsole"/>
|
||||
<listEntry value="com.sap.sailing.gwt.home.Home"/>
|
||||
<listEntry value="com.sap.sailing.gwt.AutoPlay"/>
|
||||
</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>
|
||||
<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"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sailing.polars.datamining.shared/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.gwt.ui}" -noserver -remoteUI "${gwt_remote_ui_server_port}:${unique_id}" -logLevel INFO -codeServerPort auto -startupUrl /gwt/Home.html com.sap.sailing.gwt.home.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/RegattaOverview.html com.sap.sailing.gwt.regattaoverview.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 /gwt/AutoPlay.html com.sap.sailing.gwt.AutoPlay com.sap.sailing.gwt.home.Home com.sap.sailing.gwt.ui.AdminConsole 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.regattaoverview.RegattaOverview com.sap.sailing.gwt.ui.Spectator com.sap.sailing.gwt.ui.LeaderboardEditing com.sap.sailing.gwt.ui.DataMining 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>
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.1 KiB |
-4
@@ -98,9 +98,7 @@ public class AutoPlayController implements RaceTimesInfoProviderListener, Leader
|
||||
private void showLeaderboard() {
|
||||
if (activeTvView != AutoPlayModes.Leaderboard) {
|
||||
playerView.clearContent();
|
||||
|
||||
boolean withFullscreenButton = autoPlayerConfiguration.isFullscreenMode() && isInitialScreen;
|
||||
|
||||
LeaderboardWithHeaderPerspective leaderboardPerspective = new LeaderboardWithHeaderPerspective(leaderboardPerspectiveLifecycleWithAllSettings,
|
||||
sailingService, asyncActionsExecutor,
|
||||
new CompetitorSelectionModel(/* hasMultiSelection */ true), leaderboardTimer,
|
||||
@@ -112,9 +110,7 @@ public class AutoPlayController implements RaceTimesInfoProviderListener, Leader
|
||||
activeTvView = AutoPlayModes.Leaderboard;
|
||||
raceboardTimer.pause();
|
||||
leaderboardTimer.setPlayMode(PlayModes.Live);
|
||||
|
||||
leaderboardPerspective.addLeaderboardUpdateListener(this);
|
||||
|
||||
isInitialScreen = false;
|
||||
}
|
||||
}
|
||||
|
||||
+1
-2
@@ -115,7 +115,6 @@ public class DesktopStartView extends Composite implements StartView {
|
||||
private void updatePerspectives(AbstractLeaderboardDTO leaderboard) {
|
||||
LeaderboardWithHeaderPerspectiveLifecycle leaderboardPerspectiveLifecycle = new LeaderboardWithHeaderPerspectiveLifecycle(leaderboard, StringMessages.INSTANCE);
|
||||
leaderboardPerspectiveLifecyclesAndSettings = new PerspectiveLifecycleWithAllSettings<>(leaderboardPerspectiveLifecycle, leaderboardPerspectiveLifecycle.createDefaultSettings());
|
||||
|
||||
RaceBoardPerspectiveLifecycle raceboardPerspectiveLifecycle = new RaceBoardPerspectiveLifecycle(leaderboard, StringMessages.INSTANCE);
|
||||
raceboardPerspectiveLifecyclesAndSettings = new PerspectiveLifecycleWithAllSettings<>(raceboardPerspectiveLifecycle, raceboardPerspectiveLifecycle.createDefaultSettings());
|
||||
}
|
||||
@@ -234,7 +233,7 @@ public class DesktopStartView extends Composite implements StartView {
|
||||
private String getSelectedLeaderboardName() {
|
||||
String result = null;
|
||||
int selectedIndex = leaderboardSelectionBox.getSelectedIndex();
|
||||
if(selectedIndex > 0) {
|
||||
if (selectedIndex > 0) {
|
||||
result = leaderboardSelectionBox.getItemText(selectedIndex);
|
||||
}
|
||||
return result;
|
||||
|
||||
+1
-1
@@ -23,7 +23,7 @@ public class SAPHeaderComponent extends AbstractCompositeComponent<SAPHeaderComp
|
||||
sapHeader.setHeaderTitle(settings.getTitle());
|
||||
initWidget(sapHeader);
|
||||
|
||||
if(startInAutoScreenMode) {
|
||||
if (startInAutoScreenMode) {
|
||||
Scheduler.get().scheduleFixedPeriod(new RepeatingCommand() {
|
||||
public boolean execute () {
|
||||
FullscreenUtil.requestFullscreen();
|
||||
|
||||
+2
-12
@@ -52,14 +52,12 @@ public class LeaderboardWithHeaderPerspective extends AbstractPerspectiveComposi
|
||||
String leaderboardName, final ErrorReporter errorReporter, final StringMessages stringMessages,
|
||||
UserAgentDetails userAgent, boolean startInFullScreenMode) {
|
||||
super(perspectiveLifecycleWithAllSettings.getPerspectiveLifecycle(), perspectiveLifecycleWithAllSettings.getPerspectiveSettings());
|
||||
|
||||
this.stringMessages = stringMessages;
|
||||
this.componentLifecyclesAndSettings = perspectiveLifecycleWithAllSettings;
|
||||
|
||||
Window.addResizeHandler(new ResizeHandler() {
|
||||
@Override
|
||||
public void onResize(ResizeEvent event) {
|
||||
if(LeaderboardWithHeaderPerspective.this.getPerspectiveSettings().isLeaderboardAutoZoom()) {
|
||||
if (LeaderboardWithHeaderPerspective.this.getPerspectiveSettings().isLeaderboardAutoZoom()) {
|
||||
autoZoomContentWidget(SAP_HEADER_HEIGHT, currentContentWidget);
|
||||
}
|
||||
}
|
||||
@@ -71,29 +69,21 @@ public class LeaderboardWithHeaderPerspective extends AbstractPerspectiveComposi
|
||||
stringMessages, startInFullScreenMode);
|
||||
leaderboardPanel = createLeaderboardPanel(sailingService, asyncActionsExecutor,
|
||||
competitorSelectionProvider, timer, leaderboardName, errorReporter, stringMessages, userAgent);
|
||||
|
||||
leaderboardPanel.getContentWidget().getElement().getStyle().setFontWeight(FontWeight.BOLD);
|
||||
|
||||
components.add(sapHeader);
|
||||
components.add(leaderboardPanel);
|
||||
|
||||
dockPanel = new DockLayoutPanel(Unit.PX);
|
||||
dockPanel.addNorth(sapHeader, SAP_HEADER_HEIGHT);
|
||||
|
||||
OldLeaderboard oldLeaderboard = new OldLeaderboard(leaderboardPanel);
|
||||
leaderboardPanel.addLeaderboardUpdateListener(oldLeaderboard);
|
||||
|
||||
currentContentWidget = oldLeaderboard.getContentWidget();
|
||||
|
||||
if(getPerspectiveSettings().isLeaderboardAutoZoom()) {
|
||||
if (getPerspectiveSettings().isLeaderboardAutoZoom()) {
|
||||
autoZoomContentWidget(SAP_HEADER_HEIGHT, currentContentWidget);
|
||||
} else {
|
||||
Double zoom = getPerspectiveSettings().getLeaderboardZoomFactor();
|
||||
zoomContentWidget(SAP_HEADER_HEIGHT, currentContentWidget, zoom);
|
||||
}
|
||||
|
||||
dockPanel.add(oldLeaderboard);
|
||||
|
||||
initWidget(dockPanel);
|
||||
}
|
||||
|
||||
|
||||
+3
-1
@@ -18,7 +18,9 @@ public class LeaderboardWithHeaderPerspectiveLifecycle extends AbstractPerspecti
|
||||
super();
|
||||
this.stringMessages = stringMessages;
|
||||
this.leaderboardPanelLifecycle = new LeaderboardPanelLifecycle(leaderboard, stringMessages);
|
||||
this.sapHeaderLifecycle = new SAPHeaderComponentLifecycle(stringMessages.leaderboard() + ": " + leaderboard.getDisplayName(), stringMessages);
|
||||
this.sapHeaderLifecycle = new SAPHeaderComponentLifecycle(stringMessages.leaderboard() + ": " +
|
||||
(leaderboard.getDisplayName() == null ? leaderboard.name : leaderboard.getDisplayName()),
|
||||
stringMessages);
|
||||
|
||||
this.componentLifecycles.add(leaderboardPanelLifecycle);
|
||||
this.componentLifecycles.add(sapHeaderLifecycle);
|
||||
|
||||
+2
@@ -35,6 +35,7 @@ public class BoatClassImageResolver {
|
||||
boatClassIconsMap.put(BoatClassMasterdata._49ERFX.getDisplayName(), imageResources._49erFXIcon());
|
||||
boatClassIconsMap.put(BoatClassMasterdata._49ER.getDisplayName(), imageResources._49erIcon());
|
||||
boatClassIconsMap.put(BoatClassMasterdata._5O5.getDisplayName(), imageResources._505mIcon());
|
||||
boatClassIconsMap.put(BoatClassMasterdata._5_5MR.getDisplayName(), imageResources._5_5MRIcon());
|
||||
boatClassIconsMap.put(BoatClassMasterdata.A_CAT.getDisplayName(), imageResources.A_CatIcon());
|
||||
boatClassIconsMap.put(BoatClassMasterdata.ALBIN_EXPRESS.getDisplayName(), imageResources.AlbinExpressIcon());
|
||||
boatClassIconsMap.put(BoatClassMasterdata.B_ONE.getDisplayName(), imageResources.BOne());
|
||||
@@ -97,6 +98,7 @@ public class BoatClassImageResolver {
|
||||
boatClassIconsMap.put(BoatClassMasterdata.SOLING.getDisplayName(), imageResources.SolingIcon());
|
||||
boatClassIconsMap.put(BoatClassMasterdata.STAR.getDisplayName(), imageResources.StarIcon());
|
||||
boatClassIconsMap.put(BoatClassMasterdata.STREAMLINE.getDisplayName(), imageResources.StreamlineIcon());
|
||||
boatClassIconsMap.put(BoatClassMasterdata.SUNBEAM_22.getDisplayName(), imageResources.Sunbeam22Icon());
|
||||
boatClassIconsMap.put(BoatClassMasterdata.SWAN_45.getDisplayName(), imageResources.Swan45Icon());
|
||||
boatClassIconsMap.put(BoatClassMasterdata.TARTAN_10.getDisplayName(), imageResources.Tartan10Icon());
|
||||
boatClassIconsMap.put(BoatClassMasterdata.TORNADO.getDisplayName(), imageResources.TornadoIcon());
|
||||
|
||||
+6
@@ -37,6 +37,9 @@ public interface BoatClassImageResources extends ClientBundle {
|
||||
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/505.png")
|
||||
ImageResource _505mIcon();
|
||||
|
||||
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/5.5mR.png")
|
||||
ImageResource _5_5MRIcon();
|
||||
|
||||
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/A_CAT.png")
|
||||
ImageResource A_CatIcon();
|
||||
|
||||
@@ -178,6 +181,9 @@ public interface BoatClassImageResources extends ClientBundle {
|
||||
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/STREAMLINE.png")
|
||||
ImageResource StreamlineIcon();
|
||||
|
||||
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/SUNBEAM22.png")
|
||||
ImageResource Sunbeam22Icon();
|
||||
|
||||
@Source("com/sap/sailing/gwt/ui/client/images/boatclass/SWAN_45.png")
|
||||
ImageResource Swan45Icon();
|
||||
|
||||
|
||||
+40
@@ -2,6 +2,7 @@ package com.sap.sailing.gwt.home.communication.eventview;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import com.sap.sse.gwt.dispatch.shared.commands.DTO;
|
||||
|
||||
public class RegattaMetadataDTO extends RegattaReferenceDTO implements HasRegattaMetadata {
|
||||
private int raceCount;
|
||||
@@ -14,6 +15,7 @@ public class RegattaMetadataDTO extends RegattaReferenceDTO implements HasRegatt
|
||||
private Date endDate;
|
||||
private RegattaState state;
|
||||
private boolean flexibleLeaderboard;
|
||||
private RaceDataInfo raceDataInfo;
|
||||
|
||||
public RegattaMetadataDTO() {
|
||||
}
|
||||
@@ -104,4 +106,42 @@ public class RegattaMetadataDTO extends RegattaReferenceDTO implements HasRegatt
|
||||
public void setDefaultCourseAreaId(String defaultCourseAreaId) {
|
||||
this.defaultCourseAreaId = defaultCourseAreaId;
|
||||
}
|
||||
|
||||
public RaceDataInfo getRaceDataInfo() {
|
||||
return raceDataInfo;
|
||||
}
|
||||
|
||||
public void setRaceDataInfo(RaceDataInfo raceDataInfo) {
|
||||
this.raceDataInfo = raceDataInfo;
|
||||
}
|
||||
|
||||
public static class RaceDataInfo implements DTO {
|
||||
private boolean hasGPSData, hasWindData, hasVideoData, hasAudioData;
|
||||
|
||||
protected RaceDataInfo() {
|
||||
}
|
||||
|
||||
public RaceDataInfo(boolean hasGPSData, boolean hasWindData, boolean hasVideoData, boolean hasAudioData) {
|
||||
this.hasGPSData = hasGPSData;
|
||||
this.hasWindData = hasWindData;
|
||||
this.hasVideoData = hasVideoData;
|
||||
this.hasAudioData = hasAudioData;
|
||||
}
|
||||
|
||||
public boolean hasGPSData() {
|
||||
return hasGPSData;
|
||||
}
|
||||
|
||||
public boolean hasWindData() {
|
||||
return hasWindData;
|
||||
}
|
||||
|
||||
public boolean hasVideoData() {
|
||||
return hasVideoData;
|
||||
}
|
||||
|
||||
public boolean hasAudioData() {
|
||||
return hasAudioData;
|
||||
}
|
||||
}
|
||||
}
|
||||
+1
@@ -31,6 +31,7 @@ public class MultiRegattaListItem extends Composite {
|
||||
public MultiRegattaListItem(RegattaWithProgressDTO regattaWithProgress, Presenter presenter) {
|
||||
this(regattaWithProgress, presenter.getEventDTO().isRunning());
|
||||
regattaHeaderUi.setRegattaNavigation(presenter.getRegattaNavigation(regattaWithProgress.getId()));
|
||||
regattaHeaderUi.setRegattaRacesNavigation(presenter.getRegattaRacesNavigation(regattaWithProgress.getId()));
|
||||
PlaceNavigation<?> leaderboardNavigation = presenter.getRegattaLeaderboardNavigation(regattaWithProgress.getId());
|
||||
regattaStepsUi.setLeaderboardNavigation(regattaWithProgress.getState(), leaderboardNavigation);
|
||||
}
|
||||
|
||||
+44
-2
@@ -13,7 +13,7 @@
|
||||
border-bottom: 1px solid #ddd;
|
||||
}
|
||||
.regattaheaderpadding {
|
||||
padding-right: 5em;
|
||||
padding-right: 9.666667em;
|
||||
}
|
||||
.regattaheader_logo {
|
||||
float: left;
|
||||
@@ -99,7 +99,7 @@
|
||||
bottom: 0;
|
||||
text-align: right;
|
||||
padding: 0.666666666666667em;
|
||||
padding-right: 4.666666666666667em;
|
||||
padding-right: 5.333333333333333em;
|
||||
background-image: url("images/home/arrow-down-grey.png");
|
||||
background-size: 1.333333333333333em 1.333333333333333em;
|
||||
background-position: center;
|
||||
@@ -109,6 +109,48 @@
|
||||
-ms-transform: rotate(-90deg);
|
||||
transform: rotate(-90deg);
|
||||
}
|
||||
|
||||
.regattaheader_indicators {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 1em;
|
||||
bottom: 0;
|
||||
width: 4.666667em;
|
||||
margin: .666666666666667em 0 1em;
|
||||
cursor: default;
|
||||
font-size: 1rem;
|
||||
border-left: 1px solid #ccc;
|
||||
}
|
||||
|
||||
.regattaheader_indicators:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.regattaheader_indicators.regattaheader_indicators_next_to_arrow {
|
||||
right: 5em;
|
||||
border-right: 1px solid #ccc;
|
||||
cursor: inherit;
|
||||
}
|
||||
.regattaheader_indicators > div {
|
||||
font-size: 0;
|
||||
text-align: center;
|
||||
margin-top: -0.1rem;
|
||||
}
|
||||
|
||||
.regattaheader_indicators > div > div {
|
||||
background-size: 1.666666666666667rem 1.666666666666667rem;
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
width: 1.666666666666667rem;
|
||||
height: 1.666666666666667rem;
|
||||
display: inline-block;
|
||||
margin: 0.1rem 0.2rem
|
||||
}
|
||||
|
||||
.regattaheader_indicators > div > div.regattaheader_indicator_disabled {
|
||||
opacity: 0.15;
|
||||
}
|
||||
|
||||
.regattaheader_update {
|
||||
width: 20%;
|
||||
float: right;
|
||||
|
||||
+25
@@ -2,11 +2,14 @@ package com.sap.sailing.gwt.home.desktop.partials.regattaheader;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.dom.client.AnchorElement;
|
||||
import com.google.gwt.dom.client.DivElement;
|
||||
import com.google.gwt.uibinder.client.UiBinder;
|
||||
import com.google.gwt.uibinder.client.UiField;
|
||||
import com.google.gwt.user.client.ui.Composite;
|
||||
import com.google.gwt.user.client.ui.UIObject;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.gwt.home.communication.eventview.RegattaMetadataDTO;
|
||||
import com.sap.sailing.gwt.home.communication.eventview.RegattaMetadataDTO.RaceDataInfo;
|
||||
import com.sap.sailing.gwt.home.shared.app.PlaceNavigation;
|
||||
|
||||
public class RegattaHeader extends Composite {
|
||||
@@ -16,18 +19,40 @@ public class RegattaHeader extends Composite {
|
||||
interface RegattaHeaderUiBinder extends UiBinder<Widget, RegattaHeader> {
|
||||
}
|
||||
|
||||
@UiField RegattaHeaderResources local_res;
|
||||
|
||||
@UiField AnchorElement headerBodyUi;
|
||||
@UiField AnchorElement headerArrowUi;
|
||||
@UiField AnchorElement dataIndicatorsUi;
|
||||
@UiField DivElement gpsDataIndicatorUi;
|
||||
@UiField DivElement windDataIndicatorUi;
|
||||
@UiField DivElement videoDataIndicatorUi;
|
||||
@UiField DivElement audioDataIndicatorUi;
|
||||
|
||||
public RegattaHeader(RegattaMetadataDTO regattaMetadata, boolean showStateMarker) {
|
||||
initWidget(uiBinder.createAndBindUi(this));
|
||||
headerBodyUi.appendChild(new RegattaHeaderBody(regattaMetadata, showStateMarker).getElement());
|
||||
this.initDataIndicators(regattaMetadata.getRaceDataInfo());
|
||||
}
|
||||
|
||||
public void setRegattaNavigation(PlaceNavigation<?> placeNavigation) {
|
||||
headerArrowUi.getStyle().clearDisplay();
|
||||
dataIndicatorsUi.addClassName(local_res.css().regattaheader_indicators_next_to_arrow());
|
||||
placeNavigation.configureAnchorElement(headerBodyUi);
|
||||
placeNavigation.configureAnchorElement(headerArrowUi);
|
||||
}
|
||||
|
||||
public void setRegattaRacesNavigation(PlaceNavigation<?> placeNavigation) {
|
||||
placeNavigation.configureAnchorElement(dataIndicatorsUi);
|
||||
}
|
||||
|
||||
private void initDataIndicators(RaceDataInfo raceDataInfo) {
|
||||
String disabledStyle = local_res.css().regattaheader_indicator_disabled();
|
||||
UIObject.setStyleName(gpsDataIndicatorUi, disabledStyle, !raceDataInfo.hasGPSData());
|
||||
UIObject.setStyleName(windDataIndicatorUi, disabledStyle, !raceDataInfo.hasWindData());
|
||||
UIObject.setStyleName(videoDataIndicatorUi, disabledStyle, !raceDataInfo.hasVideoData());
|
||||
UIObject.setStyleName(audioDataIndicatorUi, disabledStyle, !raceDataInfo.hasAudioData());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+8
-6
@@ -9,13 +9,15 @@
|
||||
<div class="{res.mediaCss.grid}">
|
||||
<div class="{res.mediaCss.small12} {res.mediaCss.columns}">
|
||||
<a class="{local_res.css.regattaheader} {local_res.css.regattaheaderpadding}" ui:field="headerBodyUi"></a>
|
||||
<!-- <a class="{local_res.css.regattaheader_toggle}"> -->
|
||||
<!-- <img src="images/home/arrow-down-grey.png" class="{local_res.css.regattaheader_toggle_icon}"></img> -->
|
||||
<!-- </a> -->
|
||||
<a class="{local_res.css.regattaheader_indicators}" ui:field="dataIndicatorsUi">
|
||||
<div>
|
||||
<div style="background-image:url('images/home/raw_gps_fixes.png');" ui:field="gpsDataIndicatorUi"></div>
|
||||
<div style="background-image:url('images/home/icon-wind.png');" ui:field="windDataIndicatorUi"></div>
|
||||
<div style="background-image:url('images/home/icon-video.png');" ui:field="videoDataIndicatorUi"></div>
|
||||
<div style="background-image:url('images/home/icon-audio.png');" ui:field="audioDataIndicatorUi"></div>
|
||||
</div>
|
||||
</a>
|
||||
<a class="{local_res.css.regattaheader_arrow}" style="display:none;" ui:field="headerArrowUi"></a>
|
||||
<!-- <div class="{local_res.css.regattaheader} {local_res.css.regattaheaderpadding}"></div> -->
|
||||
<!-- <div class="{local_res.css.regattaheader_toggle}"></div> -->
|
||||
<!-- <div class="{local_res.css.regattaheader_arrow}"></div> -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
-6
@@ -12,13 +12,7 @@
|
||||
<div class="{res.mainCss.label}" ui:field="labelUi"></div>
|
||||
</div>
|
||||
<div class="{local_res.css.regattaheader_content_details}" ui:field="detailsItemContainerUi">
|
||||
<!-- <div class="{local_res.css.regattaheader_content_details_item}"></div> -->
|
||||
</div>
|
||||
</div>
|
||||
<!-- IF content.isLive <div class="{local_res.css.regattaheader_update}">
|
||||
<div class="{local_res.css.regattaheader_update_title}"> <img src="images/home/reload-green.png"
|
||||
class="{local_res.css.regattaheader_update_title_icon}"></img> <ui:text from='{i18n.lastUpdate}'
|
||||
/> </div> <div class="{local_res.css.regattaheader_update_timestamp}"></div>
|
||||
</div> IFEND content.isLive -->
|
||||
</div>
|
||||
</ui:UiBinder>
|
||||
+3
@@ -22,6 +22,9 @@ public interface RegattaHeaderResources extends ClientBundle {
|
||||
String regattaheader_toggle_icon();
|
||||
String standings_listhidden();
|
||||
String regattaheader_arrow();
|
||||
String regattaheader_indicators();
|
||||
String regattaheader_indicators_next_to_arrow();
|
||||
String regattaheader_indicator_disabled();
|
||||
String regattaheader_update();
|
||||
String regattaheader_update_title();
|
||||
String regattaheader_update_title_icon();
|
||||
|
||||
+4
@@ -231,6 +231,10 @@ public class LeaderboardContext {
|
||||
regattaDTO.setDefaultCourseAreaName(HomeServiceUtil.getCourseAreaNameForRegattaIdThereIsMoreThanOne(event, leaderboard));
|
||||
regattaDTO.setDefaultCourseAreaId(HomeServiceUtil.getCourseAreaIdForRegatta(event, leaderboard));
|
||||
regattaDTO.setFlexibleLeaderboard(leaderboard instanceof FlexibleLeaderboard);
|
||||
|
||||
RegattaRaceDataInfoCalculator regattaRaceDataInfoCalculator = new RegattaRaceDataInfoCalculator();
|
||||
forRaces(regattaRaceDataInfoCalculator);
|
||||
regattaDTO.setRaceDataInfo(regattaRaceDataInfoCalculator.getRaceDataInfo());
|
||||
}
|
||||
|
||||
private static boolean hasMultipleLeaderboardGroups(EventBase event) {
|
||||
|
||||
+7
@@ -51,6 +51,7 @@ import com.sap.sailing.domain.tracking.WindWithConfidence;
|
||||
import com.sap.sailing.gwt.home.communication.event.LiveRaceDTO;
|
||||
import com.sap.sailing.gwt.home.communication.event.RaceListRaceDTO;
|
||||
import com.sap.sailing.gwt.home.communication.event.SimpleCompetitorDTO;
|
||||
import com.sap.sailing.gwt.home.communication.eventview.RegattaMetadataDTO.RaceDataInfo;
|
||||
import com.sap.sailing.gwt.home.communication.race.FlagStateDTO;
|
||||
import com.sap.sailing.gwt.home.communication.race.FleetMetadataDTO;
|
||||
import com.sap.sailing.gwt.home.communication.race.RaceMetadataDTO;
|
||||
@@ -654,4 +655,10 @@ public class RaceContext {
|
||||
Fleet fleetOfCompetitor = raceColumn.getFleetOfCompetitor(competitor);
|
||||
return fleetOfCompetitor != null && Util.equalsWithNull(fleet.getName(), fleetOfCompetitor.getName());
|
||||
}
|
||||
|
||||
public RaceDataInfo getRaceDataInfo() {
|
||||
boolean hasGPSData = getRaceTrackingState() == RaceTrackingState.TRACKED_VALID_DATA;
|
||||
boolean hasWindData = getWindSourceCount() > 0, hasVideo = getVideoCount() > 0, hasAudioData = getAudioCount() > 0;
|
||||
return new RaceDataInfo(hasGPSData, hasWindData, hasVideo, hasAudioData);
|
||||
}
|
||||
}
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
package com.sap.sailing.gwt.home.server;
|
||||
|
||||
import com.sap.sailing.gwt.home.communication.eventview.RegattaMetadataDTO.RaceDataInfo;
|
||||
|
||||
public class RegattaRaceDataInfoCalculator implements EventActionUtil.RaceCallback {
|
||||
|
||||
private boolean hasGPSData, hasWindData, hasVideoData, hasAudioData;
|
||||
|
||||
@Override
|
||||
public void doForRace(RaceContext context) {
|
||||
RaceDataInfo raceDataInfo = context.getRaceDataInfo();
|
||||
hasGPSData |= raceDataInfo.hasGPSData();
|
||||
hasWindData |= raceDataInfo.hasWindData();
|
||||
hasVideoData |= raceDataInfo.hasVideoData();
|
||||
hasAudioData |= raceDataInfo.hasAudioData();
|
||||
}
|
||||
|
||||
public RaceDataInfo getRaceDataInfo() {
|
||||
return new RaceDataInfo(hasGPSData, hasWindData, hasVideoData, hasAudioData);
|
||||
}
|
||||
|
||||
}
|
||||
+3
-1
@@ -250,7 +250,9 @@ public class RegattaOverviewPanel extends SimplePanel {
|
||||
competitorSelectionProvider,
|
||||
null, leaderboard.name,
|
||||
errorReporter, stringMessages, userAgent, /*showRaceDetails*/false);
|
||||
leaderboardsTabPanel.add(leaderboardPanel, leaderboard.getDisplayName() + " " + stringMessages.leaderboard());
|
||||
leaderboardsTabPanel.add(leaderboardPanel,
|
||||
(leaderboard.getDisplayName() == null ? leaderboard.name : leaderboard.getDisplayName())
|
||||
+ " " + stringMessages.leaderboard());
|
||||
}
|
||||
if (!result.isEmpty()) {
|
||||
leaderboardsTabPanel.setVisible(true);
|
||||
|
||||
+21
-10
@@ -94,15 +94,15 @@ public abstract class EventDialog extends DataEntryDialogWithBootstrap<EventDTO>
|
||||
Date endDate = eventToValidate.endDate;
|
||||
String datesErrorMessage = null;
|
||||
// remark: startDate == null and endDate == null is valid
|
||||
if(startDate != null && endDate != null) {
|
||||
if(startDate.after(endDate)) {
|
||||
if (startDate != null && endDate != null) {
|
||||
if (startDate.after(endDate)) {
|
||||
datesErrorMessage = stringMessages.pleaseEnterStartAndEndDate();
|
||||
}
|
||||
} else if((startDate != null && endDate == null) || (startDate == null && endDate != null)) {
|
||||
} else if ((startDate != null && endDate == null) || (startDate == null && endDate != null)) {
|
||||
datesErrorMessage = stringMessages.pleaseEnterStartAndEndDate();
|
||||
}
|
||||
|
||||
if(datesErrorMessage != null) {
|
||||
if (datesErrorMessage != null) {
|
||||
errorMessage = datesErrorMessage;
|
||||
} else if (!nameNotEmpty) {
|
||||
errorMessage = stringMessages.pleaseEnterAName();
|
||||
@@ -151,7 +151,7 @@ public abstract class EventDialog extends DataEntryDialogWithBootstrap<EventDTO>
|
||||
SuggestedCourseAreaNames.suggestedCourseAreaNames, stringMessages.enterCourseAreaName(), 50));
|
||||
courseAreaNameList.addValueChangeHandler(courseAreaValueChangeHandler);
|
||||
List<String> leaderboardGroupNames = new ArrayList<>();
|
||||
for(LeaderboardGroupDTO leaderboardGroupDTO: availableLeaderboardGroups) {
|
||||
for (LeaderboardGroupDTO leaderboardGroupDTO: availableLeaderboardGroups) {
|
||||
leaderboardGroupNames.add(leaderboardGroupDTO.getName());
|
||||
}
|
||||
leaderboardGroupList = new StringConstantsListEditorComposite(Collections.<String> emptyList(),
|
||||
@@ -230,13 +230,24 @@ public abstract class EventDialog extends DataEntryDialogWithBootstrap<EventDTO>
|
||||
}
|
||||
formGrid.setText(rowIndex, 1, "[*] " + stringMessages.defaultSailorsInfoLinkInfoText());
|
||||
TabLayoutPanel tabPanel = new TabLayoutPanel(30, Unit.PX);
|
||||
tabPanel.ensureDebugId("EventDialogTabs");
|
||||
tabPanel.setHeight("525px");
|
||||
panel.add(tabPanel);
|
||||
tabPanel.add(new ScrollPanel(formGrid), stringMessages.event());
|
||||
tabPanel.add(new ScrollPanel(leaderboardGroupList), stringMessages.leaderboardGroups());
|
||||
tabPanel.add(new ScrollPanel(courseAreaNameList), stringMessages.courseAreas());
|
||||
tabPanel.add(new ScrollPanel(imagesListComposite), stringMessages.images());
|
||||
tabPanel.add(new ScrollPanel(videosListComposite), stringMessages.videos());
|
||||
final ScrollPanel eventTab = new ScrollPanel(formGrid);
|
||||
eventTab.ensureDebugId("EventTab");
|
||||
tabPanel.add(eventTab, stringMessages.event());
|
||||
final ScrollPanel leaderboardGroupTab = new ScrollPanel(leaderboardGroupList);
|
||||
leaderboardGroupTab.ensureDebugId("LeaderboardGroupsTab");
|
||||
tabPanel.add(leaderboardGroupTab, stringMessages.leaderboardGroups());
|
||||
final ScrollPanel courseAreasTab = new ScrollPanel(courseAreaNameList);
|
||||
courseAreasTab.ensureDebugId("CourseAreasTab");
|
||||
tabPanel.add(courseAreasTab, stringMessages.courseAreas());
|
||||
final ScrollPanel imagesTab = new ScrollPanel(imagesListComposite);
|
||||
imagesTab.ensureDebugId("ImagesTab");
|
||||
tabPanel.add(imagesTab, stringMessages.images());
|
||||
final ScrollPanel videosTab = new ScrollPanel(videosListComposite);
|
||||
videosTab.ensureDebugId("VideosTab");
|
||||
tabPanel.add(videosTab, stringMessages.videos());
|
||||
return panel;
|
||||
}
|
||||
|
||||
|
||||
+2
-5
@@ -590,10 +590,7 @@ public class EventListComposite extends Composite implements EventsRefresher, Le
|
||||
Pair<List<CourseAreaDTO>, List<CourseAreaDTO>> courseAreasToAddAndRemove = getCourseAreasToAdd(oldEvent, updatedEvent);
|
||||
final List<CourseAreaDTO> courseAreasToAdd = courseAreasToAddAndRemove.getA();
|
||||
final List<CourseAreaDTO> courseAreasToRemove = courseAreasToAddAndRemove.getB();
|
||||
final List<UUID> updatedEventLeaderboardGroupIds = new ArrayList<>();
|
||||
for (LeaderboardGroupDTO leaderboardGroup : updatedEvent.getLeaderboardGroups()) {
|
||||
updatedEventLeaderboardGroupIds.add(leaderboardGroup.getId());
|
||||
}
|
||||
final Iterable<UUID> updatedEventLeaderboardGroupIds = updatedEvent.getLeaderboardGroupIds();
|
||||
sailingService.updateEvent(oldEvent.id, oldEvent.getName(), updatedEvent.getDescription(),
|
||||
updatedEvent.startDate, updatedEvent.endDate, updatedEvent.venue,
|
||||
updatedEvent.isPublic, updatedEventLeaderboardGroupIds,
|
||||
@@ -673,7 +670,7 @@ public class EventListComposite extends Composite implements EventsRefresher, Le
|
||||
}
|
||||
sailingService.createEvent(newEvent.getName(), newEvent.getDescription(), newEvent.startDate, newEvent.endDate,
|
||||
newEvent.venue.getName(), newEvent.isPublic, courseAreaNames, newEvent.getOfficialWebsiteURL(), newEvent.getSailorsInfoWebsiteURLs(),
|
||||
newEvent.getImages(), newEvent.getVideos(), new AsyncCallback<EventDTO>() {
|
||||
newEvent.getImages(), newEvent.getVideos(), newEvent.getLeaderboardGroupIds(), new AsyncCallback<EventDTO>() {
|
||||
@Override
|
||||
public void onFailure(Throwable t) {
|
||||
errorReporter.reportError("Error trying to create new event " + newEvent.getName() + ": " + t.getMessage());
|
||||
|
||||
+1
-1
@@ -267,7 +267,7 @@ public class StructureImportManagementPanel extends SimplePanel implements Regat
|
||||
sailingService.createEvent(newEvent.getName(), newEvent.getDescription(), newEvent.startDate, newEvent.endDate,
|
||||
newEvent.venue.getName(), newEvent.isPublic, courseAreaNames, newEvent.getOfficialWebsiteURL(), newEvent.getSailorsInfoWebsiteURLs(),
|
||||
newEvent.getImages(), newEvent.getVideos(),
|
||||
new AsyncCallback<EventDTO>() {
|
||||
newEvent.getLeaderboardGroupIds(), new AsyncCallback<EventDTO>() {
|
||||
@Override
|
||||
public void onFailure(Throwable t) {
|
||||
errorReporter.reportError(stringMessages.errorTryingToCreateNewEvent(newEvent.getName(), t.getMessage()));
|
||||
|
||||
+3
-1
@@ -317,7 +317,9 @@ public interface SailingService extends RemoteService, FileStorageManagementGwtS
|
||||
Iterable<ImageDTO> images, Iterable<VideoDTO> videos) throws Exception;
|
||||
|
||||
EventDTO createEvent(String eventName, String eventDescription, Date startDate, Date endDate, String venue,
|
||||
boolean isPublic, List<String> courseAreaNames, String officialWebsiteURL, Map<String, String> sailorsInfoWebsiteURLsByLocaleName, Iterable<ImageDTO> images, Iterable<VideoDTO> videos) throws Exception;
|
||||
boolean isPublic, List<String> courseAreaNames, String officialWebsiteURL,
|
||||
Map<String, String> sailorsInfoWebsiteURLsByLocaleName, Iterable<ImageDTO> images,
|
||||
Iterable<VideoDTO> videos, Iterable<UUID> leaderboardGroupIds) throws Exception;
|
||||
|
||||
void removeEvent(UUID eventId);
|
||||
|
||||
|
||||
+1
-1
@@ -406,7 +406,7 @@ public interface SailingServiceAsync extends ServerInfoRetriever, FileStorageMan
|
||||
|
||||
void createEvent(String eventName, String eventDescription, Date startDate, Date endDate, String venue,
|
||||
boolean isPublic, List<String> courseAreaNames, String officialWebsiteURL, Map<String, String> sailorsInfoWebsiteURLsByLocaleName,
|
||||
Iterable<ImageDTO> images, Iterable<VideoDTO> videos, AsyncCallback<EventDTO> callback);
|
||||
Iterable<ImageDTO> images, Iterable<VideoDTO> videos, Iterable<UUID> leaderboardGroupIDs, AsyncCallback<EventDTO> callback);
|
||||
|
||||
void updateEvent(UUID eventId, String eventName, String eventDescription, Date startDate, Date endDate,
|
||||
VenueDTO venue, boolean isPublic, Iterable<UUID> leaderboardGroupIds, String officialWebsiteURL,
|
||||
|
||||
+10
-7
@@ -627,7 +627,7 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe
|
||||
// initialize simulation canvas
|
||||
simulationOverlay = new RaceSimulationOverlay(getMap(), /* zIndex */ 0, raceIdentifier, sailingService, stringMessages, asyncActionsExecutor, coordinateSystem);
|
||||
simulationOverlay.addToMap();
|
||||
simulationOverlay.setVisible(false);
|
||||
showSimulationOverlay(settings.isShowSimulationOverlay());
|
||||
}
|
||||
if (showHeaderPanel) {
|
||||
createHeaderPanel(map);
|
||||
@@ -2505,10 +2505,7 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe
|
||||
}
|
||||
if (newSettings.isShowSimulationOverlay() != settings.isShowSimulationOverlay()) {
|
||||
settings.setShowSimulationOverlay(newSettings.isShowSimulationOverlay());
|
||||
simulationOverlay.setVisible(newSettings.isShowSimulationOverlay());
|
||||
if (newSettings.isShowSimulationOverlay()) {
|
||||
simulationOverlay.updateLeg(Math.max(lastLegNumber,1), true, -1 /* ensure ui-update */);
|
||||
}
|
||||
showSimulationOverlay(newSettings.isShowSimulationOverlay());
|
||||
}
|
||||
if (newSettings.isWindUp() != settings.isWindUp()) {
|
||||
settings.setWindUp(newSettings.isWindUp());
|
||||
@@ -2525,9 +2522,15 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe
|
||||
redraw();
|
||||
}
|
||||
}
|
||||
|
||||
public static class BoatsBoundsCalculator extends LatLngBoundsCalculatorForSelected {
|
||||
|
||||
private void showSimulationOverlay(boolean visible) {
|
||||
simulationOverlay.setVisible(visible);
|
||||
if (visible) {
|
||||
simulationOverlay.updateLeg(Math.max(lastLegNumber,1), true, -1 /* ensure ui-update */);
|
||||
}
|
||||
}
|
||||
|
||||
public static class BoatsBoundsCalculator extends LatLngBoundsCalculatorForSelected {
|
||||
@Override
|
||||
public LatLngBounds calculateNewBounds(RaceMap forMap) {
|
||||
LatLngBounds newBounds = null;
|
||||
|
||||
+4
-1
@@ -14,7 +14,10 @@ public class RaceMapLifecycle implements ComponentLifecycle<RaceMapSettings, Rac
|
||||
|
||||
@Override
|
||||
public RaceMapSettingsDialogComponent getSettingsDialogComponent(RaceMapSettings settings) {
|
||||
return new RaceMapSettingsDialogComponent(settings, stringMessages, false);
|
||||
return new RaceMapSettingsDialogComponent(settings, stringMessages,
|
||||
/* isSimulationEnabled: enable simulation because we don't know the boat class
|
||||
* here yet and therefore cannot reasonably judge whether polar data is
|
||||
* available; if in doubt, rather enable selecting it */ true);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+1
-1
@@ -45,7 +45,7 @@ public class RaceBoardPerspectiveSettings extends AbstractSettings {
|
||||
public RaceBoardPerspectiveSettings() {
|
||||
this(/* activeCompetitorsFilterSetName */null, /* showLeaderboard */true,
|
||||
/* showWindChart */false, /* showCompetitorsChart */false,
|
||||
/* simulationEnabled */false, /* canReplayDuringLiveRaces */false, /* chartSupportEnabled */ true,
|
||||
/* simulationEnabled */true, /* canReplayDuringLiveRaces */false, /* chartSupportEnabled */ true,
|
||||
/* showChartMarkEditMediaButtonsAndVideo */ !DeviceDetector.isMobile(),
|
||||
/* initialDurationAfterRaceStartInReplay */ null);
|
||||
}
|
||||
|
||||
+2
-2
@@ -3484,7 +3484,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
|
||||
@Override
|
||||
public EventDTO createEvent(String eventName, String eventDescription, Date startDate, Date endDate, String venue,
|
||||
boolean isPublic, List<String> courseAreaNames, String officialWebsiteURLAsString, Map<String, String> sailorsInfoWebsiteURLsByLocaleName,
|
||||
Iterable<ImageDTO> images, Iterable<VideoDTO> videos)
|
||||
Iterable<ImageDTO> images, Iterable<VideoDTO> videos, Iterable<UUID> leaderboardGroupIds)
|
||||
throws MalformedURLException {
|
||||
UUID eventUuid = UUID.randomUUID();
|
||||
TimePoint startTimePoint = startDate != null ? new MillisecondsTimePoint(startDate) : null;
|
||||
@@ -3496,7 +3496,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
|
||||
List<VideoDescriptor> eventVideos = convertToVideos(videos);
|
||||
getService().apply(
|
||||
new CreateEvent(eventName, eventDescription, startTimePoint, endTimePoint, venue, isPublic, eventUuid,
|
||||
officialWebsiteURL, sailorsInfoWebsiteURLs, eventImages, eventVideos));
|
||||
officialWebsiteURL, sailorsInfoWebsiteURLs, eventImages, eventVideos, leaderboardGroupIds));
|
||||
createCourseAreas(eventUuid, courseAreaNames.toArray(new String[courseAreaNames.size()]));
|
||||
return getEventById(eventUuid, false);
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.sap.sailing.gwt.ui.shared;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
public class EventDTO extends EventBaseDTO {
|
||||
private static final long serialVersionUID = -7100030301376959817L;
|
||||
@@ -61,4 +62,12 @@ public class EventDTO extends EventBaseDTO {
|
||||
return leaderboardGroups;
|
||||
}
|
||||
|
||||
public Iterable<UUID> getLeaderboardGroupIds() {
|
||||
final List<UUID> updatedEventLeaderboardGroupIds = new ArrayList<>();
|
||||
for (LeaderboardGroupDTO leaderboardGroup : this.getLeaderboardGroups()) {
|
||||
updatedEventLeaderboardGroupIds.add(leaderboardGroup.getId());
|
||||
}
|
||||
return updatedEventLeaderboardGroupIds;
|
||||
}
|
||||
|
||||
}
|
||||
+8
@@ -4,6 +4,14 @@
|
||||
<div id="mainContent">
|
||||
<h4 class="articleHeadline">What's New - SAP Sailing Race Manager</h4>
|
||||
<div class="innerContent">
|
||||
<h5 class="articleSubheadline">June 2016</h5>
|
||||
|
||||
<ul class="bulletList">
|
||||
<li>The start time editing screen has now a "Sync to minute" button, which replaces
|
||||
the both buttons beside the countdown. This button sets the countdown to the nearest
|
||||
minute and after "Set time" the new start time will be sent to the server.</li>
|
||||
</ul>
|
||||
|
||||
<h5 class="articleSubheadline">May 2016</h5>
|
||||
|
||||
<ul class="bulletList">
|
||||
|
||||
BIN
Binary file not shown.
|
After Width: | Height: | Size: 2.8 KiB |
BIN
Binary file not shown.
|
After Width: | Height: | Size: 7.5 KiB |
@@ -1,12 +1,16 @@
|
||||
package com.sap.sailing.selenium.pages;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.function.BooleanSupplier;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.openqa.selenium.By;
|
||||
import org.openqa.selenium.SearchContext;
|
||||
import org.openqa.selenium.WebDriver;
|
||||
import org.openqa.selenium.WebElement;
|
||||
@@ -19,6 +23,7 @@ import com.google.common.base.Predicate;
|
||||
import com.sap.sailing.selenium.core.AjaxCallsComplete;
|
||||
import com.sap.sailing.selenium.core.AjaxCallsExecuted;
|
||||
import com.sap.sailing.selenium.core.BySeleniumId;
|
||||
import com.sap.sailing.selenium.core.ElementSearchConditions;
|
||||
import com.sap.sailing.selenium.core.FindBy;
|
||||
import com.sap.sailing.selenium.core.FindBys;
|
||||
import com.sap.sailing.selenium.core.SeleniumElementLocatorFactory;
|
||||
@@ -48,10 +53,18 @@ import com.sap.sailing.selenium.core.SeleniumFieldDecorator;
|
||||
* D049941
|
||||
*/
|
||||
public class PageObject {
|
||||
private static final Logger logger = Logger.getLogger(PageObject.class.getName());
|
||||
|
||||
public static final int DEFAULT_WAIT_TIMEOUT_SECONDS = 120;
|
||||
|
||||
public static final int DEFAULT_POLLING_INTERVAL = 5;
|
||||
|
||||
private static final MessageFormat TAB_EXPRESSION = new MessageFormat(
|
||||
".//div[contains(@class, \"gwt-TabLayoutPanelTabInner\")]/div[text()=\"{0}\"]/../..");
|
||||
|
||||
private static final MessageFormat VERTICAL_TAB_EXPRESSION = new MessageFormat(
|
||||
".//div[contains(@class, \"gwt-VerticalTabLayoutPanelTabInner\")]/div[text()=\"{0}\"]/../..");
|
||||
|
||||
/**
|
||||
* </p>The default timeout of 5 seconds for the lookup of other elements.</p>
|
||||
*/
|
||||
@@ -442,4 +455,26 @@ public class PageObject {
|
||||
T get(WebDriver driver, WebElement element);
|
||||
}
|
||||
|
||||
protected WebElement goToTab(WebElement tabPanel, String tabName, final String id, boolean isVertical) {
|
||||
final String expression;
|
||||
if (isVertical) {
|
||||
expression = VERTICAL_TAB_EXPRESSION.format(new Object[] {tabName});
|
||||
} else {
|
||||
expression = TAB_EXPRESSION.format(new Object[] {tabName});
|
||||
}
|
||||
WebElement tab = tabPanel.findElement(By.xpath(expression));
|
||||
WebDriverWait waitForTab = new WebDriverWait(driver, 20); // here, wait time is 20 seconds
|
||||
waitForTab.until(ExpectedConditions.visibilityOf(tab)); // this will wait for tab to be visible for 20 seconds
|
||||
tab.click();
|
||||
// Wait for the tab to become visible due to the used animations.
|
||||
FluentWait<WebElement> wait = createFluentWait(tabPanel);
|
||||
WebElement content = wait.until(ElementSearchConditions.visibilityOfElementLocated(new BySeleniumId(id)));
|
||||
try {
|
||||
Thread.sleep(500);
|
||||
} catch (InterruptedException e) {
|
||||
logger.log(Level.WARNING, "internal error sleeping for 500ms", e);
|
||||
} // wait for a bit to make sure the UI had a change to trigger any asynchronous background update/refresh
|
||||
waitForAjaxRequests(); // switching tabs can trigger asynchronous updates, replacing UI elements
|
||||
return content;
|
||||
}
|
||||
}
|
||||
+1
-25
@@ -1,18 +1,12 @@
|
||||
package com.sap.sailing.selenium.pages.adminconsole;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.openqa.selenium.By;
|
||||
import org.openqa.selenium.WebDriver;
|
||||
import org.openqa.selenium.WebElement;
|
||||
import org.openqa.selenium.support.ui.ExpectedConditions;
|
||||
import org.openqa.selenium.support.ui.FluentWait;
|
||||
import org.openqa.selenium.support.ui.WebDriverWait;
|
||||
|
||||
import com.sap.sailing.selenium.core.BySeleniumId;
|
||||
import com.sap.sailing.selenium.core.ElementSearchConditions;
|
||||
import com.sap.sailing.selenium.core.FindBy;
|
||||
import com.sap.sailing.selenium.pages.HostPage;
|
||||
import com.sap.sailing.selenium.pages.HostPageWithAuthentication;
|
||||
@@ -36,12 +30,6 @@ public class AdminConsolePage extends HostPageWithAuthentication {
|
||||
private static final Logger logger = Logger.getLogger(AdminConsolePage.class.getName());
|
||||
private static final String PAGE_TITLE = "SAP Sailing Analytics Administration Console"; //$NON-NLS-1$
|
||||
|
||||
private static final MessageFormat TAB_EXPRESSION = new MessageFormat(
|
||||
".//div[contains(@class, \"gwt-TabLayoutPanelTabInner\")]/div[text()=\"{0}\"]/../..");
|
||||
|
||||
private static final MessageFormat VERTICAL_TAB_EXPRESSION = new MessageFormat(
|
||||
".//div[contains(@class, \"gwt-VerticalTabLayoutPanelTabInner\")]/div[text()=\"{0}\"]/../..");
|
||||
|
||||
private static final String EVENTS_TAB_LABEL = "Events"; //$NON-NLS-1$
|
||||
private static final String EVENTS_TAB_IDENTIFIER = "EventManagement"; //$NON-NLS-1$
|
||||
|
||||
@@ -163,18 +151,6 @@ public class AdminConsolePage extends HostPageWithAuthentication {
|
||||
}
|
||||
|
||||
private WebElement goToTab(String label, final String id, boolean isVertical) {
|
||||
String expression = TAB_EXPRESSION.format(new Object[] {label});
|
||||
if (isVertical) {
|
||||
expression = VERTICAL_TAB_EXPRESSION.format(new Object[] {label});
|
||||
}
|
||||
WebElement tab = this.administrationTabPanel.findElement(By.xpath(expression));
|
||||
WebDriverWait waitForTab = new WebDriverWait(driver, 20); // here, wait time is 20 seconds
|
||||
waitForTab.until(ExpectedConditions.visibilityOf(tab)); // this will wait for tab to be visible for 20 seconds
|
||||
tab.click();
|
||||
// Wait for the tab to become visible due to the used animations.
|
||||
FluentWait<WebElement> wait = createFluentWait(this.administrationTabPanel);
|
||||
WebElement content = wait.until(ElementSearchConditions.visibilityOfElementLocated(new BySeleniumId(id)));
|
||||
waitForAjaxRequests(); // switching tabs can trigger asynchronous updates, replacing UI elements
|
||||
return content;
|
||||
return goToTab(administrationTabPanel, label, id, isVertical);
|
||||
}
|
||||
}
|
||||
+17
@@ -72,6 +72,23 @@ public class EventConfigurationPanelPO extends PageArea {
|
||||
getPO(ConfirmDialogPO::new, ID_LINK_LEADERBORAD_TO_GROUP_DIALOG).pressOk();
|
||||
}
|
||||
|
||||
public void createEventWithExistingLeaderboardGroups(String eventName, String eventDesc, String venue,
|
||||
Date eventStartDate, Date eventEndDate, boolean isPublic, String... leaderboardGroupNames) {
|
||||
createEventButton.click();
|
||||
EventCreateDialogPO createDialog = getPO(EventCreateDialogPO::new, ID_EVENT_CREATE_DIALOG);
|
||||
createDialog.setValues(eventName, eventDesc, venue, eventStartDate, eventEndDate, isPublic);
|
||||
WebElement leaderboardGroupsTab = createDialog.goToLeaderboardGroupsTab();
|
||||
for (final String leaderboardGroupName : leaderboardGroupNames) {
|
||||
createDialog.addLeaderboardGroup(leaderboardGroupsTab, leaderboardGroupName);
|
||||
}
|
||||
createDialog.pressOk();
|
||||
if (leaderboardGroupNames.length == 0) {
|
||||
getPO(ConfirmDialogPO::new, ID_CREATE_DEFAULT_LEADERBOARD_GROUP_CONFIRM_DIALOG).pressNo();
|
||||
} else {
|
||||
getPO(ConfirmDialogPO::new, ID_CREATE_DEFAULT_REGATTA_CONFIRM_DIALOG).pressNo();
|
||||
}
|
||||
}
|
||||
|
||||
public EventEntryPO getEventEntry(String event) {
|
||||
return getEventsTable().getEntry(event);
|
||||
}
|
||||
|
||||
+34
@@ -4,6 +4,7 @@ import java.util.Date;
|
||||
|
||||
import org.openqa.selenium.WebDriver;
|
||||
import org.openqa.selenium.WebElement;
|
||||
import org.openqa.selenium.support.ui.Select;
|
||||
|
||||
import com.sap.sailing.selenium.core.BySeleniumId;
|
||||
import com.sap.sailing.selenium.core.FindBy;
|
||||
@@ -15,6 +16,11 @@ import com.sap.sailing.selenium.pages.gwt.TextBoxPO;
|
||||
|
||||
public class EventCreateDialogPO extends DataEntryDialogPO {
|
||||
|
||||
private static final String LEADERBOARD_GROUPS_TAB_ID = "LeaderboardGroupsTab";
|
||||
private static final String COURSE_AREAS_TAB_ID = "CourseAreasTab";
|
||||
private static final String IMAGES_TAB_ID = "ImagesTab";
|
||||
private static final String VIDEOS_TAB_ID = "VideosTab";
|
||||
|
||||
@FindBy(how = BySeleniumId.class, using = "NameTextBox")
|
||||
private WebElement nameTextBox;
|
||||
|
||||
@@ -33,6 +39,9 @@ public class EventCreateDialogPO extends DataEntryDialogPO {
|
||||
@FindBy(how = BySeleniumId.class, using = "IsPublicCheckBox")
|
||||
private WebElement isPublicCheckBox;
|
||||
|
||||
@FindBy(how = BySeleniumId.class, using = "EventDialogTabs")
|
||||
private WebElement eventDialogTabPanel;
|
||||
|
||||
EventCreateDialogPO(WebDriver driver, WebElement element) {
|
||||
super(driver, element);
|
||||
}
|
||||
@@ -45,5 +54,30 @@ public class EventCreateDialogPO extends DataEntryDialogPO {
|
||||
BetterDateTimeBoxPO.create(driver, endDateTimeBox).setDate(end);
|
||||
CheckBoxPO.create(driver, isPublicCheckBox).setSelected(isPublic);
|
||||
}
|
||||
|
||||
void addLeaderboardGroup(WebElement leaderboardGroupsTab, String leaderboardGroupName) {
|
||||
// assumes that the Leaderboard groups tab is already active
|
||||
new Select(findElementBySeleniumId(leaderboardGroupsTab, "SelectionListBox")).selectByVisibleText(leaderboardGroupName);
|
||||
findElementBySeleniumId(leaderboardGroupsTab, "AddButton").click();
|
||||
}
|
||||
|
||||
WebElement goToTab(String tabName, String id) {
|
||||
return goToTab(eventDialogTabPanel, tabName, id, /* isVertical */ false);
|
||||
}
|
||||
|
||||
WebElement goToLeaderboardGroupsTab() {
|
||||
return goToTab("Leaderboard groups", LEADERBOARD_GROUPS_TAB_ID);
|
||||
}
|
||||
|
||||
WebElement goToCourseAreasTab() {
|
||||
return goToTab("Course areas", COURSE_AREAS_TAB_ID);
|
||||
}
|
||||
|
||||
WebElement goToImagesTab() {
|
||||
return goToTab("Images", IMAGES_TAB_ID);
|
||||
}
|
||||
|
||||
WebElement goToVideosTab() {
|
||||
return goToTab("Videos", VIDEOS_TAB_ID);
|
||||
}
|
||||
}
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
package com.sap.sailing.selenium.test.adminconsole;
|
||||
|
||||
import static com.sap.sailing.selenium.pages.common.DateHelper.getFutureDate;
|
||||
import static com.sap.sailing.selenium.pages.common.DateHelper.getPastDate;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import com.sap.sailing.selenium.pages.adminconsole.AdminConsolePage;
|
||||
import com.sap.sailing.selenium.pages.adminconsole.event.EventConfigurationPanelPO;
|
||||
import com.sap.sailing.selenium.pages.adminconsole.event.EventConfigurationPanelPO.EventEntryPO;
|
||||
import com.sap.sailing.selenium.pages.adminconsole.leaderboard.LeaderboardGroupConfigurationPanelPO;
|
||||
import com.sap.sailing.selenium.test.AbstractSeleniumTest;
|
||||
|
||||
public class TestEventCreationWithPredefinedLeaderboards extends AbstractSeleniumTest {
|
||||
private AdminConsolePage adminConsolePage;
|
||||
|
||||
@Override
|
||||
@Before
|
||||
public void setUp() {
|
||||
clearState(getContextRoot());
|
||||
super.setUp();
|
||||
adminConsolePage = AdminConsolePage.goToPage(getWebDriver(), getContextRoot());
|
||||
}
|
||||
|
||||
/**
|
||||
* See bug 3693: this test asserts that when specifying leaderboard groups already in the event creation
|
||||
* dialog, those leaderboard groups can be expected to be linked to the event when confirming the
|
||||
* creation operation.
|
||||
*/
|
||||
@Test
|
||||
public void createTestEventLinkingToExistingLeaderboardGroups() {
|
||||
LeaderboardGroupConfigurationPanelPO leaderboardGroupsConfigPanel = adminConsolePage.goToLeaderboardGroupConfiguration();
|
||||
leaderboardGroupsConfigPanel.createLeaderboardGroup("A", "A");
|
||||
leaderboardGroupsConfigPanel.createLeaderboardGroup("B", "B");
|
||||
leaderboardGroupsConfigPanel.createLeaderboardGroup("C", "C");
|
||||
EventConfigurationPanelPO eventConfigPanel = adminConsolePage.goToEvents();
|
||||
eventConfigPanel.createEventWithExistingLeaderboardGroups("My Event", "My Description", "My Venue", getPastDate(3), getFutureDate(3), true, "A", "C");
|
||||
EventConfigurationPanelPO eventsPanel = adminConsolePage.goToEvents();
|
||||
EventEntryPO eventEntry = eventsPanel.getEventEntry("My Event");
|
||||
String leaderboardGroupsListedInEventsTable = eventEntry.getColumnContent("Leaderboard groups");
|
||||
assertTrue(leaderboardGroupsListedInEventsTable.contains("A"));
|
||||
assertTrue(leaderboardGroupsListedInEventsTable.contains("C"));
|
||||
assertFalse(leaderboardGroupsListedInEventsTable.contains("B"));
|
||||
}
|
||||
}
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
package com.sap.sailing.server.gateway.jaxrs;
|
||||
|
||||
|
||||
public class RoundingUtil {
|
||||
public static final RoundingUtil distanceDecimalFormatter = new RoundingUtil(2);
|
||||
public static final RoundingUtil knotsDecimalFormatter = new RoundingUtil(2);
|
||||
public static final RoundingUtil bearingDecimalFormatter = new RoundingUtil(1);
|
||||
public static final RoundingUtil speedDecimalFormatter = new RoundingUtil(1);
|
||||
public static final RoundingUtil latLngDecimalFormatter = new RoundingUtil(6);
|
||||
|
||||
private final double shiftFactor;
|
||||
|
||||
private RoundingUtil(int decimals) {
|
||||
shiftFactor = getShiftFactor(decimals);
|
||||
}
|
||||
|
||||
private static double getShiftFactor(int decimals) {
|
||||
return Math.pow(10, decimals);
|
||||
}
|
||||
|
||||
public double format(double value) {
|
||||
return ((double) Math.round(value * shiftFactor)) / shiftFactor;
|
||||
}
|
||||
|
||||
public static double format(double value, int decimals) {
|
||||
final double shiftFactor = getShiftFactor(decimals);
|
||||
return ((double) Math.round(value * shiftFactor)) / shiftFactor;
|
||||
}
|
||||
}
|
||||
-22
@@ -1,22 +0,0 @@
|
||||
package com.sap.sailing.server.gateway.jaxrs;
|
||||
|
||||
import java.text.DecimalFormat;
|
||||
import java.text.DecimalFormatSymbols;
|
||||
|
||||
public class UnitSerializationUtil {
|
||||
public static final DecimalFormat distanceDecimalFormatter = new DecimalFormat("#.##");
|
||||
public static final DecimalFormat knotsDecimalFormatter = new DecimalFormat("#.##");
|
||||
public static final DecimalFormat bearingDecimalFormatter = new DecimalFormat("#.#");
|
||||
public static final DecimalFormat speedDecimalFormatter = new DecimalFormat("#.#");
|
||||
public static final DecimalFormat latLngDecimalFormatter = new DecimalFormat("#.######");
|
||||
|
||||
static {
|
||||
DecimalFormatSymbols symbol = DecimalFormatSymbols.getInstance();
|
||||
symbol.setDecimalSeparator('.');
|
||||
distanceDecimalFormatter.setDecimalFormatSymbols(symbol);
|
||||
knotsDecimalFormatter.setDecimalFormatSymbols(symbol);
|
||||
bearingDecimalFormatter.setDecimalFormatSymbols(symbol);
|
||||
speedDecimalFormatter.setDecimalFormatSymbols(symbol);
|
||||
latLngDecimalFormatter.setDecimalFormatSymbols(symbol);
|
||||
}
|
||||
}
|
||||
+9
-9
@@ -9,7 +9,7 @@ import org.json.simple.JSONObject;
|
||||
import com.sap.sailing.domain.common.Wind;
|
||||
import com.sap.sailing.domain.common.WindSource;
|
||||
import com.sap.sailing.domain.tracking.WindTrack;
|
||||
import com.sap.sailing.server.gateway.jaxrs.UnitSerializationUtil;
|
||||
import com.sap.sailing.server.gateway.jaxrs.RoundingUtil;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
|
||||
public class DefaultWindTrackJsonSerializer implements WindTrackJsonSerializer {
|
||||
@@ -40,19 +40,19 @@ public class DefaultWindTrackJsonSerializer implements WindTrackJsonSerializer {
|
||||
|
||||
for (Wind wind : fixes) {
|
||||
JSONObject jsonWind = new JSONObject();
|
||||
jsonWind.put("trueBearing-deg", UnitSerializationUtil.bearingDecimalFormatter.format(wind.getBearing().getDegrees()));
|
||||
jsonWind.put("speed-kts", UnitSerializationUtil.speedDecimalFormatter.format(wind.getKnots()));
|
||||
jsonWind.put("speed-m/s", UnitSerializationUtil.speedDecimalFormatter.format(wind.getMetersPerSecond()));
|
||||
jsonWind.put("trueBearing-deg", RoundingUtil.bearingDecimalFormatter.format(wind.getBearing().getDegrees()));
|
||||
jsonWind.put("speed-kts", RoundingUtil.speedDecimalFormatter.format(wind.getKnots()));
|
||||
jsonWind.put("speed-m/s", RoundingUtil.speedDecimalFormatter.format(wind.getMetersPerSecond()));
|
||||
if (wind.getTimePoint() != null) {
|
||||
jsonWind.put("timepoint-ms", wind.getTimePoint().asMillis());
|
||||
final Wind averagedWind = windTrack.getAveragedWind(wind.getPosition(), wind.getTimePoint());
|
||||
jsonWind.put("dampenedTrueBearing-deg", UnitSerializationUtil.bearingDecimalFormatter.format(averagedWind.getBearing().getDegrees()));
|
||||
jsonWind.put("dampenedSpeed-kts", UnitSerializationUtil.speedDecimalFormatter.format(averagedWind.getKnots()));
|
||||
jsonWind.put("dampenedSpeed-m/s", UnitSerializationUtil.speedDecimalFormatter.format(averagedWind.getMetersPerSecond()));
|
||||
jsonWind.put("dampenedTrueBearing-deg", RoundingUtil.bearingDecimalFormatter.format(averagedWind.getBearing().getDegrees()));
|
||||
jsonWind.put("dampenedSpeed-kts", RoundingUtil.speedDecimalFormatter.format(averagedWind.getKnots()));
|
||||
jsonWind.put("dampenedSpeed-m/s", RoundingUtil.speedDecimalFormatter.format(averagedWind.getMetersPerSecond()));
|
||||
}
|
||||
if (wind.getPosition() != null) {
|
||||
jsonWind.put("lat-deg", UnitSerializationUtil.latLngDecimalFormatter.format(wind.getPosition().getLatDeg()));
|
||||
jsonWind.put("lng-deg", UnitSerializationUtil.latLngDecimalFormatter.format(wind.getPosition().getLngDeg()));
|
||||
jsonWind.put("lat-deg", RoundingUtil.latLngDecimalFormatter.format(wind.getPosition().getLatDeg()));
|
||||
jsonWind.put("lng-deg", RoundingUtil.latLngDecimalFormatter.format(wind.getPosition().getLngDeg()));
|
||||
}
|
||||
jsonWindFixes.add(jsonWind);
|
||||
}
|
||||
|
||||
+1
-1
@@ -197,7 +197,7 @@ public class LeaderboardsResource extends AbstractSailingServerResource {
|
||||
|
||||
final FleetDTO fleetOfCompetitor = leaderboardEntry.fleet;
|
||||
jsonEntry.put("fleet", fleetOfCompetitor == null ? "" : fleetOfCompetitor.getName());
|
||||
jsonEntry.put("totalPoints", leaderboardEntry.totalPointsCorrected);
|
||||
jsonEntry.put("totalPoints", leaderboardEntry.totalPoints);
|
||||
jsonEntry.put("uncorrectedTotalPoints", leaderboardEntry.totalPoints);
|
||||
jsonEntry.put("netPoints", leaderboardEntry.netPoints);
|
||||
MaxPointsReason maxPointsReason = leaderboardEntry.reasonForMaxPoints;
|
||||
|
||||
+15
-11
@@ -48,7 +48,7 @@ import com.sap.sailing.domain.tracking.TrackedLegOfCompetitor;
|
||||
import com.sap.sailing.domain.tracking.TrackedRace;
|
||||
import com.sap.sailing.domain.tracking.WindPositionMode;
|
||||
import com.sap.sailing.server.gateway.jaxrs.AbstractSailingServerResource;
|
||||
import com.sap.sailing.server.gateway.jaxrs.UnitSerializationUtil;
|
||||
import com.sap.sailing.server.gateway.jaxrs.RoundingUtil;
|
||||
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.coursedata.impl.ControlPointJsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.coursedata.impl.CourseBaseJsonSerializer;
|
||||
@@ -288,13 +288,13 @@ public class RegattasResource extends AbstractSailingServerResource {
|
||||
}
|
||||
JSONObject jsonFix = new JSONObject();
|
||||
jsonFix.put("timepoint-ms", fix.getTimePoint().asMillis());
|
||||
jsonFix.put("lat-deg", UnitSerializationUtil.latLngDecimalFormatter.format(fix
|
||||
jsonFix.put("lat-deg", RoundingUtil.latLngDecimalFormatter.format(fix
|
||||
.getPosition().getLatDeg()));
|
||||
jsonFix.put("lng-deg", UnitSerializationUtil.latLngDecimalFormatter.format(fix
|
||||
jsonFix.put("lng-deg", RoundingUtil.latLngDecimalFormatter.format(fix
|
||||
.getPosition().getLngDeg()));
|
||||
jsonFix.put("truebearing-deg", fix.getSpeed().getBearing().getDegrees());
|
||||
jsonFix.put("speed-kts",
|
||||
UnitSerializationUtil.knotsDecimalFormatter.format(fix.getSpeed().getKnots()));
|
||||
RoundingUtil.knotsDecimalFormatter.format(fix.getSpeed().getKnots()));
|
||||
if (withTack != null && withTack) {
|
||||
String tackName;
|
||||
try {
|
||||
@@ -447,9 +447,9 @@ public class RegattasResource extends AbstractSailingServerResource {
|
||||
JSONObject jsonFix = new JSONObject();
|
||||
jsonFix.put("timepoint-ms", fix.getTimePoint().asMillis());
|
||||
jsonFix.put("lat-deg",
|
||||
UnitSerializationUtil.latLngDecimalFormatter.format(fix.getPosition().getLatDeg()));
|
||||
RoundingUtil.latLngDecimalFormatter.format(fix.getPosition().getLatDeg()));
|
||||
jsonFix.put("lng-deg",
|
||||
UnitSerializationUtil.latLngDecimalFormatter.format(fix.getPosition().getLngDeg()));
|
||||
RoundingUtil.latLngDecimalFormatter.format(fix.getPosition().getLngDeg()));
|
||||
return jsonFix;
|
||||
}
|
||||
|
||||
@@ -617,7 +617,7 @@ public class RegattasResource extends AbstractSailingServerResource {
|
||||
jsonLegInfo.put("type", trackedLeg.getLegType(firstPassingTime));
|
||||
jsonLegInfo.put(
|
||||
"bearing-deg",
|
||||
UnitSerializationUtil.bearingDecimalFormatter.format(trackedLeg.getLegBearing(
|
||||
RoundingUtil.bearingDecimalFormatter.format(trackedLeg.getLegBearing(
|
||||
firstPassingTime).getDegrees()));
|
||||
}
|
||||
} catch (NoWindException e) {
|
||||
@@ -890,7 +890,7 @@ public class RegattasResource extends AbstractSailingServerResource {
|
||||
.getAverageSpeedOverGround(timePoint);
|
||||
if (averageSpeedOverGround != null) {
|
||||
jsonCompetitorInLeg.put("averageSOG-kts",
|
||||
UnitSerializationUtil.knotsDecimalFormatter.format(averageSpeedOverGround
|
||||
RoundingUtil.knotsDecimalFormatter.format(averageSpeedOverGround
|
||||
.getKnots()));
|
||||
}
|
||||
try {
|
||||
@@ -928,21 +928,23 @@ public class RegattasResource extends AbstractSailingServerResource {
|
||||
Distance distanceSinceGun = trackedRace.getTrack(competitor).getDistanceTraveled(
|
||||
startOfRace, finishTime != null ? finishTime : timePoint);
|
||||
if (distanceSinceGun != null) {
|
||||
jsonCompetitorInLeg.put("distanceSinceGun-m", distanceSinceGun.getMeters());
|
||||
jsonCompetitorInLeg.put("distanceSinceGun-m",
|
||||
RoundingUtil.distanceDecimalFormatter.format(distanceSinceGun
|
||||
.getMeters()));
|
||||
}
|
||||
}
|
||||
|
||||
Distance distanceTraveled = trackedLegOfCompetitor.getDistanceTraveled(timePoint);
|
||||
if (distanceTraveled != null) {
|
||||
jsonCompetitorInLeg.put("distanceTraveled-m",
|
||||
UnitSerializationUtil.distanceDecimalFormatter.format(distanceTraveled
|
||||
RoundingUtil.distanceDecimalFormatter.format(distanceTraveled
|
||||
.getMeters()));
|
||||
}
|
||||
Distance distanceTraveledIncludingGateStart = trackedLegOfCompetitor
|
||||
.getDistanceTraveledConsideringGateStart(timePoint);
|
||||
if (distanceTraveledIncludingGateStart != null) {
|
||||
jsonCompetitorInLeg.put("distanceTraveledIncludingGateStart-m",
|
||||
UnitSerializationUtil.distanceDecimalFormatter
|
||||
RoundingUtil.distanceDecimalFormatter
|
||||
.format(distanceTraveledIncludingGateStart.getMeters()));
|
||||
}
|
||||
try {
|
||||
@@ -957,6 +959,8 @@ public class RegattasResource extends AbstractSailingServerResource {
|
||||
}
|
||||
Duration gapToLeaderDuration = trackedLegOfCompetitor.getGapToLeader(timePoint, rankingInfo, WindPositionMode.LEG_MIDDLE);
|
||||
jsonCompetitorInLeg.put("gapToLeader-s", gapToLeaderDuration != null ? gapToLeaderDuration.asSeconds() : 0.0);
|
||||
Distance gapToLeaderDistance = trackedLegOfCompetitor.getWindwardDistanceToCompetitorFarthestAhead(timePoint, WindPositionMode.LEG_MIDDLE, rankingInfo);
|
||||
jsonCompetitorInLeg.put("gapToLeader-m", gapToLeaderDistance != null ? gapToLeaderDistance.getMeters() : 0.0);
|
||||
jsonCompetitorInLeg.put("started", trackedLegOfCompetitor.hasStartedLeg(timePoint));
|
||||
jsonCompetitorInLeg.put("finished", trackedLegOfCompetitor.hasFinishedLeg(timePoint));
|
||||
jsonCompetitors.add(jsonCompetitorInLeg);
|
||||
|
||||
@@ -88,6 +88,11 @@ name to make sure you get to the event you're interested in.
|
||||
<td><a href="raceCourseGetDoc.html">/api/v1/regattas/{regattaname}/races/{racename}/course</a></td>
|
||||
<td>Gets the course of a race</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="raceTimesGetDoc.html">/api/v1/regattas/{regattaname}/races/{racename}/times</a></td>
|
||||
<td>Gets the timing data for a race, including the start/end times, the tracking start/end times
|
||||
as well as the "split times" or "mark passing times" of the first competitor rounding each mark.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="raceTargetTimeGetDoc.html">/api/v1/regattas/{regattaname}/races/{racename}/targettime</a></td>
|
||||
<td>Gets the estimated target time of a race</td>
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<link href='../../../../sailing-fontface-1.0.cache.css' media='screen' rel='stylesheet' title='Default stylesheet' type='text/css' />
|
||||
<link href='../../../main.css' media='screen' rel='stylesheet' title='Default stylesheet' type='text/css' />
|
||||
<link rel='icon' href='../../../../sap.ico' type='image/x-icon'>
|
||||
<title>SAP Sailing Analytics Webservices API Version 1.0 Beta</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>SAP Sailing Analytics Webservices API Version 1.0 Beta</h1>
|
||||
<h2>URL: /api/v1/regattas/{regattaname}/races/{racename}/times</h2>
|
||||
|
||||
<b>Description:</b>
|
||||
<p>Gets the timing data for a race, including the start/end times, the tracking start/end times
|
||||
as well as the "split times" or "mark passing times" of the first competitor rounding each mark.</p>
|
||||
<br/>
|
||||
<table>
|
||||
<tr>
|
||||
<td>Webservice Type:</td>
|
||||
<td>REST</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Output format:</td>
|
||||
<td>Json</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Mandatory parameters:</td>
|
||||
<td>None</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Optional parameters:</td>
|
||||
<td>None</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Request method:</td>
|
||||
<td>GET</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Example:</td>
|
||||
<td><a href="http://www.sapsailing.com/sailingserver/api/v1/regattas/TW%202013%20(Finn)/races/Finn%20Race%204/times">http://www.sapsailing.com/sailingserver/api/v1/regattas/TW%202013%20(Finn)/races/Finn%20Race%204/times</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<div style="height: 1em;"></div>
|
||||
<a href="index.html">Back to Web Service Overview</a>
|
||||
</body>
|
||||
</html>
|
||||
+2
-1
@@ -69,7 +69,8 @@ public class RemoveLeaderboardGroupTest {
|
||||
final TimePoint pfingstbuschEndDate = new MillisecondsTimePoint(cal.getTime());
|
||||
pfingstbusch = server.apply(new CreateEvent("Pfingstbusch", /* eventDescription */ null, pfingstbuschStartDate, pfingstbuschEndDate,
|
||||
"Kiel", /* isPublic */ true, UUID.randomUUID(), /* officialWebsiteURLAsString */ null, /* sailorsInfoWebsiteURLAsString */ null,
|
||||
/* images */Collections.<ImageDescriptor> emptyList(), /* videos */Collections.<VideoDescriptor> emptyList()));
|
||||
/* images */Collections.<ImageDescriptor> emptyList(), /* videos */Collections.<VideoDescriptor> emptyList(),
|
||||
/* leaderboardGroupIds */ Collections.<UUID> emptyList()));
|
||||
final LeaderboardGroup pfingstbuschLeaderboardGroup = server.apply(new CreateLeaderboardGroup("Pfingstbusch", "Pfingstbusch", /* displayName */ null,
|
||||
/* displayGroupsInReverseOrder */ false, /* leaderboard names */ Collections.emptyList(),
|
||||
new int[0], /* overallLeaderboardScoringSchemeType */ ScoringSchemeType.LOW_POINT));
|
||||
|
||||
+2
-2
@@ -127,7 +127,7 @@ public class SearchServiceTest {
|
||||
final TimePoint pfingstbuschEndDate = new MillisecondsTimePoint(cal.getTime());
|
||||
pfingstbusch = server.apply(new CreateEvent("Pfingsbusch", /* eventDescription */ null, pfingstbuschStartDate, pfingstbuschEndDate,
|
||||
"Kiel", /* isPublic */ true, UUID.randomUUID(), /* officialWebsiteURLAsString */ null, /* sailorsInfoWebsiteURLAsString */ null,
|
||||
/* images */Collections.<ImageDescriptor> emptyList(), /* videos */Collections.<VideoDescriptor> emptyList()));
|
||||
/* images */Collections.<ImageDescriptor> emptyList(), /* videos */Collections.<VideoDescriptor> emptyList(), /* leaderboardGroupIds */ Collections.<UUID> emptyList()));
|
||||
kiel = pfingstbusch.getVenue();
|
||||
final CourseAreaImpl kielAlpha = new CourseAreaImpl("Alpha", UUID.randomUUID());
|
||||
kiel.addCourseArea(kielAlpha);
|
||||
@@ -165,7 +165,7 @@ public class SearchServiceTest {
|
||||
final TimePoint aalEndDate = new MillisecondsTimePoint(cal.getTime());
|
||||
aalEvent = server.apply(new CreateEvent("Aalregatta", /* eventDescription */ null, aalStartDate, aalEndDate,
|
||||
"Flensburg", /* isPublic */ true, UUID.randomUUID(), /* officialWebsiteURLAsString */ null, /*sailorsInfoWebsiteURLAsString */ null,
|
||||
/* images */Collections.<ImageDescriptor> emptyList(), /* videos */Collections.<VideoDescriptor> emptyList()));
|
||||
/* images */Collections.<ImageDescriptor> emptyList(), /* videos */Collections.<VideoDescriptor> emptyList(), /* leaderboardGroupIds */ Collections.<UUID> emptyList()));
|
||||
flensburg = aalEvent.getVenue();
|
||||
final CourseAreaImpl flensburgStandard = new CourseAreaImpl("Standard", UUID.randomUUID());
|
||||
flensburg.addCourseArea(flensburgStandard);
|
||||
|
||||
+2
-1
@@ -2662,7 +2662,8 @@ public class RacingEventServiceImpl implements RacingEventService, ClearStateTes
|
||||
/* images */Collections.<ImageDescriptor> emptyList(), /* videos */Collections.<VideoDescriptor> emptyList());
|
||||
replicate(new CreateEvent(eventName, eventDescription, startDate, endDate, venue, isPublic, id,
|
||||
/* officialWebsiteURLAsString */null, /* sailorsInfoWebsiteURLAsString */null,
|
||||
/* images */Collections.<ImageDescriptor> emptyList(), /* videos */Collections.<VideoDescriptor> emptyList()));
|
||||
/* images */Collections.<ImageDescriptor> emptyList(), /* videos */Collections.<VideoDescriptor> emptyList(),
|
||||
/* leaderboardGroupIds */ Collections.<UUID> emptyList()));
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
+16
-2
@@ -1,11 +1,14 @@
|
||||
package com.sap.sailing.server.operationaltransformation;
|
||||
|
||||
import java.net.URL;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
import com.sap.sailing.domain.base.Event;
|
||||
import com.sap.sailing.domain.leaderboard.LeaderboardGroup;
|
||||
import com.sap.sailing.server.RacingEventService;
|
||||
import com.sap.sailing.server.RacingEventServiceOperation;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
@@ -31,9 +34,10 @@ public class CreateEvent extends AbstractEventOperation<Event> {
|
||||
private final Iterable<VideoDescriptor> videos;
|
||||
private final URL officialWebsiteURL;
|
||||
private final Map<Locale, URL> sailorsInfoWebsiteURLs;
|
||||
private final Iterable<UUID> leaderboardGroupIds;
|
||||
|
||||
public CreateEvent(String eventName, String eventDescription, TimePoint startDate, TimePoint endDate, String venue,
|
||||
boolean isPublic, UUID id, URL officialWebsiteURL, Map<Locale, URL> sailorsInfoWebsiteURLs, Iterable<ImageDescriptor> images, Iterable<VideoDescriptor> videos) {
|
||||
boolean isPublic, UUID id, URL officialWebsiteURL, Map<Locale, URL> sailorsInfoWebsiteURLs, Iterable<ImageDescriptor> images, Iterable<VideoDescriptor> videos, Iterable<UUID> leaderboardGroupIds) {
|
||||
super(id);
|
||||
this.eventName = eventName;
|
||||
this.eventDescription = eventDescription;
|
||||
@@ -45,6 +49,7 @@ public class CreateEvent extends AbstractEventOperation<Event> {
|
||||
this.sailorsInfoWebsiteURLs = sailorsInfoWebsiteURLs;
|
||||
this.images = images;
|
||||
this.videos = videos;
|
||||
this.leaderboardGroupIds = leaderboardGroupIds;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -65,8 +70,17 @@ public class CreateEvent extends AbstractEventOperation<Event> {
|
||||
|
||||
@Override
|
||||
public Event internalApplyTo(RacingEventService toState) {
|
||||
return toState.createEventWithoutReplication(getEventName(), eventDescription, startDate, endDate, venue, isPublic,
|
||||
final Event result = toState.createEventWithoutReplication(getEventName(), eventDescription, startDate, endDate, venue, isPublic,
|
||||
getId(), officialWebsiteURL, sailorsInfoWebsiteURLs, images, videos);
|
||||
List<LeaderboardGroup> lgl = new ArrayList<>();
|
||||
for (final UUID lgid : leaderboardGroupIds) {
|
||||
final LeaderboardGroup lg = toState.getLeaderboardGroupByID(lgid);
|
||||
if (lg != null) {
|
||||
lgl.add(lg);
|
||||
}
|
||||
}
|
||||
result.setLeaderboardGroups(lgl);
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -23,6 +23,17 @@
|
||||
<h2 class="releaseHeadline">Release Notes - Administration Console</h2>
|
||||
<div class="innerContent">
|
||||
|
||||
<h2 class="articleSubheadline">June 2016</h2>
|
||||
<ul class="bulletList">
|
||||
<li>Some REST APIs have slightly changed. The /api/v1/leaderboards/{name} resource now
|
||||
has the "netPoints" and "totalPoints" stuff right. The "netPoints" always refer to
|
||||
scores which may be reduced due to discarding rules. Total points always refer to
|
||||
the points before applying any discarding rules. Those numeric values for which so far
|
||||
accidentally String types with double-quoted values were used have been changed to
|
||||
numeric types, represented in the JSON documents without double quotes.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="articleSubheadline">May 2016</h2>
|
||||
<ul class="bulletList">
|
||||
<li>Smartphone tracking support has been improved. When starting to track a race that has no
|
||||
|
||||
@@ -47,4 +47,10 @@ public interface Duration extends Serializable, Comparable<Duration> {
|
||||
|
||||
Duration plus(long milliseconds);
|
||||
Duration plus(Duration duration);
|
||||
|
||||
/**
|
||||
* The "modulo" operation; imagine the operation implemented as this duration's milliseconds
|
||||
* modulo {@code d}'s milliseconds
|
||||
*/
|
||||
Duration mod(Duration d);
|
||||
}
|
||||
@@ -32,4 +32,11 @@ public interface TimePoint extends Comparable<TimePoint>, Serializable {
|
||||
boolean after(TimePoint other);
|
||||
|
||||
boolean before(TimePoint other);
|
||||
|
||||
/**
|
||||
* @return a {@link TimePoint} such that when used to set the time of a calendar, the seconds and milliseconds will
|
||||
* match that of {@code syncToClosestSecondsAndMillisOf} and the time difference to {@code this} time point is
|
||||
* minimal. In particular, the time difference will always be less than or equal to 30s.
|
||||
*/
|
||||
TimePoint getNearestModuloOneMinute(TimePoint syncToClosestSecondsAndMillisOf);
|
||||
}
|
||||
@@ -116,4 +116,21 @@ public abstract class AbstractTimePoint implements TimePoint {
|
||||
* as {@link #getDate()}.
|
||||
*/
|
||||
protected void cacheDate(Date date) {}
|
||||
|
||||
@Override
|
||||
public TimePoint getNearestModuloOneMinute(final TimePoint syncToClosestSecondsAndMillisOf) {
|
||||
final Duration diffModOneMinute = this.until(syncToClosestSecondsAndMillisOf).mod(Duration.ONE_MINUTE);
|
||||
final Duration diffToAdd;
|
||||
if (diffModOneMinute.compareTo(Duration.ONE_SECOND.times(30l)) > 0) {
|
||||
diffToAdd = Duration.ONE_MINUTE.minus(diffModOneMinute).times(-1l);
|
||||
} else if (diffModOneMinute.compareTo(Duration.ONE_SECOND.times(-30l)) < 0) {
|
||||
diffToAdd = Duration.ONE_MINUTE.minus(diffModOneMinute.times(-1l));
|
||||
} else {
|
||||
diffToAdd = diffModOneMinute;
|
||||
}
|
||||
final TimePoint result = this.plus(diffToAdd);
|
||||
assert this.until(result).abs().compareTo(Duration.ONE_SECOND.times(30)) <= 0;
|
||||
assert syncToClosestSecondsAndMillisOf.asMillis() % 60000 == result.asMillis() % 60000;
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -117,4 +117,9 @@ public class MillisecondsDurationImpl implements Duration {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Duration mod(Duration d) {
|
||||
return new MillisecondsDurationImpl(asMillis() % d.asMillis());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,48 +1,48 @@
|
||||
<?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"/>
|
||||
<stringAttribute key="com.google.gwt.eclipse.core.CODE_SERVER_PORT" value="9875"/>
|
||||
<listAttribute key="com.google.gwt.eclipse.core.ENTRY_POINT_MODULES">
|
||||
<listEntry value="com.sap.sse.security.ui.UserManagement"/>
|
||||
</listAttribute>
|
||||
<booleanAttribute key="com.google.gwt.eclipse.core.SUPERDEVMODE_ENABLED" value="true"/>
|
||||
<stringAttribute key="com.google.gwt.eclipse.core.URL" value="/security/ui/Login.html"/>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||
<listEntry value="/com.sap.sse.security.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.sse.security.ui" path="1" type="4"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.security.ui/src/main/resources" 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.googlecode.java-diff-utils/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.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="/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.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.sse.security.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.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="-incremental -workDir "${project_loc:com.sap.sse.security.ui}/.tmp/gwt-work" -war "${project_loc:com.sap.sse.security.ui}" -noserver -remoteUI "${gwt_remote_ui_server_port}:${unique_id}" -logLevel INFO -codeServerPort 9875 -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 -startupUrl /security/ui/UserManagement.html com.sap.sse.security.ui.UserManagement"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="com.sap.sse.security.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"/>
|
||||
<stringAttribute key="com.google.gwt.eclipse.core.CODE_SERVER_PORT" value="9875"/>
|
||||
<listAttribute key="com.google.gwt.eclipse.core.ENTRY_POINT_MODULES">
|
||||
<listEntry value="com.sap.sse.security.ui.UserManagement"/>
|
||||
</listAttribute>
|
||||
<booleanAttribute key="com.google.gwt.eclipse.core.SUPERDEVMODE_ENABLED" value="true"/>
|
||||
<stringAttribute key="com.google.gwt.eclipse.core.URL" value="/security/ui/Login.html"/>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||
<listEntry value="/com.sap.sse.security.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.sse.security.ui" path="1" type="4"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <runtimeClasspathEntry internalArchive="/com.sap.sse.security.ui/src/main/resources" 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.googlecode.java-diff-utils/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.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="/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.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.sse.security.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.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 -workDir "${project_loc:com.sap.sse.security.ui}/.tmp/gwt-work" -war "${project_loc:com.sap.sse.security.ui}" -noserver -remoteUI "${gwt_remote_ui_server_port}:${unique_id}" -logLevel INFO -codeServerPort 9875 -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 -startupUrl /security/ui/UserManagement.html com.sap.sse.security.ui.UserManagement"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="com.sap.sse.security.ui"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms1024m -Xmx3072m"/>
|
||||
</launchConfiguration>
|
||||
+44
-48
@@ -1,8 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/header"
|
||||
@@ -25,13 +25,13 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:src="?attr/chevron_left_24dp"
|
||||
android:visibility="gone" />
|
||||
android:visibility="gone"/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/set_time"
|
||||
android:textAppearance="?attr/textHeader" />
|
||||
android:textAppearance="?attr/textHeader"/>
|
||||
</LinearLayout>
|
||||
|
||||
<View
|
||||
@@ -39,7 +39,7 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/thin_line"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:background="?attr/black" />
|
||||
android:background="?attr/black"/>
|
||||
</RelativeLayout>
|
||||
|
||||
<LinearLayout
|
||||
@@ -63,7 +63,7 @@
|
||||
android:text="@string/dependent_races_absolute"
|
||||
android:textAllCaps="true"
|
||||
android:textColor="?attr/sap_yellow_1"
|
||||
android:textSize="@dimen/textSize_20" />
|
||||
android:textSize="@dimen/textSize_20"/>
|
||||
|
||||
<Button
|
||||
android:id="@+id/relative"
|
||||
@@ -76,7 +76,7 @@
|
||||
android:text="@string/dependent_races_relative"
|
||||
android:textAllCaps="true"
|
||||
android:textColor="?attr/sap_light_gray"
|
||||
android:textSize="@dimen/textSize_20" />
|
||||
android:textSize="@dimen/textSize_20"/>
|
||||
</LinearLayout>
|
||||
|
||||
<FrameLayout
|
||||
@@ -103,21 +103,8 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_marginTop="@dimen/default_margin_half"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<Button
|
||||
android:id="@+id/minute_inc"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:background="?attr/button_filled_bordered"
|
||||
android:drawableLeft="?attr/chevron_left"
|
||||
android:paddingRight="@dimen/default_padding_half"
|
||||
android:textColor="?attr/white"
|
||||
android:textSize="@dimen/textSize_20"
|
||||
tools:text="1:00:00" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/start_countdown"
|
||||
android:layout_width="wrap_content"
|
||||
@@ -126,21 +113,9 @@
|
||||
android:layout_marginLeft="@dimen/default_margin"
|
||||
android:layout_marginRight="@dimen/default_margin"
|
||||
android:textColor="?attr/white"
|
||||
android:textSize="@dimen/textSize_20"
|
||||
android:textSize="@dimen/textSize_72"
|
||||
android:visibility="visible"
|
||||
tools:text="1:01:00" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/minute_dec"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:background="?attr/button_filled_bordered"
|
||||
android:drawableRight="?attr/chevron_right"
|
||||
android:paddingLeft="@dimen/default_padding_half"
|
||||
android:textColor="?attr/white"
|
||||
android:textSize="@dimen/textSize_20"
|
||||
tools:text="1:02:00" />
|
||||
tools:text="1:01:00"/>
|
||||
</LinearLayout>
|
||||
</RelativeLayout>
|
||||
|
||||
@@ -162,14 +137,21 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:descendantFocusability="blocksDescendants" />
|
||||
android:descendantFocusability="blocksDescendants"/>
|
||||
|
||||
<include
|
||||
android:id="@+id/start_time_picker"
|
||||
layout="@layout/time_picker"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical" />
|
||||
android:layout_gravity="center_vertical"/>
|
||||
|
||||
<NumberPicker
|
||||
android:id="@+id/start_time_seconds"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:descendantFocusability="blocksDescendants"/>
|
||||
</LinearLayout>
|
||||
|
||||
</RelativeLayout>
|
||||
@@ -178,14 +160,29 @@
|
||||
android:id="@+id/set_start_time_absolute"
|
||||
style="?attr/button"
|
||||
android:layout_width="@dimen/default_button_width"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_height="@dimen/default_button_height"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_marginBottom="@dimen/side_padding"
|
||||
android:layout_marginTop="@dimen/side_padding"
|
||||
android:maxWidth="400dp"
|
||||
android:text="@string/race_set_time"
|
||||
android:textSize="@dimen/textSize_18" />
|
||||
android:textSize="@dimen/textSize_18"/>
|
||||
|
||||
<Button
|
||||
android:id="@+id/sync_to_minute"
|
||||
android:layout_width="@dimen/default_button_width"
|
||||
android:layout_height="@dimen/default_button_height"
|
||||
android:layout_above="@id/set_start_time_absolute"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:background="?attr/button_filled_bordered"
|
||||
android:paddingLeft="@dimen/default_padding_half"
|
||||
android:paddingRight="@dimen/default_padding_half"
|
||||
android:text="@string/sync_to_minute"
|
||||
android:textColor="?attr/white"
|
||||
android:textSize="@dimen/textSize_18"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/debug_time"
|
||||
@@ -195,8 +192,7 @@
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:visibility="gone"
|
||||
tools:text="12:12:12" />
|
||||
|
||||
tools:text="12:12:12"/>
|
||||
</RelativeLayout>
|
||||
|
||||
<RelativeLayout
|
||||
@@ -227,7 +223,7 @@
|
||||
android:layout_marginLeft="@dimen/default_margin"
|
||||
android:layout_marginTop="@dimen/default_margin"
|
||||
android:scaleX="@integer/picker_scale"
|
||||
android:scaleY="@integer/picker_scale" />
|
||||
android:scaleY="@integer/picker_scale"/>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/relative_spinner_area"
|
||||
@@ -246,7 +242,7 @@
|
||||
android:layout_marginTop="@dimen/default_margin_half"
|
||||
android:background="?attr/spinner_background"
|
||||
android:dropDownWidth="wrap_content"
|
||||
android:spinnerMode="dropdown" />
|
||||
android:spinnerMode="dropdown"/>
|
||||
|
||||
<Spinner
|
||||
android:id="@+id/dependent_fleet"
|
||||
@@ -257,7 +253,7 @@
|
||||
android:dropDownWidth="wrap_content"
|
||||
android:spinnerMode="dropdown"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible" />
|
||||
tools:visibility="visible"/>
|
||||
|
||||
<Spinner
|
||||
android:id="@+id/dependent_racegroup"
|
||||
@@ -266,7 +262,7 @@
|
||||
android:layout_marginTop="@dimen/default_margin_half"
|
||||
android:background="?attr/spinner_background"
|
||||
android:dropDownWidth="wrap_content"
|
||||
android:spinnerMode="dropdown" />
|
||||
android:spinnerMode="dropdown"/>
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
@@ -277,7 +273,7 @@
|
||||
android:layout_alignParentTop="true"
|
||||
android:paddingLeft="@dimen/spinner_padding"
|
||||
android:text="@string/minutes_after"
|
||||
android:textAppearance="?attr/textSmall" />
|
||||
android:textAppearance="?attr/textSmall"/>
|
||||
</RelativeLayout>
|
||||
</RelativeLayout>
|
||||
|
||||
@@ -285,14 +281,14 @@
|
||||
android:id="@+id/set_start_time_relative"
|
||||
style="?attr/button"
|
||||
android:layout_width="@dimen/default_button_width"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_height="@dimen/default_button_height"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_marginBottom="@dimen/side_padding"
|
||||
android:layout_marginTop="@dimen/side_padding"
|
||||
android:maxWidth="400dp"
|
||||
android:text="@string/race_set_time"
|
||||
android:textSize="@dimen/textSize_18" />
|
||||
android:textSize="@dimen/textSize_18"/>
|
||||
</RelativeLayout>
|
||||
</FrameLayout>
|
||||
</RelativeLayout>
|
||||
+53
-51
@@ -1,8 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/header"
|
||||
@@ -25,13 +25,13 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:src="?attr/chevron_left_24dp"
|
||||
android:visibility="gone" />
|
||||
android:visibility="gone"/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/set_time"
|
||||
android:textAppearance="?attr/textHeader" />
|
||||
android:textAppearance="?attr/textHeader"/>
|
||||
</LinearLayout>
|
||||
|
||||
<View
|
||||
@@ -39,7 +39,7 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/thick_line"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:background="?attr/black" />
|
||||
android:background="?attr/black"/>
|
||||
</RelativeLayout>
|
||||
|
||||
<LinearLayout
|
||||
@@ -61,7 +61,7 @@
|
||||
android:text="@string/dependent_races_absolute"
|
||||
android:textAllCaps="true"
|
||||
android:textColor="?attr/sap_yellow_1"
|
||||
android:textSize="@dimen/textSize_26" />
|
||||
android:textSize="@dimen/textSize_26"/>
|
||||
|
||||
<Button
|
||||
android:id="@+id/relative"
|
||||
@@ -72,7 +72,7 @@
|
||||
android:text="@string/dependent_races_relative"
|
||||
android:textAllCaps="true"
|
||||
android:textColor="?attr/sap_light_gray"
|
||||
android:textSize="@dimen/textSize_26" />
|
||||
android:textSize="@dimen/textSize_26"/>
|
||||
</LinearLayout>
|
||||
|
||||
<FrameLayout
|
||||
@@ -87,7 +87,7 @@
|
||||
android:layout_height="match_parent"
|
||||
android:background="?attr/sap_gray_black_30"
|
||||
android:visibility="gone"
|
||||
tools:visibility="gone">
|
||||
tools:visibility="visible">
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/buttonBar"
|
||||
@@ -102,18 +102,6 @@
|
||||
android:layout_marginTop="@dimen/default_margin_half"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<Button
|
||||
android:id="@+id/minute_inc"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:background="?attr/button_filled_bordered"
|
||||
android:drawableLeft="?attr/chevron_left"
|
||||
android:paddingRight="@dimen/default_padding_half"
|
||||
android:textAppearance="?attr/textLarge"
|
||||
android:textColor="?attr/white"
|
||||
tools:text="1:00:00" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/start_countdown"
|
||||
android:layout_width="wrap_content"
|
||||
@@ -123,19 +111,7 @@
|
||||
android:layout_marginRight="@dimen/default_margin"
|
||||
android:textAppearance="?attr/textXLarge"
|
||||
android:visibility="visible"
|
||||
tools:text="1:01:00" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/minute_dec"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:background="?attr/button_filled_bordered"
|
||||
android:drawableRight="?attr/chevron_right"
|
||||
android:paddingLeft="@dimen/default_padding_half"
|
||||
android:textAppearance="?attr/textLarge"
|
||||
android:textColor="?attr/white"
|
||||
tools:text="1:02:00" />
|
||||
tools:text="1:01:00"/>
|
||||
</LinearLayout>
|
||||
</RelativeLayout>
|
||||
|
||||
@@ -145,14 +121,33 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentBottom="true">
|
||||
|
||||
<Button
|
||||
android:id="@+id/set_start_time_absolute"
|
||||
style="?attr/buttonSolidSmall"
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_margin="@dimen/default_margin_twice"
|
||||
android:text="@string/race_set_time" />
|
||||
android:layout_margin="@dimen/default_margin"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<Button
|
||||
android:id="@+id/sync_to_minute"
|
||||
style="?attr/buttonSolidSmall"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="@dimen/default_margin"
|
||||
android:background="?attr/button_filled_bordered"
|
||||
android:text="@string/sync_to_minute"
|
||||
android:textColor="?attr/white"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible"/>
|
||||
|
||||
<Button
|
||||
android:id="@+id/set_start_time_absolute"
|
||||
style="?attr/buttonSolidSmall"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="@dimen/default_margin"
|
||||
android:text="@string/race_set_time"/>
|
||||
</LinearLayout>
|
||||
</RelativeLayout>
|
||||
|
||||
<RelativeLayout
|
||||
@@ -174,14 +169,21 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:descendantFocusability="blocksDescendants" />
|
||||
android:descendantFocusability="blocksDescendants"/>
|
||||
|
||||
<include
|
||||
android:id="@+id/start_time_picker"
|
||||
layout="@layout/time_picker"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical" />
|
||||
android:layout_gravity="center_vertical"/>
|
||||
|
||||
<NumberPicker
|
||||
android:id="@+id/start_time_seconds"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:descendantFocusability="blocksDescendants"/>
|
||||
</LinearLayout>
|
||||
</RelativeLayout>
|
||||
|
||||
@@ -194,7 +196,7 @@
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentStart="true"
|
||||
android:visibility="gone"
|
||||
tools:text="12:12:12" />
|
||||
tools:text="12:12:12"/>
|
||||
</RelativeLayout>
|
||||
|
||||
<RelativeLayout
|
||||
@@ -203,7 +205,7 @@
|
||||
android:layout_height="match_parent"
|
||||
android:background="?attr/sap_gray_black_30"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible">
|
||||
tools:visibility="gone">
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/set_start_time_2"
|
||||
@@ -218,13 +220,13 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_margin="@dimen/default_margin_twice"
|
||||
android:text="@string/race_set_time" />
|
||||
android:text="@string/race_set_time"/>
|
||||
</RelativeLayout>
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_above="@id/set_start_time_2"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
android:layout_height="match_parent"
|
||||
android:layout_above="@id/set_start_time_2">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/relative_input"
|
||||
@@ -239,7 +241,7 @@
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_margin="@dimen/default_margin"
|
||||
android:scaleX="@integer/picker_scale"
|
||||
android:scaleY="@integer/picker_scale" />
|
||||
android:scaleY="@integer/picker_scale"/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
@@ -247,7 +249,7 @@
|
||||
android:layout_gravity="center_vertical"
|
||||
android:padding="@dimen/default_padding_half"
|
||||
android:text="@string/minutes_after"
|
||||
android:textAppearance="?attr/textLarge" />
|
||||
android:textAppearance="?attr/textLarge"/>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="@dimen/unscheduled_spinner_width"
|
||||
@@ -261,7 +263,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/spinner_background"
|
||||
android:dropDownWidth="wrap_content"
|
||||
android:spinnerMode="dropdown" />
|
||||
android:spinnerMode="dropdown"/>
|
||||
|
||||
<Spinner
|
||||
android:id="@+id/dependent_fleet"
|
||||
@@ -272,7 +274,7 @@
|
||||
android:dropDownWidth="wrap_content"
|
||||
android:spinnerMode="dropdown"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible" />
|
||||
tools:visibility="visible"/>
|
||||
|
||||
<Spinner
|
||||
android:id="@+id/dependent_racegroup"
|
||||
@@ -281,7 +283,7 @@
|
||||
android:layout_marginTop="@dimen/default_margin_half"
|
||||
android:background="?attr/spinner_background"
|
||||
android:dropDownWidth="wrap_content"
|
||||
android:spinnerMode="dropdown" />
|
||||
android:spinnerMode="dropdown"/>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</RelativeLayout>
|
||||
|
||||
@@ -512,5 +512,6 @@
|
||||
<string name="abort_dismiss">Verwerfen</string>
|
||||
<string name="set_column_factor">Setze Faktor</string>
|
||||
<string name="set_factor_error">Beim Setzen des Faktors ist ein Fehler aufgetreten: %s</string>
|
||||
<string name="sync_to_minute">Sync zur Minute</string>
|
||||
|
||||
</resources>
|
||||
@@ -540,5 +540,6 @@
|
||||
<string name="race_factor_format" translatable="false">x #.####</string>
|
||||
<string name="set_column_factor">Set Factor</string>
|
||||
<string name="set_factor_error">There was an error while setting the factor: %s</string>
|
||||
<string name="sync_to_minute">Sync to minute</string>
|
||||
|
||||
</resources>
|
||||
+83
-126
@@ -1,5 +1,6 @@
|
||||
package com.sap.sailing.racecommittee.app.ui.fragments.raceinfo;
|
||||
|
||||
import java.text.DecimalFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Collections;
|
||||
@@ -9,21 +10,6 @@ import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import android.app.FragmentTransaction;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v4.content.ContextCompat;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.AdapterView;
|
||||
import android.widget.Button;
|
||||
import android.widget.NumberPicker;
|
||||
import android.widget.Spinner;
|
||||
import android.widget.TextView;
|
||||
import android.widget.TimePicker;
|
||||
|
||||
import com.sap.sailing.android.shared.util.AppUtils;
|
||||
import com.sap.sailing.android.shared.util.BitmapHelper;
|
||||
import com.sap.sailing.android.shared.util.ViewHelper;
|
||||
@@ -53,6 +39,21 @@ import com.sap.sse.common.impl.MillisecondsDurationImpl;
|
||||
import com.sap.sse.common.impl.MillisecondsTimePoint;
|
||||
import com.sap.sse.common.util.NaturalComparator;
|
||||
|
||||
import android.app.FragmentTransaction;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v4.content.ContextCompat;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.AdapterView;
|
||||
import android.widget.Button;
|
||||
import android.widget.NumberPicker;
|
||||
import android.widget.Spinner;
|
||||
import android.widget.TextView;
|
||||
import android.widget.TimePicker;
|
||||
|
||||
public class StartTimeFragment extends BaseFragment
|
||||
implements View.OnClickListener, NumberPicker.OnValueChangeListener, TimePicker.OnTimeChangedListener {
|
||||
|
||||
@@ -61,7 +62,6 @@ public class StartTimeFragment extends BaseFragment
|
||||
private static final int FUTURE_DAYS = 25;
|
||||
private static final int PAST_DAYS = 3;
|
||||
private static final int MAX_DIFF_MIN = 60;
|
||||
private static final String ZERO_TIME = "-00:00:00";
|
||||
private static final int ABSOLUTE = 0;
|
||||
private static final int RELATIVE = 1;
|
||||
|
||||
@@ -77,14 +77,10 @@ public class StartTimeFragment extends BaseFragment
|
||||
private Spinner mFleet;
|
||||
private Spinner mRace;
|
||||
private TimePicker mTimePicker;
|
||||
private NumberPicker mStartSeconds;
|
||||
private TextView mCountdown;
|
||||
private TextView mDebugTime;
|
||||
private Button mMinuteInc;
|
||||
private Button mMinuteDec;
|
||||
private TimePoint mStartTime;
|
||||
private Calendar mTimeLeft;
|
||||
private Calendar mTimeRight;
|
||||
private Calendar mCalendar;
|
||||
private SimpleRaceLogIdentifier mRaceId;
|
||||
private Duration mStartTimeOffset;
|
||||
private boolean mListenerIgnore = true;
|
||||
@@ -99,10 +95,6 @@ public class StartTimeFragment extends BaseFragment
|
||||
*/
|
||||
private RaceStateChangedListener raceStateChangedListener;
|
||||
|
||||
public StartTimeFragment() {
|
||||
mCalendar = Calendar.getInstance();
|
||||
}
|
||||
|
||||
public static StartTimeFragment newInstance(int startMode) {
|
||||
StartTimeFragment fragment = new StartTimeFragment();
|
||||
Bundle args = new Bundle();
|
||||
@@ -155,14 +147,10 @@ public class StartTimeFragment extends BaseFragment
|
||||
}
|
||||
|
||||
mCountdown = ViewHelper.get(layout, R.id.start_countdown);
|
||||
mMinuteInc = ViewHelper.get(layout, R.id.minute_inc);
|
||||
if (mMinuteInc != null) {
|
||||
mMinuteInc.setOnClickListener(this);
|
||||
}
|
||||
|
||||
mMinuteDec = ViewHelper.get(layout, R.id.minute_dec);
|
||||
if (mMinuteDec != null) {
|
||||
mMinuteDec.setOnClickListener(this);
|
||||
Button syncMinute = ViewHelper.get(layout, R.id.sync_to_minute);
|
||||
if (syncMinute != null) {
|
||||
syncMinute.setOnClickListener(this);
|
||||
}
|
||||
|
||||
View setStartAbsolute = ViewHelper.get(layout, R.id.set_start_time_absolute);
|
||||
@@ -179,20 +167,6 @@ public class StartTimeFragment extends BaseFragment
|
||||
return layout;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
super.onPause();
|
||||
|
||||
getRaceState().removeChangedListener(raceStateChangedListener);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
|
||||
getRaceState().addChangedListener(raceStateChangedListener);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityCreated(Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
@@ -209,6 +183,7 @@ public class StartTimeFragment extends BaseFragment
|
||||
View header = ViewHelper.get(getView(), R.id.header);
|
||||
View back = ViewHelper.get(getView(), R.id.header_back);
|
||||
View text = ViewHelper.get(getView(), R.id.header_text);
|
||||
View sync = ViewHelper.get(getView(), R.id.sync_to_minute);
|
||||
switch (getArguments().getInt(START_MODE, START_MODE_PRESETUP)) {
|
||||
case START_MODE_PLANNED:
|
||||
if (back != null) {
|
||||
@@ -238,6 +213,9 @@ public class StartTimeFragment extends BaseFragment
|
||||
text.setOnClickListener(this);
|
||||
}
|
||||
}
|
||||
if (sync != null) {
|
||||
sync.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
StartTimeFinderResult result = getRaceState().getStartTimeFinderResult();
|
||||
if (result != null && result.isDependentStartTime()) {
|
||||
@@ -258,6 +236,11 @@ public class StartTimeFragment extends BaseFragment
|
||||
if (syncButtons != null) {
|
||||
syncButtons.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
View startSeconds = ViewHelper.get(getView(), R.id.start_time_seconds);
|
||||
if (startSeconds != null) {
|
||||
startSeconds.setVisibility(View.GONE);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -272,6 +255,20 @@ public class StartTimeFragment extends BaseFragment
|
||||
initViewsRelative();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
super.onPause();
|
||||
|
||||
getRaceState().removeChangedListener(raceStateChangedListener);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
|
||||
getRaceState().addChangedListener(raceStateChangedListener);
|
||||
}
|
||||
|
||||
private void initViewsRelative() {
|
||||
mTimeOffset = ViewHelper.get(getView(), R.id.time_offset);
|
||||
if (mTimeOffset != null) {
|
||||
@@ -461,7 +458,7 @@ public class StartTimeFragment extends BaseFragment
|
||||
for (RaceGroupSeriesFleet races : mGroupHeaders.keySet()) {
|
||||
Util.Pair<String, String> leaderBoard = mLeaderBoardAdapter.getItem(mLeaderBoard.getSelectedItemPosition());
|
||||
if (races.getRaceGroup().getName().equals(leaderBoard.getA())) {
|
||||
if(races.getFleet().getName().equals(fleet)) {
|
||||
if (races.getFleet().getName().equals(fleet)) {
|
||||
for (ManagedRace race : mGroupHeaders.get(races)) {
|
||||
if (!getRace().equals(race) && race.getStatus() != RaceLogRaceStatus.FINISHED) {
|
||||
return true;
|
||||
@@ -506,6 +503,15 @@ public class StartTimeFragment extends BaseFragment
|
||||
mTimePicker.setCurrentMinute(minutes);
|
||||
mTimePicker.setTag(time.get(Calendar.SECOND));
|
||||
}
|
||||
|
||||
mStartSeconds = ViewHelper.get(getView(), R.id.start_time_seconds);
|
||||
if (mStartSeconds != null) {
|
||||
ThemeHelper.setPickerColor(getActivity(), mStartSeconds, ThemeHelper.getColor(getActivity(), R.attr.sap_light_gray), ThemeHelper
|
||||
.getColor(getActivity(), R.attr.sap_light_gray));
|
||||
ThemeHelper.setPickerTextSize(getActivity(), mStartSeconds, R.dimen.textSize_14);
|
||||
mStartSeconds.setEnabled(false);
|
||||
setSeconds();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -516,33 +522,17 @@ public class StartTimeFragment extends BaseFragment
|
||||
int resId;
|
||||
TimePoint timePoint;
|
||||
String time;
|
||||
String timeLeft;
|
||||
String timeRight;
|
||||
if (mStartTime == null) {
|
||||
mStartTime = getPickerTime();
|
||||
}
|
||||
if (mStartTime.after(now)) {
|
||||
resId = R.string.race_start_time_in;
|
||||
timePoint = mStartTime.minus(now.asMillis());
|
||||
setButtonTime(timePoint, false);
|
||||
time = TimeUtils.formatDurationUntil(timePoint.asMillis());
|
||||
timeLeft = TimeUtils.formatDurationUntil(mTimeLeft.getTimeInMillis());
|
||||
timeRight = TimeUtils.formatDurationUntil(mTimeRight.getTimeInMillis());
|
||||
if (timeRight.equals(time)) {
|
||||
mTimeRight.add(Calendar.MINUTE, 1);
|
||||
timeRight = TimeUtils.formatDurationUntil(mTimeRight.getTimeInMillis());
|
||||
}
|
||||
} else {
|
||||
resId = R.string.race_start_time_ago;
|
||||
timePoint = now.minus(mStartTime.asMillis());
|
||||
setButtonTime(timePoint, true);
|
||||
time = TimeUtils.formatDurationSince(timePoint.asMillis());
|
||||
timeLeft = TimeUtils.formatDurationSince(mTimeLeft.getTimeInMillis());
|
||||
timeRight = TimeUtils.formatDurationSince(mTimeRight.getTimeInMillis());
|
||||
if (timeRight.equals(time)) {
|
||||
mTimeRight.add(Calendar.MINUTE, -1);
|
||||
timeRight = TimeUtils.formatDurationSince(mTimeRight.getTimeInMillis());
|
||||
}
|
||||
}
|
||||
|
||||
if (mCountdown != null) {
|
||||
@@ -551,22 +541,6 @@ public class StartTimeFragment extends BaseFragment
|
||||
mCountdown.setTag(resId);
|
||||
}
|
||||
|
||||
if (mMinuteDec != null) {
|
||||
String countdown = getString(resId, timeLeft);
|
||||
if (ZERO_TIME.equals(countdown)) {
|
||||
countdown = countdown.substring(1);
|
||||
}
|
||||
mMinuteDec.setText(countdown);
|
||||
}
|
||||
|
||||
if (mMinuteInc != null) {
|
||||
String countdown = getString(resId, timeRight);
|
||||
if (ZERO_TIME.equals(countdown)) {
|
||||
countdown = countdown.substring(1);
|
||||
}
|
||||
mMinuteInc.setText(countdown);
|
||||
}
|
||||
|
||||
if (mDebugTime != null) {
|
||||
mDebugTime.setText(mStartTime.asDate().toString());
|
||||
}
|
||||
@@ -622,56 +596,9 @@ public class StartTimeFragment extends BaseFragment
|
||||
}
|
||||
}
|
||||
|
||||
private void setButtonTime(TimePoint timePoint, boolean reverse) {
|
||||
mCalendar.setTime(timePoint.asDate());
|
||||
mTimeLeft = getNewTime(mCalendar, (reverse) ? 1 : 0);
|
||||
mTimeRight = getNewTime(mCalendar, (reverse) ? 0 : 1);
|
||||
}
|
||||
|
||||
private Calendar getNewTime(Calendar calendar, int upDown) {
|
||||
Calendar newCalendar = (Calendar) calendar.clone();
|
||||
newCalendar.add(Calendar.MINUTE, upDown);
|
||||
newCalendar.set(Calendar.SECOND, 0);
|
||||
newCalendar.set(Calendar.MILLISECOND, 0);
|
||||
return newCalendar;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
switch (view.getId()) {
|
||||
case R.id.minute_inc:
|
||||
case R.id.minute_dec:
|
||||
mCalendar = Calendar.getInstance();
|
||||
int msec = mCalendar.get(Calendar.MILLISECOND);
|
||||
mCalendar.set(Calendar.MILLISECOND, msec);
|
||||
String button = ((TextView) view).getText().toString();
|
||||
boolean down = button.substring(0, 1).equals("-");
|
||||
String[] values = button.split(":");
|
||||
int hour = Integer.parseInt(values[0]);
|
||||
int min = Integer.parseInt(values[1]);
|
||||
if (view.getId() == R.id.minute_dec) { // button right
|
||||
if (!down) { // time is positive
|
||||
mCalendar.add(Calendar.HOUR_OF_DAY, -1 * hour);
|
||||
mCalendar.add(Calendar.MINUTE, -1 * min);
|
||||
} else {
|
||||
mCalendar.add(Calendar.HOUR_OF_DAY, -1 * hour);
|
||||
mCalendar.add(Calendar.MINUTE, min);
|
||||
}
|
||||
} else { // button left
|
||||
if (!down) { // time is positive
|
||||
mCalendar.add(Calendar.HOUR_OF_DAY, -1 * hour);
|
||||
mCalendar.add(Calendar.MINUTE, -1 * min);
|
||||
} else {
|
||||
mCalendar.add(Calendar.HOUR_OF_DAY, -1 * hour);
|
||||
mCalendar.add(Calendar.MINUTE, min);
|
||||
}
|
||||
}
|
||||
|
||||
mStartTime = new MillisecondsTimePoint(mCalendar.getTimeInMillis());
|
||||
mListenerIgnore = true;
|
||||
setPickerTime();
|
||||
break;
|
||||
|
||||
case R.id.set_start_time_absolute:
|
||||
changeFragment(mStartTime);
|
||||
break;
|
||||
@@ -680,6 +607,10 @@ public class StartTimeFragment extends BaseFragment
|
||||
changeFragment(MillisecondsTimePoint.now(), new MillisecondsDurationImpl(mTimeOffset.getValue() * 60 * 1000), identifier);
|
||||
break;
|
||||
|
||||
case R.id.sync_to_minute:
|
||||
syncToMinute();
|
||||
break;
|
||||
|
||||
case R.id.header_text:
|
||||
if (getArguments() != null && getArguments().getInt(START_MODE, START_MODE_PRESETUP) == START_MODE_PRESETUP) {
|
||||
changeFragment();
|
||||
@@ -694,10 +625,18 @@ public class StartTimeFragment extends BaseFragment
|
||||
}
|
||||
}
|
||||
|
||||
private void syncToMinute() {
|
||||
final TimePoint now = MillisecondsTimePoint.now();
|
||||
mStartTime = mStartTime.getNearestModuloOneMinute(now);
|
||||
mListenerIgnore = true;
|
||||
setPickerTime();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
|
||||
if (!mListenerIgnore) {
|
||||
mStartTime = new MillisecondsTimePoint(getPickerTime().asMillis());
|
||||
setSeconds();
|
||||
}
|
||||
mListenerIgnore = false;
|
||||
}
|
||||
@@ -706,10 +645,26 @@ public class StartTimeFragment extends BaseFragment
|
||||
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
|
||||
if (!mListenerIgnore) {
|
||||
mStartTime = new MillisecondsTimePoint(getPickerTime().asMillis());
|
||||
setSeconds();
|
||||
}
|
||||
mListenerIgnore = false;
|
||||
}
|
||||
|
||||
private void setSeconds() {
|
||||
setSeconds(0, 0);
|
||||
}
|
||||
|
||||
private void setSeconds(int sec, int msec) {
|
||||
if (mStartSeconds != null) {
|
||||
double seconds = sec + msec / (double) 1000;
|
||||
DecimalFormat format = new DecimalFormat("0.000");
|
||||
mStartSeconds.setDisplayedValues(new String[] { format.format(seconds) });
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* sets the time displayed in the time picker to the value of {@link #mStartTime}
|
||||
*/
|
||||
private void setPickerTime() {
|
||||
Calendar today = Calendar.getInstance();
|
||||
Calendar newTime = (Calendar) today.clone();
|
||||
@@ -724,6 +679,8 @@ public class StartTimeFragment extends BaseFragment
|
||||
mTimePicker.setCurrentHour(newTime.get(Calendar.HOUR_OF_DAY));
|
||||
mTimePicker.setCurrentMinute(newTime.get(Calendar.MINUTE));
|
||||
}
|
||||
|
||||
setSeconds(newTime.get(Calendar.SECOND), newTime.get(Calendar.MILLISECOND));
|
||||
}
|
||||
|
||||
private TimePoint getPickerTime() {
|
||||
|
||||
+16
@@ -9,6 +9,7 @@ import android.graphics.Paint;
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
import android.support.annotation.AttrRes;
|
||||
import android.support.annotation.ColorInt;
|
||||
import android.support.annotation.DimenRes;
|
||||
import android.util.TypedValue;
|
||||
import android.view.View;
|
||||
import android.widget.EditText;
|
||||
@@ -105,6 +106,21 @@ public class ThemeHelper {
|
||||
setPickerDividerColor(context, numberPicker, dividerColor);
|
||||
}
|
||||
|
||||
public static void setPickerTextSize(Context context, NumberPicker numberPicker, @DimenRes int dimen) {
|
||||
final int count = numberPicker.getChildCount();
|
||||
for (int i = 0; i < count; i++) {
|
||||
View child = numberPicker.getChildAt(i);
|
||||
if (child instanceof EditText) {
|
||||
try {
|
||||
((EditText) child).setTextSize(TypedValue.COMPLEX_UNIT_PX, context.getResources().getDimension(dimen));
|
||||
numberPicker.invalidate();
|
||||
} catch (IllegalArgumentException e) {
|
||||
ExLog.w(context, TAG, "IllegalArgumentException - " + e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static @ColorInt int getColor(Context context, @AttrRes int colorId) {
|
||||
int color = 0;
|
||||
TypedValue typedValue = new TypedValue();
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
# League operators - FAQ
|
||||
|
||||
This is a collection of frequently asked questions about the operation of the SAP Sailing Analytics at national league events
|
||||
|
||||
## 1. Tracking
|
||||
|
||||
1.1 How to handle course changes
|
||||
1.2 How to fix a race with missing mark passing times
|
||||
|
||||
## 2. Windbot
|
||||
|
||||
2.1 How to check a windbot
|
||||
|
||||
## 3. SAP Race Manager App
|
||||
|
||||
3.1. How to see the wind data measured by the windbots
|
||||
|
||||
## 4. SAP Backend
|
||||
|
||||
4.1 How to setup a final series
|
||||
File renamed without changes.
Reference in new issue
Block a user