From 031ce5b141b742d7ab5be018e3869174bb2e9e6f Mon Sep 17 00:00:00 2001 From: Peter Siegmund Date: Fri, 11 Aug 2017 19:06:53 +0200 Subject: [PATCH 01/21] add protest time input to admin console for race committee app --- .../RegattaConfigurationDialog.java | 176 +++++++++++------- .../gwt/ui/shared/DeviceConfigurationDTO.java | 1 + 2 files changed, 112 insertions(+), 65 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaConfigurationDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaConfigurationDialog.java index 30e77991424..6f4c8583b79 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaConfigurationDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaConfigurationDialog.java @@ -23,12 +23,15 @@ import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.DeviceConfigurationDTO; import com.sap.sailing.gwt.ui.shared.DeviceConfigurationDTO.RegattaConfigurationDTO; import com.sap.sailing.gwt.ui.shared.DeviceConfigurationDTO.RegattaConfigurationDTO.RacingProcedureConfigurationDTO; +import com.sap.sse.gwt.client.controls.IntegerBox; import com.sap.sse.gwt.client.dialog.DataEntryDialog; public class RegattaConfigurationDialog extends DataEntryDialog { private final AdminConsoleResources resources = GWT.create(AdminConsoleResources.class); + private final int DEFAULT_PROTEST_TIME = 90; // FIXME where can I find the value? + private final StringMessages stringMessages; private final DeviceConfigurationDTO.RegattaConfigurationDTO originalConfiguration; @@ -43,6 +46,7 @@ public class RegattaConfigurationDialog extends DataEntryDialog callback) { @@ -155,6 +164,14 @@ public class RegattaConfigurationDialog extends DataEntryDialog() { @Override @@ -212,6 +229,8 @@ public class RegattaConfigurationDialog extends DataEntryDialog() { @Override @@ -272,6 +293,8 @@ public class RegattaConfigurationDialog extends DataEntryDialog() { @Override @@ -332,6 +357,8 @@ public class RegattaConfigurationDialog extends DataEntryDialog() { @Override @@ -381,19 +411,23 @@ public class RegattaConfigurationDialog extends DataEntryDialog() { @Override @@ -418,19 +452,23 @@ public class RegattaConfigurationDialog extends DataEntryDialog() { @Override @@ -455,19 +493,23 @@ public class RegattaConfigurationDialog extends DataEntryDialog flags = new ArrayList(); for (int i = 0; i < rrs26StartModeFlagsBox.getItemCount(); i++) { if (rrs26StartModeFlagsBox.isItemSelected(i)) { @@ -513,7 +555,7 @@ public class RegattaConfigurationDialog extends DataEntryDialog flags = new ArrayList(); for (int i = 0; i < swcStartModeFlagsBox.getItemCount(); i++) { if (swcStartModeFlagsBox.isItemSelected(i)) { @@ -524,22 +566,22 @@ public class RegattaConfigurationDialog extends DataEntryDialog= 0) { Flags flag = Flags.valueOf(classListBox.getValue(index)); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DeviceConfigurationDTO.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DeviceConfigurationDTO.java index 4a8244a7f72..6e40a9928e1 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DeviceConfigurationDTO.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DeviceConfigurationDTO.java @@ -37,6 +37,7 @@ public class DeviceConfigurationDTO implements IsSerializable { public Flags classFlag; public Boolean hasIndividualRecall; public Boolean isResultEntryEnabled; + public Integer protestTime; } public RacingProcedureType defaultRacingProcedureType; public CourseDesignerMode defaultCourseDesignerMode; From b46e0409e9f292a386d61d6037416b7983410af9 Mon Sep 17 00:00:00 2001 From: Peter Siegmund Date: Mon, 15 Jan 2018 15:34:38 +0100 Subject: [PATCH 02/21] save and transfer default protest time to Android --- .../configuration/RegattaConfiguration.java | 5 + .../impl/EmptyRegattaConfiguration.java | 1 + .../impl/RegattaConfigurationImpl.java | 14 ++ .../RegattaConfigurationDialog.java | 174 +++++++----------- .../gwt/ui/server/SailingServiceImpl.java | 2 + .../gwt/ui/shared/DeviceConfigurationDTO.java | 2 +- .../RegattaConfigurationJsonDeserializer.java | 26 ++- .../RegattaConfigurationJsonSerializer.java | 13 +- .../racecommittee/app/AppPreferences.java | 22 +-- ...PreferencesRegattaConfigurationLoader.java | 5 + .../dialogs/ProtestTimeDialogFragment.java | 2 +- 11 files changed, 138 insertions(+), 128 deletions(-) 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..279d15841e4 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 @@ -26,6 +26,11 @@ public interface RegattaConfiguration extends Serializable, Cloneable { * Gets the default {@link RacingProcedureType} for races configured. */ RacingProcedureType getDefaultRacingProcedureType(); + + /** + * Gets the default protest time duration (in minutes) + */ + Integer 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..a417998e50c 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 @@ -17,6 +17,7 @@ public class EmptyRegattaConfiguration extends RegattaConfigurationImpl implemen public RegattaConfiguration load() { setDefaultRacingProcedureType(RacingProcedureType.UNKNOWN); setDefaultCourseDesignerMode(CourseDesignerMode.UNKNOWN); + setDefaultProtestTimeDuration(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..17d256bfa9d 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 @@ -16,6 +16,7 @@ public class RegattaConfigurationImpl implements RegattaConfiguration { private RacingProcedureType defaultRacingProcedureType; private CourseDesignerMode defaultCourseDesignerMode; + private Integer defaultProtestTimeDuration; private RRS26Configuration rrs26Configuration; private SWCStartConfiguration swcStartConfiguration; @@ -42,6 +43,15 @@ public class RegattaConfigurationImpl implements RegattaConfiguration { defaultCourseDesignerMode = mode; } + @Override + public Integer getDefaultProtestTimeDuration() { + return defaultProtestTimeDuration; + } + + public void setDefaultProtestTimeDuration(Integer defaultProtestTimeDuration) { + this.defaultProtestTimeDuration = defaultProtestTimeDuration; + } + @Override public RRS26Configuration getRRS26Configuration() { return rrs26Configuration; @@ -101,6 +111,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 +131,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/ui/adminconsole/RegattaConfigurationDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaConfigurationDialog.java index 6f4c8583b79..9665cc275f6 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaConfigurationDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaConfigurationDialog.java @@ -29,8 +29,7 @@ import com.sap.sse.gwt.client.dialog.DataEntryDialog; public class RegattaConfigurationDialog extends DataEntryDialog { private final AdminConsoleResources resources = GWT.create(AdminConsoleResources.class); - - private final int DEFAULT_PROTEST_TIME = 90; // FIXME where can I find the value? + private final Integer DEFAULT_PROTEST_TIME_DURATION = 90; // FIXME where can I find the value? private final StringMessages stringMessages; private final DeviceConfigurationDTO.RegattaConfigurationDTO originalConfiguration; @@ -39,6 +38,7 @@ public class RegattaConfigurationDialog extends DataEntryDialog callback) { @@ -127,9 +121,10 @@ public class RegattaConfigurationDialog extends DataEntryDialog flags = new ArrayList(); for (int i = 0; i < rrs26StartModeFlagsBox.getItemCount(); i++) { if (rrs26StartModeFlagsBox.isItemSelected(i)) { @@ -555,7 +527,7 @@ public class RegattaConfigurationDialog extends DataEntryDialog flags = new ArrayList(); for (int i = 0; i < swcStartModeFlagsBox.getItemCount(); i++) { if (swcStartModeFlagsBox.isItemSelected(i)) { @@ -566,22 +538,22 @@ public class RegattaConfigurationDialog extends DataEntryDialog= 0) { Flags flag = Flags.valueOf(classListBox.getValue(index)); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java index 1f5a127097e..52ad6ce3735 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java @@ -5041,6 +5041,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S dto.defaultRacingProcedureType = configuration.getDefaultRacingProcedureType(); dto.defaultCourseDesignerMode = configuration.getDefaultCourseDesignerMode(); + dto.defaultProtestTimeDuration = configuration.getDefaultProtestTimeDuration(); if (configuration.getRRS26Configuration() != null) { dto.rrs26Configuration = new DeviceConfigurationDTO.RegattaConfigurationDTO.RRS26ConfigurationDTO(); @@ -5098,6 +5099,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S RegattaConfigurationImpl configuration = new RegattaConfigurationImpl(); configuration.setDefaultRacingProcedureType(dto.defaultRacingProcedureType); configuration.setDefaultCourseDesignerMode(dto.defaultCourseDesignerMode); + configuration.setDefaultProtestTimeDuration(dto.defaultProtestTimeDuration); if (dto.rrs26Configuration != null) { RRS26ConfigurationImpl config = new RRS26ConfigurationImpl(); applyGeneralRacingProcedureConfigProperties(dto.rrs26Configuration, config); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DeviceConfigurationDTO.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DeviceConfigurationDTO.java index 6e40a9928e1..b43f3425583 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DeviceConfigurationDTO.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/DeviceConfigurationDTO.java @@ -37,10 +37,10 @@ public class DeviceConfigurationDTO implements IsSerializable { public Flags classFlag; public Boolean hasIndividualRecall; public Boolean isResultEntryEnabled; - public Integer protestTime; } public RacingProcedureType defaultRacingProcedureType; public CourseDesignerMode defaultCourseDesignerMode; + public Integer defaultProtestTimeDuration; public RRS26ConfigurationDTO rrs26Configuration; public SWCStartConfigurationDTO swcStartConfiguration; diff --git a/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/impl/RegattaConfigurationJsonDeserializer.java b/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/impl/RegattaConfigurationJsonDeserializer.java index 441db44ff05..5a44d21d4f9 100644 --- a/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/impl/RegattaConfigurationJsonDeserializer.java +++ b/java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/impl/RegattaConfigurationJsonDeserializer.java @@ -17,7 +17,7 @@ import com.sap.sailing.server.gateway.deserialization.JsonDeserializer; import com.sap.sailing.server.gateway.serialization.impl.RegattaConfigurationJsonSerializer; public class RegattaConfigurationJsonDeserializer implements JsonDeserializer { - + public static RegattaConfigurationJsonDeserializer create() { return new RegattaConfigurationJsonDeserializer(RRS26ConfigurationJsonDeserializer.create(), SWCStartConfigurationJsonDeserializer.create(), GateStartConfigurationJsonDeserializer.create(), ESSConfigurationJsonDeserializer.create(), @@ -30,8 +30,8 @@ public class RegattaConfigurationJsonDeserializer implements JsonDeserializer rrs26Serializer; private final JsonSerializer swcStartSerializer; @@ -47,9 +50,15 @@ public class RegattaConfigurationJsonSerializer implements JsonSerializer