This is an automated email from the git hooks/post-receive script. New commit to branch feature/7607-PS-VerfiEcranEchantillonCapture in repository tutti. See http://git.codelutin.com/tutti.git commit accfea9093f17833d474bf60555d1f2e087bce2c Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Mar 9 08:37:56 2016 +0100 Ajout de trace dans les appels des services Ajouter un fonction pour récupéré la liste des espèces échantillonables (see #7604). --- .../table/impl/seine/TargetSampleUIHandler.java | 28 ++++++++++++ .../v1/seine/TargetSampleServiceController.java | 8 ++++ .../service/seine/TargetSampleService.java | 6 +++ .../service/seine/TargetSampleServiceTopia.java | 53 ++++++++++++++++++---- 4 files changed, 87 insertions(+), 8 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetSampleUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetSampleUIHandler.java index ba6de85..6fb4c3d 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetSampleUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetSampleUIHandler.java @@ -25,6 +25,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.SpeciesDto; import fr.ird.observe.services.dto.result.SaveResultDto; @@ -47,6 +48,8 @@ import javax.swing.JTable; import javax.swing.table.DefaultTableCellRenderer; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; +import java.util.LinkedList; +import java.util.List; import static org.nuiton.i18n.I18n.n; import static org.nuiton.i18n.I18n.t; @@ -326,6 +329,31 @@ public class TargetSampleUIHandler extends ContentTableUIHandler<TargetSampleDto TargetSampleDtos.copyTargetSampleDto(form.getObject(), getBean()); } + @Override + protected <D extends ReferentialDto> Iterable<ReferentialReference<D>> filterReferentialReferences(Class<D> dtoType, String propertyName, LinkedList<ReferentialReference<D>> incomingReferences) { + + Iterable<ReferentialReference<D>> result = super.filterReferentialReferences(dtoType, propertyName, incomingReferences); + + switch (propertyName) { + + case TargetLengthDto.PROPERTY_SPECIES: { + + result = (List) getTargetSampleService().getSampleSpecies(getSelectedParentId(), discarded); + + 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 TargetSampleService getTargetSampleService() { return ObserveSwingApplicationContext.get().newService(TargetSampleService.class); } diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/TargetSampleServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/TargetSampleServiceController.java index d9128bd..7a46bbf 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/TargetSampleServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/TargetSampleServiceController.java @@ -22,8 +22,11 @@ package fr.ird.observe.application.web.controller.v1.seine; * #L% */ +import com.google.common.collect.ImmutableList; 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.TargetSampleDto; import fr.ird.observe.services.service.seine.TargetSampleService; @@ -48,6 +51,11 @@ public class TargetSampleServiceController extends ObserveAuthenticatedServiceCo } @Override + public ImmutableList<ReferentialReference<SpeciesDto>> getSampleSpecies(String setSeineId, boolean discarded) { + return service.getSampleSpecies(setSeineId, discarded); + } + + @Override public SaveResultDto save(String setSeineId, TargetSampleDto dto) { return service.save(setSeineId, dto); } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TargetSampleService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TargetSampleService.java index ed7a031..e9b5513 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TargetSampleService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TargetSampleService.java @@ -22,8 +22,11 @@ package fr.ird.observe.services.service.seine; * #L% */ +import com.google.common.collect.ImmutableList; 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.TargetSampleDto; import fr.ird.observe.services.spi.PostRequest; @@ -42,6 +45,9 @@ public interface TargetSampleService extends ObserveService { @ReadDataPermission Form<TargetSampleDto> loadForm(String setSeineId, boolean discarded); + @ReadDataPermission + ImmutableList<ReferentialReference<SpeciesDto>> getSampleSpecies(String setSeineId, boolean discarded); + @Write @WriteDataPermission @PostRequest diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/TargetSampleServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/TargetSampleServiceTopia.java index 0934319..a290359 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/TargetSampleServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/TargetSampleServiceTopia.java @@ -22,19 +22,27 @@ package fr.ird.observe.services.service.seine; * #L% */ +import com.google.common.collect.ImmutableList; import com.google.common.collect.Sets; +import fr.ird.observe.entities.referentiel.ObserveReferentialEntity; import fr.ird.observe.entities.referentiel.Species; import fr.ird.observe.entities.seine.SetSeine; import fr.ird.observe.entities.seine.TargetCatch; import fr.ird.observe.entities.seine.TargetLength; import fr.ird.observe.entities.seine.TargetSample; 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.SetSeineDto; import fr.ird.observe.services.dto.seine.TargetSampleDto; import org.apache.commons.lang3.BooleanUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import java.util.Collection; import java.util.Set; @@ -44,8 +52,13 @@ import java.util.Set; */ public class TargetSampleServiceTopia extends ObserveServiceTopia implements TargetSampleService { + private static final Log log = LogFactory.getLog(TargetSampleServiceTopia.class); + @Override public boolean canUseTargetSample(String setSeineId, boolean discarded) { + if (log.isTraceEnabled()) { + log.trace("canUseTargetSample(" + setSeineId + ", " + discarded + ")"); + } SetSeine setSeine = loadEntity(SetSeineDto.class, setSeineId); @@ -68,6 +81,9 @@ public class TargetSampleServiceTopia extends ObserveServiceTopia implements Tar @Override public Form<TargetSampleDto> loadForm(String setSeineId, boolean discarded) { + if (log.isTraceEnabled()) { + log.trace("loadForm(" + setSeineId + ", " + discarded + ")"); + } SetSeine setSeine = loadEntity(SetSeineDto.class, setSeineId); @@ -78,7 +94,17 @@ public class TargetSampleServiceTopia extends ObserveServiceTopia implements Tar targetSample, ReferenceSetRequestDefinitions.TARGET_SAMPLE_FORM); - //FIXME referentialReferenceSet (à faire côté UI) + return form; + } + + @Override + public ImmutableList<ReferentialReference<SpeciesDto>> getSampleSpecies(String setSeineId, boolean discarded) { + if (log.isTraceEnabled()) { + log.trace("getSampleSpecies(" + setSeineId + ", " + discarded + ")"); + } + + SetSeine setSeine = loadEntity(SetSeineDto.class, setSeineId); + // on filtre la list des espéces cibles Set<Species> speciesSet = Sets.newLinkedHashSet(); @@ -93,7 +119,7 @@ public class TargetSampleServiceTopia extends ObserveServiceTopia implements Tar // si echantillon rejeté : on ne conserve que les espèces rejectées montées sur le pont // sinon les espèce cible if (discarded && targetCatch.isDiscarded() && BooleanUtils.isTrue(targetCatch.getBroughtOnDeck()) - || !discarded && !targetCatch.isDiscarded()) { + || !discarded && !targetCatch.isDiscarded()) { speciesSet.add(targetCatch.getWeightCategory().getSpecies()); } @@ -102,18 +128,29 @@ public class TargetSampleServiceTopia extends ObserveServiceTopia implements Tar } -// LinkedHashSet<ReferenceDto<SpeciesDto>> speciesRefs = Sets.newLinkedHashSet(); -// -// for (Species species : speciesSet ) { -// speciesRefs.add(entityToReferenceDto(SpeciesDto.class, species)); -// } + ImmutableList.Builder<ReferentialReference<SpeciesDto>> speciesBuilder = ImmutableList.builder(); - return form; + ReferentialLocale referentialLocale = getReferentialLocale(); + + ReferentialBinderSupport<ObserveReferentialEntity, SpeciesDto> binder = getReferentialBinder(SpeciesDto.class); + + for (Species species : speciesSet ) { + + ReferentialReference<SpeciesDto> speciesRef = binder.toReferentialReference(referentialLocale, species); + speciesBuilder.add(speciesRef); + + } + + return speciesBuilder.build(); } @Override public SaveResultDto save(String setSeineId, TargetSampleDto dto) { + if (log.isTraceEnabled()) { + log.trace("save(" + setSeineId + ", " + dto.getId() + ")"); + } + SetSeine setSeine = loadEntity(SetSeineDto.class, setSeineId); checkLastUpdateDate(setSeine, dto); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.