This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository tutti. See http://git.codelutin.com/tutti.git commit 0f276c6c4b139ad044039b358f761098b3206a01 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Mar 6 13:50:56 2016 +0100 Par défaut, on ne conserve pas les références de réferentiels obsolètes --- .../ird/observe/ui/content/ContentUIHandler.java | 13 +++++++++- .../open/impl/longline/TripLonglineUIHandler.java | 19 +++++++++----- .../open/impl/seine/TripSeineUIHandler.java | 19 +++++++++----- .../ui/content/ref/ContentReferenceUIHandler.java | 7 +++++ .../dto/referential/ReferentialReferences.java | 30 ++++++++++++++++++++++ 5 files changed, 75 insertions(+), 13 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIHandler.java index 05bfa42..1fda177 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIHandler.java @@ -42,6 +42,7 @@ import fr.ird.observe.services.dto.reference.request.ReferenceSetRequestKeyDefin import fr.ird.observe.services.dto.referential.ReferentialDto; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.ReferentialReferenceSet; +import fr.ird.observe.services.dto.referential.ReferentialReferences; import fr.ird.observe.ui.DecoratorService; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.actions.shared.AbstractUIAction; @@ -581,7 +582,17 @@ public abstract class ContentUIHandler<E extends IdDto> { } protected <D extends ReferentialDto> Iterable<ReferentialReference<D>> filterReferentialReferences(Class<D> dtoType, String propertyName, LinkedList<ReferentialReference<D>> incomingReferences) { - return incomingReferences; + + if (log.isDebugEnabled()) { + log.debug(String.format("Filter referential references (type %s - property %s), original size: %d", dtoType.getSimpleName(), propertyName, incomingReferences.size())); + } + // by default always remove obsolete references + List<ReferentialReference<D>> referentialReferences = ReferentialReferences.filterEnabled(incomingReferences); + if (log.isDebugEnabled()) { + log.debug(String.format("Filter referential references (type %s - property %s), without diabled size: %d", dtoType.getSimpleName(), propertyName, incomingReferences.size())); + } + return referentialReferences; + } /** 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 d8fcd41..4b6da52 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 @@ -334,30 +334,37 @@ public class TripLonglineUIHandler extends ContentOpenableUIHandler<TripLongline @Override protected <D extends ReferentialDto> Iterable<ReferentialReference<D>> filterReferentialReferences(Class<D> dtoType, String propertyName, LinkedList<ReferentialReference<D>> incomingReferences) { - Iterable<ReferentialReference<D>> result; + Iterable<ReferentialReference<D>> result = super.filterReferentialReferences(dtoType, propertyName, incomingReferences); switch (propertyName) { case TripLonglineDto.PROPERTY_CAPTAIN: { Predicate predicate = PersonDtos.newCaptainReferencePredicate(); - result = Iterables.filter(incomingReferences, predicate); + result = Iterables.filter(result, predicate); + if (log.isDebugEnabled()) { + log.debug(String.format("Filter referential references (type %s - property %s), final size: %d", dtoType.getSimpleName(), propertyName, incomingReferences.size())); + } } break; case TripLonglineDto.PROPERTY_OBSERVER: { Predicate predicate = PersonDtos.newObserverReferencePredicate(); - result = Iterables.filter(incomingReferences, predicate); + result = Iterables.filter(result, predicate); + if (log.isDebugEnabled()) { + log.debug(String.format("Filter referential references (type %s - property %s), final size: %d", dtoType.getSimpleName(), propertyName, incomingReferences.size())); + } } break; case TripLonglineDto.PROPERTY_DATA_ENTRY_OPERATOR: { Predicate predicate = PersonDtos.newDataEntryOperatorReferencePredicate(); - result = Iterables.filter(incomingReferences, predicate); + result = Iterables.filter(result, predicate); + if (log.isDebugEnabled()) { + log.debug(String.format("Filter referential references (type %s - property %s), final size: %d", dtoType.getSimpleName(), propertyName, incomingReferences.size())); + } } break; - default: - result = incomingReferences; } return result; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIHandler.java index 2286027..cf1edf8 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIHandler.java @@ -330,30 +330,37 @@ public class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeineDto> { @Override protected <D extends ReferentialDto> Iterable<ReferentialReference<D>> filterReferentialReferences(Class<D> dtoType, String propertyName, LinkedList<ReferentialReference<D>> incomingReferences) { - Iterable<ReferentialReference<D>> result; + Iterable<ReferentialReference<D>> result = super.filterReferentialReferences(dtoType, propertyName, incomingReferences); switch (propertyName) { case TripSeineDto.PROPERTY_CAPTAIN: { Predicate referentialReferencePredicate = PersonDtos.newCaptainReferencePredicate(); - result = Iterables.filter(incomingReferences, referentialReferencePredicate); + result = Iterables.filter(result, referentialReferencePredicate); + if (log.isDebugEnabled()) { + log.debug(String.format("Filter referential references (type %s - property %s), final size: %d", dtoType.getSimpleName(), propertyName, incomingReferences.size())); + } } break; case TripSeineDto.PROPERTY_OBSERVER: { Predicate referentialReferencePredicate = PersonDtos.newObserverReferencePredicate(); - result = Iterables.filter(incomingReferences, referentialReferencePredicate); + result = Iterables.filter(result, referentialReferencePredicate); + if (log.isDebugEnabled()) { + log.debug(String.format("Filter referential references (type %s - property %s), final size: %d", dtoType.getSimpleName(), propertyName, incomingReferences.size())); + } } break; case TripSeineDto.PROPERTY_DATA_ENTRY_OPERATOR: { Predicate referentialReferencePredicate = PersonDtos.newDataEntryOperatorReferencePredicate(); - result = Iterables.filter(incomingReferences, referentialReferencePredicate); + result = Iterables.filter(result, referentialReferencePredicate); + if (log.isDebugEnabled()) { + log.debug(String.format("Filter referential references (type %s - property %s), final size: %d", dtoType.getSimpleName(), propertyName, incomingReferences.size())); + } } break; - default: - result = incomingReferences; } return result; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/ContentReferenceUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/ContentReferenceUIHandler.java index b6e2e6d..8291788 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/ContentReferenceUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ref/ContentReferenceUIHandler.java @@ -87,6 +87,7 @@ import java.beans.PropertyChangeListener; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.LinkedList; import java.util.List; import java.util.Locale; import java.util.Map; @@ -796,6 +797,12 @@ public class ContentReferenceUIHandler<E extends ReferentialDto> extends Content getUi().stopEdit(); } + @Override + protected <D extends ReferentialDto> Iterable<ReferentialReference<D>> filterReferentialReferences(Class<D> dtoType, String propertyName, LinkedList<ReferentialReference<D>> incomingReferences) { + // No filter for referantial screen + return incomingReferences; + } + //FIXME // @Override // protected E onPreCreate(TopiaContext tx, diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialReferences.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialReferences.java new file mode 100644 index 0000000..0e3491f --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialReferences.java @@ -0,0 +1,30 @@ +package fr.ird.observe.services.dto.referential; + +import com.google.common.base.Predicate; +import com.google.common.collect.Iterables; +import com.google.common.collect.Lists; + +import java.util.List; + +/** + * Created on 06/03/16. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ReferentialReferences { + + protected static final Predicate<ReferentialReference> IS_ENABLE_PREDICATE = new Predicate<ReferentialReference>() { + + @Override + public boolean apply(ReferentialReference input) { + return input.isEnabled(); + } + }; + + public static <D extends ReferentialDto> List<ReferentialReference<D>> filterEnabled(List<ReferentialReference<D>> references) { + + List<ReferentialReference<D>> result = Lists.newArrayList(Iterables.filter(references, IS_ENABLE_PREDICATE)); + return result; + + } +} -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.