From 1da6f4ffc9af3a6b89ee61e34dcc63e061dd03fa Mon Sep 17 00:00:00 2001 From: Cherian Mathew Date: Wed, 21 Oct 2015 16:55:48 +0200 Subject: [PATCH] #5256 Add missing recursive load for MergeResult lists, Add setting of dirty flag for factual data in Buld Editor --- .../eu/etaxonomy/taxeditor/remoting/cache/CacheLoader.java | 7 +++++++ .../editor/view/descriptive/DescriptiveViewPart.java | 6 ++++++ 2 files changed, 13 insertions(+) diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/cache/CacheLoader.java b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/cache/CacheLoader.java index 79e4adc30..c99ce01b6 100644 --- a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/cache/CacheLoader.java +++ b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/cache/CacheLoader.java @@ -91,6 +91,8 @@ public class CacheLoader { return (T) load((Map)obj, alreadyVisitedEntities, update); } else if (obj instanceof Collection) { return (T) load((Collection)obj, alreadyVisitedEntities, update); + } else if (obj instanceof MergeResult) { + return (T) loadRecursive((MergeResult)obj, alreadyVisitedEntities, update); } @@ -208,6 +210,11 @@ public class CacheLoader { return new MergeResult(cdmBase, mergeResult.getNewEntities()); } + public MergeResult loadRecursive(MergeResult mergeResult,List alreadyVisitedEntities, boolean update) { + CdmBase cdmBase = loadRecursive(mergeResult.getMergedEntity(), alreadyVisitedEntities, update); + loadRecursive(mergeResult.getNewEntities(), alreadyVisitedEntities, update); + return new MergeResult(cdmBase, mergeResult.getNewEntities()); + } /** * Puts the (Key,Value) pair of ({@link java.util.UUID}, {@link eu.etaxonomy.cdm.model.common.CdmBase}), diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptiveViewPart.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptiveViewPart.java index 52fedd9b0..3494cd686 100644 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptiveViewPart.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptiveViewPart.java @@ -66,6 +66,7 @@ import eu.etaxonomy.taxeditor.model.IPartContentHasFactualData; import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData; import eu.etaxonomy.taxeditor.model.ImageResources; import eu.etaxonomy.taxeditor.model.MessagingUtils; +import eu.etaxonomy.taxeditor.store.CdmStore; import eu.etaxonomy.taxeditor.view.AbstractCdmEditorViewPart; import eu.etaxonomy.taxeditor.view.detail.DetailsViewPart; import eu.etaxonomy.taxeditor.view.supplementaldata.SupplementalDataViewPart; @@ -339,8 +340,13 @@ public class DescriptiveViewPart extends AbstractCdmEditorViewPart implements IP } if(part instanceof BulkEditor && !(object instanceof SpecimenOrObservationBase)){ ((BulkEditor) part).forceDirty(); + if(CdmStore.getCurrentSessionManager().isRemoting()) { + IStructuredSelection selection = (IStructuredSelection) ((BulkEditor) part).getSelectionProvider().getSelection(); + ((BulkEditor) part).changed(selection.getFirstElement()); + } } + super.changed(object); } -- 2.34.1