This is an automated email from the git hooks/post-receive script. New commit to branch feature/7017 in repository observe. See http://git.codelutin.com/observe.git commit 2c13b5d9588979d34d7473a863c20f9f3ec76a88 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Tue May 5 16:20:41 2015 +0200 remplacé l'utilisation des lists singlonton car elle doivent être triées, filtré les element de list a enregistrés, ajout d'un chans dans un binder --- .../main/java/fr/ird/observe/BinderService.java | 3 ++- .../observe/services/AbstractObserveService.java | 22 ++++++++++++++++++++++ .../data/seine/NonTargetSampleServiceImpl.java | 4 ++-- .../data/seine/TargetCatchServiceImpl.java | 2 +- .../data/seine/TargetSampleServiceImpl.java | 6 +++--- .../table/impl/seine/NonTargetCatchUIHandler.java | 4 ++-- .../table/impl/seine/NonTargetSampleUIHandler.java | 4 ++-- .../table/impl/seine/TargetCatchUIHandler.java | 3 ++- .../impl/seine/TargetDiscardCatchUIHandler.java | 5 +++-- .../table/impl/seine/TargetSampleUIHandler.java | 1 + 10 files changed, 40 insertions(+), 14 deletions(-) diff --git a/observe-business/src/main/java/fr/ird/observe/BinderService.java b/observe-business/src/main/java/fr/ird/observe/BinderService.java index a0cfdba..31c9651 100644 --- a/observe-business/src/main/java/fr/ird/observe/BinderService.java +++ b/observe-business/src/main/java/fr/ird/observe/BinderService.java @@ -477,7 +477,8 @@ public class BinderService { BinderModelBuilder<TargetSample, TargetSample> builder = newBinderBuilder( TargetSample.class, TargetSample.PROPERTY_TARGET_LENGTH, - TargetSample.PROPERTY_COMMENT); + TargetSample.PROPERTY_COMMENT, + TargetSample.PROPERTY_DISCARDED); registerTopiaBinder(TargetSample.class, builder, EDIT); diff --git a/observe-services/src/main/java/fr/ird/observe/services/AbstractObserveService.java b/observe-services/src/main/java/fr/ird/observe/services/AbstractObserveService.java index cb8290b..7c59cd4 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/AbstractObserveService.java +++ b/observe-services/src/main/java/fr/ird/observe/services/AbstractObserveService.java @@ -1,6 +1,7 @@ package fr.ird.observe.services; import com.google.common.base.Predicate; +import com.google.common.base.Predicates; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; import fr.ird.observe.BinderService; @@ -370,6 +371,10 @@ public abstract class AbstractObserveService implements ObserveService { } + for (E childNotSaved : Iterables.filter(oldChilds, Predicates.not(saveCollectionAction.childPredicate))) { + saveCollectionAction.listUpdator.addToList(parentSaved, childNotSaved); + } + // on donne la main aux implantations pour faire des traitements supplémentaires saveCollectionAction.onUpdateFinalize(parentSaved, oldChilds); @@ -388,6 +393,22 @@ public abstract class AbstractObserveService implements ObserveService { protected final TopiaEntityBinder<E> childBinder; + protected final Predicate<E> childPredicate; + + public SaveCollectionAction(Class<P> parentClass, + Class<E> entityClass, + EntityListUpdator<P, E> listUpdator, + TopiaEntityBinder<P> parentBinder, + TopiaEntityBinder<E> childBinder, + Predicate<E> childPredicate) { + this.parentClass = parentClass; + this.entityClass = entityClass; + this.listUpdator = listUpdator; + this.parentBinder = parentBinder; + this.childBinder = childBinder; + this.childPredicate = childPredicate; + } + public SaveCollectionAction(Class<P> parentClass, Class<E> entityClass, EntityListUpdator<P, E> listUpdator, @@ -398,6 +419,7 @@ public abstract class AbstractObserveService implements ObserveService { this.listUpdator = listUpdator; this.parentBinder = parentBinder; this.childBinder = childBinder; + this.childPredicate = Predicates.alwaysTrue(); } public void prepareSave(P parentToSave, Collection<E> toSaves) { diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/seine/NonTargetSampleServiceImpl.java b/observe-services/src/main/java/fr/ird/observe/services/data/seine/NonTargetSampleServiceImpl.java index 31c52aa..2404eec 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/data/seine/NonTargetSampleServiceImpl.java +++ b/observe-services/src/main/java/fr/ird/observe/services/data/seine/NonTargetSampleServiceImpl.java @@ -160,7 +160,7 @@ public class NonTargetSampleServiceImpl extends AbstractObserveService implement //FIXME Use obtainPropertiesExcluding NonTargetSample created = dao.create(); - copyExcluding(NonTargetSample.class, BinderService.EDIT, toCreate, created, NonTargetSample.PROPERTY_NON_TARGET_LENGTH); + copyExcluding(NonTargetSample.class, BinderService.EDIT, toCreate, created, false, NonTargetSample.PROPERTY_NON_TARGET_LENGTH); parent.addNonTargetSample(created); saveTargetLengths(toCreate.getNonTargetLength(), created); @@ -175,7 +175,7 @@ public class NonTargetSampleServiceImpl extends AbstractObserveService implement NonTargetSample updated = super.onUpdate(parent, toUpdate); - copyExcluding(NonTargetSample.class, BinderService.EDIT, toUpdate, updated, NonTargetSample.PROPERTY_NON_TARGET_LENGTH); + copyExcluding(NonTargetSample.class, BinderService.EDIT, toUpdate, updated, false, NonTargetSample.PROPERTY_NON_TARGET_LENGTH); saveTargetLengths(toUpdate.getNonTargetLength(), updated); diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/seine/TargetCatchServiceImpl.java b/observe-services/src/main/java/fr/ird/observe/services/data/seine/TargetCatchServiceImpl.java index f8d00ee..39d45bf 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/data/seine/TargetCatchServiceImpl.java +++ b/observe-services/src/main/java/fr/ird/observe/services/data/seine/TargetCatchServiceImpl.java @@ -111,7 +111,7 @@ public class TargetCatchServiceImpl extends AbstractObserveService implements Ta TopiaEntityBinder<TargetCatch> childBinder = getBinder(TargetCatch.class, binderContext); doSaveList(setSeinetoSave, new SaveCollectionAction<SetSeine, TargetCatch>( - SetSeine.class, TargetCatch.class, getListUpdator(), parentBinder, childBinder) { + SetSeine.class, TargetCatch.class, getListUpdator(), parentBinder, childBinder, predicate) { @Override public void onUpdateFinalize(SetSeine parentSaved, Collection<TargetCatch> oldChilds) throws TopiaException { diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/seine/TargetSampleServiceImpl.java b/observe-services/src/main/java/fr/ird/observe/services/data/seine/TargetSampleServiceImpl.java index 976a4cf..5777067 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/data/seine/TargetSampleServiceImpl.java +++ b/observe-services/src/main/java/fr/ird/observe/services/data/seine/TargetSampleServiceImpl.java @@ -83,7 +83,7 @@ public class TargetSampleServiceImpl extends AbstractObserveService implements T TargetSample toLoad = null; - if (!setSeine.isNonTargetSampleEmpty()) { + if (!setSeine.isTargetSampleEmpty()) { List<TargetSample> targetSamples = setSeine.getTargetSample(); for (TargetSample targetSample : targetSamples) { @@ -175,7 +175,7 @@ public class TargetSampleServiceImpl extends AbstractObserveService implements T public TargetSample onCreate(SetSeine parent, TargetSample toCreate) { TargetSample created = getDao().create(); - copyExcluding(TargetSample.class, BinderService.EDIT, toCreate, created, TargetSample.PROPERTY_TARGET_LENGTH); + copyExcluding(TargetSample.class, BinderService.EDIT, toCreate, created, false, TargetSample.PROPERTY_TARGET_LENGTH); parent.addTargetSample(created); saveTargetLengths(toCreate.getTargetLength(), created); @@ -190,7 +190,7 @@ public class TargetSampleServiceImpl extends AbstractObserveService implements T TargetSample updated = super.onUpdate(parent, toUpdate); - copyExcluding(TargetSample.class, BinderService.EDIT, toUpdate, updated, TargetSample.PROPERTY_TARGET_LENGTH); + copyExcluding(TargetSample.class, BinderService.EDIT, toUpdate, updated, false, TargetSample.PROPERTY_TARGET_LENGTH); saveTargetLengths(toUpdate.getTargetLength(), updated); diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetCatchUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetCatchUIHandler.java index 9ed6a04..19b593d 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetCatchUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetCatchUIHandler.java @@ -21,6 +21,7 @@ */ package fr.ird.observe.ui.content.table.impl.seine; +import com.google.common.collect.Lists; import fr.ird.observe.BinderService; import fr.ird.observe.ObserveConfig; import fr.ird.observe.db.constants.DataContextType; @@ -55,7 +56,6 @@ import javax.swing.table.DefaultTableCellRenderer; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.ArrayList; -import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -253,7 +253,7 @@ public class NonTargetCatchUIHandler extends ContentTableUIHandler<SetSeine, Non } else { Species species = bean.getSpecies(); - availableSpecies = Collections.singletonList(species); + availableSpecies = Lists.newArrayList(species); requestFocus = getUi().getTable(); } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetSampleUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetSampleUIHandler.java index 5d15a06..dc2d72d 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetSampleUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetSampleUIHandler.java @@ -21,6 +21,7 @@ */ package fr.ird.observe.ui.content.table.impl.seine; +import com.google.common.collect.Lists; import fr.ird.observe.BinderService; import fr.ird.observe.db.DataContext; import fr.ird.observe.db.constants.DataContextType; @@ -49,7 +50,6 @@ import javax.swing.table.DefaultTableCellRenderer; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import static org.nuiton.i18n.I18n.n; @@ -223,7 +223,7 @@ public class NonTargetSampleUIHandler extends ContentTableUIHandler<NonTargetSam acquisitionModeGroup.setSelectedValue(null); acquisitionModeGroup.setSelectedValue(enumValue); - availableSpecies = Collections.singletonList(species); + availableSpecies = Lists.newArrayList(species); requestFocus = ui.getCount(); } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetCatchUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetCatchUIHandler.java index 9e89625..bfcc9ab 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetCatchUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetCatchUIHandler.java @@ -21,6 +21,7 @@ */ package fr.ird.observe.ui.content.table.impl.seine; +import com.google.common.collect.Lists; import fr.ird.observe.BinderService; import fr.ird.observe.ObserveConfig; import fr.ird.observe.db.constants.DataContextType; @@ -243,7 +244,7 @@ public class TargetCatchUIHandler extends ContentTableUIHandler<SetSeine, Target // puisque dans ce mode, pas possibilite de modifier de cette // valeur (clef metier) speciesComboBox.setSelectedItem(species); - weightCategoryComboBox.setData(Collections.singletonList(weightCategory)); + weightCategoryComboBox.setData(Lists.newArrayList(weightCategory)); weightCategoryComboBox.setSelectedItem(weightCategory); requestFocus = ui.getCatchWeight(); diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetDiscardCatchUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetDiscardCatchUIHandler.java index 22333ea..b4bd57e 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetDiscardCatchUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetDiscardCatchUIHandler.java @@ -21,6 +21,7 @@ */ package fr.ird.observe.ui.content.table.impl.seine; +import com.google.common.collect.Lists; import fr.ird.observe.BinderService; import fr.ird.observe.ObserveConfig; import fr.ird.observe.db.constants.DataContextType; @@ -300,9 +301,9 @@ public class TargetDiscardCatchUIHandler extends ContentTableUIHandler<SetSeine, // puisque dans ce mode, pas possibilite de modifier de cette // valeur (clef metier) speciesComboBox.setSelectedItem(beanEspece); - weightCategoryComboBox.setData(Collections.singletonList(beanWeightCategory)); + weightCategoryComboBox.setData(Lists.newArrayList(beanWeightCategory)); weightCategoryComboBox.setSelectedItem(beanWeightCategory); - reasonForDiscardComboBox.setData(Collections.singletonList(beanReasonForDiscard)); + reasonForDiscardComboBox.setData(Lists.newArrayList(beanReasonForDiscard)); reasonForDiscardComboBox.setSelectedItem(beanReasonForDiscard); requestFocus = ui.getCatchWeight(); diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetSampleUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetSampleUIHandler.java index adae963..e24f31d 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetSampleUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetSampleUIHandler.java @@ -277,6 +277,7 @@ public class TargetSampleUIHandler extends ContentTableUIHandler<TargetSample, T } else { + editBean.setDiscarded(discarded); String savedId = service.save(setId, editBean); editBean.setTopiaId(savedId); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.