This is an automated email from the git hooks/post-receive script. New commit to branch feature/7595_le_quadrant_coordonnees_est_obligatire in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit 1da5e6b5d9cbcb0274f90b9004f23629a16c7ce8 Author: Samuel Maisonneuve <maisonneuve@codelutin.com> Date: Thu Jul 21 15:17:25 2016 +0200 Restore quadrant validation controls when creating activities refs #7595 --- .../ird/observe/ui/content/ContentUIHandler.java | 2 +- .../open/impl/longline/ActivityLonglineUI.jaxx | 1 + .../open/impl/longline/ActivityLonglineUI.jcss | 1 + .../impl/longline/ActivityLonglineUIHandler.java | 15 ++++++-- .../content/open/impl/seine/ActivitySeineUI.jaxx | 1 + .../content/open/impl/seine/ActivitySeineUI.jcss | 1 + .../open/impl/seine/ActivitySeineUIHandler.java | 13 +++++-- ...ivityLonglineDto-n1-create-error-validation.xml | 37 ++++++++++++-------- ...ivityLonglineDto-n1-update-error-validation.xml | 37 ++++++++++++-------- ...ActivitySeineDto-n1-create-error-validation.xml | 38 +++++++++++++-------- ...ActivitySeineDto-n1-update-error-validation.xml | 38 +++++++++++++-------- .../main/xmi/observe-services-dto-longline.zargo | Bin 67304 -> 67309 bytes .../src/main/xmi/observe-services-dto-seine.zargo | Bin 59464 -> 59520 bytes .../binder/data/ActivityLonglineBinder.java | 2 ++ .../services/binder/data/ActivitySeineBinder.java | 2 ++ 15 files changed, 126 insertions(+), 62 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIHandler.java index d8792f0..37b7486 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIHandler.java @@ -806,6 +806,7 @@ public abstract class ContentUIHandler<E extends IdDto> { protected void resetQuadrant(CoordinatesEditor editor) { editor.setQuadrant(null); + JAXXButtonGroup quadrantBG = editor.getQuadrantBG(); quadrantBG.setSelectedValue(null); @@ -825,7 +826,6 @@ public abstract class ContentUIHandler<E extends IdDto> { quadrantBG.add(editor.getQuadrant2()); quadrantBG.add(editor.getQuadrant3()); quadrantBG.add(editor.getQuadrant4()); - } /** diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/ActivityLonglineUI.jaxx b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/ActivityLonglineUI.jaxx index 037daa5..901d702 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/ActivityLonglineUI.jaxx +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/ActivityLonglineUI.jaxx @@ -66,6 +66,7 @@ <field name='longitude' component='coordinatesEditor'/> <field name='latitude' component='coordinatesEditor'/> + <field name='quadrant' component='coordinatesEditor'/> </BeanValidator> diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/ActivityLonglineUI.jcss b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/ActivityLonglineUI.jcss index 086e87f..b961c99 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/ActivityLonglineUI.jcss +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/ActivityLonglineUI.jcss @@ -37,6 +37,7 @@ #coordinatesEditor { propertyLatitude:{ActivityLonglineDto.PROPERTY_LATITUDE}; propertyLongitude:{ActivityLonglineDto.PROPERTY_LONGITUDE}; + propertyQuadrant:{ActivityLonglineDto.PROPERTY_QUADRANT}; } #vesselActivityLonglineLabel { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/ActivityLonglineUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/ActivityLonglineUIHandler.java index 9ee7bae..c4aba45 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/ActivityLonglineUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/ActivityLonglineUIHandler.java @@ -154,8 +154,6 @@ public class ActivityLonglineUIHandler extends ContentOpenableUIHandler<Activity getUi().getCoordinatesEditor().resetModel(); - resetQuadrant(getUi().getCoordinatesEditor()); - String tripId = getSelectedParentId(); String activityId = getSelectedId(); @@ -198,8 +196,21 @@ public class ActivityLonglineUIHandler extends ContentOpenableUIHandler<Activity } finalizeOpenUI(mode, create); + // Mise à jour du composant de coordonnées + // 1. Mise à jour latitude/longitude: getUi().getCoordinatesEditor().setLatitudeAndLongitude(bean.getLatitude(), bean.getLongitude()); + // 2. Mise à jour du quadrant : + // Si le bean de données contient un quadrant, on met simplement à jour le composant de coordonnées pour sélectionner le quadrant voulu + // sinon, on réinitialise les quadrants du composant afin qu'aucun d'eux ne soit sélectionné (par exemple dans le cas de la création de la première activité d'une marée) + if (bean.getQuadrant() != null) { + getUi().getCoordinatesEditor().setQuadrant(bean.getQuadrant()); + } else { + resetQuadrant(getUi().getCoordinatesEditor()); + } + + getUi().getCoordinatesEditor().setQuadrant(bean.getQuadrant()); + // on annule la modification engendree par ce binding getModel().setModified(create); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/ActivitySeineUI.jaxx b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/ActivitySeineUI.jaxx index f8c086c..f3ac5f3 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/ActivitySeineUI.jaxx +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/ActivitySeineUI.jaxx @@ -75,6 +75,7 @@ <field name='observedSystemDistance' component='{actionDown}'/> <field name='longitude' component='coordinatesEditor'/> <field name='latitude' component='coordinatesEditor'/> + <field name='quadrant' component='coordinatesEditor'/> <field name='floatingObjectEmpty' component='addDCP'/> </BeanValidator> diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/ActivitySeineUI.jcss b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/ActivitySeineUI.jcss index 7f7e66a..6831d50 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/ActivitySeineUI.jcss +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/ActivitySeineUI.jcss @@ -42,6 +42,7 @@ #coordinatesEditor { propertyLatitude:{ActivitySeineDto.PROPERTY_LATITUDE}; propertyLongitude:{ActivitySeineDto.PROPERTY_LONGITUDE}; + propertyQuadrant:{ActivitySeineDto.PROPERTY_QUADRANT}; } #generalTab { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/ActivitySeineUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/ActivitySeineUIHandler.java index f18f0ba..cbcdceb 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/ActivitySeineUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/ActivitySeineUIHandler.java @@ -180,8 +180,6 @@ public class ActivitySeineUIHandler extends ContentOpenableUIHandler<ActivitySei getUi().getCoordinatesEditor().resetModel(); - resetQuadrant(getUi().getCoordinatesEditor()); - String routeId = getSelectedParentId(); String activityId = getSelectedId(); @@ -227,8 +225,19 @@ public class ActivitySeineUIHandler extends ContentOpenableUIHandler<ActivitySei finalizeOpenUI(mode, create); + // Mise à jour du composant de coordonnées + // 1. Mise à jour latitude/longitude: getUi().getCoordinatesEditor().setLatitudeAndLongitude(bean.getLatitude(), bean.getLongitude()); + // 2. Mise à jour du quadrant : + // Si le bean de données contient un quadrant, on met simplement à jour le composant de coordonnées pour sélectionner le quadrant voulu + // sinon, on réinitialise les quadrants du composant afin qu'aucun d'eux ne soit sélectionné (par exemple dans le cas de la création de la première activité d'une route) + if (bean.getQuadrant() != null) { + getUi().getCoordinatesEditor().setQuadrant(bean.getQuadrant()); + } else { + resetQuadrant(getUi().getCoordinatesEditor()); + } + // on annule la modification engendree par ce binding getModel().setModified(create); } diff --git a/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/longline/ActivityLonglineDto-n1-create-error-validation.xml b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/longline/ActivityLonglineDto-n1-create-error-validation.xml index 7d14dcf..d3f6fa3 100644 --- a/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/longline/ActivityLonglineDto-n1-create-error-validation.xml +++ b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/longline/ActivityLonglineDto-n1-create-error-validation.xml @@ -91,6 +91,29 @@ </field> + <field name="quadrant"> + + <!-- quadrant obligatoire (http://forge.codelutin.com/issues/840) --> + <field-validator type="required" short-circuit="true"> + <message>validator.activity.required.quadrant</message> + </field-validator> + + <!-- coherence quadrant par rapport a l'ocean de la maree --> + <field-validator type="fieldexpression" short-circuit="true"> + <param name="expression"><![CDATA[ + currentTripLongline.ocean == null || quadrant == null || quadrant == 0 + || (currentTripLongline.ocean.getPropertyValue("code") == 3) + || (currentTripLongline.ocean.getPropertyValue("code") == 1 && ( quadrant == 1 || quadrant == 2 || quadrant == 3 || quadrant == 4)) + || (currentTripLongline.ocean.getPropertyValue("code") == 2 && ( quadrant == 1 || quadrant == 2)) + ]]> + </param> + <message> + validator.activity.invalid.quadrant##${currentTripLongline.ocean.getPropertyValue("label")} + </message> + </field-validator> + + </field> + <field name="latitude"> <!-- latitude obligatoire --> @@ -125,20 +148,6 @@ </message> </field-validator> - <!-- coherence quadrant par rapport a l'ocean de la maree --> - <field-validator type="fieldexpression" short-circuit="true"> - <param name="expression"><![CDATA[ - currentTripLongline.ocean == null || longitude == null || latitude == null - || (currentTripLongline.ocean.getPropertyValue("code") == 3) - || (currentTripLongline.ocean.getPropertyValue("code") == 1) - || (currentTripLongline.ocean.getPropertyValue("code") == 2 && ( longitude >= 0)) - ]]> - </param> - <message> - validator.activity.invalid.quadrant##${currentTripSeine.ocean.getPropertyValue("label")} - </message> - </field-validator> - </field> <field name="comment"> diff --git a/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/longline/ActivityLonglineDto-n1-update-error-validation.xml b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/longline/ActivityLonglineDto-n1-update-error-validation.xml index dc1689b..04fbb56 100644 --- a/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/longline/ActivityLonglineDto-n1-update-error-validation.xml +++ b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/longline/ActivityLonglineDto-n1-update-error-validation.xml @@ -76,6 +76,29 @@ </field> + <field name="quadrant"> + + <!-- quadrant obligatoire (http://forge.codelutin.com/issues/840) --> + <field-validator type="required" short-circuit="true"> + <message>validator.activity.required.quadrant</message> + </field-validator> + + <!-- coherence quadrant par rapport a l'ocean de la maree --> + <field-validator type="fieldexpression" short-circuit="true"> + <param name="expression"><![CDATA[ + currentTripLongline.ocean == null || quadrant == null || quadrant == 0 + || (currentTripLongline.ocean.getPropertyValue("code") == 3) + || (currentTripLongline.ocean.getPropertyValue("code") == 1 && ( quadrant == 1 || quadrant == 2 || quadrant == 3 || quadrant == 4)) + || (currentTripLongline.ocean.getPropertyValue("code") == 2 && ( quadrant == 1 || quadrant == 2)) + ]]> + </param> + <message> + validator.activity.invalid.quadrant##${currentTripLongline.ocean.getPropertyValue("label")} + </message> + </field-validator> + + </field> + <field name="latitude"> <!-- latitude obligatoire --> @@ -110,20 +133,6 @@ </message> </field-validator> - <!-- coherence quadrant par rapport a l'ocean de la maree --> - <field-validator type="fieldexpression" short-circuit="true"> - <param name="expression"><![CDATA[ - currentTripLongline.ocean == null || longitude == null || latitude == null - || (currentTripLongline.ocean.getPropertyValue("code") == 3) - || (currentTripLongline.ocean.getPropertyValue("code") == 1) - || (currentTripLongline.ocean.getPropertyValue("code") == 2 && ( longitude >= 0)) - ]]> - </param> - <message> - validator.activity.invalid.quadrant##${currentTripSeine.ocean.getPropertyValue("label")} - </message> - </field-validator> - </field> <field name="comment"> diff --git a/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/ActivitySeineDto-n1-create-error-validation.xml b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/ActivitySeineDto-n1-create-error-validation.xml index b3f42c6..8e1907b 100644 --- a/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/ActivitySeineDto-n1-create-error-validation.xml +++ b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/ActivitySeineDto-n1-create-error-validation.xml @@ -163,6 +163,30 @@ </field> + + <field name="quadrant"> + + <!-- quadrant obligatoire (http://forge.codelutin.com/issues/840) --> + <field-validator type="required" short-circuit="true"> + <message>validator.activity.required.quadrant</message> + </field-validator> + + <!-- coherence quadrant par rapport a l'ocean de la maree --> + <field-validator type="fieldexpression" short-circuit="true"> + <param name="expression"><![CDATA[ + currentTripSeine.ocean == null || quadrant == null || quadrant == 0 + || (currentTripSeine.ocean.getPropertyValue("code") == 3) + || (currentTripSeine.ocean.getPropertyValue("code") == 1 && ( quadrant == 1 || quadrant == 2 || quadrant == 3 || quadrant == 4)) + || (currentTripSeine.ocean.getPropertyValue("code") == 2 && ( quadrant == 1 || quadrant == 2)) + ]]> + </param> + <message> + validator.activity.invalid.quadrant##${currentTripSeine.ocean.libelle} + </message> + </field-validator> + + </field> + <field name="latitude"> <!-- latitude obligatoire --> @@ -197,20 +221,6 @@ </message> </field-validator> - <!-- coherence quadrant par rapport a l'ocean de la maree --> - <field-validator type="fieldexpression" short-circuit="true"> - <param name="expression"><![CDATA[ - currentTripSeine.ocean == null || longitude == null || latitude == null - || (currentTripSeine.ocean.getPropertyValue("code") == 3) - || (currentTripSeine.ocean.getPropertyValue("code") == 1) - || (currentTripSeine.ocean.getPropertyValue("code") == 2 && ( longitude >= 0)) - ]]> - </param> - <message> - validator.activity.invalid.quadrant##${currentTripSeine.ocean.getPropertyValue("label")} - </message> - </field-validator> - </field> <field name="vesselSpeed"> diff --git a/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/ActivitySeineDto-n1-update-error-validation.xml b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/ActivitySeineDto-n1-update-error-validation.xml index 7436c4d..17b3931 100644 --- a/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/ActivitySeineDto-n1-update-error-validation.xml +++ b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/ActivitySeineDto-n1-update-error-validation.xml @@ -26,6 +26,29 @@ "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd"> <validators> + <field name="quadrant"> + + <!-- quadrant obligatoire (http://forge.codelutin.com/issues/840) --> + <field-validator type="required" short-circuit="true"> + <message>validator.activity.required.quadrant</message> + </field-validator> + + <!-- coherence quadrant par rapport a l'ocean de la maree --> + <field-validator type="fieldexpression" short-circuit="true"> + <param name="expression"><![CDATA[ + currentTripSeine.ocean == null || quadrant == null || quadrant == 0 + || (currentTripSeine.ocean.getPropertyValue("code") == 3) + || (currentTripSeine.ocean.getPropertyValue("code") == 1 && ( quadrant == 1 || quadrant == 2 || quadrant == 3 || quadrant == 4)) + || (currentTripSeine.ocean.getPropertyValue("code") == 2 && ( quadrant == 1 || quadrant == 2)) + ]]> + </param> + <message> + validator.activity.invalid.quadrant##${currentTripSeine.ocean.libelle} + </message> + </field-validator> + + </field> + <field name="latitude"> <!-- latitude obligatoire --> @@ -60,21 +83,6 @@ </message> </field-validator> - <!-- coherence quadrant par rapport a l'ocean de la maree --> - <field-validator type="fieldexpression" short-circuit="true"> - <param name="expression"><![CDATA[ - currentTripSeine.ocean == null || longitude == null || latitude == null - || (currentTripSeine.ocean.getPropertyValue("code") == 3) - || (currentTripSeine.ocean.getPropertyValue("code") == 1) - || (currentTripSeine.ocean.getPropertyValue("code") == 2 && ( longitude >= 0)) - ]]> - </param> - <message> - validator.activity.invalid.quadrant##${currentTripSeine.ocean.getPropertyValue("label")} - </message> - </field-validator> - - </field> <field name="time"> diff --git a/observe-services-model/src/main/xmi/observe-services-dto-longline.zargo b/observe-services-model/src/main/xmi/observe-services-dto-longline.zargo index 47fbcb5..39d3e71 100644 Binary files a/observe-services-model/src/main/xmi/observe-services-dto-longline.zargo and b/observe-services-model/src/main/xmi/observe-services-dto-longline.zargo differ diff --git a/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo b/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo index 779c220..cc6e08c 100644 Binary files a/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo and b/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo differ diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/binder/data/ActivityLonglineBinder.java b/observe-services-topia/src/main/java/fr/ird/observe/services/binder/data/ActivityLonglineBinder.java index 24e02d1..56df311 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/binder/data/ActivityLonglineBinder.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/binder/data/ActivityLonglineBinder.java @@ -51,6 +51,7 @@ public class ActivityLonglineBinder extends DataBinderSupport<ActivityLongline, entity.setTimeStamp(dto.getTimeStamp()); entity.setLatitude(dto.getLatitude()); entity.setLongitude(dto.getLongitude()); + entity.setQuadrant(dto.getQuadrant()); entity.setSeaSurfaceTemperature(dto.getSeaSurfaceTemperature()); entity.setVesselActivityLongline(toEntity(dto.getVesselActivityLongline(), VesselActivityLongline.class)); entity.setFpaZone(toEntity(dto.getFpaZone(), FpaZone.class)); @@ -65,6 +66,7 @@ public class ActivityLonglineBinder extends DataBinderSupport<ActivityLongline, dto.setTimeStamp(entity.getTimeStamp()); dto.setLatitude(entity.getLatitude()); dto.setLongitude(entity.getLongitude()); + dto.setQuadrant(entity.getQuadrant()); dto.setSeaSurfaceTemperature(entity.getSeaSurfaceTemperature()); dto.setVesselActivityLongline(toReferentialReference(referentialLocale, entity.getVesselActivityLongline(), VesselActivityLonglineDto.class)); dto.setFpaZone(toReferentialReference(referentialLocale, entity.getFpaZone(), FpaZoneDto.class)); diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/binder/data/ActivitySeineBinder.java b/observe-services-topia/src/main/java/fr/ird/observe/services/binder/data/ActivitySeineBinder.java index 670dacc..3c2ccc1 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/binder/data/ActivitySeineBinder.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/binder/data/ActivitySeineBinder.java @@ -57,6 +57,7 @@ public class ActivitySeineBinder extends DataBinderSupport<ActivitySeine, Activi copyDtoDataFieldsToEntity(dto, entity); entity.setTime(dto.getTime()); + entity.setQuadrant(dto.getQuadrant()); entity.setLatitude(dto.getLatitude()); entity.setLongitude(dto.getLongitude()); entity.setVesselSpeed(dto.getVesselSpeed()); @@ -83,6 +84,7 @@ public class ActivitySeineBinder extends DataBinderSupport<ActivitySeine, Activi dto.setTime(entity.getTime()); dto.setLatitude(entity.getLatitude()); dto.setLongitude(entity.getLongitude()); + dto.setQuadrant(entity.getQuadrant()); dto.setVesselSpeed(entity.getVesselSpeed()); dto.setSeaSurfaceTemperature(entity.getSeaSurfaceTemperature()); dto.setObservedSystemDistance(entity.getObservedSystemDistance()); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.