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 95e81243d4d9482f131824f1e58e10d42fb0ea8d Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Nov 7 09:07:45 2016 +0100 Mise en place du switch de validation selon la nouvelle option --- ...nTargetLengthDto-ui-update-error-validation.xml | 17 +++++++++ ...argetLengthDto-ui-update-warning-validation.xml | 3 +- .../AbstractSpeciesFieldDtoValidator.java | 42 ++++++++++++++-------- .../swing/validation/ValidationContext.java | 4 +++ 4 files changed, 50 insertions(+), 16 deletions(-) diff --git a/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/seine/NonTargetLengthDto-ui-update-error-validation.xml b/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/seine/NonTargetLengthDto-ui-update-error-validation.xml index 361b885..42e4b6f 100644 --- a/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/seine/NonTargetLengthDto-ui-update-error-validation.xml +++ b/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/seine/NonTargetLengthDto-ui-update-error-validation.xml @@ -103,6 +103,13 @@ <message>validator.ui.nonTargetSample.positive.length</message> </field-validator> + <!-- validation de la taille par borne --> + <field-validator type="species_lengthDto"> + <param name="enable">true</param> + <param name="ratio">1.0</param> + <message>validator.ui.nonTargetSample.bound.length##${min}##${max}</message> + </field-validator> + </field> <field name="weight"> @@ -123,6 +130,16 @@ <message>validator.ui.nonTargetSample.positive.weight</message> </field-validator> + <!-- validation du weight par borne (uniquement pour mode saisie par individus) --> + <field-validator type="species_weightDto"> + <param name="ratio">1.0</param> + <param name="enable">true</param> + <param name="expression"> + <![CDATA[ acquisitionMode == 1 ]]> + </param> + <message>validator.ui.nonTargetSample.bound.weight##${min}##${max}</message> + </field-validator> + </field> <field name="count"> diff --git a/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/seine/NonTargetLengthDto-ui-update-warning-validation.xml b/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/seine/NonTargetLengthDto-ui-update-warning-validation.xml index c0f4ba5..c22920c 100644 --- a/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/seine/NonTargetLengthDto-ui-update-warning-validation.xml +++ b/application-swing-validation/src/main/resources/fr/ird/observe/services/dto/seine/NonTargetLengthDto-ui-update-warning-validation.xml @@ -39,7 +39,7 @@ <!-- validation de la taille par borne --> <field-validator type="species_lengthDto"> - <!--<param name="fieldName">length</param>--> + <param name="enable">false</param> <param name="ratio">1.0</param> <message>validator.ui.nonTargetSample.bound.length##${min}##${max}</message> </field-validator> @@ -51,6 +51,7 @@ <!-- validation du weight par borne (uniquement pour mode saisie par individus) --> <field-validator type="species_weightDto"> <param name="ratio">1.0</param> + <param name="enable">false</param> <param name="expression"> <![CDATA[ acquisitionMode == 1 ]]> </param> diff --git a/application-swing-validators/src/main/java/fr/ird/observe/application/swing/validators/AbstractSpeciesFieldDtoValidator.java b/application-swing-validators/src/main/java/fr/ird/observe/application/swing/validators/AbstractSpeciesFieldDtoValidator.java index 61c6dff..fa33eb3 100644 --- a/application-swing-validators/src/main/java/fr/ird/observe/application/swing/validators/AbstractSpeciesFieldDtoValidator.java +++ b/application-swing-validators/src/main/java/fr/ird/observe/application/swing/validators/AbstractSpeciesFieldDtoValidator.java @@ -61,6 +61,8 @@ public abstract class AbstractSpeciesFieldDtoValidator extends FieldValidatorSup /** Logger. */ private static final Log log = LogFactory.getLog(AbstractSpeciesFieldDtoValidator.class); + private boolean enable; + public static class Bound { private final Float min; @@ -127,34 +129,44 @@ public abstract class AbstractSpeciesFieldDtoValidator extends FieldValidatorSup this.expression = expression; } + public boolean isEnable() { + return enable; + } + + public void setEnable(boolean enable) { + this.enable = enable; + } + protected abstract Float getBoundMin(SpeciesDto referentiel); protected abstract Float getBoundMax(SpeciesDto referentiel); protected boolean shouldValidate(Object object) throws ValidationException { - Object obj = null; - Boolean answer; + + Boolean enable = (Boolean) getFieldValue("validationLengthWeightEnable", object); + if (enable != null) { + + if (this.enable != enable) { + + log.info("Skip speed validation"); + return false; + } + + } + + Boolean answer = true; if (StringUtils.isNotEmpty(expression)) { try { - obj = getFieldValue(expression, object); + answer = (Boolean) getFieldValue(expression, object); } catch (ValidationException e) { throw e; } catch (Exception e) { // let this pass, but it will be logged right below - } - - if (obj != null && obj instanceof Boolean) { - answer = (Boolean) obj; - } else { - answer = false; - if (log.isWarnEnabled()) { - log.warn("Got result of " + obj + " when trying to get Boolean with expression [" + expression + "]."); + if (log.isErrorEnabled()) { + log.error("Could not get expression: " + expression); } + answer = true; } - } else { - - // no pre-expression, always wants to validate - answer = true; } return answer; 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 a7f76c8..917fe00 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 @@ -280,6 +280,10 @@ public class ValidationContext { return config.isValidationSpeedEnable(); } + public boolean isValidationLengthWeightEnable() { + return config.isValidationLengthWeightEnable(); + } + public float getValidationSpeedMaxValue() { return config.getValidationSpeedMaxValue(); } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.