r217 - in trunk: tutti-persistence/src/main/xmi tutti-persistence-adagio/src/test/java/fr/ifremer/tutti/persistence/service tutti-service/src/main/java/fr/ifremer/tutti/service tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/cruise tutti-ui-swing/src/main/resources/fr/ifremer/t
Author: tchemit Date: 2013-01-17 17:50:14 +0100 (Thu, 17 Jan 2013) New Revision: 217 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/217 Log: ajout nombre de poche / navire / engin sur l'?\195?\169cran de trait ajout de quelques validation sur la taille des champs renommage de certains champs Modified: trunk/tutti-persistence-adagio/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceTest.java trunk/tutti-persistence/src/main/xmi/tutti-persistence.zargo trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUI.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 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/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIModel.java trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIModel-error-validation.xml 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-validate-error-validation.xml trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIModel-error-validation.xml trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel-error-validation.xml trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties Modified: trunk/tutti-persistence/src/main/xmi/tutti-persistence.zargo =================================================================== (Binary files differ) Modified: trunk/tutti-persistence-adagio/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceTest.java =================================================================== --- trunk/tutti-persistence-adagio/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceTest.java 2013-01-17 16:31:22 UTC (rev 216) +++ trunk/tutti-persistence-adagio/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceTest.java 2013-01-17 16:50:14 UTC (rev 217) @@ -161,7 +161,7 @@ createdCruise.setBeginDate(null); createdCruise.setEndDate(null); createdCruise.setComment(null); - createdCruise.setPoche(null); + createdCruise.setTrawlNet(null); createdCruise = service.createCruise(cruise); assertNotNull(createdCruise); assertNotNull(createdCruise.getId()); @@ -172,7 +172,7 @@ assertEquals(createdCruise.getBeginDate(), reloadedCruise.getBeginDate()); assertEquals(createdCruise.getEndDate(), reloadedCruise.getEndDate()); assertEquals(createdCruise.getComment(), reloadedCruise.getComment()); - assertEquals(createdCruise.getPoche(), reloadedCruise.getPoche()); + assertEquals(createdCruise.getTrawlNet(), reloadedCruise.getTrawlNet()); assertNull(reloadedCruise.getHeadOfMission()); assertNotNull(reloadedCruise.getVessel()); assertEquals(createdCruise.getVessel().get(0), reloadedCruise.getVessel().get(0)); Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java 2013-01-17 16:31:22 UTC (rev 216) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java 2013-01-17 16:50:14 UTC (rev 217) @@ -102,7 +102,7 @@ registerMultiJXPathDecorator(Program.class, "${name}$s", SEPARATOR, " - "); registerMultiJXPathDecorator(Cruise.class, "${name}$s", SEPARATOR, " - "); registerMultiJXPathDecorator(TuttiProtocol.class, "${name}$s", SEPARATOR, " - "); - registerMultiJXPathDecorator(FishingOperation.class, "${stationNumber}$s#${fishingOperationNumber}$s#${date}$td/%3$tm/%3$tY", SEPARATOR, " - "); + registerMultiJXPathDecorator(FishingOperation.class, "${stationNumber}$s#${fishingOperationNumber}$s#${gearShootingStartDate}$td/%3$tm/%3$tY", SEPARATOR, " - "); registerMultiJXPathDecorator(Zone.class, "${label}$s#${name}$s", SEPARATOR, " - "); registerMultiJXPathDecorator(Vessel.class, "${name}$s#${internalRegistrationCode}$s", SEPARATOR, " - "); registerMultiJXPathDecorator(Country.class, "${label}$s#${name}$s", SEPARATOR, " - "); Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUI.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUI.java 2013-01-17 16:31:22 UTC (rev 216) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUI.java 2013-01-17 16:50:14 UTC (rev 217) @@ -51,6 +51,13 @@ * @since 0.1 */ public static final String INT_2_DIGITS_PATTERN = "\\d{0,2}"; + + /** + * Pattern to use for signed numeric values in editors with max 2 digits. + * + * @since 1.0 + */ + public static final String SIGNED_INT_2_DIGITS_PATTERN = "-?\\d{0,2}"; /** * Pattern to use for short numeric values in editors with max 3 digits. @@ -60,6 +67,13 @@ public static final String INT_3_DIGITS_PATTERN = "\\d{0,3}"; /** + * Pattern to use for singed numeric values in editors with max 3 digits. + * + * @since 1.0 + */ + public static final String SIGNED_INT_3_DIGITS_PATTERN = "-?\\d{0,3}"; + + /** * Pattern to use for short numeric values in editors with max 4 digits. * * @since 0.2 Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css 2013-01-17 16:31:22 UTC (rev 216) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css 2013-01-17 16:50:14 UTC (rev 217) @@ -113,14 +113,14 @@ formats: {"dd/MM/yyyy"}; } -#pocheLabel { - text: "tutti.label.cruise.poche"; - labelFor: {pocheField}; +#trawlNetLabel { + text: "tutti.label.cruise.trawlNet"; + labelFor: {trawlNetField}; } -#pocheField { - property: poche; - model: {model.getPoche()}; +#trawlNetField { + property: trawlNet; + model: {model.getTrawlNet()}; useFloat: false; numberPattern: {INT_1_DIGITS_PATTERN}; } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx 2013-01-17 16:31:22 UTC (rev 216) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx 2013-01-17 16:50:14 UTC (rev 217) @@ -80,7 +80,7 @@ <field name='year' component='yearField'/> <field name='surveyPart' component='surveyPartField'/> <field name='name' component='nameField'/> - <field name='poche' component='pocheField'/> + <field name='trawlNet' component='trawlNetField'/> <field name='country' component='countryComboBox'/> <field name='beginDate' component='beginDateField'/> <field name='endDate' component='endDateField'/> @@ -132,10 +132,10 @@ onActionPerformed='handler.generateCampaignName()'/> </cell> <cell> - <JLabel id='pocheLabel'/> + <JLabel id='trawlNetLabel'/> </cell> <cell weightx='0.3'> - <NumberEditor id='pocheField' constructorParams='this'/> + <NumberEditor id='trawlNetField' constructorParams='this'/> </cell> </row> Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java 2013-01-17 16:31:22 UTC (rev 216) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java 2013-01-17 16:50:14 UTC (rev 217) @@ -36,19 +36,17 @@ import fr.ifremer.tutti.ui.swing.MainUI; import fr.ifremer.tutti.ui.swing.TuttiScreen; import fr.ifremer.tutti.ui.swing.TuttiUI; -import fr.ifremer.tutti.ui.swing.TuttiUIContext; -import java.beans.PropertyChangeEvent; -import java.beans.PropertyChangeListener; -import java.util.List; import jaxx.runtime.JAXXUtil; import jaxx.runtime.context.JAXXContextEntryDef; import jaxx.runtime.validator.swing.SwingValidator; -import jaxx.runtime.validator.swing.SwingValidatorMessageTableRenderer; -import jaxx.runtime.validator.swing.SwingValidatorUtil; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; +import java.util.List; + /** * Handler of UI {@link EditCruiseUI}. * @@ -108,7 +106,7 @@ Program program = persistenceService.getProgram(context.getProgramId()); model.setProgram(program); - model.setPoche(1); + model.setTrawlNet(1); if (log.isDebugEnabled()) { log.debug("Will create a new cruise from program: " + program); @@ -182,7 +180,7 @@ EditCruiseUIModel model = getModel(); model.setVesselType(VesselTypeEnum.ALL); - + // Change vessel list and gear list when vessel type changes model.addPropertyChangeListener(EditCruiseUIModel.PROPERTY_VESSEL_TYPE, new PropertyChangeListener() { @Override @@ -200,14 +198,14 @@ // compute new selected vessel list List<Vessel> newSelectedVessel = Lists.newArrayList(); - if (selectedVessel!=null) { + if (selectedVessel != null) { newSelectedVessel.addAll(selectedVessel); } newSelectedVessel.retainAll(newVesselList); // compute new selected gear list List<Gear> newSelectedGear = Lists.newArrayList(); - if (selectedGear!=null) { + if (selectedGear != null) { newSelectedGear.addAll(selectedGear); } newSelectedGear.retainAll(newGearList); @@ -252,7 +250,7 @@ // if new fishingOperation can already cancel his creation model.setModify(model.isCreate()); - + MainUI main = ui.getContextValue(MainUI.class, MainUI.class.getName()); main.clearValidators(); main.registerValidator(validator); Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIModel.java 2013-01-17 16:31:22 UTC (rev 216) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIModel.java 2013-01-17 16:50:14 UTC (rev 217) @@ -67,7 +67,7 @@ public static final String PROPERTY_YEAR = "year"; - public static final String PROPERTY_POCHE = "poche"; + public static final String PROPERTY_TRAWL_NET = "trawlNet"; public static final String PROPERTY_BEGIN_DATE = "beginDate"; @@ -77,6 +77,12 @@ public static final String PROPERTY_VESSEL_TYPE = "vesselType"; + public static final String PROPERTY_VESSEL_TYPE_ALL = "vesselTypeAll"; + + public static final String PROPERTY_VESSEL_TYPE_SCIENTIFIC = "vesselTypeScientific"; + + public static final String PROPERTY_VESSEL_TYPE_FISHING = "vesselTypeFishing"; + protected Program program; protected Country country; @@ -97,7 +103,7 @@ protected Integer year; - protected Integer poche; + protected Integer trawlNet; protected Date beginDate; @@ -178,14 +184,14 @@ firePropertyChange(PROPERTY_CAN_GENERATE_NAME, null, isCanGenerateName()); } - public Integer getPoche() { - return poche; + public Integer getTrawlNet() { + return trawlNet; } - public void setPoche(Integer poche) { - Object oldValue = getPoche(); - this.poche = poche; - firePropertyChange(PROPERTY_POCHE, oldValue, poche); + public void setTrawlNet(Integer trawlNet) { + Object oldValue = getTrawlNet(); + this.trawlNet = trawlNet; + firePropertyChange(PROPERTY_TRAWL_NET, oldValue, trawlNet); } public Date getBeginDate() { @@ -255,9 +261,9 @@ Object oldValue = getVesselType(); this.vesselType = vesselType; firePropertyChange(PROPERTY_VESSEL_TYPE, oldValue, vesselType); - firePropertyChange("vesselTypeAll", oldAll, isVesselTypeAll()); - firePropertyChange("vesselTypeScientific", oldScientific, isVesselTypeScientific()); - firePropertyChange("vesselTypeFishing", oldFishing, isVesselTypeFishing()); + firePropertyChange(PROPERTY_VESSEL_TYPE_ALL, oldAll, isVesselTypeAll()); + firePropertyChange(PROPERTY_VESSEL_TYPE_SCIENTIFIC, oldScientific, isVesselTypeScientific()); + firePropertyChange(PROPERTY_VESSEL_TYPE_FISHING, oldFishing, isVesselTypeFishing()); } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-01-17 16:31:22 UTC (rev 216) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-01-17 16:50:14 UTC (rev 217) @@ -153,6 +153,43 @@ selected: {model.isUseSexagecimalFormat() ? "DMS" : "DD"}; } +#traitVesselPanel { + border: {BorderFactory.createTitledBorder((String)null)}; +} +#vesselLabel { + text: "tutti.label.fishingOperation.vessel"; + labelFor: {vesselComboBox}; +} + +#vesselComboBox { + property: vessel; + selectedItem: {model.getVessel()}; +} + +#gearLabel { + text: "tutti.label.fishingOperation.gear"; + labelFor: {gearComboBox}; +} + +#gearComboBox { + property: gear; + selectedItem: {model.getGear()}; +} + +#trawlNetNumberLabel { + text: "tutti.label.fishingOperation.trawlNetNumber"; + labelFor: {trawlNetNumberField}; +} + +#trawlNetNumberField { + showReset: false; + useFloat: false; + useSign: false; + numberPattern: {INT_1_DIGITS_PATTERN}; + property: trawlNetNumber; + model: {model.getTrawlNetNumber()}; +} + .degree { showReset: false; useFloat: false; @@ -180,7 +217,7 @@ #gearShootingStartLongitudeDMSDegreeField { property: gearShootingStartLongitudeDegree; model: {model.getGearShootingStartLongitudeDegree()}; - numberPattern: {"-?" + INT_3_DIGITS_PATTERN}; + numberPattern: {SIGNED_INT_3_DIGITS_PATTERN}; } #gearShootingStartLongitudeDMSMinuteField { @@ -208,7 +245,7 @@ #gearShootingStartLatitudeDMSDegreeField { property: gearShootingStartLatitudeDegree; model: {model.getGearShootingStartLatitudeDegree()}; - numberPattern: {"-?" + INT_2_DIGITS_PATTERN}; + numberPattern: {SIGNED_INT_2_DIGITS_PATTERN}; } #gearShootingStartLatitudeDMSMinuteField { @@ -246,7 +283,7 @@ #gearShootingEndLongitudeDMSDegreeField { property: gearShootingEndLongitudeDegree; model: {model.getGearShootingEndLongitudeDegree()}; - numberPattern: {"-?" + INT_3_DIGITS_PATTERN}; + numberPattern: {SIGNED_INT_3_DIGITS_PATTERN}; } #gearShootingEndLongitudeDMSMinuteField { @@ -274,7 +311,7 @@ #gearShootingEndLatitudeDMSDegreeField { property: gearShootingEndLatitudeDegree; model: {model.getGearShootingEndLatitudeDegree()}; - numberPattern: {"-?" + INT_2_DIGITS_PATTERN}; + numberPattern: {SIGNED_INT_2_DIGITS_PATTERN}; } #gearShootingEndLatitudeDMSMinuteField { @@ -338,25 +375,25 @@ selected: {model.isFishingOperationRectiligne()}; } -#distanceChaluteeLabel { - text: "tutti.label.fishingOperation.distanceChalutee"; - labelFor: {distanceChaluteeField}; +#trawlDistanceLabel { + text: "tutti.label.fishingOperation.trawlDistance"; + labelFor: {trawlDistanceField}; } -#distanceChaluteeField { - property: distanceChalutee; - model: {model.getDistanceChalutee()}; +#trawlDistanceField { + property: trawlDistance; + model: {model.getTrawlDistance()}; useFloat: false; numberPattern: {INT_6_DIGITS_PATTERN}; enabled: {!model.isFishingOperationRectiligne()}; } -#dureeLabel { - text: "tutti.label.fishingOperation.duree"; - labelFor: {dureeField}; +#durationLabel { + text: "tutti.label.fishingOperation.duration"; + labelFor: {durationField}; } -#dureeField { +#durationField { text: {fr.ifremer.tutti.ui.swing.util.TuttiUIUtil.getDuration( model.getGearShootingStartDate(), model.getGearShootingEndDate(), "tutti.duration.format")}; enabled: false; @@ -369,7 +406,7 @@ #commentPane { columnHeaderView: {new JLabel(_("tutti.label.comment"))}; - minimumSize: {new Dimension(10,50)}; + /*minimumSize: {new Dimension(10,50)};*/ } #commentField { @@ -393,10 +430,10 @@ #cancelButton { actionIcon: cancel; - text: "tutti.action.cancel"; + text:"tutti.action.cancel"; } #importCasinoButton { - actionIcon: casino-import; - text: "tutti.action.casino-import"; + actionIcon: casino-import; + text: "tutti.action.casino-import"; } 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-17 16:31:22 UTC (rev 216) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx 2013-01-17 16:50:14 UTC (rev 217) @@ -27,7 +27,9 @@ <import> fr.ifremer.tutti.persistence.entities.referential.FishingOperationLocation fr.ifremer.tutti.persistence.entities.data.FishingOperation + fr.ifremer.tutti.persistence.entities.referential.Gear fr.ifremer.tutti.persistence.entities.referential.Person + fr.ifremer.tutti.persistence.entities.referential.Vessel fr.ifremer.tutti.ui.swing.util.editor.SimpleTimeEditor fr.ifremer.tutti.ui.swing.content.operation.fishing.environment.EnvironmentTabUI @@ -77,7 +79,7 @@ <SwingValidatorMessageTableModel id='errorTableModel'/> <BeanValidator id='validator' context='validate' bean='model' - errorTableModel='errorTableModel' + errorTableModel='errorTableModel' uiClass='jaxx.runtime.validator.swing.ui.ImageValidationUI'> <field name='stationNumber' component='stationNumberField'/> <field name='fishingOperationNumber' @@ -85,22 +87,41 @@ <field name='gearShootingStartDate' component='gearShootingStartDateField'/> <field name='comment' component='commentField'/> <field name='saisisseur' component='saisisseurList'/> - <field name='gearShootingStartLatitude' component='gearShootingStartLatitudeDDField'/> - <field name='gearShootingStartLatitudeDegree' component='gearShootingStartLatitudeDMSDegreeField'/> - <field name='gearShootingStartLatitudeMinute' component='gearShootingStartLatitudeDMSMinuteField'/> - <field name='gearShootingStartLatitudeSecond' component='gearShootingStartLatitudeDMSSecondField'/> - <field name='gearShootingStartLongitude' component='gearShootingStartLongitudeDDField'/> - <field name='gearShootingStartLongitudeDegree' component='gearShootingStartLongitudeDMSDegreeField'/> - <field name='gearShootingStartLongitudeMinute' component='gearShootingStartLongitudeDMSMinuteField'/> - <field name='gearShootingStartLongitudeSecond' component='gearShootingStartLongitudeDMSSecondField'/> - <field name='gearShootingEndLatitude' component='gearShootingEndLatitudeDDField'/> - <field name='gearShootingEndLatitudeDegree' component='gearShootingEndLatitudeDMSDegreeField'/> - <field name='gearShootingEndLatitudeMinute' component='gearShootingEndLatitudeDMSMinuteField'/> - <field name='gearShootingEndLatitudeSecond' component='gearShootingEndLatitudeDMSSecondField'/> - <field name='gearShootingEndLongitude' component='gearShootingEndLongitudeDDField'/> - <field name='gearShootingEndLongitudeDegree' component='gearShootingEndLongitudeDMSDegreeField'/> - <field name='gearShootingEndLongitudeMinute' component='gearShootingEndLongitudeDMSMinuteField'/> - <field name='gearShootingEndLongitudeSecond' component='gearShootingEndLongitudeDMSSecondField'/> + <field name='vessel' component='vesselComboBox'/> + <field name='gear' component='gearComboBox'/> + <field name='trawlNetNumber' component='trawlNetNumberField'/> + <field name='gearShootingStartLatitude' + component='gearShootingStartLatitudeDDField'/> + <field name='gearShootingStartLatitudeDegree' + component='gearShootingStartLatitudeDMSDegreeField'/> + <field name='gearShootingStartLatitudeMinute' + component='gearShootingStartLatitudeDMSMinuteField'/> + <field name='gearShootingStartLatitudeSecond' + component='gearShootingStartLatitudeDMSSecondField'/> + <field name='gearShootingStartLongitude' + component='gearShootingStartLongitudeDDField'/> + <field name='gearShootingStartLongitudeDegree' + component='gearShootingStartLongitudeDMSDegreeField'/> + <field name='gearShootingStartLongitudeMinute' + component='gearShootingStartLongitudeDMSMinuteField'/> + <field name='gearShootingStartLongitudeSecond' + component='gearShootingStartLongitudeDMSSecondField'/> + <field name='gearShootingEndLatitude' + component='gearShootingEndLatitudeDDField'/> + <field name='gearShootingEndLatitudeDegree' + component='gearShootingEndLatitudeDMSDegreeField'/> + <field name='gearShootingEndLatitudeMinute' + component='gearShootingEndLatitudeDMSMinuteField'/> + <field name='gearShootingEndLatitudeSecond' + component='gearShootingEndLatitudeDMSSecondField'/> + <field name='gearShootingEndLongitude' + component='gearShootingEndLongitudeDDField'/> + <field name='gearShootingEndLongitudeDegree' + component='gearShootingEndLongitudeDMSDegreeField'/> + <field name='gearShootingEndLongitudeMinute' + component='gearShootingEndLongitudeDMSMinuteField'/> + <field name='gearShootingEndLongitudeSecond' + component='gearShootingEndLongitudeDMSSecondField'/> </BeanValidator> <CardLayout2Ext id='gearShootingStartLongitudeLayout' @@ -111,7 +132,7 @@ constructorParams='this, "gearShootingEndLongitudePanel"'/> <CardLayout2Ext id='gearShootingEndLatitudeLayout' constructorParams='this, "gearShootingEndLatitudePanel"'/> - + <JPanel id='fishingOperationPane' constraints='BorderLayout.CENTER' layout='{new BorderLayout()}'> @@ -119,32 +140,28 @@ <tab id='traitGeneralTab'> <Table fill='both' id='generalForm'> - <!-- Numero station / Numéro trait / Date --> + <!-- Numero station / Numéro trait / Numéro de poche --> <row> - <cell columns='6'> - <Table fill="both" weightx='1'> - <row> - <cell> - <JPanel layout="{new BorderLayout()}"> - <JLabel id='stationNumberLabel' - constraints='BorderLayout.WEST'/> - <JTextField id='stationNumberField' - constraints='BorderLayout.CENTER' - onKeyReleased='handler.setText(event, "stationNumber")'/> - </JPanel> - </cell> - <cell> - <JPanel layout="{new BorderLayout()}"> - <JLabel id='fishingOperationNumberLabel' - constraints='BorderLayout.WEST'/> - <NumberEditor id='fishingOperationNumberField' - constraints='BorderLayout.CENTER' - constructorParams='this'/> - </JPanel> - </cell> - </row> - </Table> + <cell> + <JLabel id='stationNumberLabel'/> </cell> + <cell weightx='0.3'> + <JTextField id='stationNumberField' + onKeyReleased='handler.setText(event, "stationNumber")'/> + </cell> + <cell> + <JLabel id='fishingOperationNumberLabel'/> + </cell> + <cell weightx='0.3'> + <NumberEditor id='fishingOperationNumberField' + constructorParams='this'/> + </cell> + <cell> + <JLabel id='trawlNetNumberLabel'/> + </cell> + <cell weightx='0.3'> + <NumberEditor id='trawlNetNumberField' constructorParams='this'/> + </cell> </row> <!-- Strate d'association / Sous Strate / Localité --> @@ -183,9 +200,9 @@ <cell> <JPanel layout="{new GridLayout(1,0)}"> <JRadioButton id='gearShootingCoordinatesDDRadio' - onActionPerformed='handler.setUseSexagecimalFormat(false)'/> + onActionPerformed='handler.setUseSexagecimalFormat(false)'/> <JRadioButton id='gearShootingCoordinatesDMSRadio' - onActionPerformed='handler.setUseSexagecimalFormat(true)'/> + onActionPerformed='handler.setUseSexagecimalFormat(true)'/> </JPanel> </cell> <cell> @@ -208,34 +225,44 @@ </cell> <cell weightx='1'> <JPanel id='gearShootingStartLatitudePanel'> - <NumberEditor id='gearShootingStartLatitudeDDField' constraints='"DD"' + <NumberEditor id='gearShootingStartLatitudeDDField' + constraints='"DD"' constructorParams='this'/> - <JPanel layout="{new GridLayout(1,0)}" constraints='"DMS"'> - <NumberEditor id='gearShootingStartLatitudeDMSDegreeField' - constructorParams='this' styleClass='degree'/> - - <NumberEditor id='gearShootingStartLatitudeDMSMinuteField' - constructorParams='this' styleClass='minute'/> - - <NumberEditor id='gearShootingStartLatitudeDMSSecondField' - constructorParams='this' styleClass='second'/> + <JPanel layout="{new GridLayout(1,0)}" + constraints='"DMS"'> + <NumberEditor + id='gearShootingStartLatitudeDMSDegreeField' + constructorParams='this' styleClass='degree'/> + + <NumberEditor + id='gearShootingStartLatitudeDMSMinuteField' + constructorParams='this' styleClass='minute'/> + + <NumberEditor + id='gearShootingStartLatitudeDMSSecondField' + constructorParams='this' styleClass='second'/> </JPanel> -<!-- --> + <!-- --> </JPanel> </cell> <cell weightx='1'> <JPanel id='gearShootingStartLongitudePanel'> - <NumberEditor id='gearShootingStartLongitudeDDField' constraints='"DD"' + <NumberEditor id='gearShootingStartLongitudeDDField' + constraints='"DD"' constructorParams='this'/> - <JPanel layout="{new GridLayout(1,0)}" constraints='"DMS"'> - <NumberEditor id='gearShootingStartLongitudeDMSDegreeField' - constructorParams='this' styleClass='degree'/> - - <NumberEditor id='gearShootingStartLongitudeDMSMinuteField' - constructorParams='this' styleClass='minute'/> - - <NumberEditor id='gearShootingStartLongitudeDMSSecondField' - constructorParams='this' styleClass='second'/> + <JPanel layout="{new GridLayout(1,0)}" + constraints='"DMS"'> + <NumberEditor + id='gearShootingStartLongitudeDMSDegreeField' + constructorParams='this' styleClass='degree'/> + + <NumberEditor + id='gearShootingStartLongitudeDMSMinuteField' + constructorParams='this' styleClass='minute'/> + + <NumberEditor + id='gearShootingStartLongitudeDMSSecondField' + constructorParams='this' styleClass='second'/> </JPanel> </JPanel> </cell> @@ -254,33 +281,43 @@ </cell> <cell weightx='1'> <JPanel id='gearShootingEndLatitudePanel'> - <NumberEditor id='gearShootingEndLatitudeDDField' constraints='"DD"' + <NumberEditor id='gearShootingEndLatitudeDDField' + constraints='"DD"' constructorParams='this'/> - <JPanel layout="{new GridLayout(1,0)}" constraints='"DMS"'> - <NumberEditor id='gearShootingEndLatitudeDMSDegreeField' - constructorParams='this' styleClass='degree'/> - - <NumberEditor id='gearShootingEndLatitudeDMSMinuteField' - constructorParams='this' styleClass='minute'/> - - <NumberEditor id='gearShootingEndLatitudeDMSSecondField' - constructorParams='this' styleClass='second'/> + <JPanel layout="{new GridLayout(1,0)}" + constraints='"DMS"'> + <NumberEditor + id='gearShootingEndLatitudeDMSDegreeField' + constructorParams='this' styleClass='degree'/> + + <NumberEditor + id='gearShootingEndLatitudeDMSMinuteField' + constructorParams='this' styleClass='minute'/> + + <NumberEditor + id='gearShootingEndLatitudeDMSSecondField' + constructorParams='this' styleClass='second'/> </JPanel> </JPanel> </cell> <cell weightx='1'> <JPanel id='gearShootingEndLongitudePanel'> - <NumberEditor id='gearShootingEndLongitudeDDField' constraints='"DD"' + <NumberEditor id='gearShootingEndLongitudeDDField' + constraints='"DD"' constructorParams='this'/> - <JPanel layout="{new GridLayout(1,0)}" constraints='"DMS"'> - <NumberEditor id='gearShootingEndLongitudeDMSDegreeField' - constructorParams='this' styleClass='degree'/> - - <NumberEditor id='gearShootingEndLongitudeDMSMinuteField' - constructorParams='this' styleClass='minute'/> - - <NumberEditor id='gearShootingEndLongitudeDMSSecondField' - constructorParams='this' styleClass='second'/> + <JPanel layout="{new GridLayout(1,0)}" + constraints='"DMS"'> + <NumberEditor + id='gearShootingEndLongitudeDMSDegreeField' + constructorParams='this' styleClass='degree'/> + + <NumberEditor + id='gearShootingEndLongitudeDMSMinuteField' + constructorParams='this' styleClass='minute'/> + + <NumberEditor + id='gearShootingEndLongitudeDMSSecondField' + constructorParams='this' styleClass='second'/> </JPanel> </JPanel> </cell> @@ -305,9 +342,9 @@ </cell> <cell> <JPanel layout="{new BorderLayout()}"> - <JLabel id='distanceChaluteeLabel' + <JLabel id='trawlDistanceLabel' constraints='BorderLayout.WEST'/> - <NumberEditor id='distanceChaluteeField' + <NumberEditor id='trawlDistanceField' constraints='BorderLayout.CENTER' constructorParams='this'/> </JPanel> @@ -317,8 +354,10 @@ </cell> <cell> <JPanel layout="{new BorderLayout()}"> - <JLabel id='dureeLabel' constraints='BorderLayout.WEST'/> - <JTextField id='dureeField' constraints='BorderLayout.CENTER'/> + <JLabel id='durationLabel' + constraints='BorderLayout.WEST'/> + <JTextField id='durationField' + constraints='BorderLayout.CENTER'/> </JPanel> </cell> </row> @@ -363,15 +402,39 @@ </row> <!-- Saisisseur --> - <row weighty='0.3'> + <row weighty='0.2'> <cell columns='6'> - <BeanDoubleList id='saisisseurList' genericType='Person'/> + <JPanel layout='{new GridLayout(1,0)}'> + <BeanDoubleList id='saisisseurList' genericType='Person'/> + <Table fill="both" weightx='1' id='traitVesselPanel'> + <row> + <cell anchor='west'> + <JLabel id='vesselLabel'/> + </cell> + <cell weightx="1.0" fill="both"> + <BeanComboBox id='vesselComboBox' + constructorParams='this' + genericType='Vessel'/> + </cell> + </row> + <row> + <cell anchor='west'> + <JLabel id='gearLabel'/> + </cell> + <cell> + <BeanComboBox id='gearComboBox' + constructorParams='this' + genericType='Gear'/> + </cell> + </row> + </Table> + </JPanel> </cell> </row> <!-- Commentaire --> - <row weighty='0.3' fill='both'> - <cell columns='6' fill='both'> + <row weighty='0.8'> + <cell columns='6'> <JScrollPane id='commentPane' onFocusGained='commentField.requestFocus()'> <JTextArea id='commentField' 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-17 16:31:22 UTC (rev 216) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-01-17 16:50:14 UTC (rev 217) @@ -29,7 +29,9 @@ import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.persistence.entities.data.Program; import fr.ifremer.tutti.persistence.entities.referential.FishingOperationLocation; +import fr.ifremer.tutti.persistence.entities.referential.Gear; import fr.ifremer.tutti.persistence.entities.referential.Person; +import fr.ifremer.tutti.persistence.entities.referential.Vessel; import fr.ifremer.tutti.persistence.entities.referential.Zone; import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel; @@ -103,10 +105,13 @@ EditFishingOperationUIModel.PROPERTY_GEAR_SHOOTING_END_LONGITUDE, EditFishingOperationUIModel.PROPERTY_GEAR_SHOOTING_END_DATE, EditFishingOperationUIModel.PROPERTY_FISHING_OPERATION_RECTILIGNE, - EditFishingOperationUIModel.PROPERTY_DISTANCE_CHALUTEE, + EditFishingOperationUIModel.PROPERTY_TRAWL_DISTANCE, EditFishingOperationUIModel.PROPERTY_FISHING_OPERATION_VALID, EditFishingOperationUIModel.PROPERTY_LOCATION, EditFishingOperationUIModel.PROPERTY_SAISISSEUR, + EditFishingOperationUIModel.PROPERTY_VESSEL, + EditFishingOperationUIModel.PROPERTY_GEAR, + EditFishingOperationUIModel.PROPERTY_POCHE_NUMBER, EditFishingOperationUIModel.PROPERTY_COMMENT); } @@ -185,6 +190,14 @@ persistenceService.getAllPerson(), model.getSaisisseur()); + initBeanComboBox(ui.getVesselComboBox(), + Lists.<Vessel>newArrayList(), + null); + + initBeanComboBox(ui.getGearComboBox(), + Lists.<Gear>newArrayList(), + null); + Program program = TuttiUIUtil.getProgram(ui); Preconditions.checkNotNull(program, "Could not find program in ui context"); @@ -352,6 +365,12 @@ FishingOperationLocation subStrata = bean.getSubStrata(); FishingOperationLocation location = bean.getLocation(); + // update gear universe + ui.getGearComboBox().setData(Lists.newArrayList(bean.getCruise().getGear())); + + // update vessel universe + ui.getVesselComboBox().setData(Lists.newArrayList(bean.getCruise().getVessel())); + model.fromBean(bean); // to be sure combo list will be reloaded Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java 2013-01-17 16:31:22 UTC (rev 216) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java 2013-01-17 16:50:14 UTC (rev 217) @@ -108,8 +108,10 @@ public static final String PROPERTY_FISHING_OPERATION_RECTILIGNE = "fishingOperationRectiligne"; - public static final String PROPERTY_DISTANCE_CHALUTEE = "distanceChalutee"; + public static final String PROPERTY_TRAWL_DISTANCE = "trawlDistance"; + public static final String PROPERTY_TRAWL_NET_NUMBER = "trawlNetNumber"; + public static final String PROPERTY_FISHING_OPERATION_VALID = "fishingOperationValid"; public static final String PROPERTY_LOCATION = "location"; @@ -124,6 +126,8 @@ public static final String PROPERTY_VALIDATION_CONTEXT = "validationContext"; + public static final String PROPERTY_POCHE_NUMBER = "trawlNetNumber"; + /** * Flag when there is no fishing operation selected. * @@ -165,7 +169,7 @@ protected boolean fishingOperationRectiligne; - protected Float distanceChalutee; + protected Float trawlDistance; protected Boolean fishingOperationValid; @@ -183,6 +187,8 @@ protected Vessel vessel; + protected Integer trawlNetNumber; + protected static Binder<EditFishingOperationUIModel, FishingOperation> toBeanBinder = BinderFactory.newBinder(EditFishingOperationUIModel.class, FishingOperation.class); @@ -530,14 +536,14 @@ firePropertyChange(PROPERTY_FISHING_OPERATION_RECTILIGNE, oldValue, fishingOperationRectiligne); } - public Float getDistanceChalutee() { - return distanceChalutee; + public Float getTrawlDistance() { + return trawlDistance; } - public void setDistanceChalutee(Float distanceChalutee) { - Object oldValue = getDistanceChalutee(); - this.distanceChalutee = distanceChalutee; - firePropertyChange(PROPERTY_DISTANCE_CHALUTEE, oldValue, distanceChalutee); + public void setTrawlDistance(Float trawlDistance) { + Object oldValue = getTrawlDistance(); + this.trawlDistance = trawlDistance; + firePropertyChange(PROPERTY_TRAWL_DISTANCE, oldValue, trawlDistance); } public Boolean getFishingOperationValid() { @@ -613,6 +619,16 @@ firePropertyChange(PROPERTY_VESSEL, oldValue, vessel); } + public Integer getTrawlNetNumber() { + return trawlNetNumber; + } + + public void setTrawlNetNumber(Integer trawlNetNumber) { + Object oldValue = getTrawlNetNumber(); + this.trawlNetNumber = trawlNetNumber; + firePropertyChange(PROPERTY_TRAWL_NET_NUMBER, oldValue, trawlNetNumber); + } + @Override protected FishingOperation newEntity() { return fishingOperation; Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java 2013-01-17 16:31:22 UTC (rev 216) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java 2013-01-17 16:50:14 UTC (rev 217) @@ -112,6 +112,11 @@ List<FishingOperation> fishingOperations = persistenceService.getAllFishingOperation(cruiseId); + + //TODO make sure to use selection cruise ? + for (FishingOperation fishingOperation : fishingOperations) { + fishingOperation.setCruise(cruise); + } model.setFishingOperation(fishingOperations); if (log.isInfoEnabled()) { @@ -199,12 +204,12 @@ //TODO Should select gear from possible one ? Gear gear = newFishingOperation.getCruise().getGear(0); newFishingOperation.setGear(gear); + newFishingOperation.setTrawlNetNumber(1); // by default use the current day with no time information Date currentDate = DateUtils.setMinutes( DateUtils.setHours(new Date(), 0), 0); - newFishingOperation.setDate(currentDate); newFishingOperation.setGearShootingStartDate(currentDate); newFishingOperation.setGearShootingEndDate(currentDate); Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIModel.java 2013-01-17 16:31:22 UTC (rev 216) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIModel.java 2013-01-17 16:50:14 UTC (rev 217) @@ -26,8 +26,6 @@ import com.google.common.collect.Lists; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.jdesktop.beans.AbstractSerializableBean; import java.util.List; @@ -40,22 +38,16 @@ */ public class FishingOperationsUIModel extends AbstractSerializableBean { - private static final Log log = LogFactory.getLog(FishingOperationsUIModel.class); - private static final long serialVersionUID = 1L; public static final String PROPERTY_FISHING_OPERATION = "fishingOperation"; public static final String PROPERTY_SELECTED_FISHING_OPERATION = "selectedFishingOperation"; -// public static final String PROPERTY_CRUISE = "cruise"; - protected List<FishingOperation> fishingOperation; protected FishingOperation selectedFishingOperation; -// protected Cruise cruise; - public List<FishingOperation> getFishingOperation() { return fishingOperation; } @@ -99,14 +91,4 @@ this.selectedFishingOperation = selectedFishingOperation; firePropertyChange(PROPERTY_SELECTED_FISHING_OPERATION, oldValue, selectedFishingOperation); } - -// public Cruise getCruise() { -// return cruise; -// } -// -// public void setCruise(Cruise cruise) { -// Object oldValue = getCruise(); -// this.cruise = cruise; -// firePropertyChange(PROPERTY_CRUISE, oldValue, cruise); -// } } Modified: trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIModel-error-validation.xml =================================================================== --- trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIModel-error-validation.xml 2013-01-17 16:31:22 UTC (rev 216) +++ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIModel-error-validation.xml 2013-01-17 16:50:14 UTC (rev 217) @@ -45,9 +45,9 @@ </field-validator> </field> - <field name="poche"> + <field name="trawlNet"> <field-validator type="required" short-circuit="true"> - <message>tutti.validator.error.cruise.poche.required</message> + <message>tutti.validator.error.cruise.trawlNet.required</message> </field-validator> </field> @@ -106,4 +106,11 @@ </field-validator> </field> + <field name="comment"> + <field-validator type="stringlength" short-circuit="true"> + <param name="maxLength">2000</param> + <message>tutti.validator.error.comment.too.long##${maxLength}</message> + </field-validator> + </field> + </validators> Modified: 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-error-validation.xml 2013-01-17 16:31:22 UTC (rev 216) +++ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-edit-error-validation.xml 2013-01-17 16:50:14 UTC (rev 217) @@ -35,6 +35,13 @@ </message> </field-validator> + <field-validator type="stringlength" short-circuit="true"> + <param name="maxLength">40</param> + <message> + tutti.validator.error.fishingOperation.stationNumber.too.long##${maxLength} + </message> + </field-validator> + </field> <field name="fishingOperationNumber"> @@ -54,4 +61,11 @@ </field-validator> </field> + + <field name="comment"> + <field-validator type="stringlength" short-circuit="true"> + <param name="maxLength">2000</param> + <message>tutti.validator.error.comment.too.long##${maxLength}</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-17 16:31:22 UTC (rev 216) +++ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-validate-error-validation.xml 2013-01-17 16:50:14 UTC (rev 217) @@ -35,6 +35,16 @@ </message> </field-validator> + <field-validator type="fieldexpressionwithparams" short-circuit="true"> + <param name="intParams">size:40</param> + <param name="expression"> + <![CDATA[ stationNumber.length() < ints.size ]]> + </param> + <message> + tutti.validator.error.fishingOperation.stationNumber.too.long##${ints.size} + </message> + </field-validator> + </field> <field name="fishingOperationNumber"> @@ -344,4 +354,11 @@ </field> + <field name="comment"> + <field-validator type="stringlength" short-circuit="true"> + <param name="maxLength">2000</param> + <message>tutti.validator.error.comment.too.long##${maxLength}</message> + </field-validator> + </field> + </validators> Modified: trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIModel-error-validation.xml =================================================================== --- trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIModel-error-validation.xml 2013-01-17 16:31:22 UTC (rev 216) +++ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIModel-error-validation.xml 2013-01-17 16:50:14 UTC (rev 217) @@ -42,4 +42,12 @@ </field-validator> </field> + + <field name="comment"> + <field-validator type="stringlength" short-circuit="true"> + <param name="maxLength">2000</param> + <message>tutti.validator.error.comment.too.long##${maxLength}</message> + </field-validator> + </field> + </validators> Modified: trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel-error-validation.xml =================================================================== --- trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel-error-validation.xml 2013-01-17 16:31:22 UTC (rev 216) +++ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel-error-validation.xml 2013-01-17 16:50:14 UTC (rev 217) @@ -32,4 +32,11 @@ </field-validator> </field> + <field name="comment"> + <field-validator type="stringlength" short-circuit="true"> + <param name="maxLength">2000</param> + <message>tutti.validator.error.comment.too.long##${maxLength}</message> + </field-validator> + </field> + </validators> \ No newline at end of file Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties =================================================================== --- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-01-17 16:31:22 UTC (rev 216) +++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-01-17 16:50:14 UTC (rev 217) @@ -88,9 +88,9 @@ tutti.label.cruise.country=Pays tutti.label.cruise.endDate=Date de fin tutti.label.cruise.name=Nom -tutti.label.cruise.poche=Nombre de poches tutti.label.cruise.program=Série tutti.label.cruise.surveyPart=Série partielle +tutti.label.cruise.trawlNet=Nombre de poches tutti.label.cruise.year=Année tutti.label.filterSpeciesBatchMode.label=Filtre tutti.label.filterSpeciesBatchMode.label.tip=Pour filtrer les lots @@ -109,11 +109,12 @@ tutti.label.filterVesselType.scientific.tip=Uniquement les navires scientifiques tutti.label.fishingOperation.date=Date tutti.label.fishingOperation.distanceChalutee=Distance chalutée -tutti.label.fishingOperation.duree=Durée +tutti.label.fishingOperation.duration=Durée tutti.label.fishingOperation.fishingOperationInvalid=Trait invalide tutti.label.fishingOperation.fishingOperationNumber=Numéro de Trait tutti.label.fishingOperation.fishingOperationRectiligne=Trait rectiligne tutti.label.fishingOperation.fishingOperationValid=Trait valide +tutti.label.fishingOperation.gear=Engin tutti.label.fishingOperation.gearDate=Date tutti.label.fishingOperation.gearLatitude=Latitude tutti.label.fishingOperation.gearLongitude=Longitude @@ -126,6 +127,9 @@ tutti.label.fishingOperation.stationNumber=Code Station tutti.label.fishingOperation.strata=Strate tutti.label.fishingOperation.subStrata=Sous strate +tutti.label.fishingOperation.trawlDistance=Distance chalutée +tutti.label.fishingOperation.trawlNetNumber=Numéro de poche +tutti.label.fishingOperation.vessel=Navire tutti.label.frequencyConfiguration.lengthStepCaracteristic=Type de mesure tutti.label.frequencyConfiguration.maxStep=Classe max tutti.label.frequencyConfiguration.minStep=Classe min @@ -298,13 +302,15 @@ tutti.validator.error.cruise.headOfMission.required=Au moins un chef de mission doit être sélectionné tutti.validator.error.cruise.headOfSortRoom.required=Au moins un responsable de salle de tri doit être sélectionné tutti.validator.error.cruise.name.required=Le nom de la campagne est obligatoire -tutti.validator.error.cruise.poche.required=Le nombre de poche est obligatoire tutti.validator.error.cruise.program.required=La série est obligatoire +tutti.validator.error.cruise.trawlNet.required=Le nombre de poche est obligatoire tutti.validator.error.cruise.vessel.required=Au moins un bateau doit être sélectionné tutti.validator.error.cruise.year.required=L'année est obligatoire +tutti.validator.error.comment.too.long=Taille de commentaire trop longue (limitée à %s caractères) tutti.validator.error.fishingOperation.date.required=La date du fishingOperation est obligatoire tutti.validator.error.fishingOperation.fishingOperationNumber.required=Le numéro de trait est obligatoire tutti.validator.error.fishingOperation.stationNumber.required=Le numéro de station est obligatoire +tutti.validator.error.fishingOperation.stationNumber.too.long=Valeur trop longue (limitée à %s caractères) tutti.validator.error.program.name.required=Le nom de la série est obligatoire tutti.validator.error.program.zone.required=La zone de la série est obligatoire tutti.validator.error.protocol.name.required=Le nom du protocol est obligatoire
participants (1)
-
tchemit@users.forge.codelutin.com