diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/configuration/RegattaConfiguration.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/configuration/RegattaConfiguration.java index 1828d8c0ef1..2819e8ee4e3 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/configuration/RegattaConfiguration.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/configuration/RegattaConfiguration.java @@ -10,6 +10,7 @@ import com.sap.sailing.domain.base.configuration.procedures.RRS26Configuration; import com.sap.sailing.domain.base.configuration.procedures.SWCStartConfiguration; import com.sap.sailing.domain.common.CourseDesignerMode; import com.sap.sailing.domain.common.racelog.RacingProcedureType; +import com.sap.sse.common.Duration; /** * Interface holding configuration options for a Regatta, including configurations for @@ -26,6 +27,12 @@ public interface RegattaConfiguration extends Serializable, Cloneable { * Gets the default {@link RacingProcedureType} for races configured. */ RacingProcedureType getDefaultRacingProcedureType(); + + /** + * Gets the default protest time duration. May be {@code null} in case no default is set for the + * regatta. + */ + Duration getDefaultProtestTimeDuration(); /** * Gets the configuration for RRS26 races. diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/configuration/impl/EmptyRegattaConfiguration.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/configuration/impl/EmptyRegattaConfiguration.java index 4b39cbeed7f..0363327b55b 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/configuration/impl/EmptyRegattaConfiguration.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/configuration/impl/EmptyRegattaConfiguration.java @@ -4,6 +4,7 @@ import com.sap.sailing.domain.base.configuration.ConfigurationLoader; import com.sap.sailing.domain.base.configuration.RegattaConfiguration; import com.sap.sailing.domain.common.CourseDesignerMode; import com.sap.sailing.domain.common.racelog.RacingProcedureType; +import com.sap.sse.common.Duration; /** * Is empty, does nothing on store and load. @@ -17,6 +18,7 @@ public class EmptyRegattaConfiguration extends RegattaConfigurationImpl implemen public RegattaConfiguration load() { setDefaultRacingProcedureType(RacingProcedureType.UNKNOWN); setDefaultCourseDesignerMode(CourseDesignerMode.UNKNOWN); + setDefaultProtestTimeDuration(Duration.ONE_MINUTE.times(90)); setRRS26Configuration(new RRS26ConfigurationImpl()); setSWCStartConfiguration(new SWCStartConfigurationImpl()); setGateStartConfiguration(new GateStartConfigurationImpl()); diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/configuration/impl/RegattaConfigurationImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/configuration/impl/RegattaConfigurationImpl.java index 5810aa96e41..55c1f89b320 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/configuration/impl/RegattaConfigurationImpl.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/configuration/impl/RegattaConfigurationImpl.java @@ -9,6 +9,7 @@ import com.sap.sailing.domain.base.configuration.procedures.RRS26Configuration; import com.sap.sailing.domain.base.configuration.procedures.SWCStartConfiguration; import com.sap.sailing.domain.common.CourseDesignerMode; import com.sap.sailing.domain.common.racelog.RacingProcedureType; +import com.sap.sse.common.Duration; public class RegattaConfigurationImpl implements RegattaConfiguration { @@ -16,6 +17,7 @@ public class RegattaConfigurationImpl implements RegattaConfiguration { private RacingProcedureType defaultRacingProcedureType; private CourseDesignerMode defaultCourseDesignerMode; + private Duration defaultProtestTimeDuration; private RRS26Configuration rrs26Configuration; private SWCStartConfiguration swcStartConfiguration; @@ -42,6 +44,15 @@ public class RegattaConfigurationImpl implements RegattaConfiguration { defaultCourseDesignerMode = mode; } + @Override + public Duration getDefaultProtestTimeDuration() { + return defaultProtestTimeDuration; + } + + public void setDefaultProtestTimeDuration(Duration defaultProtestTimeDuration) { + this.defaultProtestTimeDuration = defaultProtestTimeDuration; + } + @Override public RRS26Configuration getRRS26Configuration() { return rrs26Configuration; @@ -101,6 +112,7 @@ public class RegattaConfigurationImpl implements RegattaConfiguration { RegattaConfigurationImpl copy = new RegattaConfigurationImpl(); copy.setDefaultRacingProcedureType(defaultRacingProcedureType); copy.setDefaultCourseDesignerMode(defaultCourseDesignerMode); + copy.setDefaultProtestTimeDuration(defaultProtestTimeDuration); copy.setRRS26Configuration(rrs26Configuration); copy.setSWCStartConfiguration(swcStartConfiguration); copy.setGateStartConfiguration(gateStartConfiguration); @@ -120,6 +132,9 @@ public class RegattaConfigurationImpl implements RegattaConfiguration { if (update.getDefaultRacingProcedureType() != null) { target.setDefaultRacingProcedureType(update.getDefaultRacingProcedureType()); } + if (update.getDefaultProtestTimeDuration() != null) { + target.setDefaultProtestTimeDuration(update.getDefaultProtestTimeDuration()); + } if (update.getRRS26Configuration() != null) { target.setRRS26Configuration( (RRS26Configuration) target.getRRS26Configuration().merge(update.getRRS26Configuration())); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/places/whatsnew/resources/RaceCommitteeAppNotes.html b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/places/whatsnew/resources/RaceCommitteeAppNotes.html index bc21c9b9ca2..f6fe585a85d 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/places/whatsnew/resources/RaceCommitteeAppNotes.html +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/places/whatsnew/resources/RaceCommitteeAppNotes.html @@ -4,6 +4,14 @@

What's New - SAP Sailing Race Manager

+
February 2018
+ +
August 2017