diff options
| author | Laurent Redor | 2015-09-29 10:09:40 +0000 |
|---|---|---|
| committer | Laurent Redor | 2015-09-29 14:59:40 +0000 |
| commit | 9a180dc90f0ef92bc573acf72e90552a9c729cce (patch) | |
| tree | 24bc81589f74e8f0d1d1ad9a2d9ddabb71aefa8f | |
| parent | 2710f329d7e6eb347d160d0e574a39d37b533d7e (diff) | |
| download | org.eclipse.sirius-9a180dc90f0ef92bc573acf72e90552a9c729cce.tar.gz org.eclipse.sirius-9a180dc90f0ef92bc573acf72e90552a9c729cce.tar.xz org.eclipse.sirius-9a180dc90f0ef92bc573acf72e90552a9c729cce.zip | |
[466455] Homogenize ContainerMappingHelper and NodeMappingHelper
In ContainerMappingHelper.getNodesCandidates, we do not check if the
containerView is directly a DDiagram (unlike
NodeMappingHelper.getNodesCandidates). Since the add of
RefreshIdsHolder, this can be problematic.
Bug: 466455
Change-Id: I177d9a048feb12ddfb50299036077fd6a6b3f401
Signed-off-by: Laurent Redor <laurent.redor@obeo.fr>
| -rw-r--r-- | plugins/org.eclipse.sirius.diagram/src-core/org/eclipse/sirius/diagram/business/internal/metamodel/helper/ContainerMappingHelper.java | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/plugins/org.eclipse.sirius.diagram/src-core/org/eclipse/sirius/diagram/business/internal/metamodel/helper/ContainerMappingHelper.java b/plugins/org.eclipse.sirius.diagram/src-core/org/eclipse/sirius/diagram/business/internal/metamodel/helper/ContainerMappingHelper.java index add0924c08..c175ff7824 100644 --- a/plugins/org.eclipse.sirius.diagram/src-core/org/eclipse/sirius/diagram/business/internal/metamodel/helper/ContainerMappingHelper.java +++ b/plugins/org.eclipse.sirius.diagram/src-core/org/eclipse/sirius/diagram/business/internal/metamodel/helper/ContainerMappingHelper.java @@ -161,10 +161,12 @@ public final class ContainerMappingHelper { public static EList<EObject> getNodesCandidates(IContainerMappingExt self, EObject semanticOrigin, EObject container, EObject containerView) { DslCommonPlugin.PROFILER.startWork(SiriusTasksKey.GET_CONTAINER_CANDIDATES_KEY); // - // find the parent viewpoint. - DDiagram parentVp = null; + // find the parent diagram. + DDiagram diagram = null; if (containerView instanceof DDiagramElement) { - parentVp = ((DDiagramElement) containerView).getParentDiagram(); + diagram = ((DDiagramElement) containerView).getParentDiagram(); + } else if (containerView instanceof DDiagram) { + diagram = (DDiagram) containerView; } // // The container variable. @@ -174,12 +176,12 @@ public final class ContainerMappingHelper { } else { safeContainer = container; } - final EObjectCouple couple = new EObjectCouple(semanticOrigin, safeContainer, RefreshIdsHolder.getOrCreateHolder(parentVp)); + final EObjectCouple couple = new EObjectCouple(semanticOrigin, safeContainer, RefreshIdsHolder.getOrCreateHolder(diagram)); EList<EObject> result = self.getCandidatesCache().get(couple); if (result == null) { result = new UniqueEList<EObject>(); Iterator<EObject> it; - it = DiagramElementMappingHelper.getSemanticIterator(self, semanticOrigin, parentVp); + it = DiagramElementMappingHelper.getSemanticIterator(self, semanticOrigin, diagram); if (self.getDomainClass() != null) { while (it.hasNext()) { final EObject eObj = it.next(); |
