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 ca190af1eae10810c5ea7ea1726df81c395d679b Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Thu Oct 8 09:41:30 2015 +0200 migration de l'écran de marée palangre (refs #7588). --- .../fr/ird/observe/ObserveOpenDataManager.java | 2 +- .../content/open/impl/longline/TripLonglineUI.css | 5 - .../content/open/impl/longline/TripLonglineUI.jaxx | 3 +- .../open/impl/longline/TripLonglineUIHandler.java | 78 +++--------- .../open/impl/longline/TripLonglineUIModel.java | 9 +- .../content/open/impl/seine/TripSeineUIModel.java | 4 + .../fr/ird/observe/ui/tree/TripLonglineNode.java | 8 +- .../TripLonglineDto-n1-create-error-validation.xml | 135 ++++++++++++++------- ...ripLonglineDto-n1-create-warning-validation.xml | 54 +++++++++ .../TripLonglineDto-n1-update-error-validation.xml | 10 +- ...ripLonglineDto-n1-update-warning-validation.xml | 74 +++++++++++ .../v1/longline/TripLonglineServiceController.java | 8 +- .../TripLongline-n1-update-error-validation.xml | 4 +- .../service/longline/TripLonglineService.java | 6 +- .../xmi/observe-services-dto-longline.properties | 1 + .../main/xmi/observe-services-dto-longline.zargo | Bin 61407 -> 62166 bytes .../services/dto/ObserveDtosInitializer.java | 10 +- .../services/entity/ObserveEntitiesFilters.java | 7 ++ .../service/longline/TripLonglineServiceTopia.java | 14 ++- 19 files changed, 294 insertions(+), 138 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ObserveOpenDataManager.java b/observe-application-swing/src/main/java/fr/ird/observe/ObserveOpenDataManager.java index 005ad3d..eb113de 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ObserveOpenDataManager.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ObserveOpenDataManager.java @@ -96,7 +96,7 @@ public class ObserveOpenDataManager implements Closeable { // Trip Longline public boolean canOpenTripLongline() { - return openTripSeineId != null && openTripLonglineId != null; + return openTripSeineId == null && openTripLonglineId == null; } public void openTripLongline(String tripLongLineId) { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUI.css b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUI.css index 17ed886..8490def 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUI.css +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUI.css @@ -48,7 +48,6 @@ NumberEditor { #observer { property:{TripLonglineDto.PROPERTY_OBSERVER}; selectedItem:{bean.getObserver()}; - _listPredicate:{PersonDtos.newObserverReferencePredicate(true)}; } #captainLabel { @@ -59,7 +58,6 @@ NumberEditor { #captain { property:{TripLonglineDto.PROPERTY_CAPTAIN}; selectedItem:{bean.getCaptain()}; - _listPredicate:{PersonDtos.newCaptainReferencePredicate(true)}; } #dataEntryOperatorLabel { @@ -70,7 +68,6 @@ NumberEditor { #dataEntryOperator { property:{TripLonglineDto.PROPERTY_DATA_ENTRY_OPERATOR}; selectedItem:{bean.getDataEntryOperator()}; - _listPredicate:{PersonDtos.newDataEntryOperatorReferencePredicate(true)}; } #tripTypeLabel{ @@ -91,8 +88,6 @@ NumberEditor { #vessel { property:{TripLonglineDto.PROPERTY_VESSEL}; selectedItem:{bean.getVessel()}; - //FIXME - //_listPredicate:{VesselDtos.newVesselByVesselTypeIdPredicate(getConfig().getLonglineVesselTypeIds())}; } #oceanLabel{ diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUI.jaxx b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUI.jaxx index 56bd105..02f3057 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUI.jaxx +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUI.jaxx @@ -69,8 +69,7 @@ errorTableModel='{getErrorTableModel()}' autoField='true' context='n1-update'> - <!--FIXME--> - <!--<field name='activityLongline' component='{actionDown}'/>--> + <field name='activityLongline' component='{actionDown}'/> </BeanValidator> <script><![CDATA[ diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUIHandler.java index 420e058..23bf984 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUIHandler.java @@ -27,6 +27,8 @@ import fr.ird.observe.business.db.DataContext; import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.SaveResultDto; +import fr.ird.observe.services.dto.TripMapDto; import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.services.dto.longline.TripLonglineDtos; import fr.ird.observe.services.service.longline.TripLonglineService; @@ -93,15 +95,15 @@ public class TripLonglineUIHandler extends ContentOpenableUIHandler<TripLongline @Override protected ContentMode getContentMode(DataContext dataContext) { - String mareeId = getSelectedId(); + String tripLongLineId = getSelectedId(); - if (mareeId == null) { + if (tripLongLineId == null) { // maree en cours de creation return ContentMode.CREATE; } - if (dataContext.isSelectedOpen(TripLonglineDto.class)) { + if (getOpenDataManager().isOpenTripLongline(tripLongLineId)) { // maree ouverte return ContentMode.UPDATE; @@ -138,8 +140,9 @@ public class TripLonglineUIHandler extends ContentOpenableUIHandler<TripLongline TripLonglineUI ui = getUi(); TripMapUI tripMap = ui.getTripMap(); - //FIXME -// tripMap.getHandler().doOpenMap(ui.getDataSource(), ui.getDataService(), getSelectedId()); + TripMapDto tripLonglineMap = getTripLonglineService().getTripLonglineMap(getSelectedId()); + + tripMap.getHandler().doOpenMap(tripLonglineMap); } }); buildTripMap = false; @@ -190,12 +193,6 @@ public class TripLonglineUIHandler extends ContentOpenableUIHandler<TripLongline // update mode formDto = getTripLonglineService().loadToEdit(tripId); -//FIXME -// if (!bean.isActivityLonglineEmpty()) { - - // on force le trie des routes -// ActivityLonglineDtos.sort(bean.getActivityLongline()); -// } } getModel().setFormDto(formDto); @@ -208,22 +205,6 @@ public class TripLonglineUIHandler extends ContentOpenableUIHandler<TripLongline finalizeOpenUI(mode, create); } - //FIXME -// @Override -// protected TripLongline onPreCreate(TopiaContext tx, Object parent, TripLongline bean) throws TopiaException { -// -// Program parentBean = (Program) parent; -// Date date = DateUtil.getDay(new Date()); -// bean.setStartDate(date); -// bean.setEndDate(date); -// if (log.isDebugEnabled()) { -// log.debug("start date : " + date); -// log.debug("program : " + parentBean); -// } -// bean.setProgram(parentBean); -// return bean; -// } - @Override public void startEditUI(String... binding) { @@ -293,40 +274,24 @@ public class TripLonglineUIHandler extends ContentOpenableUIHandler<TripLongline bean.setOpen(true); - String beanId = getTripLonglineService().save(bean); - bean.setId(beanId); + SaveResultDto saveResult = getTripLonglineService().save(bean); + bean.setId(saveResult.getId()); + bean.setLastUpdate(saveResult.getLastUpdate()); // recuperation de la position de la maree dans le program - //FIXME -// obtainChildPosition(bean, dataService, dataSource); + obtainChildPosition(bean); return true; } @Override protected int getOpenablePosition(String parentId, TripLonglineDto bean) { - // TODO - return 0; + + int position = getTripLonglineService().getTripLonglinePositionInProgram(parentId, bean.getId()); + + return position; } -//FIXME -// @Override -// protected TripLongline onCreate(TopiaContext tx, Object parent, TripLongline editBean) throws TopiaException { -// TripLongline beanToSave = ObserveDAOHelper.getTripLonglineDAO(tx).create(); -// editBean.setTopiaId(beanToSave.getTopiaId()); -// return beanToSave; -// } - - //FIXME -// @Override -// protected TripLongline onUpdate(TopiaContext tx, Object parentBean, TripLongline beanToSave) throws TopiaException { -// -// getLoadBinder().copyExcluding(getBean(), beanToSave, TripLongline.PROPERTY_ACTIVITY_LONGLINE); -// -// return beanToSave; -// } - - //FIXME @Override protected boolean doDelete(TripLonglineDto bean) throws Exception { @@ -345,19 +310,10 @@ public class TripLonglineUIHandler extends ContentOpenableUIHandler<TripLongline return true; } - //FIXME -// @Override -// protected void onDelete(TopiaContext tx, Object parentBean, TripLongline beanToDelete) throws TopiaException { -// -// TopiaDAO<TripLongline> dao = getDataSource().getDAO(tx, TripLongline.class); -// dao.delete(beanToDelete); -// } - @Override protected boolean obtainCanReopen(boolean create) { - DataContext dataContext = getDataContext(); - return !create && !dataContext.isOpenTrip(); + return !create && getOpenDataManager().canOpenTripLongline(); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUIModel.java index 420be55..f06d2c5 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUIModel.java @@ -25,6 +25,7 @@ package fr.ird.observe.ui.content.open.impl.longline; import fr.ird.observe.business.BinderService; import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.ui.content.open.ContentOpenableUIModel; +import org.nuiton.util.beans.Binder; import org.nuiton.util.beans.BinderModelBuilder; /** @@ -60,13 +61,11 @@ public class TripLonglineUIModel extends ContentOpenableUIModel<TripLonglineDto> TripLonglineDto.PROPERTY_DEPARTURE_HARBOUR, TripLonglineDto.PROPERTY_LANDING_HARBOUR, TripLonglineDto.PROPERTY_PROGRAM, - //FIXME -// TripLonglineDto.PROPERTY_ACTIVITY_LONGLINE, - TripLonglineDto.PROPERTY_OPEN); + TripLonglineDto.PROPERTY_OPEN, + TripLonglineDto.PROPERTY_ACTIVITY_LONGLINE); // on ajoute la recopie de l'association route - //FIXXME -// builder.addCollectionStrategy(Binder.CollectionStrategy.duplicate, TripLonglineDto.PROPERTY_ACTIVITY_LONGLINE); + builder.addCollectionStrategy(Binder.CollectionStrategy.duplicate, TripLonglineDto.PROPERTY_ACTIVITY_LONGLINE); return builder; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIModel.java index 54b2755..bdbf73f 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIModel.java @@ -25,6 +25,7 @@ package fr.ird.observe.ui.content.open.impl.seine; import fr.ird.observe.business.BinderService; import fr.ird.observe.services.dto.seine.TripSeineDto; import fr.ird.observe.ui.content.open.ContentOpenableUIModel; +import org.nuiton.util.beans.Binder; import org.nuiton.util.beans.BinderModelBuilder; /** @@ -62,6 +63,9 @@ public class TripSeineUIModel extends ContentOpenableUIModel<TripSeineDto> { TripSeineDto.PROPERTY_OPEN, TripSeineDto.PROPERTY_ROUTE); + // on ajoute la recopie de l'association route + builder.addCollectionStrategy(Binder.CollectionStrategy.duplicate, TripSeineDto.PROPERTY_ROUTE); + return builder; } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/TripLonglineNode.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/TripLonglineNode.java index 51ba0b1..ed269a7 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/TripLonglineNode.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/TripLonglineNode.java @@ -47,7 +47,7 @@ public class TripLonglineNode extends DtoNodeSupport<TripLonglineDto> { @Override protected ReferenceDto<TripLonglineDto> fetchEntity() { TripLonglineService tripLonglineService = ObserveSwingApplicationContext.get().newService(TripLonglineService.class); - FormDto<TripLonglineDto> formDto = tripLonglineService.loadToRead(entity.getId()); + FormDto<TripLonglineDto> formDto = tripLonglineService.loadToRead(getId()); ReferenceDto<TripLonglineDto> referenceDto = ReferenceDtos.newReferenceDto(TripLonglineDto.class, Lists.newArrayList(TripLonglineDto.PROPERTY_ID, @@ -65,10 +65,4 @@ public class TripLonglineNode extends DtoNodeSupport<TripLonglineDto> { return referenceDto; } - //FIXME -// @Override -// protected TripLongline getEntity(DataService dataService, DataSource source) { -// return dataService.getTripLonglineStub(source, id); -// } - } diff --git a/observe-entities-validation/src/main/resources/fr/ird/observe/entities/longline/TripLongline-n1-update-error-validation.xml b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/longline/TripLonglineDto-n1-create-error-validation.xml similarity index 68% copy from observe-entities-validation/src/main/resources/fr/ird/observe/entities/longline/TripLongline-n1-update-error-validation.xml copy to observe-application-swing/src/main/resources/fr/ird/observe/services/dto/longline/TripLonglineDto-n1-create-error-validation.xml index 5842ec8..f61e891 100644 --- a/observe-entities-validation/src/main/resources/fr/ird/observe/entities/longline/TripLongline-n1-update-error-validation.xml +++ b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/longline/TripLonglineDto-n1-create-error-validation.xml @@ -7,15 +7,15 @@ %% 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 + 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 + + 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% @@ -33,8 +33,16 @@ <message>validator.trip.required.tripType</message> </field-validator> - </field> + <!-- tripType desactive --> + <field-validator type="fieldexpression" short-circuit="true"> + <param name="expression"> + <![CDATA[ tripType.enabled ]]> + </param> + <message>validator.trip.desactivated.tripType</message> + </field-validator> + </field> + <field name="observer"> <!-- pas de observer selectionne --> @@ -42,6 +50,38 @@ <message>validator.trip.required.observer</message> </field-validator> + <!-- observer desactive --> + <field-validator type="fieldexpression" short-circuit="true"> + <param name="expression"> + <![CDATA[ observer.enabled ]]> + </param> + <message>validator.trip.desactivated.observer</message> + </field-validator> + + </field> + + <field name="captain"> + + <!-- captain desactive --> + <field-validator type="fieldexpression" short-circuit="true"> + <param name="expression"> + <![CDATA[ captain == null || captain.enabled ]]> + </param> + <message>validator.trip.desactivated.captain</message> + </field-validator> + + </field> + + <field name="dataEntryOperator"> + + <!-- dataEntryOperator desactive --> + <field-validator type="fieldexpression" short-circuit="true"> + <param name="expression"> + <![CDATA[ dataEntryOperator == null || dataEntryOperator.enabled ]]> + </param> + <message>validator.trip.desactivated.dataEntryOperator</message> + </field-validator> + </field> <field name="vessel"> @@ -51,6 +91,14 @@ <message>validator.trip.required.vessel</message> </field-validator> + <!-- vessel desactive --> + <field-validator type="fieldexpression" short-circuit="true"> + <param name="expression"> + <![CDATA[ vessel.enabled ]]> + </param> + <message>validator.trip.desactivated.vessel</message> + </field-validator> + </field> <field name="ocean"> @@ -60,25 +108,50 @@ <message>validator.trip.required.ocean</message> </field-validator> + <!-- ocean desactive --> + <field-validator type="fieldexpression" short-circuit="true"> + <param name="expression"> + <![CDATA[ ocean.enabled ]]> + </param> + <message>validator.trip.desactivated.ocean</message> + </field-validator> + </field> - <field name="startDate"> + <field name="departureHarbour"> - <!-- pas de date de debut selectionne --> + <!-- pas de departureHarbour selectionne --> <field-validator type="required" short-circuit="true"> - <message>validator.trip.required.startDate</message> + <message>validator.trip.required.departureHarbour</message> </field-validator> - <!-- coherence startDate > date de toute route --> - <field-validator type="collectionFieldExpression"> - <param name="mode">ALL</param> - <param name="useSensitiveContext">true</param> - <param name="collectionFieldName">route</param> - <param name="expression"><![CDATA[ - startDate.time <= current.date.time - ]]> + <!-- departureHarbour desactive --> + <field-validator type="fieldexpression" short-circuit="true"> + <param name="expression"> + <![CDATA[ departureHarbour.enabled ]]> </param> - <message>validator.trip.invalid.startDate##${index}</message> + <message>validator.trip.desactivated.departureHarbour</message> + </field-validator> + + </field> + + <field name="landingHarbour"> + + <!-- landingHarbour desactive --> + <field-validator type="fieldexpression" short-circuit="true"> + <param name="expression"> + <![CDATA[ landingHarbour == null || landingHarbour.enabled ]]> + </param> + <message>validator.trip.desactivated.landingHarbour</message> + </field-validator> + + </field> + + <field name="startDate"> + + <!-- pas de date de debut selectionne --> + <field-validator type="required" short-circuit="true"> + <message>validator.trip.required.startDate</message> </field-validator> </field> @@ -98,35 +171,8 @@ <message>validator.trip.endDate.after.startDate</message> </field-validator> - <!-- coherence endDate > date de toute route --> - <field-validator type="collectionFieldExpression"> - <param name="mode">ALL</param> - <param name="useSensitiveContext">true</param> - <param name="collectionFieldName">route</param> - <param name="expression"><![CDATA[ - current.date.time <= endDate.time - ]]> - </param> - <message>validator.trip.invalid.endDate##${index}</message> - </field-validator> - </field> - <!--<field name="activityLongline">--> - - <!--<!– coherence date des routes –>--> - <!--<field-validator type="collectionFieldExpression">--> - <!--<param name="mode">ALL</param>--> - <!--<param name="useSensitiveContext">true</param>--> - <!--<param name="expression"><![CDATA[--> - <!--previous == null || previous.date.time <= current.date.time--> - <!--]]>--> - <!--</param>--> - <!--<message>validator.trip.invalid.date##${index}</message>--> - <!--</field-validator>--> - - <!--</field>--> - <field name="comment"> <!-- comentaire de moins de 1024 caractères --> @@ -200,5 +246,4 @@ </field-validator> </field> - </validators> diff --git a/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/longline/TripLonglineDto-n1-create-warning-validation.xml b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/longline/TripLonglineDto-n1-create-warning-validation.xml new file mode 100644 index 0000000..a39dbb4 --- /dev/null +++ b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/longline/TripLonglineDto-n1-create-warning-validation.xml @@ -0,0 +1,54 @@ +<?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="landingHarbour"> + + <!-- pas de landingHarbour selectionne --> + <field-validator type="required" short-circuit="true"> + <message>validator.trip.null.landingHarbour</message> + </field-validator> + + </field> + + <field name="captain"> + + <!-- pas de captain selectionne --> + <field-validator type="required" short-circuit="true"> + <message>validator.trip.null.captain</message> + </field-validator> + + </field> + + <field name="dataEntryOperator"> + + <!-- pas de dataEntryOperator selectionne --> + <field-validator type="required" short-circuit="true"> + <message>validator.trip.null.dataEntryOperator</message> + </field-validator> + + </field> + +</validators> diff --git a/observe-entities-validation/src/main/resources/fr/ird/observe/entities/longline/TripLongline-n1-update-error-validation.xml b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/longline/TripLonglineDto-n1-update-error-validation.xml similarity index 95% copy from observe-entities-validation/src/main/resources/fr/ird/observe/entities/longline/TripLongline-n1-update-error-validation.xml copy to observe-application-swing/src/main/resources/fr/ird/observe/services/dto/longline/TripLonglineDto-n1-update-error-validation.xml index 5842ec8..6c77af5 100644 --- a/observe-entities-validation/src/main/resources/fr/ird/observe/entities/longline/TripLongline-n1-update-error-validation.xml +++ b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/longline/TripLonglineDto-n1-update-error-validation.xml @@ -73,9 +73,9 @@ <field-validator type="collectionFieldExpression"> <param name="mode">ALL</param> <param name="useSensitiveContext">true</param> - <param name="collectionFieldName">route</param> + <param name="collectionFieldName">activityLongline</param> <param name="expression"><![CDATA[ - startDate.time <= current.date.time + startDate.time <= current.timeStamp.time ]]> </param> <message>validator.trip.invalid.startDate##${index}</message> @@ -102,9 +102,9 @@ <field-validator type="collectionFieldExpression"> <param name="mode">ALL</param> <param name="useSensitiveContext">true</param> - <param name="collectionFieldName">route</param> + <param name="collectionFieldName">activityLongline</param> <param name="expression"><![CDATA[ - current.date.time <= endDate.time + current.timeStamp.time <= endDate.time ]]> </param> <message>validator.trip.invalid.endDate##${index}</message> @@ -119,7 +119,7 @@ <!--<param name="mode">ALL</param>--> <!--<param name="useSensitiveContext">true</param>--> <!--<param name="expression"><![CDATA[--> - <!--previous == null || previous.date.time <= current.date.time--> + <!--previous == null || previous.timeStamp.time <= current.timeStamp.time--> <!--]]>--> <!--</param>--> <!--<message>validator.trip.invalid.date##${index}</message>--> diff --git a/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/longline/TripLonglineDto-n1-update-warning-validation.xml b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/longline/TripLonglineDto-n1-update-warning-validation.xml new file mode 100644 index 0000000..c5bbc74 --- /dev/null +++ b/observe-application-swing/src/main/resources/fr/ird/observe/services/dto/longline/TripLonglineDto-n1-update-warning-validation.xml @@ -0,0 +1,74 @@ +<?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="departureHarbour"> + + <!-- pas de departureHarbour selectionne --> + <field-validator type="required" short-circuit="true"> + <message>validator.trip.null.departureHarbour</message> + </field-validator> + + </field> + + <field name="landingHarbour"> + + <!-- pas de landingHarbour selectionne --> + <field-validator type="required" short-circuit="true"> + <message>validator.trip.null.landingHarbour</message> + </field-validator> + + </field> + + <!--<field name="activityLongline">--> + + <!-- une route est ouverte (interdit la cloture de la maree) --> + <!--<field-validator type="openableEntity">--> + <!--<message>validator.tripLongline.unclosed.activity##${openValueAsString}</message>--> + <!--</field-validator>--> + + <!--</field>--> + + <field name="captain"> + + <!-- pas de captain selectionne --> + <field-validator type="required" short-circuit="true"> + <message>validator.trip.null.captain</message> + </field-validator> + + </field> + + <field name="dataEntryOperator"> + + <!-- pas de dataEntryOperator selectionne --> + <field-validator type="required" short-circuit="true"> + <message>validator.trip.null.dataEntryOperator</message> + </field-validator> + + </field> + +</validators> diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/TripLonglineServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/TripLonglineServiceController.java index 2f49cc5..7c44158 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/TripLonglineServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/longline/TripLonglineServiceController.java @@ -25,6 +25,7 @@ package fr.ird.observe.application.web.controller.v1.longline; import fr.ird.observe.application.web.controller.v1.ObserveAuthenticatedServiceControllerSupport; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.ReferenceSetDto; +import fr.ird.observe.services.dto.SaveResultDto; import fr.ird.observe.services.dto.TripMapDto; import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.services.service.longline.TripLonglineService; @@ -44,6 +45,11 @@ public class TripLonglineServiceController extends ObserveAuthenticatedServiceCo } @Override + public int getTripLonglinePositionInProgram(String programId, String tripLonglineId) { + return service.getTripLonglinePositionInProgram(programId, tripLonglineId); + } + + @Override public TripMapDto getTripLonglineMap(String tripLonglineId) { return service.getTripLonglineMap(tripLonglineId); } @@ -64,7 +70,7 @@ public class TripLonglineServiceController extends ObserveAuthenticatedServiceCo } @Override - public String save(TripLonglineDto dto) { + public SaveResultDto save(TripLonglineDto dto) { return service.save(dto); } diff --git a/observe-entities-validation/src/main/resources/fr/ird/observe/entities/longline/TripLongline-n1-update-error-validation.xml b/observe-entities-validation/src/main/resources/fr/ird/observe/entities/longline/TripLongline-n1-update-error-validation.xml index 5842ec8..3f08e96 100644 --- a/observe-entities-validation/src/main/resources/fr/ird/observe/entities/longline/TripLongline-n1-update-error-validation.xml +++ b/observe-entities-validation/src/main/resources/fr/ird/observe/entities/longline/TripLongline-n1-update-error-validation.xml @@ -73,7 +73,7 @@ <field-validator type="collectionFieldExpression"> <param name="mode">ALL</param> <param name="useSensitiveContext">true</param> - <param name="collectionFieldName">route</param> + <param name="collectionFieldName">activityLongline</param> <param name="expression"><![CDATA[ startDate.time <= current.date.time ]]> @@ -102,7 +102,7 @@ <field-validator type="collectionFieldExpression"> <param name="mode">ALL</param> <param name="useSensitiveContext">true</param> - <param name="collectionFieldName">route</param> + <param name="collectionFieldName">activityLongline</param> <param name="expression"><![CDATA[ current.date.time <= endDate.time ]]> diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/TripLonglineService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/TripLonglineService.java index 92482c6..c4e28e8 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/TripLonglineService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/TripLonglineService.java @@ -25,6 +25,7 @@ package fr.ird.observe.services.service.longline; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.ReferenceSetDto; +import fr.ird.observe.services.dto.SaveResultDto; import fr.ird.observe.services.dto.TripMapDto; import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.services.spi.DeleteRequest; @@ -42,6 +43,9 @@ public interface TripLonglineService extends ObserveService { ReferenceSetDto<TripLonglineDto> getTripLonglineByProgram(String programId); @ReadDataPermission + int getTripLonglinePositionInProgram(String programId, String tripLonglineId); + + @ReadDataPermission TripMapDto getTripLonglineMap(String tripLonglineId); @ReadDataPermission @@ -56,7 +60,7 @@ public interface TripLonglineService extends ObserveService { @Write @WriteDataPermission @PostRequest - String save(TripLonglineDto dto); + SaveResultDto save(TripLonglineDto dto); @Write @WriteDataPermission diff --git a/observe-services-model/src/main/xmi/observe-services-dto-longline.properties b/observe-services-model/src/main/xmi/observe-services-dto-longline.properties index e867990..523dfa2 100644 --- a/observe-services-model/src/main/xmi/observe-services-dto-longline.properties +++ b/observe-services-model/src/main/xmi/observe-services-dto-longline.properties @@ -105,4 +105,5 @@ fr.ird.observe.services.dto.longline.SetLonglineDetailComposition.attribute.sect fr.ird.observe.services.dto.longline.Section.attribute.basket.stereotype=unique,ordered fr.ird.observe.services.dto.longline.Basket.attribute.branchline.stereotype=unique,ordered fr.ird.observe.services.dto.longline.GearUseFeaturesLongline.attribute.gearUseFeaturesMeasurement.stereotype=unique,ordered +fr.ird.observe.services.dto.longline.TripLongline.attribute.activityLongline.stereotype=unique,ordered diff --git a/observe-services-model/src/main/xmi/observe-services-dto-longline.zargo b/observe-services-model/src/main/xmi/observe-services-dto-longline.zargo index 76b9e29..ec4b438 100644 Binary files a/observe-services-model/src/main/xmi/observe-services-dto-longline.zargo and b/observe-services-model/src/main/xmi/observe-services-dto-longline.zargo differ diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java b/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java index 0620971..0fc18fe 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java @@ -142,6 +142,7 @@ import fr.ird.observe.services.dto.longline.SetLonglineGlobalCompositionDto; import fr.ird.observe.services.dto.longline.SetLonglineTdrDto; import fr.ird.observe.services.dto.longline.SizeMeasureDto; import fr.ird.observe.services.dto.longline.TdrDto; +import fr.ird.observe.services.dto.longline.TripLonglineActivityDto; import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.services.dto.longline.WeightMeasureDto; import fr.ird.observe.services.dto.referential.CountryDto; @@ -708,11 +709,18 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { TripLonglineDto.PROPERTY_OCEAN, TripLonglineDto.PROPERTY_DEPARTURE_HARBOUR, TripLonglineDto.PROPERTY_LANDING_HARBOUR, - TripLonglineDto.PROPERTY_LAST_UPDATE + TripLonglineDto.PROPERTY_LAST_UPDATE, + TripLonglineDto.PROPERTY_ACTIVITY_LONGLINE ); } @Override + public void initTripLonglineActivityDto() { + registerDto(TripLonglineActivityDto.class, ActivityLongline.class, + TripLonglineActivityDto.PROPERTY_TIME_STAMP); + } + + @Override public void initTripLonglineStubDto() { // la logique de copie est à ecrire directement dans le service } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/entity/ObserveEntitiesFilters.java b/observe-services-topia/src/main/java/fr/ird/observe/services/entity/ObserveEntitiesFilters.java index e96e87d..133738f 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/entity/ObserveEntitiesFilters.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/entity/ObserveEntitiesFilters.java @@ -3,6 +3,7 @@ package fr.ird.observe.services.entity; import com.google.common.base.Predicate; import com.google.common.base.Predicates; import com.google.common.collect.Maps; +import fr.ird.observe.entities.longline.TripLongline; import fr.ird.observe.entities.referentiel.Persons; import fr.ird.observe.entities.referentiel.ReferenceEntities; import fr.ird.observe.entities.referentiel.ReferenceEntity; @@ -88,6 +89,12 @@ public class ObserveEntitiesFilters { addFilter(TripSeine.class, TripSeine.PROPERTY_DATA_ENTRY_OPERATOR, Persons.newDataEntryOperatorPredicate()); addFilter(TripSeine.class, TripSeine.PROPERTY_VESSEL, Vessels.newVesselSeinePredicate()); + // TripLongLine + addFilter(TripLongline.class, TripLongline.PROPERTY_CAPTAIN, Persons.newCaptainPredicate()); + addFilter(TripLongline.class, TripLongline.PROPERTY_OBSERVER, Persons.newObserverPredicate()); + addFilter(TripLongline.class, TripLongline.PROPERTY_DATA_ENTRY_OPERATOR, Persons.newDataEntryOperatorPredicate()); + addFilter(TripLongline.class, TripLongline.PROPERTY_VESSEL, Vessels.newVesselLonglinePredicate()); + } } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/TripLonglineServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/TripLonglineServiceTopia.java index a618510..b56554b 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/TripLonglineServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/longline/TripLonglineServiceTopia.java @@ -35,6 +35,8 @@ 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.ReferenceSetDtos; +import fr.ird.observe.services.dto.SaveResultDto; +import fr.ird.observe.services.dto.SaveResultDtos; import fr.ird.observe.services.dto.TripMapDto; import fr.ird.observe.services.dto.TripMapPointDto; import fr.ird.observe.services.dto.longline.TripLonglineDto; @@ -91,6 +93,14 @@ public class TripLonglineServiceTopia extends ObserveServiceTopia implements Tri } @Override + public int getTripLonglinePositionInProgram(String programId, String tripLonglineId) { + + int position = getDao().findPositionByProgramId(programId, tripLonglineId); + + return position; + } + + @Override public TripMapDto getTripLonglineMap(String tripLonglineId) { LinkedHashSet<TripMapPointDto> points = getDao().extractTripMapActivityPoints(tripLonglineId); @@ -152,7 +162,7 @@ public class TripLonglineServiceTopia extends ObserveServiceTopia implements Tri } @Override - public String save(TripLonglineDto dto) { + public SaveResultDto save(TripLonglineDto dto) { TripLongline tripLongline = dtoToEntity(TripLonglineDto.class, TripLongline.class, dto); @@ -161,7 +171,7 @@ public class TripLonglineServiceTopia extends ObserveServiceTopia implements Tri TripLonglineTopiaDao dao = getTopiaPersistenceContext().getTripLonglineDao(); dao.updateEndDate(tripLongline); - return tripLongline.getTopiaId(); + return SaveResultDtos.newSaveResult(tripLongline.getTopiaId(), tripLongline.getLastUpdate()); } @Override -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.