Author: tchemit Date: 2013-01-08 11:12:05 +0100 (Tue, 08 Jan 2013) New Revision: 158 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/158 Log: refs #1908: [CONSOLIDATION] Mise en place des deux contextes de validation (pour les captures) - les deux scopes fonctionnent bien - ajout d'un test pour v?\195?\169rifier que les validateurs sont bien d?\195?\169tect?\195?\169s et valides (attention ?\195?\160 bien modifier le test lors de l'ajout ou suppression de validateurs) Added: trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-edit-error-validation.xml trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-edit-warning-validation.xml trunk/tutti-ui-swing/src/test/java/fr/ifremer/tutti/ui/swing/BeanValidatorDetectorTest.java Removed: trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-error-validation.xml trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-warning-validation.xml Modified: trunk/tutti-ui-swing/pom.xml trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-validate-error-validation.xml trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-validate-warning-validation.xml trunk/tutti-ui-swing/src/main/resources/icons/action-validate.png Modified: trunk/tutti-ui-swing/pom.xml =================================================================== --- trunk/tutti-ui-swing/pom.xml 2013-01-08 09:28:42 UTC (rev 157) +++ trunk/tutti-ui-swing/pom.xml 2013-01-08 10:12:05 UTC (rev 158) @@ -282,6 +282,13 @@ <artifactId>nuiton-validator</artifactId> </dependency> + <dependency> + <groupId>org.nuiton</groupId> + <artifactId>nuiton-validator</artifactId> + <scope>test</scope> + <classifier>tests</classifier> + </dependency> + <!-- librairie Jaxx --> <dependency> <groupId>org.nuiton.jaxx</groupId> Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiUIHandler.java 2013-01-08 09:28:42 UTC (rev 157) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiUIHandler.java 2013-01-08 10:12:05 UTC (rev 158) @@ -40,6 +40,7 @@ import jaxx.runtime.swing.editor.bean.BeanComboBox; import jaxx.runtime.swing.editor.bean.BeanDoubleList; import jaxx.runtime.swing.renderer.DecoratorListCellRenderer; +import jaxx.runtime.validator.swing.SwingValidator; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -407,4 +408,11 @@ protected void closeUI(TuttiUI ui) { ui.getHandler().onCloseUI(); } + + protected <B> void changeValidatorContext(String newContext, + SwingValidator<B> validator) { + B bean = validator.getBean(); + validator.setContext(newContext); + validator.setBean(bean); + } } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx 2013-01-08 09:28:42 UTC (rev 157) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx 2013-01-08 10:12:05 UTC (rev 158) @@ -75,8 +75,7 @@ <SwingValidatorMessageTableModel id='errorTableModel'/> - <BeanValidator id='validator' - bean='model' + <BeanValidator id='validator' context='validate' bean='model' errorTableModel='errorTableModel' uiClass='jaxx.runtime.validator.swing.ui.ImageValidationUI'> <field name='stationNumber' component='stationNumberField'/> Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-01-08 09:28:42 UTC (rev 157) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-01-08 10:12:05 UTC (rev 158) @@ -40,6 +40,7 @@ import fr.ifremer.tutti.ui.swing.content.operation.fishing.hydrology.HydrologyTabUIModel; import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor; import jaxx.runtime.swing.editor.bean.BeanDoubleListModel; +import jaxx.runtime.validator.swing.SwingValidator; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; @@ -245,11 +246,9 @@ model.setEmpty(true); - //FIXME-tchemit Use this when jaxx-validator will works again :( - //ui.getValidator().setContext(getModel().getValidationContext()); + changeValidatorContext(model.getValidationContext(), ui.getValidator()); + listenValidatorValid(ui.getValidator(), model); - listenValidatorValid(ui.getValidator(), getModel()); - //init gear shooting GearShootingTabUIModel gearShootingModel = ui.getGearShootingTabContent().getModel(); Copied: trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-edit-error-validation.xml (from rev 157, trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-error-validation.xml) =================================================================== --- trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-edit-error-validation.xml (rev 0) +++ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-edit-error-validation.xml 2013-01-08 10:12:05 UTC (rev 158) @@ -0,0 +1,57 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + #%L + Tutti :: UI + $Id$ + $HeadURL$ + %% + Copyright (C) 2012 Ifremer + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public + License along with this program. If not, see + <http://www.gnu.org/licenses/gpl-3.0.html>. + #L% + --> +<!DOCTYPE validators PUBLIC + "-//Apache Struts//XWork Validator 1.0.3//EN" + "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd"> +<validators> + + <field name="stationNumber"> + + <field-validator type="required" short-circuit="true"> + <message> + tutti.validator.error.fishingOperation.stationNumber.required + </message> + </field-validator> + + </field> + + <field name="fishingOperationNumber"> + + <field-validator type="required" short-circuit="true"> + <message> + tutti.validator.error.fishingOperation.fishingOperationNumber.required + </message> + </field-validator> + + </field> + + <field name="date"> + + <field-validator type="required" short-circuit="true"> + <message>tutti.validator.error.fishingOperation.date.required</message> + </field-validator> + + </field> +</validators> Copied: trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-edit-warning-validation.xml (from rev 157, trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-warning-validation.xml) =================================================================== --- trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-edit-warning-validation.xml (rev 0) +++ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-edit-warning-validation.xml 2013-01-08 10:12:05 UTC (rev 158) @@ -0,0 +1,322 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + #%L + Tutti :: UI + $Id$ + $HeadURL$ + %% + Copyright (C) 2012 - 2013 Ifremer + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public + License along with this program. If not, see + <http://www.gnu.org/licenses/gpl-3.0.html>. + #L% + --> + + +<!DOCTYPE validators PUBLIC + "-//Apache Struts//XWork Validator 1.0.3//EN" + "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd"> + +<validators> + + <!--gear shooting start latitude validation --> + + <field name="gearShootingStartLatitude"> + + <field-validator type="fieldexpressionwithparams"> + <param name="doubleParams">min:90.0|max:90.0</param> + <param name="expression"> + <![CDATA[ + useSexagecimalFormat || ( -doubles.min <= gearShootingStartLatitude && gearShootingStartLatitude <= doubles.max ) + ]]> + </param> + + <message></message> + + </field-validator> + + </field> + + <field name="gearShootingStartLatitudeDegree"> + + <field-validator type="fieldexpressionwithparams"> + <param name="intParams">min:90|max:90</param> + <param name="expression"> + <![CDATA[ + useSexagecimalFormat && ( + ( -ints.min < getGearShootingStartLatitudeDegree() && getGearShootingStartLatitudeDegree() < ints.max ) + || ( + ( getGearShootingStartLatitudeDegree() == ints.max || getGearShootingStartLatitudeDegree() == -ints.min ) + && getGearShootingStartLatitudeMinute() == 0 && getGearShootingStartLatitudeSecond() == 0 + ) + ) + ]]> + </param> + + <message></message> + + </field-validator> + + </field> + + <field name="gearShootingStartLatitudeMinute"> + + <field-validator type="fieldexpressionwithparams"> + <param name="intParams">min:0|max:60</param> + <param name="expression"> + <![CDATA[ + useSexagecimalFormat && ints.min <= getGearShootingStartLatitudeMinute() && getGearShootingStartLatitudeMinute() < ints.max + ]]> + </param> + + <message></message> + + </field-validator> + + </field> + + <field name="gearShootingStartLatitudeSecond"> + + <field-validator type="fieldexpressionwithparams"> + <param name="intParams">min:0|max:60</param> + <param name="expression"> + <![CDATA[ + useSexagecimalFormat && ints.min <= getGearShootingStartLatitudeSecond() && getGearShootingStartLatitudeSecond() < ints.max + ]]> + </param> + + <message></message> + + </field-validator> + + </field> + + <!--gear shooting start longitude validation --> + + <field name="gearShootingStartLongitude"> + + <field-validator type="fieldexpressionwithparams"> + <param name="doubleParams">min:180.0|max:180.0</param> + <param name="expression"> + <![CDATA[ + useSexagecimalFormat || ( -doubles.min <= gearShootingStartLongitude && gearShootingStartLongitude <= doubles.max ) + ]]> + </param> + + <message></message> + + </field-validator> + + </field> + + <field name="gearShootingStartLongitudeDegree"> + + <field-validator type="fieldexpressionwithparams"> + <param name="intParams">min:180|max:180</param> + <param name="expression"> + <![CDATA[ + useSexagecimalFormat && ( + (-ints.min < getGearShootingStartLongitudeDegree() && getGearShootingStartLongitudeDegree() < ints.max) + || ( + ( getGearShootingStartLongitudeDegree() == ints.max || getGearShootingStartLongitudeDegree() == -ints.min ) + && getGearShootingStartLongitudeMinute() == 0 && getGearShootingStartLongitudeSecond() == 0 + ) + ) + ]]> + </param> + + <message></message> + + </field-validator> + + </field> + + <field name="gearShootingStartLongitudeMinute"> + + <field-validator type="fieldexpressionwithparams"> + <param name="intParams">min:0|max:60</param> + <param name="expression"> + <![CDATA[ + useSexagecimalFormat && ints.min <= getGearShootingStartLongitudeMinute() && getGearShootingStartLongitudeMinute() < ints.max + ]]> + </param> + + <message></message> + + </field-validator> + + </field> + + <field name="gearShootingStartLongitudeSecond"> + + <field-validator type="fieldexpressionwithparams"> + <param name="intParams">min:0|max:60</param> + <param name="expression"> + <![CDATA[ + useSexagecimalFormat && ints.min <= getGearShootingStartLongitudeSecond() && getGearShootingStartLongitudeSecond() < ints.max + ]]> + </param> + + <message></message> + + </field-validator> + + </field> + + <!--gear shooting end latitude validation --> + + <field name="gearShootingEndLatitude"> + + <field-validator type="fieldexpressionwithparams"> + <param name="doubleParams">min:90.0|max:90.0</param> + <param name="expression"> + <![CDATA[ + useSexagecimalFormat || ( -doubles.min <= gearShootingEndLatitude && gearShootingEndLatitude <= doubles.max ) + ]]> + </param> + + <message></message> + + </field-validator> + + </field> + + + <field name="gearShootingEndLatitudeDegree"> + + <field-validator type="fieldexpressionwithparams"> + <param name="intParams">min:90|max:90</param> + <param name="expression"> + <![CDATA[ + useSexagecimalFormat && ( + (-ints.min < getGearShootingEndLatitudeDegree() && getGearShootingEndLatitudeDegree() < ints.max) + || ( + ( getGearShootingEndLatitudeDegree() == ints.max || getGearShootingEndLatitudeDegree() == -ints.min ) + && getGearShootingEndLatitudeMinute() == 0 && getGearShootingEndLatitudeSecond() == 0 + ) + ) + ]]> + </param> + + <message></message> + + </field-validator> + + </field> + + <field name="gearShootingEndLatitudeMinute"> + + <field-validator type="fieldexpressionwithparams"> + <param name="intParams">min:0|max:60</param> + <param name="expression"> + <![CDATA[ + useSexagecimalFormat && ints.min <= getGearShootingEndLatitudeMinute() && getGearShootingEndLatitudeMinute() < ints.max + ]]> + </param> + + <message></message> + + </field-validator> + + </field> + + <field name="gearShootingEndLatitudeSecond"> + + <field-validator type="fieldexpressionwithparams"> + <param name="intParams">min:0|max:60</param> + <param name="expression"> + <![CDATA[ + useSexagecimalFormat && ints.min <= getGearShootingEndLatitudeSecond() && getGearShootingEndLatitudeSecond() < ints.max + ]]> + </param> + + <message></message> + + </field-validator> + + </field> + + <!--gear shooting end longitude validation --> + + <field name="gearShootingEndLongitude"> + + <field-validator type="fieldexpressionwithparams"> + <param name="doubleParams">min:180.0|max:180.0</param> + <param name="expression"> + <![CDATA[ + useSexagecimalFormat || ( -doubles.min <= gearShootingEndLongitude && gearShootingEndLongitude <= doubles.max ) + ]]> + </param> + + <message></message> + + </field-validator> + + </field> + + <field name="gearShootingEndLongitudeDegree"> + + <field-validator type="fieldexpressionwithparams"> + <param name="intParams">min:180|max:180</param> + <param name="expression"> + <![CDATA[ + useSexagecimalFormat && ( + (-ints.min < getGearShootingEndLongitudeDegree() && getGearShootingEndLongitudeDegree() < ints.max) + || ( + ( getGearShootingEndLongitudeDegree() == ints.max || getGearShootingEndLongitudeDegree() == -ints.min ) + && getGearShootingEndLongitudeMinute() == 0 && getGearShootingEndLongitudeSecond() == 0 + ) + ) + ]]> + </param> + + <message></message> + + </field-validator> + + </field> + + <field name="gearShootingEndLongitudeMinute"> + + <field-validator type="fieldexpressionwithparams"> + <param name="intParams">min:0|max:60</param> + <param name="expression"> + <![CDATA[ + useSexagecimalFormat && ints.min <= getGearShootingEndLongitudeMinute() && getGearShootingEndLongitudeMinute() < ints.max + ]]> + </param> + + <message></message> + + </field-validator> + + </field> + + <field name="gearShootingEndLongitudeSecond"> + + <field-validator type="fieldexpressionwithparams"> + <param name="intParams">min:0|max:60</param> + <param name="expression"> + <![CDATA[ + useSexagecimalFormat && ints.min <= getGearShootingEndLongitudeSecond() && getGearShootingEndLongitudeSecond() < ints.max + ]]> + </param> + + <message></message> + + </field-validator> + + </field> + +</validators> Deleted: trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-error-validation.xml =================================================================== --- trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-error-validation.xml 2013-01-08 09:28:42 UTC (rev 157) +++ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-error-validation.xml 2013-01-08 10:12:05 UTC (rev 158) @@ -1,57 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - #%L - Tutti :: UI - $Id$ - $HeadURL$ - %% - Copyright (C) 2012 Ifremer - %% - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as - published by the Free Software Foundation, either version 3 of the - License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public - License along with this program. If not, see - <http://www.gnu.org/licenses/gpl-3.0.html>. - #L% - --> -<!DOCTYPE validators PUBLIC - "-//Apache Struts//XWork Validator 1.0.3//EN" - "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd"> -<validators> - - <field name="stationNumber"> - - <field-validator type="required" short-circuit="true"> - <message> - tutti.validator.error.fishingOperation.stationNumber.required - </message> - </field-validator> - - </field> - - <field name="fishingOperationNumber"> - - <field-validator type="required" short-circuit="true"> - <message> - tutti.validator.error.fishingOperation.fishingOperationNumber.required - </message> - </field-validator> - - </field> - - <field name="date"> - - <field-validator type="required" short-circuit="true"> - <message>tutti.validator.error.fishingOperation.date.required</message> - </field-validator> - - </field> -</validators> Modified: trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-validate-error-validation.xml =================================================================== --- trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-validate-error-validation.xml 2013-01-08 09:28:42 UTC (rev 157) +++ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-validate-error-validation.xml 2013-01-08 10:12:05 UTC (rev 158) @@ -54,4 +54,295 @@ </field-validator> </field> + + <!--gear shooting start latitude validation --> + + <field name="gearShootingStartLatitude"> + + <field-validator type="fieldexpressionwithparams"> + <param name="doubleParams">min:90.0|max:90.0</param> + <param name="expression"> + <![CDATA[ + useSexagecimalFormat || ( -doubles.min <= gearShootingStartLatitude && gearShootingStartLatitude <= doubles.max ) + ]]> + </param> + + <message></message> + + </field-validator> + + </field> + + <field name="gearShootingStartLatitudeDegree"> + + <field-validator type="fieldexpressionwithparams"> + <param name="intParams">min:90|max:90</param> + <param name="expression"> + <![CDATA[ + useSexagecimalFormat && ( + ( -ints.min < getGearShootingStartLatitudeDegree() && getGearShootingStartLatitudeDegree() < ints.max ) + || ( + ( getGearShootingStartLatitudeDegree() == ints.max || getGearShootingStartLatitudeDegree() == -ints.min ) + && getGearShootingStartLatitudeMinute() == 0 && getGearShootingStartLatitudeSecond() == 0 + ) + ) + ]]> + </param> + + <message></message> + + </field-validator> + + </field> + + <field name="gearShootingStartLatitudeMinute"> + + <field-validator type="fieldexpressionwithparams"> + <param name="intParams">min:0|max:60</param> + <param name="expression"> + <![CDATA[ + useSexagecimalFormat && ints.min <= getGearShootingStartLatitudeMinute() && getGearShootingStartLatitudeMinute() < ints.max + ]]> + </param> + + <message></message> + + </field-validator> + + </field> + + <field name="gearShootingStartLatitudeSecond"> + + <field-validator type="fieldexpressionwithparams"> + <param name="intParams">min:0|max:60</param> + <param name="expression"> + <![CDATA[ + useSexagecimalFormat && ints.min <= getGearShootingStartLatitudeSecond() && getGearShootingStartLatitudeSecond() < ints.max + ]]> + </param> + + <message></message> + + </field-validator> + + </field> + + <!--gear shooting start longitude validation --> + + <field name="gearShootingStartLongitude"> + + <field-validator type="fieldexpressionwithparams"> + <param name="doubleParams">min:180.0|max:180.0</param> + <param name="expression"> + <![CDATA[ + useSexagecimalFormat || ( -doubles.min <= gearShootingStartLongitude && gearShootingStartLongitude <= doubles.max ) + ]]> + </param> + + <message></message> + + </field-validator> + + </field> + + <field name="gearShootingStartLongitudeDegree"> + + <field-validator type="fieldexpressionwithparams"> + <param name="intParams">min:180|max:180</param> + <param name="expression"> + <![CDATA[ + useSexagecimalFormat && ( + (-ints.min < getGearShootingStartLongitudeDegree() && getGearShootingStartLongitudeDegree() < ints.max) + || ( + ( getGearShootingStartLongitudeDegree() == ints.max || getGearShootingStartLongitudeDegree() == -ints.min ) + && getGearShootingStartLongitudeMinute() == 0 && getGearShootingStartLongitudeSecond() == 0 + ) + ) + ]]> + </param> + + <message></message> + + </field-validator> + + </field> + + <field name="gearShootingStartLongitudeMinute"> + + <field-validator type="fieldexpressionwithparams"> + <param name="intParams">min:0|max:60</param> + <param name="expression"> + <![CDATA[ + useSexagecimalFormat && ints.min <= getGearShootingStartLongitudeMinute() && getGearShootingStartLongitudeMinute() < ints.max + ]]> + </param> + + <message></message> + + </field-validator> + + </field> + + <field name="gearShootingStartLongitudeSecond"> + + <field-validator type="fieldexpressionwithparams"> + <param name="intParams">min:0|max:60</param> + <param name="expression"> + <![CDATA[ + useSexagecimalFormat && ints.min <= getGearShootingStartLongitudeSecond() && getGearShootingStartLongitudeSecond() < ints.max + ]]> + </param> + + <message></message> + + </field-validator> + + </field> + + <!--gear shooting end latitude validation --> + + <field name="gearShootingEndLatitude"> + + <field-validator type="fieldexpressionwithparams"> + <param name="doubleParams">min:90.0|max:90.0</param> + <param name="expression"> + <![CDATA[ + useSexagecimalFormat || ( -doubles.min <= gearShootingEndLatitude && gearShootingEndLatitude <= doubles.max ) + ]]> + </param> + + <message></message> + + </field-validator> + + </field> + + + <field name="gearShootingEndLatitudeDegree"> + + <field-validator type="fieldexpressionwithparams"> + <param name="intParams">min:90|max:90</param> + <param name="expression"> + <![CDATA[ + useSexagecimalFormat && ( + (-ints.min < getGearShootingEndLatitudeDegree() && getGearShootingEndLatitudeDegree() < ints.max) + || ( + ( getGearShootingEndLatitudeDegree() == ints.max || getGearShootingEndLatitudeDegree() == -ints.min ) + && getGearShootingEndLatitudeMinute() == 0 && getGearShootingEndLatitudeSecond() == 0 + ) + ) + ]]> + </param> + + <message></message> + + </field-validator> + + </field> + + <field name="gearShootingEndLatitudeMinute"> + + <field-validator type="fieldexpressionwithparams"> + <param name="intParams">min:0|max:60</param> + <param name="expression"> + <![CDATA[ + useSexagecimalFormat && ints.min <= getGearShootingEndLatitudeMinute() && getGearShootingEndLatitudeMinute() < ints.max + ]]> + </param> + + <message></message> + + </field-validator> + + </field> + + <field name="gearShootingEndLatitudeSecond"> + + <field-validator type="fieldexpressionwithparams"> + <param name="intParams">min:0|max:60</param> + <param name="expression"> + <![CDATA[ + useSexagecimalFormat && ints.min <= getGearShootingEndLatitudeSecond() && getGearShootingEndLatitudeSecond() < ints.max + ]]> + </param> + + <message></message> + + </field-validator> + + </field> + + <!--gear shooting end longitude validation --> + + <field name="gearShootingEndLongitude"> + + <field-validator type="fieldexpressionwithparams"> + <param name="doubleParams">min:180.0|max:180.0</param> + <param name="expression"> + <![CDATA[ + useSexagecimalFormat || ( -doubles.min <= gearShootingEndLongitude && gearShootingEndLongitude <= doubles.max ) + ]]> + </param> + + <message></message> + + </field-validator> + + </field> + + <field name="gearShootingEndLongitudeDegree"> + + <field-validator type="fieldexpressionwithparams"> + <param name="intParams">min:180|max:180</param> + <param name="expression"> + <![CDATA[ + useSexagecimalFormat && ( + (-ints.min < getGearShootingEndLongitudeDegree() && getGearShootingEndLongitudeDegree() < ints.max) + || ( + ( getGearShootingEndLongitudeDegree() == ints.max || getGearShootingEndLongitudeDegree() == -ints.min ) + && getGearShootingEndLongitudeMinute() == 0 && getGearShootingEndLongitudeSecond() == 0 + ) + ) + ]]> + </param> + + <message></message> + + </field-validator> + + </field> + + <field name="gearShootingEndLongitudeMinute"> + + <field-validator type="fieldexpressionwithparams"> + <param name="intParams">min:0|max:60</param> + <param name="expression"> + <![CDATA[ + useSexagecimalFormat && ints.min <= getGearShootingEndLongitudeMinute() && getGearShootingEndLongitudeMinute() < ints.max + ]]> + </param> + + <message></message> + + </field-validator> + + </field> + + <field name="gearShootingEndLongitudeSecond"> + + <field-validator type="fieldexpressionwithparams"> + <param name="intParams">min:0|max:60</param> + <param name="expression"> + <![CDATA[ + useSexagecimalFormat && ints.min <= getGearShootingEndLongitudeSecond() && getGearShootingEndLongitudeSecond() < ints.max + ]]> + </param> + + <message></message> + + </field-validator> + + </field> + + </validators> Modified: trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-validate-warning-validation.xml =================================================================== --- trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-validate-warning-validation.xml 2013-01-08 09:28:42 UTC (rev 157) +++ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-validate-warning-validation.xml 2013-01-08 10:12:05 UTC (rev 158) @@ -3,7 +3,7 @@ #%L Tutti :: UI $Id$ - $HeadURL: http://svn.forge.codelutin.com/svn/tutti/trunk/tutti-ui-swing/src/main/resou... $ + $HeadURL$ %% Copyright (C) 2012 - 2013 Ifremer %% @@ -29,294 +29,17 @@ "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd"> <validators> - - <!--gear shooting start latitude validation --> - <field name="gearShootingStartLatitude"> - - <field-validator type="fieldexpressionwithparams"> - <param name="doubleParams">min:90.0|max:90.0</param> - <param name="expression"> - <![CDATA[ - useSexagecimalFormat || ( -doubles.min <= gearShootingStartLatitude && gearShootingStartLatitude <= doubles.max ) - ]]> - </param> - - <message></message> - </field-validator> - - </field> - - <field name="gearShootingStartLatitudeDegree"> - - <field-validator type="fieldexpressionwithparams"> - <param name="intParams">min:90|max:90</param> - <param name="expression"> - <![CDATA[ - useSexagecimalFormat && ( - ( -ints.min < getGearShootingStartLatitudeDegree() && getGearShootingStartLatitudeDegree() < ints.max ) - || ( - ( getGearShootingStartLatitudeDegree() == ints.max || getGearShootingStartLatitudeDegree() == -ints.min ) - && getGearShootingStartLatitudeMinute() == 0 && getGearShootingStartLatitudeSecond() == 0 - ) - ) - ]]> - </param> - - <message></message> + <field name="comment"> - </field-validator> - - </field> - - <field name="gearShootingStartLatitudeMinute"> - - <field-validator type="fieldexpressionwithparams"> - <param name="intParams">min:0|max:60</param> - <param name="expression"> - <![CDATA[ - useSexagecimalFormat && ints.min <= getGearShootingStartLatitudeMinute() && getGearShootingStartLatitudeMinute() < ints.max - ]]> - </param> - - <message></message> + <field-validator type="required"> - </field-validator> - - </field> - - <field name="gearShootingStartLatitudeSecond"> - - <field-validator type="fieldexpressionwithparams"> - <param name="intParams">min:0|max:60</param> - <param name="expression"> - <![CDATA[ - useSexagecimalFormat && ints.min <= getGearShootingStartLatitudeSecond() && getGearShootingStartLatitudeSecond() < ints.max - ]]> - </param> - - <message></message> + <!-- No comment (just to test...) --> + <message></message> - </field-validator> - - </field> - - <!--gear shooting start longitude validation --> + </field-validator> - <field name="gearShootingStartLongitude"> - - <field-validator type="fieldexpressionwithparams"> - <param name="doubleParams">min:180.0|max:180.0</param> - <param name="expression"> - <![CDATA[ - useSexagecimalFormat || ( -doubles.min <= gearShootingStartLongitude && gearShootingStartLongitude <= doubles.max ) - ]]> - </param> - - <message></message> + </field> - </field-validator> - - </field> - - <field name="gearShootingStartLongitudeDegree"> - - <field-validator type="fieldexpressionwithparams"> - <param name="intParams">min:180|max:180</param> - <param name="expression"> - <![CDATA[ - useSexagecimalFormat && ( - (-ints.min < getGearShootingStartLongitudeDegree() && getGearShootingStartLongitudeDegree() < ints.max) - || ( - ( getGearShootingStartLongitudeDegree() == ints.max || getGearShootingStartLongitudeDegree() == -ints.min ) - && getGearShootingStartLongitudeMinute() == 0 && getGearShootingStartLongitudeSecond() == 0 - ) - ) - ]]> - </param> - - <message></message> - - </field-validator> - - </field> - - <field name="gearShootingStartLongitudeMinute"> - - <field-validator type="fieldexpressionwithparams"> - <param name="intParams">min:0|max:60</param> - <param name="expression"> - <![CDATA[ - useSexagecimalFormat && ints.min <= getGearShootingStartLongitudeMinute() && getGearShootingStartLongitudeMinute() < ints.max - ]]> - </param> - - <message></message> - - </field-validator> - - </field> - - <field name="gearShootingStartLongitudeSecond"> - - <field-validator type="fieldexpressionwithparams"> - <param name="intParams">min:0|max:60</param> - <param name="expression"> - <![CDATA[ - useSexagecimalFormat && ints.min <= getGearShootingStartLongitudeSecond() && getGearShootingStartLongitudeSecond() < ints.max - ]]> - </param> - - <message></message> - - </field-validator> - - </field> - - <!--gear shooting end latitude validation --> - - <field name="gearShootingEndLatitude"> - - <field-validator type="fieldexpressionwithparams"> - <param name="doubleParams">min:90.0|max:90.0</param> - <param name="expression"> - <![CDATA[ - useSexagecimalFormat || ( -doubles.min <= gearShootingEndLatitude && gearShootingEndLatitude <= doubles.max ) - ]]> - </param> - - <message></message> - - </field-validator> - - </field> - - - <field name="gearShootingEndLatitudeDegree"> - - <field-validator type="fieldexpressionwithparams"> - <param name="intParams">min:90|max:90</param> - <param name="expression"> - <![CDATA[ - useSexagecimalFormat && ( - (-ints.min < getGearShootingEndLatitudeDegree() && getGearShootingEndLatitudeDegree() < ints.max) - || ( - ( getGearShootingEndLatitudeDegree() == ints.max || getGearShootingEndLatitudeDegree() == -ints.min ) - && getGearShootingEndLatitudeMinute() == 0 && getGearShootingEndLatitudeSecond() == 0 - ) - ) - ]]> - </param> - - <message></message> - - </field-validator> - - </field> - - <field name="gearShootingEndLatitudeMinute"> - - <field-validator type="fieldexpressionwithparams"> - <param name="intParams">min:0|max:60</param> - <param name="expression"> - <![CDATA[ - useSexagecimalFormat && ints.min <= getGearShootingEndLatitudeMinute() && getGearShootingEndLatitudeMinute() < ints.max - ]]> - </param> - - <message></message> - - </field-validator> - - </field> - - <field name="gearShootingEndLatitudeSecond"> - - <field-validator type="fieldexpressionwithparams"> - <param name="intParams">min:0|max:60</param> - <param name="expression"> - <![CDATA[ - useSexagecimalFormat && ints.min <= getGearShootingEndLatitudeSecond() && getGearShootingEndLatitudeSecond() < ints.max - ]]> - </param> - - <message></message> - - </field-validator> - - </field> - - <!--gear shooting end longitude validation --> - - <field name="gearShootingEndLongitude"> - - <field-validator type="fieldexpressionwithparams"> - <param name="doubleParams">min:180.0|max:180.0</param> - <param name="expression"> - <![CDATA[ - useSexagecimalFormat || ( -doubles.min <= gearShootingEndLongitude && gearShootingEndLongitude <= doubles.max ) - ]]> - </param> - - <message></message> - - </field-validator> - - </field> - - <field name="gearShootingEndLongitudeDegree"> - - <field-validator type="fieldexpressionwithparams"> - <param name="intParams">min:180|max:180</param> - <param name="expression"> - <![CDATA[ - useSexagecimalFormat && ( - (-ints.min < getGearShootingEndLongitudeDegree() && getGearShootingEndLongitudeDegree() < ints.max) - || ( - ( getGearShootingEndLongitudeDegree() == ints.max || getGearShootingEndLongitudeDegree() == -ints.min ) - && getGearShootingEndLongitudeMinute() == 0 && getGearShootingEndLongitudeSecond() == 0 - ) - ) - ]]> - </param> - - <message></message> - - </field-validator> - - </field> - - <field name="gearShootingEndLongitudeMinute"> - - <field-validator type="fieldexpressionwithparams"> - <param name="intParams">min:0|max:60</param> - <param name="expression"> - <![CDATA[ - useSexagecimalFormat && ints.min <= getGearShootingEndLongitudeMinute() && getGearShootingEndLongitudeMinute() < ints.max - ]]> - </param> - - <message></message> - - </field-validator> - - </field> - - <field name="gearShootingEndLongitudeSecond"> - - <field-validator type="fieldexpressionwithparams"> - <param name="intParams">min:0|max:60</param> - <param name="expression"> - <![CDATA[ - useSexagecimalFormat && ints.min <= getGearShootingEndLongitudeSecond() && getGearShootingEndLongitudeSecond() < ints.max - ]]> - </param> - - <message></message> - - </field-validator> - - </field> - </validators> Property changes on: trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-validate-warning-validation.xml ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Author Date Id Revision HeadURL Deleted: trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-warning-validation.xml =================================================================== --- trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-warning-validation.xml 2013-01-08 09:28:42 UTC (rev 157) +++ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-warning-validation.xml 2013-01-08 10:12:05 UTC (rev 158) @@ -1,322 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - #%L - Tutti :: UI - $Id$ - $HeadURL$ - %% - Copyright (C) 2012 - 2013 Ifremer - %% - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as - published by the Free Software Foundation, either version 3 of the - License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public - License along with this program. If not, see - <http://www.gnu.org/licenses/gpl-3.0.html>. - #L% - --> - - -<!DOCTYPE validators PUBLIC - "-//Apache Struts//XWork Validator 1.0.3//EN" - "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd"> - -<validators> - - <!--gear shooting start latitude validation --> - - <field name="gearShootingStartLatitude"> - - <field-validator type="fieldexpressionwithparams"> - <param name="doubleParams">min:90.0|max:90.0</param> - <param name="expression"> - <![CDATA[ - useSexagecimalFormat || ( -doubles.min <= gearShootingStartLatitude && gearShootingStartLatitude <= doubles.max ) - ]]> - </param> - - <message></message> - - </field-validator> - - </field> - - <field name="gearShootingStartLatitudeDegree"> - - <field-validator type="fieldexpressionwithparams"> - <param name="intParams">min:90|max:90</param> - <param name="expression"> - <![CDATA[ - useSexagecimalFormat && ( - ( -ints.min < getGearShootingStartLatitudeDegree() && getGearShootingStartLatitudeDegree() < ints.max ) - || ( - ( getGearShootingStartLatitudeDegree() == ints.max || getGearShootingStartLatitudeDegree() == -ints.min ) - && getGearShootingStartLatitudeMinute() == 0 && getGearShootingStartLatitudeSecond() == 0 - ) - ) - ]]> - </param> - - <message></message> - - </field-validator> - - </field> - - <field name="gearShootingStartLatitudeMinute"> - - <field-validator type="fieldexpressionwithparams"> - <param name="intParams">min:0|max:60</param> - <param name="expression"> - <![CDATA[ - useSexagecimalFormat && ints.min <= getGearShootingStartLatitudeMinute() && getGearShootingStartLatitudeMinute() < ints.max - ]]> - </param> - - <message></message> - - </field-validator> - - </field> - - <field name="gearShootingStartLatitudeSecond"> - - <field-validator type="fieldexpressionwithparams"> - <param name="intParams">min:0|max:60</param> - <param name="expression"> - <![CDATA[ - useSexagecimalFormat && ints.min <= getGearShootingStartLatitudeSecond() && getGearShootingStartLatitudeSecond() < ints.max - ]]> - </param> - - <message></message> - - </field-validator> - - </field> - - <!--gear shooting start longitude validation --> - - <field name="gearShootingStartLongitude"> - - <field-validator type="fieldexpressionwithparams"> - <param name="doubleParams">min:180.0|max:180.0</param> - <param name="expression"> - <![CDATA[ - useSexagecimalFormat || ( -doubles.min <= gearShootingStartLongitude && gearShootingStartLongitude <= doubles.max ) - ]]> - </param> - - <message></message> - - </field-validator> - - </field> - - <field name="gearShootingStartLongitudeDegree"> - - <field-validator type="fieldexpressionwithparams"> - <param name="intParams">min:180|max:180</param> - <param name="expression"> - <![CDATA[ - useSexagecimalFormat && ( - (-ints.min < getGearShootingStartLongitudeDegree() && getGearShootingStartLongitudeDegree() < ints.max) - || ( - ( getGearShootingStartLongitudeDegree() == ints.max || getGearShootingStartLongitudeDegree() == -ints.min ) - && getGearShootingStartLongitudeMinute() == 0 && getGearShootingStartLongitudeSecond() == 0 - ) - ) - ]]> - </param> - - <message></message> - - </field-validator> - - </field> - - <field name="gearShootingStartLongitudeMinute"> - - <field-validator type="fieldexpressionwithparams"> - <param name="intParams">min:0|max:60</param> - <param name="expression"> - <![CDATA[ - useSexagecimalFormat && ints.min <= getGearShootingStartLongitudeMinute() && getGearShootingStartLongitudeMinute() < ints.max - ]]> - </param> - - <message></message> - - </field-validator> - - </field> - - <field name="gearShootingStartLongitudeSecond"> - - <field-validator type="fieldexpressionwithparams"> - <param name="intParams">min:0|max:60</param> - <param name="expression"> - <![CDATA[ - useSexagecimalFormat && ints.min <= getGearShootingStartLongitudeSecond() && getGearShootingStartLongitudeSecond() < ints.max - ]]> - </param> - - <message></message> - - </field-validator> - - </field> - - <!--gear shooting end latitude validation --> - - <field name="gearShootingEndLatitude"> - - <field-validator type="fieldexpressionwithparams"> - <param name="doubleParams">min:90.0|max:90.0</param> - <param name="expression"> - <![CDATA[ - useSexagecimalFormat || ( -doubles.min <= gearShootingEndLatitude && gearShootingEndLatitude <= doubles.max ) - ]]> - </param> - - <message></message> - - </field-validator> - - </field> - - - <field name="gearShootingEndLatitudeDegree"> - - <field-validator type="fieldexpressionwithparams"> - <param name="intParams">min:90|max:90</param> - <param name="expression"> - <![CDATA[ - useSexagecimalFormat && ( - (-ints.min < getGearShootingEndLatitudeDegree() && getGearShootingEndLatitudeDegree() < ints.max) - || ( - ( getGearShootingEndLatitudeDegree() == ints.max || getGearShootingEndLatitudeDegree() == -ints.min ) - && getGearShootingEndLatitudeMinute() == 0 && getGearShootingEndLatitudeSecond() == 0 - ) - ) - ]]> - </param> - - <message></message> - - </field-validator> - - </field> - - <field name="gearShootingEndLatitudeMinute"> - - <field-validator type="fieldexpressionwithparams"> - <param name="intParams">min:0|max:60</param> - <param name="expression"> - <![CDATA[ - useSexagecimalFormat && ints.min <= getGearShootingEndLatitudeMinute() && getGearShootingEndLatitudeMinute() < ints.max - ]]> - </param> - - <message></message> - - </field-validator> - - </field> - - <field name="gearShootingEndLatitudeSecond"> - - <field-validator type="fieldexpressionwithparams"> - <param name="intParams">min:0|max:60</param> - <param name="expression"> - <![CDATA[ - useSexagecimalFormat && ints.min <= getGearShootingEndLatitudeSecond() && getGearShootingEndLatitudeSecond() < ints.max - ]]> - </param> - - <message></message> - - </field-validator> - - </field> - - <!--gear shooting end longitude validation --> - - <field name="gearShootingEndLongitude"> - - <field-validator type="fieldexpressionwithparams"> - <param name="doubleParams">min:180.0|max:180.0</param> - <param name="expression"> - <![CDATA[ - useSexagecimalFormat || ( -doubles.min <= gearShootingEndLongitude && gearShootingEndLongitude <= doubles.max ) - ]]> - </param> - - <message></message> - - </field-validator> - - </field> - - <field name="gearShootingEndLongitudeDegree"> - - <field-validator type="fieldexpressionwithparams"> - <param name="intParams">min:180|max:180</param> - <param name="expression"> - <![CDATA[ - useSexagecimalFormat && ( - (-ints.min < getGearShootingEndLongitudeDegree() && getGearShootingEndLongitudeDegree() < ints.max) - || ( - ( getGearShootingEndLongitudeDegree() == ints.max || getGearShootingEndLongitudeDegree() == -ints.min ) - && getGearShootingEndLongitudeMinute() == 0 && getGearShootingEndLongitudeSecond() == 0 - ) - ) - ]]> - </param> - - <message></message> - - </field-validator> - - </field> - - <field name="gearShootingEndLongitudeMinute"> - - <field-validator type="fieldexpressionwithparams"> - <param name="intParams">min:0|max:60</param> - <param name="expression"> - <![CDATA[ - useSexagecimalFormat && ints.min <= getGearShootingEndLongitudeMinute() && getGearShootingEndLongitudeMinute() < ints.max - ]]> - </param> - - <message></message> - - </field-validator> - - </field> - - <field name="gearShootingEndLongitudeSecond"> - - <field-validator type="fieldexpressionwithparams"> - <param name="intParams">min:0|max:60</param> - <param name="expression"> - <![CDATA[ - useSexagecimalFormat && ints.min <= getGearShootingEndLongitudeSecond() && getGearShootingEndLongitudeSecond() < ints.max - ]]> - </param> - - <message></message> - - </field-validator> - - </field> - -</validators> Property changes on: trunk/tutti-ui-swing/src/main/resources/icons/action-validate.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: trunk/tutti-ui-swing/src/test/java/fr/ifremer/tutti/ui/swing/BeanValidatorDetectorTest.java =================================================================== --- trunk/tutti-ui-swing/src/test/java/fr/ifremer/tutti/ui/swing/BeanValidatorDetectorTest.java (rev 0) +++ trunk/tutti-ui-swing/src/test/java/fr/ifremer/tutti/ui/swing/BeanValidatorDetectorTest.java 2013-01-08 10:12:05 UTC (rev 158) @@ -0,0 +1,139 @@ +/* + * #%L + * ObServe :: Validation + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2008 - 2010 IRD, Codelutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ +package fr.ifremer.tutti.ui.swing; + +import fr.ifremer.tutti.ui.swing.content.cruise.EditCruiseUIModel; +import fr.ifremer.tutti.ui.swing.content.operation.EditFishingOperationUIModel; +import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel; +import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchUIModel; +import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyUIModel; +import fr.ifremer.tutti.ui.swing.content.operation.catches.species.split.CreateSpeciesBatchUIModel; +import fr.ifremer.tutti.ui.swing.content.operation.catches.species.split.SplitSpeciesBatchUIModel; +import fr.ifremer.tutti.ui.swing.content.program.EditProgramUIModel; +import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolUIModel; +import org.junit.BeforeClass; +import org.junit.Test; +import org.nuiton.validator.AbstractValidatorDetectorTest; +import org.nuiton.validator.NuitonValidator; +import org.nuiton.validator.xwork2.XWork2NuitonValidatorProvider; + +import java.io.File; +import java.util.SortedSet; +import java.util.regex.Pattern; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; + +/** + * @author tchemit <chemit@codelutin.com> + * @since 0.3 + */ +public class BeanValidatorDetectorTest extends AbstractValidatorDetectorTest { + + private static final String EDIT_CONTEXT_NAME = "edit"; + + private static final String VALIDATE_CONTEXT_NAME = "validate"; + + SortedSet<NuitonValidator<?>> validators; + + public BeanValidatorDetectorTest() { + super(XWork2NuitonValidatorProvider.PROVIDER_NAME); + } + + static Class<?>[] ALL_TYPES; + + @BeforeClass + public static void setUpClass() throws Exception { + ALL_TYPES = new Class[]{ + EditCruiseUIModel.class, + EditProgramUIModel.class, + EditProtocolUIModel.class, + EditFishingOperationUIModel.class, + EditCatchesUIModel.class, + SpeciesBatchUIModel.class, + CreateSpeciesBatchUIModel.class, + SplitSpeciesBatchUIModel.class, + SpeciesFrequencyUIModel.class + + }; + } + + @Override + protected File getRootDirectory(File basedir) { + return new File(basedir, + "src" + File.separator + "main" + File.separator + "resources"); + } + + @Test + public void detectAll() { + + SortedSet<NuitonValidator<?>> validators = detectValidators(ALL_TYPES); + assertFalse(validators.isEmpty()); + assertEquals(8, validators.size()); + } + + @Test + public void detectWithNoContext() { + + String contextName = ""; + + validators = detectValidators(Pattern.compile(contextName), ALL_TYPES); + + assertValidatorSetWithSameContextName(validators, null, + CreateSpeciesBatchUIModel.class, + EditCruiseUIModel.class, + EditProgramUIModel.class, + EditProtocolUIModel.class, + SpeciesFrequencyUIModel.class, + SplitSpeciesBatchUIModel.class + ); + } + + @Test + public void detectWithEditContext() { + + String contextName = EDIT_CONTEXT_NAME; + + validators = detectValidators(Pattern.compile(contextName), ALL_TYPES); + + assertValidatorSetWithSameContextName(validators, + contextName, + EditFishingOperationUIModel.class + ); + } + + @Test + public void detectWithValidateContext() { + String contextName = VALIDATE_CONTEXT_NAME; + + validators = detectValidators(Pattern.compile(contextName), ALL_TYPES); + + assertValidatorSetWithSameContextName(validators, + contextName, + EditFishingOperationUIModel.class + ); + + } +} Property changes on: trunk/tutti-ui-swing/src/test/java/fr/ifremer/tutti/ui/swing/BeanValidatorDetectorTest.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native