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 a39d8d3ca86ad6df56cd5c102f513faf91ee1113 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 3 16:15:46 2016 +0100 ajout nouveaux validateurs --- .../src/main/resources/validators.xml | 3 +- .../src/test/resources/validators.xml | 2 + application-swing-validators/pom.xml | 25 +++++ .../CoordinateLatitudeDtoFieldValidator.java | 121 ++++++++++++++++++++ .../CoordinateLongitudeDtoFieldValidator.java | 123 +++++++++++++++++++++ .../application-swing-validators_en_GB.properties | 6 + .../application-swing-validators_es_ES.properties | 6 + .../application-swing-validators_fr_FR.properties | 6 + .../src/main/resources/validators.xml | 2 + 9 files changed, 293 insertions(+), 1 deletion(-) diff --git a/application-swing-configuration/src/main/resources/validators.xml b/application-swing-configuration/src/main/resources/validators.xml index b98708f..f76e260 100644 --- a/application-swing-configuration/src/main/resources/validators.xml +++ b/application-swing-configuration/src/main/resources/validators.xml @@ -75,6 +75,7 @@ <validator name="setLonglineUniqueHomeIdDto" class="fr.ird.observe.application.swing.validators.SetLonglineUniqueHomeIdDtoValidator"/> <validator name="setLonglineUniqueNumberDto" class="fr.ird.observe.application.swing.validators.SetLonglineUniqueNumberDtoValidator"/> <validator name="quadrantDto" class="fr.ird.observe.application.swing.validators.QuadrantFieldDtoValidator"/> - + <validator name="coordinateLatitudeDto" class="fr.ird.observe.application.swing.validators.CoordinateLatitudeDtoFieldValidator"/> + <validator name="coordinateLongitudeDto" class="fr.ird.observe.application.swing.validators.CoordinateLongitudeDtoFieldValidator"/> </validators> diff --git a/application-swing-validation/src/test/resources/validators.xml b/application-swing-validation/src/test/resources/validators.xml index 07f0918..6940d60 100644 --- a/application-swing-validation/src/test/resources/validators.xml +++ b/application-swing-validation/src/test/resources/validators.xml @@ -63,5 +63,7 @@ <validator name="setLonglineUniqueHomeIdDto" class="fr.ird.observe.application.swing.validators.SetLonglineUniqueHomeIdDtoValidator"/> <validator name="setLonglineUniqueNumberDto" class="fr.ird.observe.application.swing.validators.SetLonglineUniqueNumberDtoValidator"/> <validator name="quadrantDto" class="fr.ird.observe.application.swing.validators.QuadrantFieldDtoValidator"/> + <validator name="coordinateLatitudeDto" class="fr.ird.observe.application.swing.validators.CoordinateLatitudeDtoFieldValidator"/> + <validator name="coordinateLongitudeDto" class="fr.ird.observe.application.swing.validators.CoordinateLongitudeDtoFieldValidator"/> </validators> diff --git a/application-swing-validators/pom.xml b/application-swing-validators/pom.xml index db46ade..2e9a8e7 100644 --- a/application-swing-validators/pom.xml +++ b/application-swing-validators/pom.xml @@ -73,6 +73,14 @@ <groupId>org.nuiton</groupId> <artifactId>nuiton-decorator</artifactId> </dependency> + <dependency> + <groupId>org.nuiton.i18n</groupId> + <artifactId>nuiton-i18n</artifactId> + </dependency> + <dependency> + <groupId>org.nuiton.jaxx</groupId> + <artifactId>jaxx-widgets-gis</artifactId> + </dependency> <!-- XWork --> <dependency> @@ -119,6 +127,23 @@ </resource> </resources> + <plugins> + + <plugin> + <groupId>org.nuiton.i18n</groupId> + <artifactId>i18n-maven-plugin</artifactId> + <executions> + <execution> + <goals> + <goal>parserJava</goal> + <goal>gen</goal> + </goals> + </execution> + </executions> + </plugin> + + + </plugins> </build> </project> diff --git a/application-swing-validators/src/main/java/fr/ird/observe/application/swing/validators/CoordinateLatitudeDtoFieldValidator.java b/application-swing-validators/src/main/java/fr/ird/observe/application/swing/validators/CoordinateLatitudeDtoFieldValidator.java new file mode 100644 index 0000000..ef879a0 --- /dev/null +++ b/application-swing-validators/src/main/java/fr/ird/observe/application/swing/validators/CoordinateLatitudeDtoFieldValidator.java @@ -0,0 +1,121 @@ +package fr.ird.observe.application.swing.validators; + +import com.opensymphony.xwork2.validator.ValidationException; +import com.opensymphony.xwork2.validator.validators.FieldValidatorSupport; +import org.apache.commons.lang3.StringUtils; +import org.nuiton.jaxx.widgets.gis.CoordinateFormat; +import org.nuiton.jaxx.widgets.gis.absolute.AbsoluteDdCoordinateEditor; +import org.nuiton.jaxx.widgets.gis.absolute.AbsoluteDdCoordinateEditorModel; +import org.nuiton.jaxx.widgets.gis.absolute.AbsoluteDmdCoordinateEditor; +import org.nuiton.jaxx.widgets.gis.absolute.AbsoluteDmdCoordinateEditorModel; +import org.nuiton.jaxx.widgets.gis.absolute.AbsoluteDmsCoordinateEditor; +import org.nuiton.jaxx.widgets.gis.absolute.AbsoluteDmsCoordinateEditorModel; +import org.nuiton.jaxx.widgets.gis.absolute.CoordinatesEditor; + +import java.util.Map; +import java.util.Objects; + +import static org.nuiton.i18n.I18n.n; + +/** + * Created on 03/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class CoordinateLatitudeDtoFieldValidator extends FieldValidatorSupport { + + private String editorName; + + public void setEditorName(String editorName) { + this.editorName = editorName; + } + + @Override + public void validate(Object object) throws ValidationException { + + if (StringUtils.isEmpty(editorName)) { + throw new ValidationException("editorName is not defined"); + } + + Map<String, CoordinatesEditor> map = (Map<String, CoordinatesEditor>) getFieldValue("coordinatesEditors", object); + CoordinatesEditor coordinatesEditor = map.get(editorName); + Objects.requireNonNull(coordinatesEditor, "can't find editor named " + editorName); + + CoordinateFormat format = coordinatesEditor.getModel().getFormat(); + switch (format) { + + case dd: + validate(coordinatesEditor.getLatitudeDd()); + break; + case dms: + validate(coordinatesEditor.getLatitudeDms()); + break; + case dmd: + validate(coordinatesEditor.getLatitudeDmd()); + break; + } + + } + + @Override + public String getValidatorType() { + return "coordinate_latitude"; + } + + private void validate(AbsoluteDdCoordinateEditor editor) { + AbsoluteDdCoordinateEditorModel model = editor.getModel(); + Integer degree = model.getDegree(); + if (degree != null) { + if (degree > 90) { + setMessageKey(n("validator.ui.coordinate.degree.latitude.outOfBound")); + addFieldError(getFieldName(), degree); + } + } + } + + private void validate(AbsoluteDmsCoordinateEditor editor) { + AbsoluteDmsCoordinateEditorModel model = editor.getModel(); + Integer degree = model.getDegree(); + if (degree != null) { + if (degree > 90) { + setMessageKey(n("validator.ui.coordinate.degree.latitude.outOfBound")); + addFieldError(getFieldName(), degree); + } + } + Integer minute = model.getMinute(); + if (minute != null) { + + if (minute > 59) { + setMessageKey(n("validator.ui.coordinate.minute.latitude.outOfBound")); + addFieldError(getFieldName(), minute); + } + } + Integer second = model.getSecond(); + if (second != null) { + if (second > 59) { + setMessageKey(n("validator.ui.coordinate.second.latitude.outOfBound")); + addFieldError(getFieldName(), second); + } + } + } + + private void validate(AbsoluteDmdCoordinateEditor editor) { + AbsoluteDmdCoordinateEditorModel model = editor.getModel(); + Integer degree = model.getDegree(); + if (degree != null) { + if (degree > 90) { + setMessageKey(n("validator.ui.coordinate.degree.latitude.outOfBound")); + addFieldError(getFieldName(), degree); + } + } + Integer minute = model.getMinute(); + if (minute != null) { + + if (minute > 59) { + setMessageKey(n("validator.ui.coordinate.minute.latitude.outOfBound")); + addFieldError(getFieldName(), minute); + } + } + } +} diff --git a/application-swing-validators/src/main/java/fr/ird/observe/application/swing/validators/CoordinateLongitudeDtoFieldValidator.java b/application-swing-validators/src/main/java/fr/ird/observe/application/swing/validators/CoordinateLongitudeDtoFieldValidator.java new file mode 100644 index 0000000..9306154 --- /dev/null +++ b/application-swing-validators/src/main/java/fr/ird/observe/application/swing/validators/CoordinateLongitudeDtoFieldValidator.java @@ -0,0 +1,123 @@ +package fr.ird.observe.application.swing.validators; + +import com.opensymphony.xwork2.validator.ValidationException; +import com.opensymphony.xwork2.validator.validators.FieldValidatorSupport; +import org.apache.commons.lang3.StringUtils; +import org.nuiton.jaxx.widgets.gis.CoordinateFormat; +import org.nuiton.jaxx.widgets.gis.absolute.AbsoluteDdCoordinateEditor; +import org.nuiton.jaxx.widgets.gis.absolute.AbsoluteDdCoordinateEditorModel; +import org.nuiton.jaxx.widgets.gis.absolute.AbsoluteDmdCoordinateEditor; +import org.nuiton.jaxx.widgets.gis.absolute.AbsoluteDmdCoordinateEditorModel; +import org.nuiton.jaxx.widgets.gis.absolute.AbsoluteDmsCoordinateEditor; +import org.nuiton.jaxx.widgets.gis.absolute.AbsoluteDmsCoordinateEditorModel; +import org.nuiton.jaxx.widgets.gis.absolute.CoordinatesEditor; + +import java.util.Map; +import java.util.Objects; + +import static org.nuiton.i18n.I18n.n; + +/** + * Created on 03/11/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 5.1 + */ +public class CoordinateLongitudeDtoFieldValidator extends FieldValidatorSupport { + + private String editorName; + + public void setEditorName(String editorName) { + this.editorName = editorName; + } + + @Override + public void validate(Object object) throws ValidationException { + + if (StringUtils.isEmpty(editorName)) { + throw new ValidationException("editorName is not defined"); + } + + Map<String, CoordinatesEditor> map = (Map<String, CoordinatesEditor>) getFieldValue("coordinatesEditors", object); + CoordinatesEditor coordinatesEditor = map.get(editorName); + Objects.requireNonNull(coordinatesEditor, "can't find editor named " + editorName); + + CoordinateFormat format = coordinatesEditor.getModel().getFormat(); + switch (format) { + + case dd: + validate(coordinatesEditor.getLongitudeDd()); + break; + case dms: + validate(coordinatesEditor.getLongitudeDms()); + break; + case dmd: + validate(coordinatesEditor.getLongitudeDmd()); + break; + } + + } + + @Override + public String getValidatorType() { + return "coordinate_longitude"; + } + + private void validate(AbsoluteDdCoordinateEditor editor) { + AbsoluteDdCoordinateEditorModel model = editor.getModel(); + Integer degree = model.getDegree(); + if (degree != null) { + if (degree > 180) { + setMessageKey(n("validator.ui.coordinate.degree.longitude.outOfBound")); + addFieldError(getFieldName(), degree); + } + } + } + + private void validate(AbsoluteDmsCoordinateEditor editor) { + AbsoluteDmsCoordinateEditorModel model = editor.getModel(); + Integer degree = model.getDegree(); + if (degree != null) { + if (degree > 180) { + setMessageKey(n("validator.ui.coordinate.degree.longitude.outOfBound")); + addFieldError(getFieldName(), degree); + } + } + Integer minute = model.getMinute(); + if (minute != null) { + + if (minute > 59) { + setMessageKey(n("validator.ui.coordinate.minute.longitude.outOfBound")); + addFieldError(getFieldName(), minute); + } + } + Integer second = model.getSecond(); + if (second != null) { + if (second > 59) { + setMessageKey(n("validator.ui.coordinate.second.longitude.outOfBound")); + addFieldError(getFieldName(), second); + } + } + } + + private void validate(AbsoluteDmdCoordinateEditor editor) { + + AbsoluteDmdCoordinateEditorModel model = editor.getModel(); + Integer degree = model.getDegree(); + if (degree != null) { + if (degree > 180) { + setMessageKey(n("validator.ui.coordinate.degree.longitude.outOfBound")); + addFieldError(getFieldName(), degree); + } + } + Integer minute = model.getMinute(); + if (minute != null) { + + if (minute > 59) { + setMessageKey(n("validator.ui.coordinate.minute.longitude.outOfBound")); + addFieldError(getFieldName(), minute); + } + } + + } +} diff --git a/application-swing-validators/src/main/resources/i18n/application-swing-validators_en_GB.properties b/application-swing-validators/src/main/resources/i18n/application-swing-validators_en_GB.properties new file mode 100644 index 0000000..6dcc3b8 --- /dev/null +++ b/application-swing-validators/src/main/resources/i18n/application-swing-validators_en_GB.properties @@ -0,0 +1,6 @@ +validator.ui.coordinate.degree.latitude.outOfBound=Degree is not valid. +validator.ui.coordinate.degree.longitude.outOfBound=Degree is not valid. +validator.ui.coordinate.minute.latitude.outOfBound=Minute is not valid. +validator.ui.coordinate.minute.longitude.outOfBound=Minute is not valid. +validator.ui.coordinate.second.latitude.outOfBound=Second is not valid. +validator.ui.coordinate.second.longitude.outOfBound=Second is not valid. diff --git a/application-swing-validators/src/main/resources/i18n/application-swing-validators_es_ES.properties b/application-swing-validators/src/main/resources/i18n/application-swing-validators_es_ES.properties new file mode 100644 index 0000000..9e7ca06 --- /dev/null +++ b/application-swing-validators/src/main/resources/i18n/application-swing-validators_es_ES.properties @@ -0,0 +1,6 @@ +validator.ui.coordinate.degree.latitude.outOfBound=Degré saisie non valide. \#TODO +validator.ui.coordinate.degree.longitude.outOfBound=Degré saisie non valide. \#TODO +validator.ui.coordinate.minute.latitude.outOfBound=Minute saisie non valide. \#TODO +validator.ui.coordinate.minute.longitude.outOfBound=Minute saisie non valide. \#TODO +validator.ui.coordinate.second.latitude.outOfBound=Seconde saisie non valide. \#TODO +validator.ui.coordinate.second.longitude.outOfBound=Seconde saisie non valide. \#TODO diff --git a/application-swing-validators/src/main/resources/i18n/application-swing-validators_fr_FR.properties b/application-swing-validators/src/main/resources/i18n/application-swing-validators_fr_FR.properties new file mode 100644 index 0000000..6737aa6 --- /dev/null +++ b/application-swing-validators/src/main/resources/i18n/application-swing-validators_fr_FR.properties @@ -0,0 +1,6 @@ +validator.ui.coordinate.degree.latitude.outOfBound=Degré saisie non valide. +validator.ui.coordinate.degree.longitude.outOfBound=Degré saisie non valide. +validator.ui.coordinate.minute.latitude.outOfBound=Minute saisie non valide. +validator.ui.coordinate.minute.longitude.outOfBound=Minute saisie non valide. +validator.ui.coordinate.second.latitude.outOfBound=Seconde saisie non valide. +validator.ui.coordinate.second.longitude.outOfBound=Seconde saisie non valide. diff --git a/application-web-configuration/src/main/resources/validators.xml b/application-web-configuration/src/main/resources/validators.xml index 367fc0c..99d4879 100644 --- a/application-web-configuration/src/main/resources/validators.xml +++ b/application-web-configuration/src/main/resources/validators.xml @@ -75,5 +75,7 @@ <validator name="setLonglineUniqueHomeIdDto" class="fr.ird.observe.application.swing.validators.SetLonglineUniqueHomeIdDtoValidator"/> <validator name="setLonglineUniqueNumberDto" class="fr.ird.observe.application.swing.validators.SetLonglineUniqueNumberDtoValidator"/> <validator name="quadrantDto" class="fr.ird.observe.application.swing.validators.QuadrantFieldDtoValidator"/> + <validator name="coordinateLatitudeDto" class="fr.ird.observe.application.swing.validators.CoordinateLatitudeDtoFieldValidator"/> + <validator name="coordinateLongitudeDto" class="fr.ird.observe.application.swing.validators.CoordinateLongitudeDtoFieldValidator"/> </validators> -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.