Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaurent Redor2015-09-29 10:09:40 +0000
committerLaurent Redor2015-09-29 14:59:40 +0000
commit9a180dc90f0ef92bc573acf72e90552a9c729cce (patch)
tree24bc81589f74e8f0d1d1ad9a2d9ddabb71aefa8f
parent2710f329d7e6eb347d160d0e574a39d37b533d7e (diff)
downloadorg.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.java12
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();

Back to the top