branch develop updated (02fd51b -> a718909)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository observe. See http://git.codelutin.com/observe.git from 02fd51b refs #7553 noeuds de référentiels new 9b06a03 affichage de la calée dans l'arbre de navigation (refs #7598) new 5dd20f8 migration de l'écran (refs #7598) new 0fa1a91 ajout de la validation (refs #7598) new a718909 Merge branch 'feature/7598' into develop The 4 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit a71890963d335a26fced9f46bb953f979e985134 Merge: 02fd51b 0fa1a91 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Oct 14 17:22:14 2015 +0200 Merge branch 'feature/7598' into develop commit 0fa1a91608d938dfc29e0dcc2495f64e7b9b51c8 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Oct 14 17:21:30 2015 +0200 ajout de la validation (refs #7598) commit 5dd20f80b2e628adb649aae1ca2eb6795a0b447c Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Oct 14 14:12:29 2015 +0200 migration de l'écran (refs #7598) commit 9b06a035271aa10f27e0ca7826314285bc738e0a Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Oct 14 11:01:30 2015 +0200 affichage de la calée dans l'arbre de navigation (refs #7598) Summary of changes: .../ird/observe/ui/content/ContentUIManager.java | 2 +- .../ui/content/impl/seine/SetSeineUIHandler.java | 98 ++-------------------- .../ui/content/impl/seine/SetSeineUIModel.java | 3 - .../tree/loadors/ActivitySeineNodeChildLoador.java | 18 ++-- .../SetSeineDto-n1-create-error-validation.xml | 15 ++-- .../SetSeineDto-n1-create-warning-validation.xml | 2 +- .../SetSeineDto-n1-update-error-validation.xml | 18 ++-- .../SetSeineDto-n1-update-warning-validation.xml | 2 +- .../observe-application-swing_fr_FR.properties | 2 +- .../services/dto/seine/ActivitySeineDto.java | 9 +- .../observe/services/dto/seine/SetSeineDto.java | 77 +++++++++++++++++ .../service/seine/ActivitySeineServiceTopia.java | 7 +- 12 files changed, 124 insertions(+), 129 deletions(-) copy observe-entities-validation/src/main/resources/fr/ird/observe/entities/seine/SetSeine-n1-create-error-validation.xml => observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/SetSeineDto-n1-create-error-validation.xml (89%) copy observe-entities-validation/src/main/resources/fr/ird/observe/entities/seine/SetSeine-n1-update-warning-validation.xml => observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/SetSeineDto-n1-create-warning-validation.xml (89%) copy observe-entities-validation/src/main/resources/fr/ird/observe/entities/seine/SetSeine-n1-update-error-validation.xml => observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/SetSeineDto-n1-update-error-validation.xml (86%) copy observe-entities-validation/src/main/resources/fr/ird/observe/entities/seine/SetSeine-n1-update-warning-validation.xml => observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/SetSeineDto-n1-update-warning-validation.xml (89%) create mode 100644 observe-services-model/src/main/java/fr/ird/observe/services/dto/seine/SetSeineDto.java -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit 9b06a035271aa10f27e0ca7826314285bc738e0a Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Oct 14 11:01:30 2015 +0200 affichage de la calée dans l'arbre de navigation (refs #7598) --- .../ui/tree/loadors/ActivitySeineNodeChildLoador.java | 18 +++++++++--------- .../observe/services/dto/seine/ActivitySeineDto.java | 2 +- .../service/seine/ActivitySeineServiceTopia.java | 7 +++++-- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivitySeineNodeChildLoador.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivitySeineNodeChildLoador.java index 375c753..3b0442d 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivitySeineNodeChildLoador.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/loadors/ActivitySeineNodeChildLoador.java @@ -25,10 +25,12 @@ import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.ReferenceDtos; import fr.ird.observe.services.dto.ReferenceSetDto; +import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.services.dto.seine.ActivitySeineObservedSystemDto; import fr.ird.observe.services.dto.seine.FloatingObjectDto; import fr.ird.observe.services.dto.seine.SetSeineDto; import fr.ird.observe.services.service.seine.FloatingObjectService; +import fr.ird.observe.ui.tree.ActivitySeineNode; import fr.ird.observe.ui.tree.FloatingObjectSeineNode; import fr.ird.observe.ui.tree.ObserveNode; import fr.ird.observe.ui.tree.ObserveTreeHelper; @@ -77,16 +79,14 @@ public class ActivitySeineNodeChildLoador extends AbstractReferenceDtoChildLoado parentNode.add(child); - //FIXME -// ReferenceDto<ActivitySeineDto> activitySeine = ((ActivitySeineNode) parentNode).getEntity(); + ReferenceDto<ActivitySeineDto> activitySeineRef = ((ActivitySeineNode) parentNode).getEntity(); + ReferenceDto<SetSeineDto> setSeineRef = (ReferenceDto<SetSeineDto>) activitySeineRef.getPropertyValue(ActivitySeineDto.PROPERTY_SET_SEINE); + if (setSeineRef != null) { -// SetSeine set = activitySeine.getSetSeine(); -// if (set != null) { -// -// // si set present, ajout d'un noeud -// child = createSetNode(set); -// parentNode.add(child); -// } + // si set present, ajout d'un noeud + child = createSetNode(setSeineRef); + parentNode.add(child); + } // ajout des objets flottants super.loadChilds(model, parentNode, dataProvider); diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/seine/ActivitySeineDto.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/seine/ActivitySeineDto.java index 466bac7..aa9ab18 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/seine/ActivitySeineDto.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/seine/ActivitySeineDto.java @@ -10,7 +10,7 @@ public class ActivitySeineDto extends AbstractActivitySeineDto { public static final String ACTIVITY_FIN_DE_PECHE = "6"; - public static final String PROPERTY_HAS_SET_SEINE = "hasSetSeine"; + public static final String PROPERTY_SET_SEINE = "setSeine"; private static final long serialVersionUID = 3846974823980413495L; diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineServiceTopia.java index 7b1a6e9..68168c3 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineServiceTopia.java @@ -41,6 +41,7 @@ import fr.ird.observe.services.dto.result.SaveResultDto; import fr.ird.observe.services.dto.result.SaveResultDtos; import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.services.dto.seine.RouteDto; +import fr.ird.observe.services.dto.seine.SetSeineDto; import fr.ird.observe.services.service.DataNotFoundException; import fr.ird.type.CoordinateHelper; import org.nuiton.util.DateUtil; @@ -70,11 +71,13 @@ public class ActivitySeineServiceTopia extends ObserveServiceTopia implements Ac ReferenceDto<ActivitySeineDto> stub = ReferenceDtos.newReferenceDto(ActivitySeineDto.class, Lists.newArrayList(ActivitySeineDto.PROPERTY_TIME, ActivitySeineDto.PROPERTY_VESSEL_ACTIVITY_SEINE, - ActivitySeineDto.PROPERTY_HAS_SET_SEINE)); + ActivitySeineDto.PROPERTY_SET_SEINE)); stub.setId(activitySeine.getTopiaId()); stub.setPropertyValue(ActivitySeineDto.PROPERTY_TIME, activitySeine.getTime()); stub.setPropertyValue(ActivitySeineDto.PROPERTY_VESSEL_ACTIVITY_SEINE, referenceLocale.getLabel(activitySeine.getVesselActivitySeine())); - stub.setPropertyValue(ActivitySeineDto.PROPERTY_HAS_SET_SEINE, activitySeine.getSetSeine() != null); + if (activitySeine.getSetSeine() != null) { + stub.setPropertyValue(ActivitySeineDto.PROPERTY_SET_SEINE, entityToReferenceDto(SetSeineDto.class, activitySeine.getSetSeine())); + } stubs.add(stub); } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit 5dd20f80b2e628adb649aae1ca2eb6795a0b447c Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Oct 14 14:12:29 2015 +0200 migration de l'écran (refs #7598) --- .../ird/observe/ui/content/ContentUIManager.java | 2 +- .../ui/content/impl/seine/SetSeineUIHandler.java | 98 ++-------------------- .../ui/content/impl/seine/SetSeineUIModel.java | 3 - .../observe-application-swing_fr_FR.properties | 2 +- .../observe/services/dto/seine/SetSeineDto.java | 55 ++++++++++++ 5 files changed, 66 insertions(+), 94 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIManager.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIManager.java index d76bfe2..4d133c3 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIManager.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIManager.java @@ -131,7 +131,7 @@ public class ContentUIManager { addMapping(DATA, ActivitySeineDto.class, ActivitySeineObservedSystemDto.PROPERTY_OBSERVED_SYSTEM, ActivitySeineObservedSystemUI.class); addMapping(DATA, SetSeineDto.class, SetSeineUI.class); - addMapping(DATA, SetSeineDto.class, n("observe.tree.setSeineDto.unsaved"), SetSeineUI.class); + addMapping(DATA, SetSeineDto.class, n("observe.tree.setSeine.unsaved"), SetSeineUI.class); addMapping(DATA, SetSeineDto.class, SetSeineSchoolEstimateDto.PROPERTY_SCHOOL_ESTIMATE, SchoolEstimateUI.class); addMapping(DATA, SetSeineDto.class, SetSeineTargetCatchDto.PROPERTY_TARGET_CATCH, TargetCatchUI.class); addMapping(DATA, SetSeineDto.class, SetSeineDto.PROPERTY_TARGET_DISCARDED, TargetDiscardCatchUI.class); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/SetSeineUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/SetSeineUIHandler.java index c072e8c..37fe34e 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/SetSeineUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/SetSeineUIHandler.java @@ -21,11 +21,14 @@ */ package fr.ird.observe.ui.content.impl.seine; +import com.google.common.collect.ImmutableSet; import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.business.db.DataContext; import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.db.ObserveSwingDataSource; +import fr.ird.observe.services.dto.ReferenceDto; +import fr.ird.observe.services.dto.ReferenceDtos; import fr.ird.observe.services.dto.constants.seine.SchoolType; import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.services.dto.seine.RouteDto; @@ -122,7 +125,7 @@ public class SetSeineUIHandler extends ContentUIHandler<SetSeineDto> { return ContentMode.CREATE; } - if (dataContext.isSelectedOpen(ActivitySeineDto.class)) { + if (getOpenDataManager().isOpenActivitySeine(dataContext.getSelectedActivitySeineId())) { // l'activity est ouverte, mode édition return ContentMode.UPDATE; @@ -206,59 +209,6 @@ public class SetSeineUIHandler extends ContentUIHandler<SetSeineDto> { } } -// @Override -// protected SetSeine onPreCreate(TopiaContext tx, Object parent, SetSeine bean) throws TopiaException { -// -// ActivitySeine parentBean = (ActivitySeine) parent; -// -// // on utilise l'heure de l'activité comme début de calée -// Date date = DateUtil.getTime(parentBean.getTime(), false, false); -// -// bean.setStartTime(date); -// -// try { -// -// // pour les dates de fin on utilise la date de la route -// Route route = (Route) getDataService().loadEntity( -// getDataSource(), getDataContext().getSelectedRouteId(), false); -// -// bean.setEndSetTimeStamp(date); -// bean.setEndPursingTimeStamp(date); -// -// bean.setEndSetDate(route.getDate()); -// bean.setEndPursingDate(route.getDate()); -// -// } catch (DataSourceException e) { -// throw new TopiaException("Could not obtain route", e); -// } -// -// // recuperation du type de set a partir de l'activity -// SchoolType schoolType = parentBean.getSchoolType(); -// bean.setSchoolType(schoolType); -// return bean; -// } - -// @Override -// protected void onLoad(TopiaContext tx, SetSeine bean) throws TopiaException { -// super.onLoad(tx, bean); -// SetSeine editBean = getBean(); -// getDataContext().getOpenRouteId(); -// if (!editBean.isTargetSampleEmpty()) { -// for (TargetSample e : editBean.getTargetSample()) { -// e.isTargetLengthEmpty(); -// } -// } -// if (!editBean.isNonTargetSampleEmpty()) { -// for (NonTargetSample e : editBean.getNonTargetSample()) { -// e.isNonTargetLengthEmpty(); -// } -// } -// -// UIHelper.processDataBinding(getUi(), -// SetSeineUI.BINDING_END_SET_TIME_STAMP_DATE, -// SetSeineUI.BINDING_END_PURSING_TIME_STAMP_DATE); -// } - @Override public void startEditUI(String... binding) { ContentUIModel<SetSeineDto> model = getModel(); @@ -303,26 +253,6 @@ public class SetSeineUIHandler extends ContentUIHandler<SetSeineDto> { return true; } - //FIXME -// @Override -// protected SetSeine onCreate(TopiaContext tx, Object parent, SetSeine editBean) throws TopiaException { -// ActivitySeine parentBean = (ActivitySeine) parent; -// SetSeine beanToSave = ObserveDAOHelper.getSetSeineDAO(tx).create(); -// editBean.setTopiaId(beanToSave.getTopiaId()); -// parentBean.setSetSeine(beanToSave); -// return beanToSave; -// } - - //FIXME -// @Override -// protected SetSeine onUpdate(TopiaContext tx, Object parentBean, SetSeine beanToSave) throws TopiaException { -// -// getLoadBinder().copyExcluding(getBean(), beanToSave, -// SetSeine.PROPERTY_TARGET_SAMPLE, -// SetSeine.PROPERTY_NON_TARGET_SAMPLE); -// return beanToSave; -// } - @Override protected void afterSave(boolean refresh) { @@ -342,8 +272,11 @@ public class SetSeineUIHandler extends ContentUIHandler<SetSeineDto> { // remove old node and recreate new node ObserveNode parentNode = treeHelper.removeNode(node); - //FIXME -// node = treeHelper.addSetSeine(parentNode, bean); + + ReferenceDto<SetSeineDto> refBean = ReferenceDtos.newReferenceDto(SetSeineDto.class, ImmutableSet.of(SetSeineDto.PROPERTY_ID)); + refBean.setId(bean.getId()); + refBean.setPropertyValue(SetSeineDto.PROPERTY_ID, bean.getId()); + node = treeHelper.addSetSeine(parentNode, refBean); stopEditUI(); treeHelper.selectNode(node); @@ -365,19 +298,6 @@ public class SetSeineUIHandler extends ContentUIHandler<SetSeineDto> { return true; } - //FIXME -// @Override -// protected void onDelete(TopiaContext tx, Object parent, SetSeine beanToDelete) throws TopiaException { -// ActivitySeine parentBean = (ActivitySeine) parent; -// -// // on doit supprimer physiquement la set -// // car il n'y a pas de delete-orphan sur une telle -// // relation -// ObserveDAOHelper.getSetSeineDAO(tx).delete(parentBean.getSetSeine()); -// // supprime la reference sur l'activity -// parentBean.setSetSeine(null); -// } - protected void computeTabValidState(SwingValidatorMessageTableModel errorTableModel) { Set<String> errorProperties = new HashSet<String>(); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/SetSeineUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/SetSeineUIModel.java index 73fe431..cef7b9b 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/SetSeineUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/SetSeineUIModel.java @@ -115,9 +115,6 @@ public class SetSeineUIModel extends ContentUIModel<SetSeineDto> { SetSeineDto.PROPERTY_NON_TARGET_DISCARDED, SetSeineDto.PROPERTY_SCHOOL_TYPE, SetSeineDto.PROPERTY_SONAR_USED - //FIXME -// SetSeineDto.PROPERTY_TARGET_SAMPLE, -// SetSeineDto.PROPERTY_NON_TARGET_SAMPLE ); return builder; diff --git a/observe-application-swing/src/main/resources/i18n/observe-application-swing_fr_FR.properties b/observe-application-swing/src/main/resources/i18n/observe-application-swing_fr_FR.properties index 8e3b5c9..1803bd3 100644 --- a/observe-application-swing/src/main/resources/i18n/observe-application-swing_fr_FR.properties +++ b/observe-application-swing/src/main/resources/i18n/observe-application-swing_fr_FR.properties @@ -2305,7 +2305,7 @@ observe.tree.sensorUsed=Capteurs utilisés observe.tree.setLongline=Détails de l'opération observe.tree.setLonglineDto.unsaved=Nouvelle opération de pêche observe.tree.setSeine=Calée -observe.tree.setSeineDto.unsaved=Nouvelle calée +observe.tree.setSeine.unsaved=Nouvelle calée observe.tree.settingShape=Forme au filage observe.tree.sex=Sexe observe.tree.sizeMeasureType=Type de mesure de taille diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/seine/SetSeineDto.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/seine/SetSeineDto.java new file mode 100644 index 0000000..705b4af --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/seine/SetSeineDto.java @@ -0,0 +1,55 @@ +package fr.ird.observe.services.dto.seine; + +import org.nuiton.util.DateUtil; + +import java.util.Date; + +public class SetSeineDto extends AbstractSetSeineDto { + + private static final long serialVersionUID = 3546973062604141414L; + + public void setEndSetDate(Date endSetDate) { + if (endSetTimeStamp != null) { + Date dateAndTime = DateUtil.getDateAndTime(endSetDate, endSetTimeStamp, false, false); + setEndSetTimeStamp(dateAndTime); + } + } + + public void setEndSetTime(Date endSetTime) { + if (endSetTimeStamp != null) { + Date dateAndTime = DateUtil.getDateAndTime(endSetTimeStamp, endSetTime, false, false); + setEndSetTimeStamp(dateAndTime); + } + } + + public void setEndPursingDate(Date endPursingDate) { + if (endPursingTimeStamp != null) { + Date dateAndTime = DateUtil.getDateAndTime(endPursingDate, endPursingTimeStamp, false, false); + setEndPursingTimeStamp(dateAndTime); + } + } + + public void setEndPursingTime(Date endPursingTime) { + if (endPursingTimeStamp != null) { + Date dateAndTime = DateUtil.getDateAndTime(endPursingTimeStamp, endPursingTime, false, false); + setEndPursingTimeStamp(dateAndTime); + } + } + + public Date getEndSetDate() { + return endSetTimeStamp == null ? null : DateUtil.getDay(endSetTimeStamp); + } + + public Date getEndSetTime() { + return endSetTimeStamp == null ? null : DateUtil.getTime(endSetTimeStamp, false, false); + } + + public Date getEndPursingDate() { + return endPursingTimeStamp == null ? null : DateUtil.getDay(endPursingTimeStamp); + } + + public Date getEndPursingTime() { + return endPursingTimeStamp == null ? null : DateUtil.getTime(endPursingTimeStamp, false, false); + } + +} -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit 0fa1a91608d938dfc29e0dcc2495f64e7b9b51c8 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Oct 14 17:21:30 2015 +0200 ajout de la validation (refs #7598) --- .../SetSeineDto-n1-create-error-validation.xml | 193 +++++++++++++++++++ .../SetSeineDto-n1-create-warning-validation.xml | 51 +++++ .../SetSeineDto-n1-update-error-validation.xml | 205 +++++++++++++++++++++ .../SetSeineDto-n1-update-warning-validation.xml | 51 +++++ .../services/dto/seine/ActivitySeineDto.java | 7 + .../observe/services/dto/seine/SetSeineDto.java | 22 +++ 6 files changed, 529 insertions(+) diff --git a/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/SetSeineDto-n1-create-error-validation.xml b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/SetSeineDto-n1-create-error-validation.xml new file mode 100644 index 0000000..5bef73c --- /dev/null +++ b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/SetSeineDto-n1-create-error-validation.xml @@ -0,0 +1,193 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + #%L + ObServe :: Validation + %% + 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% + --> + +<!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="reasonForNullSet"> + + <!-- reasonForNullSet desactive --> + <field-validator type="fieldexpression" short-circuit="true"> + <param name="expression"> + <![CDATA[ reasonForNullSet == null || reasonForNullSet.enabled ]]> + </param> + <message>validator.set.desactivated.reasonForNullSet</message> + </field-validator> + + </field> + + <field name="maxGearDepth"> + + <!-- maxGearDepth entre 0 et 1100 --> + <field-validator type="int" short-circuit="true"> + <param name="min">0</param> + <param name="max">1100</param> + <message>validator.set.bound.maxGearDepth##${min}##${max}</message> + </field-validator> + + </field> + + <field name="schoolThickness"> + + <!-- 1 <= schoolThickness <= 500 --> + <field-validator type="int" short-circuit="true"> + <param name="min">1</param> + <param name="max">500</param> + <message>validator.set.bound.schoolThickness##${min}##${max}</message> + </field-validator> + + </field> + + <field name="schoolMeanDepth"> + + <!-- 0 <= schoolMeanDepth <= 2000 --> + <field-validator type="int" short-circuit="true"> + <param name="min">0</param> + <param name="max">2000</param> + <message>validator.set.bound.schoolMeanDepth##${min}##${max}</message> + </field-validator> + + </field> + + <field name="schoolTopDepth"> + + <!-- 0 <= schoolTopDepth <= 1000 --> + <field-validator type="int" short-circuit="true"> + <param name="min">0</param> + <param name="max">1000</param> + <message>validator.set.bound.schoolTopDepth##${min}##${max}</message> + </field-validator> + + </field> + + + <field name="supportVesselName"> + + <!-- supportVesselName de ${maxLength} caractères maximum --> + <field-validator type="fieldexpressionwithparams"> + <param name="intParams">maxLength:32</param> + <param name="expression"> + <![CDATA[ supportVesselName == null || supportVesselName.length() < ints.maxLength ]]> + </param> + <message>validator.set.size.supportVesselName##${ints.maxLength}</message> + </field-validator> + + </field> + + <field name="endPursingDate"> + + <!-- routeEntity.date <= endPursingDate --> + <field-validator type="fieldexpression" short-circuit="true"> + <param name="expression"> + <![CDATA[ endPursingDate == null || ! currentRoute.date.after(endPursingDate) ]]> + </param> + <message>validator.set.endPursingDate.after.date</message> + </field-validator> + </field> + + <field name="endPursingTimeStamp"> + + <!-- startTime <= endPursingTimeStamp --> + <field-validator type="fieldexpression" short-circuit="true"> + <param name="expression"> + <![CDATA[ endPursingTimeStamp == null || ! startTime.after(endPursingTimeStamp) ]]> + </param> + <message>validator.set.endPursingTimeStamp.after.startTime</message> + </field-validator> + + </field> + + <field name="endSetDate"> + + <!-- endPursingDate <= endSetDate --> + <field-validator type="fieldexpression" short-circuit="true"> + <param name="expression"> + <![CDATA[ endPursingDate == null || ! endPursingDate.after(endSetDate) ]]> + </param> + <message>validator.set.endDate.after.endPursingDate</message> + </field-validator> + </field> + + <field name="endSetTimeStamp"> + + <!-- endPursingTimeStamp < = endSetTimeStamp && endSetTimeStamp - endPursingTimeStamp > 45 minutes --> + <field-validator type="fieldexpression" short-circuit="true"> + <param name="expression"> + <![CDATA[ endSetTimeStamp == null || ! endPursingTimeStamp.after(endSetTimeStamp) ]]> + </param> + <message>validator.set.endSetTimeStamp.after.endPursingTimeStamp</message> + </field-validator> + + <!-- verifier que la duree de la set est d'au moins 45 minutes --> + <field-validator type="fieldexpressionwithparams"> + <param name="intParams">maxLength:45</param> + <param name="expression"> + <![CDATA[ (endSetTimeStamp.time - endPursingTimeStamp.time) >= (ints.maxLength * 60000) ]]> + </param> + <message>validator.set.bound.delay##${ints.maxLength}</message> + </field-validator> + + </field> + + <field name="currentDirection"> + + <!-- 0 <= direction courant <= 360 --> + <field-validator type="int" short-circuit="true"> + <param name="min">0</param> + <param name="max">360</param> + <message>validator.set.bound.currentDirection##${min}##${max}</message> + </field-validator> + + </field> + + <field name="currentSpeed"> + + <!-- 0 < vitesse courant <= 40 --> + <field-validator type="double" short-circuit="true"> + <param name="minExclusive">0</param> + <param name="maxInclusive">40</param> + <message>validator.set.bound.currentSpeed##${minExclusive}##${maxInclusive}</message> + </field-validator> + + </field> + + <field name="comment"> + + <!-- comentaire de moins de 1024 caractères --> + <field-validator type="stringlength"> + <param name="maxLength">1024</param> + <message>validator.set.comment.tobig</message> + </field-validator> + + <!-- comment requis selon le type de reasonForNullSet choisi --> + <field-validator type="fieldexpression"> + <param name="expression"> + <![CDATA[ reasonForNullSet == null || !reasonForNullSet.needComment || (comment!=null && !comment.empty) ]]> + </param> + <message>validator.set.required.comment.for.reasonForNullSet</message> + </field-validator> + + </field> +</validators> diff --git a/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/SetSeineDto-n1-create-warning-validation.xml b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/SetSeineDto-n1-create-warning-validation.xml new file mode 100644 index 0000000..0232282 --- /dev/null +++ b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/SetSeineDto-n1-create-warning-validation.xml @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + #%L + ObServe :: Validation + %% + 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% + --> + +<!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="currentDirection"> + + <!-- direction courant non renseigne --> + <field-validator type="required" short-circuit="true"> + <message>validator.set.null.currentDirection</message> + </field-validator> + + </field> + + <field name="endSetTimeStamp"> + + <!-- verifier que la duree de la set n'exède pas 5 heures (300 minutes) --> + <field-validator type="fieldexpressionwithparams"> + <param name="intParams">maxLength:300</param> + <param name="expression"> + <![CDATA[ (endSetTimeStamp.time - startTime.time) <= (ints.maxLength * 60000) ]]> + </param> + <message>validator.set.delay.too.long##${ints.maxLength}</message> + </field-validator> + + </field> + +</validators> diff --git a/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/SetSeineDto-n1-update-error-validation.xml b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/SetSeineDto-n1-update-error-validation.xml new file mode 100644 index 0000000..fc80ae8 --- /dev/null +++ b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/SetSeineDto-n1-update-error-validation.xml @@ -0,0 +1,205 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + #%L + ObServe :: Validation + %% + 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% + --> + +<!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="reasonForNullSet"> + + <!-- reasonForNullSet desactive --> + <field-validator type="fieldexpression" short-circuit="true"> + <param name="expression"> + <![CDATA[ reasonForNullSet == null || reasonForNullSet.enabled ]]> + </param> + <message>validator.set.desactivated.reasonForNullSet</message> + </field-validator> + + </field> + + <field name="maxGearDepth"> + + <!-- maxGearDepth entre 0 et 1100 --> + <field-validator type="int" short-circuit="true"> + <param name="min">0</param> + <param name="max">1100</param> + <message>validator.set.bound.maxGearDepth##${min}##${max}</message> + </field-validator> + + </field> + + <field name="schoolThickness"> + + <!-- 1 <= schoolThickness <= 500 --> + <field-validator type="int" short-circuit="true"> + <param name="min">1</param> + <param name="max">500</param> + <message>validator.set.bound.schoolThickness##${min}##${max}</message> + </field-validator> + + </field> + + <field name="schoolMeanDepth"> + + <!-- 0 <= schoolMeanDepth <= 2000 --> + <field-validator type="int" short-circuit="true"> + <param name="min">0</param> + <param name="max">2000</param> + <message>validator.set.bound.schoolMeanDepth##${min}##${max}</message> + </field-validator> + + </field> + + <field name="schoolTopDepth"> + + <!-- 0 <= schoolTopDepth <= 1000 --> + <field-validator type="int" short-circuit="true"> + <param name="min">0</param> + <param name="max">1000</param> + <message>validator.set.bound.schoolTopDepth##${min}##${max}</message> + </field-validator> + + </field> + + + <field name="supportVesselName"> + + <!-- supportVesselName de ${maxLength} caractères maximum --> + <field-validator type="fieldexpressionwithparams"> + <param name="intParams">maxLength:32</param> + <param name="expression"> + <![CDATA[ supportVesselName == null || supportVesselName.length() < ints.maxLength ]]> + </param> + <message>validator.set.size.supportVesselName##${ints.maxLength}</message> + </field-validator> + + </field> + + <field name="startTime"> + + <!-- startTime <= activity.time --> + <field-validator type="fieldexpression" short-circuit="true"> + <param name="expression"> + <![CDATA[ startTime == null || ! currentActivitySeine.timeSecond.after(startSetTime) ]]> + </param> + <message>validator.set.startTime.after.time</message> + </field-validator> + + </field> + + <field name="endPursingDate"> + + <!-- routeEntity.date <= endPursingDate --> + <field-validator type="fieldexpression" short-circuit="true"> + <param name="expression"> + <![CDATA[ endPursingDate == null || ! currentRoute.date.after(endPursingDate) ]]> + </param> + <message>validator.set.endPursingDate.after.date</message> + </field-validator> + </field> + + <field name="endPursingTimeStamp"> + + <!-- startTime <= endPursingTimeStamp --> + <field-validator type="fieldexpression" short-circuit="true"> + <param name="expression"> + <![CDATA[ endPursingTimeStamp == null || ! startTime.after(endPursingTimeStamp) ]]> + </param> + <message>validator.set.endPursingTimeStamp.after.startTime</message> + </field-validator> + + </field> + + <field name="endSetDate"> + + <!-- endDateCoulissage <= endSetDate --> + <field-validator type="fieldexpression" short-circuit="true"> + <param name="expression"> + <![CDATA[ endPursingDate == null || ! endPursingDate.after(endSetDate) ]]> + </param> + <message>validator.set.endDate.after.endPursingDate</message> + </field-validator> + </field> + + <field name="endSetTimeStamp"> + + <!-- endPursingTimeStamp < = endSetTimeStamp && endSetTimeStamp - endPursingTimeStamp > 45 minutes --> + <field-validator type="fieldexpression" short-circuit="true"> + <param name="expression"> + <![CDATA[ endSetTimeStamp == null || ! endPursingTimeStamp.after(endSetTimeStamp) ]]> + </param> + <message>validator.set.endSetTimeStamp.after.endPursingTimeStamp</message> + </field-validator> + + <!--verifier que la duree de la set est d'au moins 45 minutes --> + <field-validator type="fieldexpressionwithparams"> + <param name="intParams">maxLength:45</param> + <param name="expression"> + <![CDATA[ (endSetTimeStamp.time - endPursingTimeStamp.time) >= (ints.maxLength * 60000) ]]> + </param> + <message>validator.set.bound.delay##${ints.maxLength}</message> + </field-validator> + + </field> + + <field name="currentDirection"> + + <!-- 0 <= direction courant <= 360 --> + <field-validator type="int" short-circuit="true"> + <param name="min">0</param> + <param name="max">360</param> + <message>validator.set.bound.currentDirection##${min}##${max}</message> + </field-validator> + + </field> + + <field name="currentSpeed"> + + <!-- 0 < vitesse courant <= 40 --> + <field-validator type="double" short-circuit="true"> + <param name="minExclusive">0</param> + <param name="maxInclusive">40</param> + <message>validator.set.bound.currentSpeed##${minExclusive}##${maxInclusive}</message> + </field-validator> + + </field> + + <field name="comment"> + + <!-- comentaire de moins de 1024 caractères --> + <field-validator type="stringlength"> + <param name="maxLength">1024</param> + <message>validator.set.comment.tobig</message> + </field-validator> + + <!-- comment requis selone le type de reasonForNullSet choisi --> + <field-validator type="fieldexpression"> + <param name="expression"> + <![CDATA[ reasonForNullSet == null || !reasonForNullSet.needComment || (comment != null && !comment.empty) ]]> + </param> + <message>validator.set.required.comment.for.reasonForNullSet</message> + </field-validator> + + </field> +</validators> diff --git a/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/SetSeineDto-n1-update-warning-validation.xml b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/SetSeineDto-n1-update-warning-validation.xml new file mode 100644 index 0000000..0232282 --- /dev/null +++ b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/seine/SetSeineDto-n1-update-warning-validation.xml @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + #%L + ObServe :: Validation + %% + 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% + --> + +<!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="currentDirection"> + + <!-- direction courant non renseigne --> + <field-validator type="required" short-circuit="true"> + <message>validator.set.null.currentDirection</message> + </field-validator> + + </field> + + <field name="endSetTimeStamp"> + + <!-- verifier que la duree de la set n'exède pas 5 heures (300 minutes) --> + <field-validator type="fieldexpressionwithparams"> + <param name="intParams">maxLength:300</param> + <param name="expression"> + <![CDATA[ (endSetTimeStamp.time - startTime.time) <= (ints.maxLength * 60000) ]]> + </param> + <message>validator.set.delay.too.long##${ints.maxLength}</message> + </field-validator> + + </field> + +</validators> diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/seine/ActivitySeineDto.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/seine/ActivitySeineDto.java index aa9ab18..859b894 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/seine/ActivitySeineDto.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/seine/ActivitySeineDto.java @@ -1,6 +1,9 @@ package fr.ird.observe.services.dto.seine; import fr.ird.observe.services.dto.referential.seine.VesselActivitySeineDto; +import org.nuiton.util.DateUtil; + +import java.util.Date; public class ActivitySeineDto extends AbstractActivitySeineDto { @@ -19,4 +22,8 @@ public class ActivitySeineDto extends AbstractActivitySeineDto { && ACTIVITY_FIN_DE_VEILLE.equals( vesselActivitySeine.getPropertyValue(VesselActivitySeineDto.PROPERTY_CODE)); } + + public Date getTimeSecond() { + return DateUtil.getTime(time, false, false); + } } diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/seine/SetSeineDto.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/seine/SetSeineDto.java index 705b4af..876c47e 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/seine/SetSeineDto.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/seine/SetSeineDto.java @@ -8,6 +8,20 @@ public class SetSeineDto extends AbstractSetSeineDto { private static final long serialVersionUID = 3546973062604141414L; + public void setStartSetDate(Date startSetDate) { + if (startTime != null) { + Date dateAndTime = DateUtil.getDateAndTime(startSetDate, startTime, false, false); + setStartTime(dateAndTime); + } + } + + public void setStartSetTime(Date startSetTime) { + if (startTime != null) { + Date dateAndTime = DateUtil.getDateAndTime(startTime, startSetTime, false, false); + setStartTime(dateAndTime); + } + } + public void setEndSetDate(Date endSetDate) { if (endSetTimeStamp != null) { Date dateAndTime = DateUtil.getDateAndTime(endSetDate, endSetTimeStamp, false, false); @@ -36,6 +50,14 @@ public class SetSeineDto extends AbstractSetSeineDto { } } + public Date getStartSetDate() { + return startTime == null ? null : DateUtil.getDay(startTime); + } + + public Date getStartSetTime() { + return startTime == null ? null : DateUtil.getTime(startTime, false, false); + } + public Date getEndSetDate() { return endSetTimeStamp == null ? null : DateUtil.getDay(endSetTimeStamp); } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit a71890963d335a26fced9f46bb953f979e985134 Merge: 02fd51b 0fa1a91 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Oct 14 17:22:14 2015 +0200 Merge branch 'feature/7598' into develop .../ird/observe/ui/content/ContentUIManager.java | 2 +- .../ui/content/impl/seine/SetSeineUIHandler.java | 98 +--------- .../ui/content/impl/seine/SetSeineUIModel.java | 3 - .../tree/loadors/ActivitySeineNodeChildLoador.java | 18 +- .../SetSeineDto-n1-create-error-validation.xml | 193 +++++++++++++++++++ .../SetSeineDto-n1-create-warning-validation.xml | 51 +++++ .../SetSeineDto-n1-update-error-validation.xml | 205 +++++++++++++++++++++ .../SetSeineDto-n1-update-warning-validation.xml | 51 +++++ .../observe-application-swing_fr_FR.properties | 2 +- .../services/dto/seine/ActivitySeineDto.java | 9 +- .../observe/services/dto/seine/SetSeineDto.java | 77 ++++++++ .../service/seine/ActivitySeineServiceTopia.java | 7 +- 12 files changed, 610 insertions(+), 106 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
participants (1)
-
codelutin.com scm