This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 4e0cb1572c664f0d3f957c1cc18a787728a3827a Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Sep 14 21:36:05 2016 +0200 Mise à jour des validateurs (See #8541) --- ...ActivitySeineDto-ui-create-error-validation.xml | 6 +++- ...tivitySeineDto-ui-create-warning-validation.xml | 6 ++-- ...ActivitySeineDto-ui-update-error-validation.xml | 5 +++ ...tivitySeineDto-ui-update-warning-validation.xml | 2 +- .../seine/RouteDto-ui-update-error-validation.xml | 6 ++++ .../RouteDto-ui-update-warning-validation.xml | 2 +- .../ActivitySimpleSpeedDtoValidator.java | 36 ++++++++++++++++++---- .../validators/ActivitySpeedDtoValidator.java | 30 ++++++++++++++++++ .../swing/ObserveSwingApplicationContext.java | 2 +- .../swing/validation/ValidationContext.java | 13 +++++++- 10 files changed, 94 insertions(+), 14 deletions(-) diff --git a/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/seine/ActivitySeineDto-ui-create-error-validation.xml b/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/seine/ActivitySeineDto-ui-create-error-validation.xml index 574f959..38be3ad 100644 --- a/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/seine/ActivitySeineDto-ui-create-error-validation.xml +++ b/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/seine/ActivitySeineDto-ui-create-error-validation.xml @@ -161,8 +161,12 @@ <message>validator.ui.activity.duplicated.time</message> </field-validator> - </field> + <field-validator type="activitySimpleSpeedDto" short-circuit="true"> + <param name="enable">true</param> + <message>validator.ui.activity.invalid.speed##${foundSpeed}##${speed}</message> + </field-validator> + </field> <field name="quadrant"> diff --git a/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/seine/ActivitySeineDto-ui-create-warning-validation.xml b/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/seine/ActivitySeineDto-ui-create-warning-validation.xml index 0f7ba80..86f1867 100644 --- a/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/seine/ActivitySeineDto-ui-create-warning-validation.xml +++ b/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/seine/ActivitySeineDto-ui-create-warning-validation.xml @@ -29,7 +29,7 @@ <field name="time"> <field-validator type="activitySimpleSpeedDto" short-circuit="true"> - <param name="speed">30.0</param> + <param name="enable">false</param> <message>validator.ui.activity.invalid.speed##${foundSpeed}##${speed}</message> </field-validator> @@ -65,7 +65,7 @@ <field name="latitude"> <field-validator type="activitySimpleSpeedDto" short-circuit="true"> - <param name="speed">30.0</param> + <param name="enable">false</param> <message>validator.ui.activity.invalid.speed##${foundSpeed}##${speed}</message> </field-validator> @@ -74,7 +74,7 @@ <field name="longitude"> <field-validator type="activitySimpleSpeedDto" short-circuit="true"> - <param name="speed">30.0</param> + <param name="enable">false</param> <message>validator.ui.activity.invalid.speed##${foundSpeed}##${speed}</message> </field-validator> diff --git a/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/seine/ActivitySeineDto-ui-update-error-validation.xml b/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/seine/ActivitySeineDto-ui-update-error-validation.xml index 4cccc67..5c52b27 100644 --- a/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/seine/ActivitySeineDto-ui-update-error-validation.xml +++ b/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/seine/ActivitySeineDto-ui-update-error-validation.xml @@ -94,6 +94,11 @@ <message>validator.ui.activity.duplicated.time</message> </field-validator> + <field-validator type="activitySimpleSpeedDto" short-circuit="true"> + <param name="enable">true</param> + <message>validator.ui.activity.invalid.speed##${foundSpeed}##${speed}</message> + </field-validator> + </field> <field name="surroundingActivity"> diff --git a/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/seine/ActivitySeineDto-ui-update-warning-validation.xml b/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/seine/ActivitySeineDto-ui-update-warning-validation.xml index 3ebc9b4..f26bf1d 100644 --- a/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/seine/ActivitySeineDto-ui-update-warning-validation.xml +++ b/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/seine/ActivitySeineDto-ui-update-warning-validation.xml @@ -86,7 +86,7 @@ <field name="time"> <field-validator type="activitySimpleSpeedDto" short-circuit="true"> - <param name="speed">30.0</param> + <param name="enable">false</param> <message>validator.ui.activity.invalid.speed##${foundSpeed}##${speed}</message> </field-validator> diff --git a/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/seine/RouteDto-ui-update-error-validation.xml b/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/seine/RouteDto-ui-update-error-validation.xml index 2542822..09425bf 100644 --- a/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/seine/RouteDto-ui-update-error-validation.xml +++ b/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/seine/RouteDto-ui-update-error-validation.xml @@ -95,6 +95,12 @@ <message>validator.ui.route.invalid.quadrant##${index}##${currentTripSeine.ocean.getPropertyValue("code")}</message> </field-validator> + <!-- coherence vitesse des activites --> + <field-validator type="activitySpeedDto"> + <param name="enable">true</param> + <message>validator.ui.route.invalid.speed##${speed}##${invalidActivity}##${foundSpeed}</message> + </field-validator> + </field> <field name="comment"> diff --git a/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/seine/RouteDto-ui-update-warning-validation.xml b/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/seine/RouteDto-ui-update-warning-validation.xml index 879c4cc..b2e0093 100644 --- a/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/seine/RouteDto-ui-update-warning-validation.xml +++ b/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/seine/RouteDto-ui-update-warning-validation.xml @@ -107,7 +107,7 @@ <!-- coherence vitesse des activites --> <field-validator type="activitySpeedDto"> - <param name="speed">30.0</param> + <param name="enable">false</param> <message>validator.ui.route.invalid.speed##${speed}##${invalidActivity}##${foundSpeed}</message> </field-validator> diff --git a/application-swing-validators/src/main/java/fr/ird/observe/application/swing/validators/ActivitySimpleSpeedDtoValidator.java b/application-swing-validators/src/main/java/fr/ird/observe/application/swing/validators/ActivitySimpleSpeedDtoValidator.java index 9876753..52cf08c 100644 --- a/application-swing-validators/src/main/java/fr/ird/observe/application/swing/validators/ActivitySimpleSpeedDtoValidator.java +++ b/application-swing-validators/src/main/java/fr/ird/observe/application/swing/validators/ActivitySimpleSpeedDtoValidator.java @@ -71,6 +71,8 @@ public class ActivitySimpleSpeedDtoValidator extends FieldValidatorSupport { /** Logger. */ private static final Log log = LogFactory.getLog(ActivitySimpleSpeedDtoValidator.class); + private boolean enable; + private Float speed; public Float getSpeed() { @@ -81,19 +83,41 @@ public class ActivitySimpleSpeedDtoValidator extends FieldValidatorSupport { this.speed = speed; } + public boolean isEnable() { + return enable; + } + + public void setEnable(boolean enable) { + this.enable = enable; + } + @Override public void validate(Object object) throws ValidationException { - if (speed == null) { - throw new ValidationException("le parametre speed est obligatoire"); - } - if (object == null) { // pas d'objet, donc rien a faire return; } + Boolean enable = (Boolean) getFieldValue("validationSpeedEnable", object); + if (enable != null) { + + if (this.enable != enable) { + + log.info("Skip speed validation"); + return; + } + + } + + // on recherche dans la stack une valeur par default + speed = (Float) getFieldValue("validationSpeedMaxValue", object); + + if (speed == null) { + throw new ValidationException("le parametre speed est obligatoire"); + } + ActivitySeineDto activity = (ActivitySeineDto) object; if (activity.getTime() == null) { @@ -107,7 +131,7 @@ public class ActivitySimpleSpeedDtoValidator extends FieldValidatorSupport { if (activity.getLatitude() == null || - activity.getLongitude() == null) { + activity.getLongitude() == null) { // pas de position, on ne peut pas valider if (log.isDebugEnabled()) { @@ -130,7 +154,7 @@ public class ActivitySimpleSpeedDtoValidator extends FieldValidatorSupport { } if (previousActivity.getLatitude() == null || - previousActivity.getLongitude() == null) { + previousActivity.getLongitude() == null) { // pas de position, on ne peut pas valider if (log.isDebugEnabled()) { diff --git a/application-swing-validators/src/main/java/fr/ird/observe/application/swing/validators/ActivitySpeedDtoValidator.java b/application-swing-validators/src/main/java/fr/ird/observe/application/swing/validators/ActivitySpeedDtoValidator.java index 6fdcade..c7a8c62 100644 --- a/application-swing-validators/src/main/java/fr/ird/observe/application/swing/validators/ActivitySpeedDtoValidator.java +++ b/application-swing-validators/src/main/java/fr/ird/observe/application/swing/validators/ActivitySpeedDtoValidator.java @@ -73,6 +73,8 @@ public class ActivitySpeedDtoValidator extends FieldValidatorSupport { private CollectionFieldExpressionValidator delegate; + private boolean enable; + private Float speed; public Float getSpeed() { @@ -83,6 +85,14 @@ public class ActivitySpeedDtoValidator extends FieldValidatorSupport { this.speed = speed; } + public boolean isEnable() { + return enable; + } + + public void setEnable(boolean enable) { + this.enable = enable; + } + protected String invalidActivity; public String getInvalidActivity() { @@ -198,6 +208,26 @@ public class ActivitySpeedDtoValidator extends FieldValidatorSupport { @Override public void validate(Object object) throws ValidationException { + if (object == null) { + + // pas d'objet, donc rien a faire + return; + } + + Boolean enable = (Boolean) getFieldValue("validationSpeedEnable", object); + if (enable != null) { + + if (this.enable != enable) { + + log.info("Skip speed validation"); + return; + } + + } + + // on recherche dans la stack une valeur par default + speed = (Float) getFieldValue("validationSpeedMaxValue", object); + if (speed == null) { throw new ValidationException("le parametre speed est obligatoire"); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationContext.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationContext.java index 6c05f34..66ad919 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationContext.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationContext.java @@ -209,7 +209,7 @@ public class ObserveSwingApplicationContext extends DefaultApplicationContext im TEXT_GENERATOR.set(new ObserveTextGenerator(config)); DATA_CONTEXT.set(new DataContext()); OPEN_DATA_MANAGER.set(new ObserveOpenDataManager(getDataContext())); - VALIDATION_CONTEXT.set(new ValidationContext(getDataContext())); + VALIDATION_CONTEXT.set(new ValidationContext(config, getDataContext())); VALIDATORS.set(Lists.newArrayList(ValidateServiceUtils.getValidators())); SERVICE_MAIN_FACTORY.set(ObserveServiceMainFactory.get()); referenceBinderEngine = new ReferenceBinderEngineSupplier().get(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/validation/ValidationContext.java b/application-swing/src/main/java/fr/ird/observe/application/swing/validation/ValidationContext.java index 0d4af1c..3d2f41a 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/validation/ValidationContext.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/validation/ValidationContext.java @@ -23,6 +23,7 @@ package fr.ird.observe.application.swing.validation; import fr.ird.observe.application.swing.ObserveOpenDataManager; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; +import fr.ird.observe.application.swing.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.application.swing.decoration.DecoratorService; import fr.ird.observe.application.swing.db.DataContext; import fr.ird.observe.application.swing.db.ObserveSwingDataSource; @@ -146,6 +147,7 @@ public class ValidationContext { } }; + private final ObserveSwingApplicationConfig config; protected final DataContext dataContext; protected Map<String, Object> cache; @@ -164,7 +166,8 @@ public class ValidationContext { referentielList = null; } - public ValidationContext(DataContext dataContext) { + public ValidationContext(ObserveSwingApplicationConfig config, DataContext dataContext) { + this.config = config; this.dataContext = dataContext; } @@ -271,6 +274,14 @@ public class ValidationContext { this.referentielList = referentielList; } + public boolean isValidationSpeedEnable() { + return config.isValidationSpeedEnable(); + } + + public float getValidationSpeedMaxValue() { + return config.getValidationSpeedMaxValue(); + } + protected <D extends IdDto> D getDto(DtoSupplier<D> dtoSupplier, String id) { Object o = getCache().get(id); if (o != null) { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.