This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository tutti. See http://git.codelutin.com/tutti.git commit b24f255cbd8fa25374158a86dd183fe02fcb27ae Author: Kevin Morin <morin@codelutin.com> Date: Mon Dec 15 10:49:02 2014 +0100 fixes #6298 [PROTOCOLE] champ heure à ajouter --- .../entities/data/FishingOperations.java | 13 ++++ .../fr/ifremer/tutti/service/TuttiCsvUtil.java | 2 + .../operationimport/ImportFromColumnFileModel.java | 81 ++++++++++++++++++++-- .../content/protocol/EditProtocolUIHandler.java | 13 +++- .../resources/i18n/tutti-ui-swing_en_GB.properties | 4 ++ .../resources/i18n/tutti-ui-swing_fr_FR.properties | 4 ++ 6 files changed, 111 insertions(+), 6 deletions(-) diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/FishingOperations.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/FishingOperations.java new file mode 100644 index 0000000..8ce113a --- /dev/null +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/FishingOperations.java @@ -0,0 +1,13 @@ +package fr.ifremer.tutti.persistence.entities.data; + +import javax.annotation.Generated; + +@Generated(value = "org.nuiton.eugene.java.SimpleJavaBeanTransformer", date = "Fri Dec 12 17:02:04 CET 2014") +public class FishingOperations extends AbstractFishingOperations { + + public static final String PROPERTY_GEAR_SHOOTING_START_DAY = "gearShootingStartDay"; + public static final String PROPERTY_GEAR_SHOOTING_START_TIME = "gearShootingStartTime"; + public static final String PROPERTY_GEAR_SHOOTING_END_DAY = "gearShootingEndDay"; + public static final String PROPERTY_GEAR_SHOOTING_END_TIME = "gearShootingEndTime"; + +} //FishingOperations diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java index 3206ce0..672cd55 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java @@ -191,6 +191,8 @@ public class TuttiCsvUtil extends Common { } }; + public static final ValueParserFormatter<Date> TIME = new DateValue("HH:mm"); + public static abstract class AbstractTuttiImportExportModel<M> extends AbstractImportExportModel<M> { public AbstractTuttiImportExportModel(char separator) { diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/operationimport/ImportFromColumnFileModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/operationimport/ImportFromColumnFileModel.java index 0fedc3a..3de3804 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/operationimport/ImportFromColumnFileModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/operationimport/ImportFromColumnFileModel.java @@ -27,6 +27,7 @@ package fr.ifremer.tutti.service.operationimport; import fr.ifremer.tutti.persistence.entities.CaracteristicMap; import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; +import fr.ifremer.tutti.persistence.entities.data.FishingOperations; import fr.ifremer.tutti.persistence.entities.protocol.CaracteristicMappingRow; import fr.ifremer.tutti.persistence.entities.protocol.CaracteristicType; import fr.ifremer.tutti.persistence.entities.protocol.OperationFieldMappingRow; @@ -41,12 +42,16 @@ import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.service.TuttiCsvUtil; import fr.ifremer.tutti.service.TuttiDataContext; import org.apache.commons.lang3.StringUtils; +import org.nuiton.csv.Common; import org.nuiton.csv.ValueParser; import org.nuiton.csv.ValueSetter; +import org.nuiton.util.DateUtil; import java.io.Serializable; import java.util.ArrayList; +import java.util.Calendar; import java.util.Collection; +import java.util.Date; import java.util.List; import java.util.Map; import java.util.Set; @@ -79,6 +84,7 @@ public class ImportFromColumnFileModel extends TuttiCsvUtil.AbstractTuttiImportM if (StringUtils.isNotBlank(importColumn) && importColumnsInHeaders) { String field = mappingRow.getField(); + ValueSetter valueSetter = null; ValueParser valueParser; switch (field) { case FishingOperation.PROPERTY_FISHING_OPERATION_NUMBER: @@ -93,9 +99,70 @@ public class ImportFromColumnFileModel extends TuttiCsvUtil.AbstractTuttiImportM valueParser = TuttiCsvUtil.FLOAT; break; - case FishingOperation.PROPERTY_GEAR_SHOOTING_START_DATE: - case FishingOperation.PROPERTY_GEAR_SHOOTING_END_DATE: - valueParser = TuttiCsvUtil.DAY_TIME; + case FishingOperations.PROPERTY_GEAR_SHOOTING_START_DAY: + valueParser = TuttiCsvUtil.DAY; + valueSetter = new ValueSetter<FishingOperation, Date>() { + @Override + public void set(FishingOperation bean, Date value) throws Exception { + Date date = bean.getGearShootingStartDate(); + if (date == null) { + date = value; + + } else { + date = DateUtil.getDateAndTime(value, date, false, false); + } + bean.setGearShootingStartDate(date); + } + }; + break; + case FishingOperations.PROPERTY_GEAR_SHOOTING_END_DAY: + valueParser = TuttiCsvUtil.DAY; + valueSetter = new ValueSetter<FishingOperation, Date>() { + @Override + public void set(FishingOperation bean, Date value) throws Exception { + Date date = bean.getGearShootingEndDate(); + if (date == null) { + date = value; + + } else { + date = DateUtil.getDateAndTime(value, date, false, false); + } + bean.setGearShootingEndDate(date); + } + }; + break; + + case FishingOperations.PROPERTY_GEAR_SHOOTING_START_TIME: + valueParser = TuttiCsvUtil.TIME; + valueSetter = new ValueSetter<FishingOperation, Date>() { + @Override + public void set(FishingOperation bean, Date value) throws Exception { + Date date = bean.getGearShootingStartDate(); + if (date == null) { + date = value; + + } else { + date = DateUtil.getDateAndTime(date, value, false, false); + } + bean.setGearShootingStartDate(date); + } + }; + break; + case FishingOperations.PROPERTY_GEAR_SHOOTING_END_TIME: + valueParser = TuttiCsvUtil.TIME; + valueSetter = new ValueSetter<FishingOperation, Date>() { + @Override + public void set(FishingOperation bean, Date value) throws Exception { + Date date = bean.getGearShootingEndDate(); + if (date == null) { + date = value; + + } else { + date = DateUtil.getDateAndTime(date, value, false, false); + } + bean.setGearShootingEndDate(date); + } + }; break; case FishingOperation.PROPERTY_FISHING_OPERATION_RECTILIGNE: @@ -154,7 +221,13 @@ public class ImportFromColumnFileModel extends TuttiCsvUtil.AbstractTuttiImportM valueParser = TuttiCsvUtil.STRING; } - newMandatoryColumn(importColumn, field, valueParser); + + if (valueSetter == null) { + newMandatoryColumn(importColumn, field, valueParser); + + } else { + newMandatoryColumn(importColumn, valueParser, valueSetter); + } } else if (!importColumnsInHeaders) { throw new ImportFromColumnFileMissingHeaderException(importColumn); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java index 8333438..573498a 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java @@ -32,6 +32,7 @@ import com.google.common.collect.Multimap; import com.google.common.collect.Sets; import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; +import fr.ifremer.tutti.persistence.entities.data.FishingOperations; import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel; import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModelEntry; import fr.ifremer.tutti.persistence.entities.protocol.CaracteristicMappingRow; @@ -88,6 +89,7 @@ import java.util.List; import java.util.Map; import java.util.Set; +import static org.nuiton.i18n.I18n.n; import static org.nuiton.i18n.I18n.t; @@ -717,13 +719,20 @@ public class EditProtocolUIHandler extends AbstractTuttiUIHandler<EditProtocolUI } }); + n("tutti.editFishingOperation.field.gearShootingStartDay"); + n("tutti.editFishingOperation.field.gearShootingStartTime"); + n("tutti.editFishingOperation.field.gearShootingEndDay"); + n("tutti.editFishingOperation.field.gearShootingEndTime"); + List<String> properties = Lists.newArrayList( FishingOperation.PROPERTY_STATION_NUMBER, FishingOperation.PROPERTY_FISHING_OPERATION_NUMBER, - FishingOperation.PROPERTY_GEAR_SHOOTING_START_DATE, + FishingOperations.PROPERTY_GEAR_SHOOTING_START_DAY, + FishingOperations.PROPERTY_GEAR_SHOOTING_START_TIME, FishingOperation.PROPERTY_GEAR_SHOOTING_START_LATITUDE, FishingOperation.PROPERTY_GEAR_SHOOTING_START_LONGITUDE, - FishingOperation.PROPERTY_GEAR_SHOOTING_END_DATE, + FishingOperations.PROPERTY_GEAR_SHOOTING_END_DAY, + FishingOperations.PROPERTY_GEAR_SHOOTING_END_TIME, FishingOperation.PROPERTY_GEAR_SHOOTING_END_LATITUDE, FishingOperation.PROPERTY_GEAR_SHOOTING_END_LONGITUDE, FishingOperation.PROPERTY_FISHING_OPERATION_RECTILIGNE, diff --git a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties index c807422..8e25091 100644 --- a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties +++ b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties @@ -745,17 +745,21 @@ tutti.editFishingOperation.field.gearLongitude.tip= tutti.editFishingOperation.field.gearShootingEnd= tutti.editFishingOperation.field.gearShootingEnd.tip= tutti.editFishingOperation.field.gearShootingEndDate= +tutti.editFishingOperation.field.gearShootingEndDay= tutti.editFishingOperation.field.gearShootingEndLatitude= tutti.editFishingOperation.field.gearShootingEndLatitude.tip= tutti.editFishingOperation.field.gearShootingEndLongitude= tutti.editFishingOperation.field.gearShootingEndLongitude.tip= +tutti.editFishingOperation.field.gearShootingEndTime= tutti.editFishingOperation.field.gearShootingStart= tutti.editFishingOperation.field.gearShootingStart.tip= tutti.editFishingOperation.field.gearShootingStartDate= +tutti.editFishingOperation.field.gearShootingStartDay= tutti.editFishingOperation.field.gearShootingStartLatitude= tutti.editFishingOperation.field.gearShootingStartLatitude.tip= tutti.editFishingOperation.field.gearShootingStartLongitude= tutti.editFishingOperation.field.gearShootingStartLongitude.tip= +tutti.editFishingOperation.field.gearShootingStartTime= tutti.editFishingOperation.field.gearTime= tutti.editFishingOperation.field.gearTime.tip= tutti.editFishingOperation.field.location= diff --git a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties index 09b59bf..516d354 100644 --- a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties +++ b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties @@ -727,17 +727,21 @@ tutti.editFishingOperation.field.gearLongitude.tip=Longitude tutti.editFishingOperation.field.gearShootingEnd=Fin de traîne tutti.editFishingOperation.field.gearShootingEnd.tip=Informations sur la fin de pêche tutti.editFishingOperation.field.gearShootingEndDate=Date de fin de traîne +tutti.editFishingOperation.field.gearShootingEndDay=Jour de fin de traîne tutti.editFishingOperation.field.gearShootingEndLatitude=Latitude de fin de traîne tutti.editFishingOperation.field.gearShootingEndLatitude.tip=<html><body>Latitude de fin de traîne.<br/><strong>Attention, pour saisir une latitude négative en mode DD, il faut entrer -.XXX et non pas -0.XXX</strong></body></html> tutti.editFishingOperation.field.gearShootingEndLongitude=Longitude de fin de traîne tutti.editFishingOperation.field.gearShootingEndLongitude.tip=<html><body>Longitude de fin de traîne.<br/><strong>Attention, pour saisir une longitude négative en mode DD, il faut entrer -.XXX et non pas -0.XXX</strong></body></html> +tutti.editFishingOperation.field.gearShootingEndTime=Heure de fin de traîne tutti.editFishingOperation.field.gearShootingStart=Début de traîne tutti.editFishingOperation.field.gearShootingStart.tip=Informations sur le début de pêche tutti.editFishingOperation.field.gearShootingStartDate=Date de début de traîne +tutti.editFishingOperation.field.gearShootingStartDay=Jour de début de traîne tutti.editFishingOperation.field.gearShootingStartLatitude=Latitude de début de traîne tutti.editFishingOperation.field.gearShootingStartLatitude.tip=<html><body>Latitude de début de traîne.<br/><strong>Attention, pour saisir une latitude négative en mode DD, il faut entrer -.XXX et non pas -0.XXX</strong></body></html> tutti.editFishingOperation.field.gearShootingStartLongitude=Longitude de début de traîne tutti.editFishingOperation.field.gearShootingStartLongitude.tip=<html><body>Longitude de début de traîne.<br/><strong>Attention, pour saisir une longitude négative en mode DD, il faut entrer -.XXX et non pas -0.XXX</strong></body></html> +tutti.editFishingOperation.field.gearShootingStartTime=Heure de début de traîne tutti.editFishingOperation.field.gearTime=Heure tutti.editFishingOperation.field.gearTime.tip=Heures de début et fin de trait tutti.editFishingOperation.field.location=Localité -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.