This is an automated email from the git hooks/post-receive script. New change to branch feature/7608-PS-VerifEcranEchantillonsFaunesAccesoire in repository tutti. See http://git.codelutin.com/tutti.git at de27f17 Ajout de trace dans les appels des services Ajouter un fonction pour récupéré la liste des espèces échantillonables (see #7608). This branch includes the following new commits: new c5f8773 Ajouter du filtre sur les espèces (see #7609). new de27f17 Ajout de trace dans les appels des services Ajouter un fonction pour récupéré la liste des espèces échantillonables (see #7608). The 2 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 de27f17437dc97e8d4ce591c32de4ac4499a8005 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Mar 9 15:42:49 2016 +0100 Ajout de trace dans les appels des services Ajouter un fonction pour récupéré la liste des espèces échantillonables (see #7608). commit c5f87736eacaefca4beb06d5647dd0f90764cbf5 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Mar 9 14:03:43 2016 +0100 Ajouter du filtre sur les espèces (see #7609). -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/7608-PS-VerifEcranEchantillonsFaunesAccesoire in repository tutti. See http://git.codelutin.com/tutti.git commit c5f87736eacaefca4beb06d5647dd0f90764cbf5 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Mar 9 14:03:43 2016 +0100 Ajouter du filtre sur les espèces (see #7609). --- .../table/impl/seine/NonTargetCatchUIHandler.java | 35 ++++++++++++++++++++++ .../service/seine/NonTargetCatchServiceTopia.java | 3 +- 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetCatchUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetCatchUIHandler.java index e99beac..95946e8 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetCatchUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetCatchUIHandler.java @@ -28,7 +28,9 @@ import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.db.constants.DataContextType; import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.constants.seine.NonTargetCatchComputedValueSource; +import fr.ird.observe.services.dto.referential.ReferentialDto; import fr.ird.observe.services.dto.referential.ReferentialReference; +import fr.ird.observe.services.dto.referential.ReferentialReferences; import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.referential.seine.ReasonForDiscardDto; import fr.ird.observe.services.dto.referential.seine.SpeciesFateDto; @@ -38,6 +40,7 @@ import fr.ird.observe.services.dto.seine.NonTargetCatchDtos; import fr.ird.observe.services.dto.seine.SetSeineNonTargetCatchDto; import fr.ird.observe.services.dto.seine.SetSeineNonTargetCatchDtos; import fr.ird.observe.services.service.seine.NonTargetCatchService; +import fr.ird.observe.services.service.seine.TripSeineService; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.content.table.ContentTableModel; import fr.ird.observe.ui.content.table.ContentTableUIHandler; @@ -52,6 +55,8 @@ import javax.swing.table.DefaultTableCellRenderer; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.ArrayList; +import java.util.Collection; +import java.util.LinkedList; import java.util.List; import java.util.Set; @@ -376,6 +381,36 @@ public class NonTargetCatchUIHandler extends ContentTableUIHandler<SetSeineNonTa SetSeineNonTargetCatchDtos.copySetSeineNonTargetCatchDto(form.getObject(), getBean()); } + @Override + protected <D extends ReferentialDto> Collection<ReferentialReference<D>> filterReferentialReferences(Class<D> dtoType, String propertyName, LinkedList<ReferentialReference<D>> incomingReferences) { + + Collection<ReferentialReference<D>> result = super.filterReferentialReferences(dtoType, propertyName, incomingReferences); + + switch (propertyName) { + + case NonTargetCatchDto.PROPERTY_SPECIES: { + + String speciesListId = ObserveSwingApplicationContext.get().getConfig().getSpeciesListSeineNonTargetCatchId(); + String tripSeineId = getDataContext().getSelectedTripSeineId(); + + TripSeineService tripSeineService = ObserveSwingApplicationContext.get().newService(TripSeineService.class); + result = (List) tripSeineService.getSpeciesByListAndTrip(tripSeineId, speciesListId); + + result = ReferentialReferences.filterEnabled(result); + + if (log.isDebugEnabled()) { + log.debug(String.format("Filter referential references (type %s - property %s), final size: %d", dtoType.getSimpleName(), propertyName, incomingReferences.size())); + } + } + + break; + + } + + return result; + + } + protected NonTargetCatchService getNonTargetCatchService() { return ObserveSwingApplicationContext.get().newService(NonTargetCatchService.class); } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/NonTargetCatchServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/NonTargetCatchServiceTopia.java index 57b91b1..8095acd 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/NonTargetCatchServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/NonTargetCatchServiceTopia.java @@ -61,8 +61,7 @@ public class NonTargetCatchServiceTopia extends ObserveServiceTopia implements N Form<SetSeineNonTargetCatchDto> form = dataEntityToForm( SetSeineNonTargetCatchDto.class, setSeine, - ReferenceSetRequestDefinitions.SET_SEINE_FORM - //ImmutableMap.<String, Object>of(Species.PROPERTY_OCEAN, ocean), //FIXME context + ReferenceSetRequestDefinitions.SET_SEINE_NON_TARGET_CATCH_FORM ); SetSeineNonTargetCatchDto setSeineNonTargetCatchDto = form.getObject(); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/7608-PS-VerifEcranEchantillonsFaunesAccesoire in repository tutti. See http://git.codelutin.com/tutti.git commit de27f17437dc97e8d4ce591c32de4ac4499a8005 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Mar 9 15:42:49 2016 +0100 Ajout de trace dans les appels des services Ajouter un fonction pour récupéré la liste des espèces échantillonables (see #7608). --- .../table/impl/seine/NonTargetSampleUIHandler.java | 27 +++++++++ .../v1/seine/NonTargetSampleServiceController.java | 9 +++ .../service/seine/NonTargetSampleService.java | 7 +++ .../service/seine/NonTargetSampleServiceTopia.java | 66 +++++++++++++--------- 4 files changed, 83 insertions(+), 26 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetSampleUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetSampleUIHandler.java index b5cfb35..ae767b6 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetSampleUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetSampleUIHandler.java @@ -26,6 +26,7 @@ import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.db.DataContext; import fr.ird.observe.db.constants.DataContextType; import fr.ird.observe.services.dto.Form; +import fr.ird.observe.services.dto.referential.ReferentialDto; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.SexDto; import fr.ird.observe.services.dto.referential.SpeciesDto; @@ -48,6 +49,8 @@ import javax.swing.JTable; import javax.swing.table.DefaultTableCellRenderer; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; +import java.util.Collection; +import java.util.LinkedList; import java.util.List; import java.util.Set; @@ -310,6 +313,30 @@ public class NonTargetSampleUIHandler extends ContentTableUIHandler<NonTargetSam NonTargetSampleDtos.copyNonTargetSampleDto(form.getObject(), getBean()); } + @Override + protected <D extends ReferentialDto> Collection<ReferentialReference<D>> filterReferentialReferences(Class<D> dtoType, String propertyName, LinkedList<ReferentialReference<D>> incomingReferences) { + + Collection<ReferentialReference<D>> result = super.filterReferentialReferences(dtoType, propertyName, incomingReferences); + + switch (propertyName) { + + case NonTargetLengthDto.PROPERTY_SPECIES: { + + result = (Collection) getNonTargetSampleService().getSampleSpecies(getSelectedParentId()); + + if (log.isDebugEnabled()) { + log.debug(String.format("Filter referential references (type %s - property %s), final size: %d", dtoType.getSimpleName(), propertyName, incomingReferences.size())); + } + } + + break; + + } + + return result; + + } + protected NonTargetSampleService getNonTargetSampleService() { return ObserveSwingApplicationContext.get().newService(NonTargetSampleService.class); } diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/NonTargetSampleServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/NonTargetSampleServiceController.java index 3eb55e5..c7f4041 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/NonTargetSampleServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/NonTargetSampleServiceController.java @@ -24,10 +24,14 @@ package fr.ird.observe.application.web.controller.v1.seine; import fr.ird.observe.application.web.controller.v1.ObserveAuthenticatedServiceControllerSupport; import fr.ird.observe.services.dto.Form; +import fr.ird.observe.services.dto.referential.ReferentialReference; +import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.result.SaveResultDto; import fr.ird.observe.services.dto.seine.NonTargetSampleDto; import fr.ird.observe.services.service.seine.NonTargetSampleService; +import java.util.Collection; + /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ @@ -48,6 +52,11 @@ public class NonTargetSampleServiceController extends ObserveAuthenticatedServic } @Override + public Collection<ReferentialReference<SpeciesDto>> getSampleSpecies(String setSeineId) { + return service.getSampleSpecies(setSeineId); + } + + @Override public SaveResultDto save(String setSeineId, NonTargetSampleDto dto) { return service.save(setSeineId, dto); } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/NonTargetSampleService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/NonTargetSampleService.java index f16ee01..a96bd0c 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/NonTargetSampleService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/NonTargetSampleService.java @@ -24,6 +24,8 @@ package fr.ird.observe.services.service.seine; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.dto.Form; +import fr.ird.observe.services.dto.referential.ReferentialReference; +import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.result.SaveResultDto; import fr.ird.observe.services.dto.seine.NonTargetSampleDto; import fr.ird.observe.services.spi.PostRequest; @@ -31,6 +33,8 @@ import fr.ird.observe.services.spi.ReadDataPermission; import fr.ird.observe.services.spi.Write; import fr.ird.observe.services.spi.WriteDataPermission; +import java.util.Collection; + /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ @@ -42,6 +46,9 @@ public interface NonTargetSampleService extends ObserveService { @ReadDataPermission Form<NonTargetSampleDto> loadForm(String setSeineId); + @ReadDataPermission + Collection<ReferentialReference<SpeciesDto>> getSampleSpecies(String setSeineId); + @Write @WriteDataPermission @PostRequest diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/NonTargetSampleServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/NonTargetSampleServiceTopia.java index c93f36e..b56412b 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/NonTargetSampleServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/NonTargetSampleServiceTopia.java @@ -23,28 +23,39 @@ package fr.ird.observe.services.service.seine; */ import com.google.common.collect.Iterables; -import com.google.common.collect.Sets; -import fr.ird.observe.entities.referentiel.Species; +import fr.ird.observe.entities.referentiel.ObserveReferentialEntity; import fr.ird.observe.entities.seine.NonTargetCatch; import fr.ird.observe.entities.seine.NonTargetSample; import fr.ird.observe.entities.seine.SetSeine; import fr.ird.observe.services.ObserveServiceTopia; +import fr.ird.observe.services.binder.referential.ReferentialBinderSupport; import fr.ird.observe.services.dto.Form; +import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.reference.request.ReferenceSetRequestDefinitions; +import fr.ird.observe.services.dto.referential.ReferentialReference; +import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.result.SaveResultDto; import fr.ird.observe.services.dto.seine.NonTargetSampleDto; import fr.ird.observe.services.dto.seine.SetSeineDto; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import java.util.Collection; -import java.util.Set; +import java.util.List; +import java.util.stream.Collectors; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ public class NonTargetSampleServiceTopia extends ObserveServiceTopia implements NonTargetSampleService { + private static final Log log = LogFactory.getLog(NonTargetSampleServiceTopia.class); + @Override public boolean canUseNonTargetSample(String setSeineId) { + if (log.isTraceEnabled()) { + log.trace("canUseNonTargetSample(" + setSeineId + ")"); + } SetSeine setSeine = loadEntity(SetSeineDto.class, setSeineId); @@ -71,6 +82,9 @@ public class NonTargetSampleServiceTopia extends ObserveServiceTopia implements @Override public Form<NonTargetSampleDto> loadForm(String setSeineId) { + if (log.isTraceEnabled()) { + log.trace("loadForm(" + setSeineId + ")"); + } SetSeine setSeine = loadEntity(SetSeineDto.class, setSeineId); @@ -79,45 +93,45 @@ public class NonTargetSampleServiceTopia extends ObserveServiceTopia implements Form<NonTargetSampleDto> form = dataEntityToForm( NonTargetSampleDto.class, nonTargetSample, - ReferenceSetRequestDefinitions.SET_SEINE_NON_TARGET_CATCH_FORM); + ReferenceSetRequestDefinitions.NON_TARGET_SAMPLE_FORM); - // on filtre la liste des espéces cibles - Set<Species> speciesSet = Sets.newLinkedHashSet(); + return form; + } - // on recupere la liste des espèces thon cible - Collection<NonTargetCatch> nonTargetCatches = setSeine.getNonTargetCatch(); + @Override + public Collection<ReferentialReference<SpeciesDto>> getSampleSpecies(String setSeineId) { + if (log.isTraceEnabled()) { + log.trace("getSampleSpecies(" + setSeineId + ")"); + } - // on filtre sur les espèces montées sur le pont et rejetées - if (nonTargetCatches != null) { + SetSeine setSeine = loadEntity(SetSeineDto.class, setSeineId); - for (NonTargetCatch nonTargetCatch : nonTargetCatches) { + ReferentialBinderSupport<ObserveReferentialEntity, SpeciesDto> speciesBinder = getReferentialBinder(SpeciesDto.class); - speciesSet.add(nonTargetCatch.getSpecies()); - } + ReferentialLocale referentialLocale = getReferentialLocale(); - } - //FIXME request -// LinkedHashSet<ReferenceDto<SpeciesDto>> speciesRefs = Sets.newLinkedHashSet(); -// -// for (Species species : speciesSet) { -// speciesRefs.add(entityToReferenceDto(SpeciesDto.class, species)); -// } -// -// ReferenceSetDto<SpeciesDto> speciesRreferenceSetDto = form.getReferenceSetDto(SpeciesDto.class); -// speciesRreferenceSetDto.setReference(speciesRefs); + // on recupere la liste des espèces thon cible + List<ReferentialReference<SpeciesDto>> species = setSeine.getNonTargetCatch().stream() + .map(NonTargetCatch::getSpecies) + .distinct() + .map(s -> speciesBinder.toReferentialReference(referentialLocale, s)) + .collect(Collectors.toList()); - return form; + return species; } @Override public SaveResultDto save(String setSeineId, NonTargetSampleDto dto) { + if (log.isTraceEnabled()) { + log.trace("save(" + setSeineId + ", " + dto.getId() + ")"); + } SetSeine setSeine = loadEntity(SetSeineDto.class, setSeineId); - checkLastUpdateDate(setSeine, dto); - NonTargetSample entity = loadOrCreateEntityFromDataDto(dto); + checkLastUpdateDate(entity, dto); + copyDataDtoToEntity(dto, entity); if (dto.isNotPersisted()) { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm