Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEsteban Dugueperoux2015-06-16 14:21:36 +0000
committerPierre-Charles David2015-08-25 14:50:37 +0000
commit9b8b63d3e419293ac7c062e509430be569b2c0c9 (patch)
tree0189c075643749dd3e7cef171075a392a03dcad7
parent27d55f94ccbad5201279b9a445dfae933c9fc272 (diff)
downloadorg.eclipse.sirius-9b8b63d3e419293ac7c062e509430be569b2c0c9.tar.gz
org.eclipse.sirius-9b8b63d3e419293ac7c062e509430be569b2c0c9.tar.xz
org.eclipse.sirius-9b8b63d3e419293ac7c062e509430be569b2c0c9.zip
[475825] Fix reconnection of edge towards inner container
Bug: 475825 Change-Id: Iae101006b42ad12a67edd992ac8d845d22f7419c Cherry-picked-from: 467663 Signed-off-by: Esteban Dugueperoux <esteban.dugueperoux@obeo.fr> Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr> Signed-off-by: Laurent Redor <laurent.redor@obeo.fr>
-rw-r--r--plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/business/internal/command/SiriusSetConnectionAnchorsCommand.java27
-rw-r--r--plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/edit/commands/DEdgeReorientCommand.java167
-rw-r--r--plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/edit/policies/AbstractDDiagramElementContainerItemSemanticEditPolicy.java22
-rw-r--r--plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/edit/policies/AbstractDNodeItemSemanticEditPolicy.java21
-rw-r--r--plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/edit/policies/DEdgeItemSemanticEditPolicy.java20
-rw-r--r--plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/edit/policies/SiriusBaseItemSemanticEditPolicy.java10
-rw-r--r--plugins/org.eclipse.sirius.tests.swtbot/data/unit/edgeReconnection/Bug467663.aird784
-rw-r--r--plugins/org.eclipse.sirius.tests.swtbot/data/unit/edgeReconnection/Bug467663.component21
-rw-r--r--plugins/org.eclipse.sirius.tests.swtbot/data/unit/edgeReconnection/Bug467663.ecore12
-rw-r--r--plugins/org.eclipse.sirius.tests.swtbot/data/unit/edgeReconnection/Bug467663.odesign129
-rw-r--r--plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/BracketEdgeTests.java50
-rw-r--r--plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/EdgeReconnectionTests.java285
-rw-r--r--plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/suite/AllTestSuite.java1
13 files changed, 1278 insertions, 271 deletions
diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/business/internal/command/SiriusSetConnectionAnchorsCommand.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/business/internal/command/SiriusSetConnectionAnchorsCommand.java
index fd4521876d..a874447bb0 100644
--- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/business/internal/command/SiriusSetConnectionAnchorsCommand.java
+++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/business/internal/command/SiriusSetConnectionAnchorsCommand.java
@@ -88,21 +88,24 @@ public class SiriusSetConnectionAnchorsCommand extends SetConnectionAnchorsComma
if (edge != null) {
// If there is tree brothers on the new source, we must use the
- // existing
- // sourceAnchor instead of the <code>newSourceTerminal</code>
- // parameter
- Option<IdentityAnchor> optionalSourceBortherAnchor = new EdgeQuery(edge).getSourceAnchorOfFirstBrotherWithSameSource();
- if (optionalSourceBortherAnchor.some()) {
- setNewSourceTerminal(optionalSourceBortherAnchor.get().getId());
+ // existing sourceAnchor instead of the
+ // <code>newSourceTerminal</code> parameter
+ EdgeQuery edgeQuery = new EdgeQuery(edge);
+ if (edgeQuery.isEdgeOnTreeOnSourceSide()) {
+ Option<IdentityAnchor> optionalSourceBortherAnchor = edgeQuery.getSourceAnchorOfFirstBrotherWithSameSource();
+ if (optionalSourceBortherAnchor.some()) {
+ setNewSourceTerminal(optionalSourceBortherAnchor.get().getId());
+ }
}
updateSourceAnchor(edge);
// If there is tree brothers on the new target, we must use the
- // existing
- // targetAnchor instead of the <code>newTargetTerminal</code>
- // parameter
- Option<IdentityAnchor> optionalTargetBortherAnchor = new EdgeQuery(edge).getTargetAnchorOfFirstBrotherWithSameTarget();
- if (optionalTargetBortherAnchor.some()) {
- setNewTargetTerminal(optionalTargetBortherAnchor.get().getId());
+ // existing targetAnchor instead of the
+ // <code>newTargetTerminal</code> parameter
+ if (edgeQuery.isEdgeOnTreeOnTargetSide()) {
+ Option<IdentityAnchor> optionalTargetBortherAnchor = edgeQuery.getTargetAnchorOfFirstBrotherWithSameTarget();
+ if (optionalTargetBortherAnchor.some()) {
+ setNewTargetTerminal(optionalTargetBortherAnchor.get().getId());
+ }
}
updateTargetAnchor(edge);
diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/edit/commands/DEdgeReorientCommand.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/edit/commands/DEdgeReorientCommand.java
deleted file mode 100644
index b9d23fb44b..0000000000
--- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/edit/commands/DEdgeReorientCommand.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 THALES GLOBAL SERVICES.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.sirius.diagram.ui.internal.edit.commands;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.gmf.runtime.common.core.command.CommandResult;
-import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
-import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
-import org.eclipse.sirius.diagram.DDiagram;
-import org.eclipse.sirius.diagram.DEdge;
-import org.eclipse.sirius.diagram.EdgeTarget;
-import org.eclipse.sirius.diagram.ui.internal.edit.policies.SiriusBaseItemSemanticEditPolicy;
-
-/**
- * @was-generated
- */
-public class DEdgeReorientCommand extends EditElementCommand {
-
- /**
- * @was-generated
- */
- private final int reorientDirection;
-
- /**
- * @was-generated
- */
- private final EObject oldEnd;
-
- /**
- * @was-generated
- */
- private final EObject newEnd;
-
- /**
- * @was-generated
- */
- public DEdgeReorientCommand(ReorientRelationshipRequest request) {
- super(request.getLabel(), request.getRelationship(), request);
- reorientDirection = request.getDirection();
- oldEnd = request.getOldRelationshipEnd();
- newEnd = request.getNewRelationshipEnd();
- }
-
- /**
- * @was-generated
- */
- public boolean canExecute() {
- if (!(getElementToEdit() instanceof DEdge)) {
- return false;
- }
- if (reorientDirection == ReorientRelationshipRequest.REORIENT_SOURCE) {
- return canReorientSource();
- }
- if (reorientDirection == ReorientRelationshipRequest.REORIENT_TARGET) {
- return canReorientTarget();
- }
- return false;
- }
-
- /**
- * @was-generated
- */
- protected boolean canReorientSource() {
- if (!(oldEnd instanceof EdgeTarget && newEnd instanceof EdgeTarget)) {
- return false;
- }
- EdgeTarget target = getLink().getTargetNode();
- if (!(getLink().eContainer() instanceof DDiagram)) {
- return false;
- }
- DDiagram container = (DDiagram) getLink().eContainer();
- return SiriusBaseItemSemanticEditPolicy.LinkConstraints.canExistDEdge_4001(container, getNewSource(), target);
- }
-
- /**
- * @was-generated
- */
- protected boolean canReorientTarget() {
- if (!(oldEnd instanceof EdgeTarget && newEnd instanceof EdgeTarget)) {
- return false;
- }
- EdgeTarget source = getLink().getSourceNode();
- if (!(getLink().eContainer() instanceof DDiagram)) {
- return false;
- }
- DDiagram container = (DDiagram) getLink().eContainer();
- return SiriusBaseItemSemanticEditPolicy.LinkConstraints.canExistDEdge_4001(container, source, getNewTarget());
- }
-
- /**
- * @was-generated
- */
- protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
- if (!canExecute()) {
- throw new ExecutionException("Invalid arguments in reorient link command"); //$NON-NLS-1$
- }
- if (reorientDirection == ReorientRelationshipRequest.REORIENT_SOURCE) {
- return reorientSource();
- }
- if (reorientDirection == ReorientRelationshipRequest.REORIENT_TARGET) {
- return reorientTarget();
- }
- throw new IllegalStateException();
- }
-
- /**
- * @was-generated
- */
- protected CommandResult reorientSource() throws ExecutionException {
- getLink().setSourceNode(getNewSource());
- return CommandResult.newOKCommandResult(getLink());
- }
-
- /**
- * @was-generated
- */
- protected CommandResult reorientTarget() throws ExecutionException {
- getLink().setTargetNode(getNewTarget());
- return CommandResult.newOKCommandResult(getLink());
- }
-
- /**
- * @was-generated
- */
- protected DEdge getLink() {
- return (DEdge) getElementToEdit();
- }
-
- /**
- * @was-generated
- */
- protected EdgeTarget getOldSource() {
- return (EdgeTarget) oldEnd;
- }
-
- /**
- * @was-generated
- */
- protected EdgeTarget getNewSource() {
- return (EdgeTarget) newEnd;
- }
-
- /**
- * @was-generated
- */
- protected EdgeTarget getOldTarget() {
- return (EdgeTarget) oldEnd;
- }
-
- /**
- * @was-generated
- */
- protected EdgeTarget getNewTarget() {
- return (EdgeTarget) newEnd;
- }
-}
diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/edit/policies/AbstractDDiagramElementContainerItemSemanticEditPolicy.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/edit/policies/AbstractDDiagramElementContainerItemSemanticEditPolicy.java
index 457909aa9c..eadba88acb 100644
--- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/edit/policies/AbstractDDiagramElementContainerItemSemanticEditPolicy.java
+++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/edit/policies/AbstractDDiagramElementContainerItemSemanticEditPolicy.java
@@ -16,14 +16,10 @@ import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
import org.eclipse.gmf.runtime.notation.View;
import org.eclipse.sirius.diagram.DiagramPackage;
-import org.eclipse.sirius.diagram.ui.graphical.edit.part.specific.BracketEdgeEditPart;
import org.eclipse.sirius.diagram.ui.internal.edit.commands.DEdgeCreateCommand;
-import org.eclipse.sirius.diagram.ui.internal.edit.commands.DEdgeReorientCommand;
import org.eclipse.sirius.diagram.ui.internal.edit.commands.DNode4CreateCommand;
-import org.eclipse.sirius.diagram.ui.internal.edit.parts.DEdgeEditPart;
import org.eclipse.sirius.diagram.ui.internal.providers.SiriusElementTypes;
/**
@@ -37,6 +33,7 @@ public abstract class AbstractDDiagramElementContainerItemSemanticEditPolicy ext
/**
* @was-generated
*/
+ @Override
protected Command getCreateCommand(CreateElementRequest req) {
if (SiriusElementTypes.DNode_3012 == req.getElementType()) {
if (req.getContainmentFeature() == null) {
@@ -50,6 +47,7 @@ public abstract class AbstractDDiagramElementContainerItemSemanticEditPolicy ext
/**
* @was-generated
*/
+ @Override
protected Command getDestroyElementCommand(DestroyElementRequest req) {
CompoundCommand cc = getDestroyEdgesCommand();
addDestroyChildNodesCommand(cc);
@@ -70,6 +68,7 @@ public abstract class AbstractDDiagramElementContainerItemSemanticEditPolicy ext
/**
* @was-generated
*/
+ @Override
protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
Command command = req.getTarget() == null ? getStartCreateRelationshipCommand(req) : getCompleteCreateRelationshipCommand(req);
return command != null ? command : super.getCreateRelationshipCommand(req);
@@ -95,19 +94,4 @@ public abstract class AbstractDDiagramElementContainerItemSemanticEditPolicy ext
return null;
}
- /**
- * Returns command to reorient EClass based link. New link target or source
- * should be the domain model element associated with this node.
- *
- * @was-generated
- */
- protected Command getReorientRelationshipCommand(ReorientRelationshipRequest req) {
- switch (getVisualID(req)) {
- case DEdgeEditPart.VISUAL_ID:
- case BracketEdgeEditPart.VISUAL_ID:
- return getGEFWrapper(new DEdgeReorientCommand(req));
- }
- return super.getReorientRelationshipCommand(req);
- }
-
}
diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/edit/policies/AbstractDNodeItemSemanticEditPolicy.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/edit/policies/AbstractDNodeItemSemanticEditPolicy.java
index 59a96bf920..81558d4dbf 100644
--- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/edit/policies/AbstractDNodeItemSemanticEditPolicy.java
+++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/edit/policies/AbstractDNodeItemSemanticEditPolicy.java
@@ -16,18 +16,14 @@ import org.eclipse.gef.commands.CompoundCommand;
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
import org.eclipse.gmf.runtime.notation.Node;
import org.eclipse.gmf.runtime.notation.View;
import org.eclipse.sirius.diagram.DiagramPackage;
-import org.eclipse.sirius.diagram.ui.graphical.edit.part.specific.BracketEdgeEditPart;
import org.eclipse.sirius.diagram.ui.internal.edit.commands.CreateSiriusElementCommand;
import org.eclipse.sirius.diagram.ui.internal.edit.commands.DEdgeCreateCommand;
-import org.eclipse.sirius.diagram.ui.internal.edit.commands.DEdgeReorientCommand;
import org.eclipse.sirius.diagram.ui.internal.edit.commands.WorkspaceImageCreateCommand;
import org.eclipse.sirius.diagram.ui.internal.edit.parts.BundledImageEditPart;
import org.eclipse.sirius.diagram.ui.internal.edit.parts.CustomStyleEditPart;
-import org.eclipse.sirius.diagram.ui.internal.edit.parts.DEdgeEditPart;
import org.eclipse.sirius.diagram.ui.internal.edit.parts.DNode2EditPart;
import org.eclipse.sirius.diagram.ui.internal.edit.parts.DNode4EditPart;
import org.eclipse.sirius.diagram.ui.internal.edit.parts.DotEditPart;
@@ -53,6 +49,7 @@ public abstract class AbstractDNodeItemSemanticEditPolicy extends SiriusBaseItem
/**
* @was-generated
*/
+ @Override
protected Command getCreateCommand(CreateElementRequest req) {
if (SiriusElementTypes.BundledImage_3004 == req.getElementType()) {
if (req.getContainmentFeature() == null) {
@@ -114,6 +111,7 @@ public abstract class AbstractDNodeItemSemanticEditPolicy extends SiriusBaseItem
/**
* @was-generated NOT
*/
+ @Override
protected abstract Command getDestroyElementCommand(DestroyElementRequest req);
/**
@@ -149,6 +147,7 @@ public abstract class AbstractDNodeItemSemanticEditPolicy extends SiriusBaseItem
/**
* @was-generated
*/
+ @Override
protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
Command command = req.getTarget() == null ? getStartCreateRelationshipCommand(req) : getCompleteCreateRelationshipCommand(req);
return command != null ? command : super.getCreateRelationshipCommand(req);
@@ -174,18 +173,4 @@ public abstract class AbstractDNodeItemSemanticEditPolicy extends SiriusBaseItem
return null;
}
- /**
- * Returns command to reorient EClass based link. New link target or source
- * should be the domain model element associated with this node.
- *
- * @was-generated
- */
- protected Command getReorientRelationshipCommand(ReorientRelationshipRequest req) {
- switch (getVisualID(req)) {
- case DEdgeEditPart.VISUAL_ID:
- case BracketEdgeEditPart.VISUAL_ID:
- return getGEFWrapper(new DEdgeReorientCommand(req));
- }
- return super.getReorientRelationshipCommand(req);
- }
}
diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/edit/policies/DEdgeItemSemanticEditPolicy.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/edit/policies/DEdgeItemSemanticEditPolicy.java
index 69346a66d3..bf0a3ea01f 100644
--- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/edit/policies/DEdgeItemSemanticEditPolicy.java
+++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/edit/policies/DEdgeItemSemanticEditPolicy.java
@@ -15,10 +15,6 @@ import org.eclipse.gef.commands.Command;
import org.eclipse.gef.requests.ReconnectRequest;
import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
-import org.eclipse.sirius.diagram.ui.graphical.edit.part.specific.BracketEdgeEditPart;
-import org.eclipse.sirius.diagram.ui.internal.edit.commands.DEdgeReorientCommand;
-import org.eclipse.sirius.diagram.ui.internal.edit.parts.DEdgeEditPart;
/**
* @was-generated
@@ -28,26 +24,12 @@ public class DEdgeItemSemanticEditPolicy extends SiriusBaseItemSemanticEditPolic
/**
* @was-generated
*/
+ @Override
protected Command getDestroyElementCommand(DestroyElementRequest req) {
return getGEFWrapper(new DestroyElementCommand(req));
}
/**
- * Returns command to reorient EClass based link. New link target or source
- * should be the domain model element associated with this node.
- *
- * @was-generated NOT
- */
- protected Command getReorientRelationshipCommand(ReorientRelationshipRequest req) {
- switch (getVisualID(req)) {
- case DEdgeEditPart.VISUAL_ID:
- case BracketEdgeEditPart.VISUAL_ID:
- return getGEFWrapper(new DEdgeReorientCommand(req));
- }
- return super.getReorientRelationshipCommand(req);
- }
-
- /**
* {@inheritDoc}
*
* Overridden to avoid NPE during reconnection.
diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/edit/policies/SiriusBaseItemSemanticEditPolicy.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/edit/policies/SiriusBaseItemSemanticEditPolicy.java
index 673d605083..00e31142dd 100644
--- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/edit/policies/SiriusBaseItemSemanticEditPolicy.java
+++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/edit/policies/SiriusBaseItemSemanticEditPolicy.java
@@ -44,7 +44,6 @@ import org.eclipse.gmf.runtime.emf.type.core.requests.GetEditContextRequest;
import org.eclipse.gmf.runtime.emf.type.core.requests.IEditCommandRequest;
import org.eclipse.gmf.runtime.emf.type.core.requests.MoveRequest;
import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientReferenceRelationshipRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
import org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest;
import org.eclipse.gmf.runtime.notation.Diagram;
import org.eclipse.gmf.runtime.notation.Edge;
@@ -235,8 +234,6 @@ public class SiriusBaseItemSemanticEditPolicy extends SemanticEditPolicy {
return getMoveCommand((MoveRequest) req);
} else if (req instanceof ReorientReferenceRelationshipRequest) {
return getReorientReferenceRelationshipCommand((ReorientReferenceRelationshipRequest) req);
- } else if (req instanceof ReorientRelationshipRequest) {
- return getReorientRelationshipCommand((ReorientRelationshipRequest) req);
} else if (req instanceof SetRequest) {
return getSetCommand((SetRequest) req);
}
@@ -316,13 +313,6 @@ public class SiriusBaseItemSemanticEditPolicy extends SemanticEditPolicy {
/**
* @was-generated
*/
- protected Command getReorientRelationshipCommand(ReorientRelationshipRequest req) {
- return UnexecutableCommand.INSTANCE;
- }
-
- /**
- * @was-generated
- */
protected final Command getGEFWrapper(ICommand cmd) {
return new ICommandProxy(cmd);
}
diff --git a/plugins/org.eclipse.sirius.tests.swtbot/data/unit/edgeReconnection/Bug467663.aird b/plugins/org.eclipse.sirius.tests.swtbot/data/unit/edgeReconnection/Bug467663.aird
new file mode 100644
index 0000000000..5a95930f53
--- /dev/null
+++ b/plugins/org.eclipse.sirius.tests.swtbot/data/unit/edgeReconnection/Bug467663.aird
@@ -0,0 +1,784 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<viewpoint:DAnalysis xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:component="http://www.eclipse.org/sirius/sample/component" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:diagram="http://www.eclipse.org/sirius/diagram/1.1.0" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:viewpoint="http://www.eclipse.org/sirius/1.1.0" xsi:schemaLocation="http://www.eclipse.org/sirius/description/1.1.0 http://www.eclipse.org/sirius/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/style/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description/style" xmi:id="_mS1nUBT5EeWQ37jeOcGsxQ" selectedViews="_n8o2sBT5EeWQ37jeOcGsxQ" version="10.0.0.201505222000">
+ <semanticResources>Bug467663.component</semanticResources>
+ <semanticResources>Bug467663.ecore</semanticResources>
+ <ownedViews xmi:type="viewpoint:DRepresentationContainer" xmi:id="_n8o2sBT5EeWQ37jeOcGsxQ">
+ <ownedRepresentations xmi:type="diagram:DSemanticDiagram" xmi:id="_mKjv0BXPEeWwcbvMkwT-CQ" name="new DiagramForBug467663Bis">
+ <ownedAnnotationEntries xmi:type="description:AnnotationEntry" xmi:id="_mKjv0RXPEeWwcbvMkwT-CQ" source="DANNOTATION_CUSTOMIZATION_KEY">
+ <data xmi:type="diagram:ComputedStyleDescriptionRegistry" xmi:id="_mKjv0hXPEeWwcbvMkwT-CQ"/>
+ </ownedAnnotationEntries>
+ <ownedAnnotationEntries xmi:type="description:AnnotationEntry" xmi:id="_mKuu8BXPEeWwcbvMkwT-CQ" source="GMF_DIAGRAMS">
+ <data xmi:type="notation:Diagram" xmi:id="_mKuu8RXPEeWwcbvMkwT-CQ" type="Sirius" element="_mKjv0BXPEeWwcbvMkwT-CQ" measurementUnit="Pixel">
+ <children xmi:type="notation:Node" xmi:id="_mK0OgBXPEeWwcbvMkwT-CQ" type="2002" element="_mKjv0xXPEeWwcbvMkwT-CQ">
+ <children xmi:type="notation:Node" xmi:id="_mK2DsBXPEeWwcbvMkwT-CQ" type="5006"/>
+ <children xmi:type="notation:Node" xmi:id="_mK5uEBXPEeWwcbvMkwT-CQ" type="7001">
+ <children xmi:type="notation:Node" xmi:id="_mLKMwBXPEeWwcbvMkwT-CQ" type="3008" element="_mKjv1xXPEeWwcbvMkwT-CQ">
+ <children xmi:type="notation:Node" xmi:id="_mLKz0BXPEeWwcbvMkwT-CQ" type="5005"/>
+ <children xmi:type="notation:Node" xmi:id="_mLLa4BXPEeWwcbvMkwT-CQ" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mLMB8BXPEeWwcbvMkwT-CQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mLMB8RXPEeWwcbvMkwT-CQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_mLNQEBXPEeWwcbvMkwT-CQ" type="3012" element="_mKjv2BXPEeWwcbvMkwT-CQ">
+ <children xmi:type="notation:Node" xmi:id="_mLN3IBXPEeWwcbvMkwT-CQ" type="5010">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mLN3IRXPEeWwcbvMkwT-CQ" y="5"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_mLRhgBXPEeWwcbvMkwT-CQ" type="3003" element="_mKjv2RXPEeWwcbvMkwT-CQ">
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_mLRhgRXPEeWwcbvMkwT-CQ" fontName="Cantarell"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mLRhghXPEeWwcbvMkwT-CQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_mLNQERXPEeWwcbvMkwT-CQ" fontName="Cantarell" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mLNQEhXPEeWwcbvMkwT-CQ" x="140" y="30" width="10" height="10"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_mLKMwRXPEeWwcbvMkwT-CQ" fontName="Cantarell" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mLKMwhXPEeWwcbvMkwT-CQ" x="95" y="44"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_mLMB8hXPEeWwcbvMkwT-CQ" type="3008" element="_mKjv2xXPEeWwcbvMkwT-CQ">
+ <children xmi:type="notation:Node" xmi:id="_mLMpABXPEeWwcbvMkwT-CQ" type="5005"/>
+ <children xmi:type="notation:Node" xmi:id="_mLMpARXPEeWwcbvMkwT-CQ" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mLMpAhXPEeWwcbvMkwT-CQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mLMpAxXPEeWwcbvMkwT-CQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_mLSIkBXPEeWwcbvMkwT-CQ" type="3012" element="_mKjv3BXPEeWwcbvMkwT-CQ">
+ <children xmi:type="notation:Node" xmi:id="_mLSvoBXPEeWwcbvMkwT-CQ" type="5010">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mLSvoRXPEeWwcbvMkwT-CQ" y="5"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_mLTWsBXPEeWwcbvMkwT-CQ" type="3003" element="_mKjv3RXPEeWwcbvMkwT-CQ">
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_mLTWsRXPEeWwcbvMkwT-CQ" fontName="Cantarell"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mLTWshXPEeWwcbvMkwT-CQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_mLSIkRXPEeWwcbvMkwT-CQ" fontName="Cantarell" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mLSIkhXPEeWwcbvMkwT-CQ" x="140" y="25" width="10" height="10"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_mLMB8xXPEeWwcbvMkwT-CQ" fontName="Cantarell" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mLMB9BXPEeWwcbvMkwT-CQ" x="95" y="164"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mK5uERXPEeWwcbvMkwT-CQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mK5uEhXPEeWwcbvMkwT-CQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_mK9_gBXPEeWwcbvMkwT-CQ" type="3012" element="_mKjv1BXPEeWwcbvMkwT-CQ">
+ <children xmi:type="notation:Node" xmi:id="_mK_NoBXPEeWwcbvMkwT-CQ" type="5010">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mK_NoRXPEeWwcbvMkwT-CQ" y="5"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_mLWaABXPEeWwcbvMkwT-CQ" type="3003" element="_mKjv1RXPEeWwcbvMkwT-CQ">
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_mLWaARXPEeWwcbvMkwT-CQ" fontName="Cantarell"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mLWaAhXPEeWwcbvMkwT-CQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_mK9_gRXPEeWwcbvMkwT-CQ" fontName="Cantarell" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mK9_ghXPEeWwcbvMkwT-CQ" x="373" y="35" width="10" height="10"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_mK0OgRXPEeWwcbvMkwT-CQ" fontName="Cantarell" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mK0OghXPEeWwcbvMkwT-CQ" x="30" y="20" width="383" height="293"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_mK5uExXPEeWwcbvMkwT-CQ" type="2002" element="_mKjv3xXPEeWwcbvMkwT-CQ">
+ <children xmi:type="notation:Node" xmi:id="_mK6VIBXPEeWwcbvMkwT-CQ" type="5006"/>
+ <children xmi:type="notation:Node" xmi:id="_mK6VIRXPEeWwcbvMkwT-CQ" type="7001">
+ <children xmi:type="notation:Node" xmi:id="_mLZdUBXPEeWwcbvMkwT-CQ" type="3008" element="_mKjv4xXPEeWwcbvMkwT-CQ">
+ <children xmi:type="notation:Node" xmi:id="_mLaEYBXPEeWwcbvMkwT-CQ" type="5005"/>
+ <children xmi:type="notation:Node" xmi:id="_mLaEYRXPEeWwcbvMkwT-CQ" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mLaEYhXPEeWwcbvMkwT-CQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mLaEYxXPEeWwcbvMkwT-CQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_mLduwBXPEeWwcbvMkwT-CQ" type="3012" element="_mKjv5BXPEeWwcbvMkwT-CQ">
+ <children xmi:type="notation:Node" xmi:id="_mLeV0BXPEeWwcbvMkwT-CQ" type="5010">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mLeV0RXPEeWwcbvMkwT-CQ" y="5"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_mLeV0hXPEeWwcbvMkwT-CQ" type="3003" element="_mKjv5RXPEeWwcbvMkwT-CQ">
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_mLe84BXPEeWwcbvMkwT-CQ" fontName="Cantarell"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mLe84RXPEeWwcbvMkwT-CQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_mLduwRXPEeWwcbvMkwT-CQ" fontName="Cantarell" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mLduwhXPEeWwcbvMkwT-CQ" x="-2" y="30" width="10" height="10"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_mLZdURXPEeWwcbvMkwT-CQ" fontName="Cantarell" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mLZdUhXPEeWwcbvMkwT-CQ" x="120" y="44"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_mLaEZBXPEeWwcbvMkwT-CQ" type="3008" element="_mKjv5xXPEeWwcbvMkwT-CQ">
+ <children xmi:type="notation:Node" xmi:id="_mLarcBXPEeWwcbvMkwT-CQ" type="5005"/>
+ <children xmi:type="notation:Node" xmi:id="_mLarcRXPEeWwcbvMkwT-CQ" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mLarchXPEeWwcbvMkwT-CQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mLarcxXPEeWwcbvMkwT-CQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_mLe84hXPEeWwcbvMkwT-CQ" type="3012" element="_mKjv6BXPEeWwcbvMkwT-CQ">
+ <children xmi:type="notation:Node" xmi:id="_mLfj8BXPEeWwcbvMkwT-CQ" type="5010">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mLfj8RXPEeWwcbvMkwT-CQ" y="5"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_mLgLABXPEeWwcbvMkwT-CQ" type="3003" element="_mKjv6RXPEeWwcbvMkwT-CQ">
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_mLgLARXPEeWwcbvMkwT-CQ" fontName="Cantarell"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mLgLAhXPEeWwcbvMkwT-CQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_mLe84xXPEeWwcbvMkwT-CQ" fontName="Cantarell" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mLe85BXPEeWwcbvMkwT-CQ" x="-2" y="35" width="10" height="10"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_mLaEZRXPEeWwcbvMkwT-CQ" fontName="Cantarell" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mLaEZhXPEeWwcbvMkwT-CQ" x="120" y="154"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mK6VIhXPEeWwcbvMkwT-CQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mK68MBXPEeWwcbvMkwT-CQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_mLXBEBXPEeWwcbvMkwT-CQ" type="3012" element="_mKjv4BXPEeWwcbvMkwT-CQ">
+ <children xmi:type="notation:Node" xmi:id="_mLXoIBXPEeWwcbvMkwT-CQ" type="5010">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mLXoIRXPEeWwcbvMkwT-CQ" y="5"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_mLgLAxXPEeWwcbvMkwT-CQ" type="3003" element="_mKjv4RXPEeWwcbvMkwT-CQ">
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_mLgLBBXPEeWwcbvMkwT-CQ" fontName="Cantarell"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mLgLBRXPEeWwcbvMkwT-CQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_mLXBERXPEeWwcbvMkwT-CQ" fontName="Cantarell" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mLXBEhXPEeWwcbvMkwT-CQ" x="-2" y="35" width="10" height="10"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_mK5uFBXPEeWwcbvMkwT-CQ" fontName="Cantarell" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mK5uFRXPEeWwcbvMkwT-CQ" x="480" y="20" width="383" height="293"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_mKuu8hXPEeWwcbvMkwT-CQ"/>
+ <edges xmi:type="notation:Edge" xmi:id="_mLgyEBXPEeWwcbvMkwT-CQ" type="4001" element="_mKjv6xXPEeWwcbvMkwT-CQ" source="_mLNQEBXPEeWwcbvMkwT-CQ" target="_mLduwBXPEeWwcbvMkwT-CQ">
+ <children xmi:type="notation:Node" xmi:id="_mLhZIBXPEeWwcbvMkwT-CQ" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mLhZIRXPEeWwcbvMkwT-CQ" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_mLhZIhXPEeWwcbvMkwT-CQ" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mLhZIxXPEeWwcbvMkwT-CQ" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_mLhZJBXPEeWwcbvMkwT-CQ" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mLhZJRXPEeWwcbvMkwT-CQ" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_mLgyERXPEeWwcbvMkwT-CQ"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_mLgyEhXPEeWwcbvMkwT-CQ" fontName="Cantarell" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_mLgyExXPEeWwcbvMkwT-CQ" points="[5, -1, -328, -1]$[328, -1, -5, -1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mLiAMBXPEeWwcbvMkwT-CQ" id="(0.5,0.5)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mLiAMRXPEeWwcbvMkwT-CQ" id="(0.5,0.5)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_mLiAMhXPEeWwcbvMkwT-CQ" type="4001" element="_mKjv7hXPEeWwcbvMkwT-CQ" source="_mLSIkBXPEeWwcbvMkwT-CQ" target="_mLe84hXPEeWwcbvMkwT-CQ">
+ <children xmi:type="notation:Node" xmi:id="_mLiANhXPEeWwcbvMkwT-CQ" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mLiANxXPEeWwcbvMkwT-CQ" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_mLiAOBXPEeWwcbvMkwT-CQ" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mLiAORXPEeWwcbvMkwT-CQ" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_mLiAOhXPEeWwcbvMkwT-CQ" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mLinQBXPEeWwcbvMkwT-CQ" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_mLiAMxXPEeWwcbvMkwT-CQ"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_mLiANBXPEeWwcbvMkwT-CQ" fontName="Cantarell" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_mLiANRXPEeWwcbvMkwT-CQ" points="[5, 0, -328, 0]$[328, 0, -5, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mLinQRXPEeWwcbvMkwT-CQ" id="(0.5,0.5)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mLinQhXPEeWwcbvMkwT-CQ" id="(0.5,0.5)"/>
+ </edges>
+ </data>
+ </ownedAnnotationEntries>
+ <ownedDiagramElements xmi:type="diagram:DNodeContainer" xmi:id="_mKjv0xXPEeWwcbvMkwT-CQ" name="c1">
+ <target xmi:type="component:Component" href="Bug467663.component#//@children.0"/>
+ <semanticElements xmi:type="component:Component" href="Bug467663.component#//@children.0"/>
+ <ownedBorderedNodes xmi:type="diagram:DNode" xmi:id="_mKjv1BXPEeWwcbvMkwT-CQ" name="c12" width="1" height="1" resizeKind="NSEW">
+ <target xmi:type="component:Component" href="Bug467663.component#//@children.0/@children.1"/>
+ <semanticElements xmi:type="component:Component" href="Bug467663.component#//@children.0/@children.1"/>
+ <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+ <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+ <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+ <ownedStyle xmi:type="diagram:Square" xmi:id="_mKjv1RXPEeWwcbvMkwT-CQ" labelPosition="node">
+ <description xmi:type="style:SquareDescription" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663Bis']/@defaultLayer/@containerMappings[name='ComponentMapping']/@borderedNodeMappings[name='BorderComponentMapping']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663Bis']/@defaultLayer/@containerMappings[name='ComponentMapping']/@borderedNodeMappings[name='BorderComponentMapping']"/>
+ </ownedBorderedNodes>
+ <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+ <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+ <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_mKjv1hXPEeWwcbvMkwT-CQ">
+ <description xmi:type="style:FlatContainerStyleDescription" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663Bis']/@defaultLayer/@containerMappings[name='ComponentMapping']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663Bis']/@defaultLayer/@containerMappings[name='ComponentMapping']"/>
+ <ownedDiagramElements xmi:type="diagram:DNodeContainer" xmi:id="_mKjv1xXPEeWwcbvMkwT-CQ" name="c11">
+ <target xmi:type="component:Component" href="Bug467663.component#//@children.0/@children.0"/>
+ <semanticElements xmi:type="component:Component" href="Bug467663.component#//@children.0/@children.0"/>
+ <ownedBorderedNodes xmi:type="diagram:DNode" xmi:id="_mKjv2BXPEeWwcbvMkwT-CQ" name="c111" outgoingEdges="_mKjv6xXPEeWwcbvMkwT-CQ" width="1" height="1" resizeKind="NSEW">
+ <target xmi:type="component:Component" href="Bug467663.component#//@children.0/@children.0/@children.0"/>
+ <semanticElements xmi:type="component:Component" href="Bug467663.component#//@children.0/@children.0/@children.0"/>
+ <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+ <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+ <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+ <ownedStyle xmi:type="diagram:Square" xmi:id="_mKjv2RXPEeWwcbvMkwT-CQ" labelPosition="node">
+ <description xmi:type="style:SquareDescription" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663Bis']/@defaultLayer/@containerMappings[name='ComponentMapping']/@borderedNodeMappings[name='BorderComponentMapping']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663Bis']/@defaultLayer/@containerMappings[name='ComponentMapping']/@borderedNodeMappings[name='BorderComponentMapping']"/>
+ </ownedBorderedNodes>
+ <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+ <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+ <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_mKjv2hXPEeWwcbvMkwT-CQ">
+ <description xmi:type="style:FlatContainerStyleDescription" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663Bis']/@defaultLayer/@containerMappings[name='ComponentMapping']/@subContainerMappings[name='SubComponentMapping']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663Bis']/@defaultLayer/@containerMappings[name='ComponentMapping']/@subContainerMappings[name='SubComponentMapping']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeContainer" xmi:id="_mKjv2xXPEeWwcbvMkwT-CQ" name="c13">
+ <target xmi:type="component:Component" href="Bug467663.component#//@children.0/@children.2"/>
+ <semanticElements xmi:type="component:Component" href="Bug467663.component#//@children.0/@children.2"/>
+ <ownedBorderedNodes xmi:type="diagram:DNode" xmi:id="_mKjv3BXPEeWwcbvMkwT-CQ" name="c131" outgoingEdges="_mKjv7hXPEeWwcbvMkwT-CQ" width="1" height="1" resizeKind="NSEW">
+ <target xmi:type="component:Component" href="Bug467663.component#//@children.0/@children.2/@children.0"/>
+ <semanticElements xmi:type="component:Component" href="Bug467663.component#//@children.0/@children.2/@children.0"/>
+ <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+ <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+ <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+ <ownedStyle xmi:type="diagram:Square" xmi:id="_mKjv3RXPEeWwcbvMkwT-CQ" labelPosition="node">
+ <description xmi:type="style:SquareDescription" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663Bis']/@defaultLayer/@containerMappings[name='ComponentMapping']/@borderedNodeMappings[name='BorderComponentMapping']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663Bis']/@defaultLayer/@containerMappings[name='ComponentMapping']/@borderedNodeMappings[name='BorderComponentMapping']"/>
+ </ownedBorderedNodes>
+ <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+ <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+ <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_mKjv3hXPEeWwcbvMkwT-CQ">
+ <description xmi:type="style:FlatContainerStyleDescription" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663Bis']/@defaultLayer/@containerMappings[name='ComponentMapping']/@subContainerMappings[name='SubComponentMapping']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663Bis']/@defaultLayer/@containerMappings[name='ComponentMapping']/@subContainerMappings[name='SubComponentMapping']"/>
+ </ownedDiagramElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeContainer" xmi:id="_mKjv3xXPEeWwcbvMkwT-CQ" name="c2">
+ <target xmi:type="component:Component" href="Bug467663.component#//@children.1"/>
+ <semanticElements xmi:type="component:Component" href="Bug467663.component#//@children.1"/>
+ <ownedBorderedNodes xmi:type="diagram:DNode" xmi:id="_mKjv4BXPEeWwcbvMkwT-CQ" name="c22" width="1" height="1" resizeKind="NSEW">
+ <target xmi:type="component:Component" href="Bug467663.component#//@children.1/@children.1"/>
+ <semanticElements xmi:type="component:Component" href="Bug467663.component#//@children.1/@children.1"/>
+ <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+ <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+ <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+ <ownedStyle xmi:type="diagram:Square" xmi:id="_mKjv4RXPEeWwcbvMkwT-CQ" labelPosition="node">
+ <description xmi:type="style:SquareDescription" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663Bis']/@defaultLayer/@containerMappings[name='ComponentMapping']/@borderedNodeMappings[name='BorderComponentMapping']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663Bis']/@defaultLayer/@containerMappings[name='ComponentMapping']/@borderedNodeMappings[name='BorderComponentMapping']"/>
+ </ownedBorderedNodes>
+ <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+ <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+ <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_mKjv4hXPEeWwcbvMkwT-CQ">
+ <description xmi:type="style:FlatContainerStyleDescription" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663Bis']/@defaultLayer/@containerMappings[name='ComponentMapping']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663Bis']/@defaultLayer/@containerMappings[name='ComponentMapping']"/>
+ <ownedDiagramElements xmi:type="diagram:DNodeContainer" xmi:id="_mKjv4xXPEeWwcbvMkwT-CQ" name="c21">
+ <target xmi:type="component:Component" href="Bug467663.component#//@children.1/@children.0"/>
+ <semanticElements xmi:type="component:Component" href="Bug467663.component#//@children.1/@children.0"/>
+ <ownedBorderedNodes xmi:type="diagram:DNode" xmi:id="_mKjv5BXPEeWwcbvMkwT-CQ" name="c211" incomingEdges="_mKjv6xXPEeWwcbvMkwT-CQ" width="1" height="1" resizeKind="NSEW">
+ <target xmi:type="component:Component" href="Bug467663.component#//@children.1/@children.0/@children.0"/>
+ <semanticElements xmi:type="component:Component" href="Bug467663.component#//@children.1/@children.0/@children.0"/>
+ <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+ <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+ <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+ <ownedStyle xmi:type="diagram:Square" xmi:id="_mKjv5RXPEeWwcbvMkwT-CQ" labelPosition="node">
+ <description xmi:type="style:SquareDescription" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663Bis']/@defaultLayer/@containerMappings[name='ComponentMapping']/@borderedNodeMappings[name='BorderComponentMapping']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663Bis']/@defaultLayer/@containerMappings[name='ComponentMapping']/@borderedNodeMappings[name='BorderComponentMapping']"/>
+ </ownedBorderedNodes>
+ <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+ <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+ <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_mKjv5hXPEeWwcbvMkwT-CQ">
+ <description xmi:type="style:FlatContainerStyleDescription" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663Bis']/@defaultLayer/@containerMappings[name='ComponentMapping']/@subContainerMappings[name='SubComponentMapping']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663Bis']/@defaultLayer/@containerMappings[name='ComponentMapping']/@subContainerMappings[name='SubComponentMapping']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeContainer" xmi:id="_mKjv5xXPEeWwcbvMkwT-CQ" name="c23">
+ <target xmi:type="component:Component" href="Bug467663.component#//@children.1/@children.2"/>
+ <semanticElements xmi:type="component:Component" href="Bug467663.component#//@children.1/@children.2"/>
+ <ownedBorderedNodes xmi:type="diagram:DNode" xmi:id="_mKjv6BXPEeWwcbvMkwT-CQ" name="c231" incomingEdges="_mKjv7hXPEeWwcbvMkwT-CQ" width="1" height="1" resizeKind="NSEW">
+ <target xmi:type="component:Component" href="Bug467663.component#//@children.1/@children.2/@children.0"/>
+ <semanticElements xmi:type="component:Component" href="Bug467663.component#//@children.1/@children.2/@children.0"/>
+ <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+ <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+ <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+ <ownedStyle xmi:type="diagram:Square" xmi:id="_mKjv6RXPEeWwcbvMkwT-CQ" labelPosition="node">
+ <description xmi:type="style:SquareDescription" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663Bis']/@defaultLayer/@containerMappings[name='ComponentMapping']/@borderedNodeMappings[name='BorderComponentMapping']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:NodeMapping" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663Bis']/@defaultLayer/@containerMappings[name='ComponentMapping']/@borderedNodeMappings[name='BorderComponentMapping']"/>
+ </ownedBorderedNodes>
+ <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+ <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+ <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_mKjv6hXPEeWwcbvMkwT-CQ">
+ <description xmi:type="style:FlatContainerStyleDescription" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663Bis']/@defaultLayer/@containerMappings[name='ComponentMapping']/@subContainerMappings[name='SubComponentMapping']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663Bis']/@defaultLayer/@containerMappings[name='ComponentMapping']/@subContainerMappings[name='SubComponentMapping']"/>
+ </ownedDiagramElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_mKjv6xXPEeWwcbvMkwT-CQ" sourceNode="_mKjv2BXPEeWwcbvMkwT-CQ" targetNode="_mKjv5BXPEeWwcbvMkwT-CQ">
+ <target xmi:type="component:Component" href="Bug467663.component#//@children.0/@children.0/@children.0"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_mKjv7BXPEeWwcbvMkwT-CQ" size="2">
+ <description xmi:type="style:EdgeStyleDescription" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663Bis']/@defaultLayer/@edgeMappings[name='ComponentReferencesMapping']/@style"/>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_mKjv7RXPEeWwcbvMkwT-CQ"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663Bis']/@defaultLayer/@edgeMappings[name='ComponentReferencesMapping']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_mKjv7hXPEeWwcbvMkwT-CQ" sourceNode="_mKjv3BXPEeWwcbvMkwT-CQ" targetNode="_mKjv6BXPEeWwcbvMkwT-CQ">
+ <target xmi:type="component:Component" href="Bug467663.component#//@children.0/@children.2/@children.0"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_mKjv7xXPEeWwcbvMkwT-CQ" size="2">
+ <description xmi:type="style:EdgeStyleDescription" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663Bis']/@defaultLayer/@edgeMappings[name='ComponentReferencesMapping']/@style"/>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_mKjv8BXPEeWwcbvMkwT-CQ"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663Bis']/@defaultLayer/@edgeMappings[name='ComponentReferencesMapping']"/>
+ </ownedDiagramElements>
+ <description xmi:type="description_1:DiagramDescription" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663Bis']"/>
+ <filterVariableHistory xmi:type="diagram:FilterVariableHistory" xmi:id="_mKjv8RXPEeWwcbvMkwT-CQ"/>
+ <activatedLayers xmi:type="description_1:Layer" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663Bis']/@defaultLayer"/>
+ <target xmi:type="component:Component" href="Bug467663.component#/"/>
+ </ownedRepresentations>
+ <ownedRepresentations xmi:type="diagram:DSemanticDiagram" xmi:id="_smZ8cBXQEeWwcbvMkwT-CQ" name="new DiagramForBug467663">
+ <ownedAnnotationEntries xmi:type="description:AnnotationEntry" xmi:id="_smZ8cRXQEeWwcbvMkwT-CQ" source="DANNOTATION_CUSTOMIZATION_KEY">
+ <data xmi:type="diagram:ComputedStyleDescriptionRegistry" xmi:id="_smZ8chXQEeWwcbvMkwT-CQ"/>
+ </ownedAnnotationEntries>
+ <ownedAnnotationEntries xmi:type="description:AnnotationEntry" xmi:id="_smZ8ghXQEeWwcbvMkwT-CQ" source="GMF_DIAGRAMS">
+ <data xmi:type="notation:Diagram" xmi:id="_smajgBXQEeWwcbvMkwT-CQ" type="Sirius" element="_smZ8cBXQEeWwcbvMkwT-CQ" measurementUnit="Pixel">
+ <children xmi:type="notation:Node" xmi:id="_smajghXQEeWwcbvMkwT-CQ" type="2002" element="_smZ8cxXQEeWwcbvMkwT-CQ">
+ <children xmi:type="notation:Node" xmi:id="_smbKkBXQEeWwcbvMkwT-CQ" type="5006"/>
+ <children xmi:type="notation:Node" xmi:id="_smbKkRXQEeWwcbvMkwT-CQ" type="7001">
+ <children xmi:type="notation:Node" xmi:id="_smcYsBXQEeWwcbvMkwT-CQ" type="3008" element="_smZ8dRXQEeWwcbvMkwT-CQ">
+ <children xmi:type="notation:Node" xmi:id="_smc_wBXQEeWwcbvMkwT-CQ" type="5005"/>
+ <children xmi:type="notation:Node" xmi:id="_smc_wRXQEeWwcbvMkwT-CQ" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_smc_whXQEeWwcbvMkwT-CQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_smc_wxXQEeWwcbvMkwT-CQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_smcYsRXQEeWwcbvMkwT-CQ" fontName="Cantarell" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_smcYshXQEeWwcbvMkwT-CQ" x="90" y="24"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_smc_xBXQEeWwcbvMkwT-CQ" type="3008" element="_smZ8dxXQEeWwcbvMkwT-CQ">
+ <children xmi:type="notation:Node" xmi:id="_smdm0BXQEeWwcbvMkwT-CQ" type="5005"/>
+ <children xmi:type="notation:Node" xmi:id="_smdm0RXQEeWwcbvMkwT-CQ" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_smdm0hXQEeWwcbvMkwT-CQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_smdm0xXQEeWwcbvMkwT-CQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_smc_xRXQEeWwcbvMkwT-CQ" fontName="Cantarell" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_smc_xhXQEeWwcbvMkwT-CQ" x="90" y="124"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_smbKkhXQEeWwcbvMkwT-CQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_smbKkxXQEeWwcbvMkwT-CQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_smajgxXQEeWwcbvMkwT-CQ" fontName="Cantarell" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_smajhBXQEeWwcbvMkwT-CQ" x="65" y="45" width="388" height="248"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_smbKlBXQEeWwcbvMkwT-CQ" type="2002" element="_smZ8eRXQEeWwcbvMkwT-CQ">
+ <children xmi:type="notation:Node" xmi:id="_smbxoBXQEeWwcbvMkwT-CQ" type="5006"/>
+ <children xmi:type="notation:Node" xmi:id="_smbxoRXQEeWwcbvMkwT-CQ" type="7001">
+ <children xmi:type="notation:Node" xmi:id="_hHa88BZaEeWC8NmpVA2EHg" type="3008" element="_hHWrgBZaEeWC8NmpVA2EHg">
+ <children xmi:type="notation:Node" xmi:id="_hHa88xZaEeWC8NmpVA2EHg" type="5005"/>
+ <children xmi:type="notation:Node" xmi:id="_hHbkABZaEeWC8NmpVA2EHg" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_hHbkARZaEeWC8NmpVA2EHg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_hHbkAhZaEeWC8NmpVA2EHg"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_hHa88RZaEeWC8NmpVA2EHg" fontName="Cantarell" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hHa88hZaEeWC8NmpVA2EHg" x="30" y="29"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_hHbkAxZaEeWC8NmpVA2EHg" type="3008" element="_hHXSkBZaEeWC8NmpVA2EHg">
+ <children xmi:type="notation:Node" xmi:id="_hHcLEBZaEeWC8NmpVA2EHg" type="5005"/>
+ <children xmi:type="notation:Node" xmi:id="_hHcLERZaEeWC8NmpVA2EHg" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_hHcLEhZaEeWC8NmpVA2EHg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_hHcLExZaEeWC8NmpVA2EHg"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_hHbkBBZaEeWC8NmpVA2EHg" fontName="Cantarell" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hHbkBRZaEeWC8NmpVA2EHg" x="30" y="124"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_smbxohXQEeWwcbvMkwT-CQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_smbxoxXQEeWwcbvMkwT-CQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_smbKlRXQEeWwcbvMkwT-CQ" fontName="Cantarell" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_smbKlhXQEeWwcbvMkwT-CQ" x="485" y="45" width="288" height="248"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_smajgRXQEeWwcbvMkwT-CQ"/>
+ <edges xmi:type="notation:Edge" xmi:id="_smeN4BXQEeWwcbvMkwT-CQ" type="4001" element="_smZ8exXQEeWwcbvMkwT-CQ" source="_smcYsBXQEeWwcbvMkwT-CQ" target="_smajghXQEeWwcbvMkwT-CQ">
+ <children xmi:type="notation:Node" xmi:id="_sme08BXQEeWwcbvMkwT-CQ" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sme08RXQEeWwcbvMkwT-CQ" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_sme08hXQEeWwcbvMkwT-CQ" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sme08xXQEeWwcbvMkwT-CQ" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_sme09BXQEeWwcbvMkwT-CQ" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sme09RXQEeWwcbvMkwT-CQ" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_smeN4RXQEeWwcbvMkwT-CQ"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_smeN4hXQEeWwcbvMkwT-CQ" fontName="Cantarell" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_smeN4xXQEeWwcbvMkwT-CQ" points="[1, 3, -140, 0]$[144, 3, 3, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sme09hXQEeWwcbvMkwT-CQ" id="(0.9933333333333333,0.5428571428571428)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sme09xXQEeWwcbvMkwT-CQ" id="(0.9922680412371134,0.28225806451612906)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_x9n4wBXQEeWwcbvMkwT-CQ" type="4001" element="_smZ8fhXQEeWwcbvMkwT-CQ" source="_smc_xBXQEeWwcbvMkwT-CQ" target="_smajghXQEeWwcbvMkwT-CQ">
+ <children xmi:type="notation:Node" xmi:id="_x9of0BXQEeWwcbvMkwT-CQ" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x9of0RXQEeWwcbvMkwT-CQ" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_x9of0hXQEeWwcbvMkwT-CQ" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x9of0xXQEeWwcbvMkwT-CQ" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_x9of1BXQEeWwcbvMkwT-CQ" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x9of1RXQEeWwcbvMkwT-CQ" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_x9n4wRXQEeWwcbvMkwT-CQ"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_x9n4whXQEeWwcbvMkwT-CQ" fontName="Cantarell" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_x9n4wxXQEeWwcbvMkwT-CQ" points="[74, 2, -132, 1]$[217, 2, 11, 1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_x9pG4BXQEeWwcbvMkwT-CQ" id="(0.5,0.5)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_x9pG4RXQEeWwcbvMkwT-CQ" id="(0.9716494845360825,0.6733870967741935)"/>
+ </edges>
+ </data>
+ </ownedAnnotationEntries>
+ <ownedDiagramElements xmi:type="diagram:DNodeContainer" xmi:id="_smZ8cxXQEeWwcbvMkwT-CQ" name="EClass1" incomingEdges="_smZ8exXQEeWwcbvMkwT-CQ _smZ8fhXQEeWwcbvMkwT-CQ">
+ <target xmi:type="ecore:EClass" href="Bug467663.ecore#//EClass1"/>
+ <semanticElements xmi:type="ecore:EClass" href="Bug467663.ecore#//EClass1"/>
+ <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+ <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+ <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_smZ8dBXQEeWwcbvMkwT-CQ">
+ <description xmi:type="style:FlatContainerStyleDescription" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663']/@defaultLayer/@containerMappings[name='EClassMapping']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663']/@defaultLayer/@containerMappings[name='EClassMapping']"/>
+ <ownedDiagramElements xmi:type="diagram:DNodeContainer" xmi:id="_smZ8dRXQEeWwcbvMkwT-CQ" name="ref1" outgoingEdges="_smZ8exXQEeWwcbvMkwT-CQ">
+ <target xmi:type="ecore:EReference" href="Bug467663.ecore#//EClass1/ref1"/>
+ <semanticElements xmi:type="ecore:EReference" href="Bug467663.ecore#//EClass1/ref1"/>
+ <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+ <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+ <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_smZ8dhXQEeWwcbvMkwT-CQ">
+ <description xmi:type="style:FlatContainerStyleDescription" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663']/@defaultLayer/@containerMappings[name='EClassMapping']/@subContainerMappings[name='EReferenceMapping']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663']/@defaultLayer/@containerMappings[name='EClassMapping']/@subContainerMappings[name='EReferenceMapping']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeContainer" xmi:id="_smZ8dxXQEeWwcbvMkwT-CQ" name="ref2" outgoingEdges="_smZ8fhXQEeWwcbvMkwT-CQ">
+ <target xmi:type="ecore:EReference" href="Bug467663.ecore#//EClass1/ref2"/>
+ <semanticElements xmi:type="ecore:EReference" href="Bug467663.ecore#//EClass1/ref2"/>
+ <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+ <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+ <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_smZ8eBXQEeWwcbvMkwT-CQ">
+ <description xmi:type="style:FlatContainerStyleDescription" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663']/@defaultLayer/@containerMappings[name='EClassMapping']/@subContainerMappings[name='EReferenceMapping']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663']/@defaultLayer/@containerMappings[name='EClassMapping']/@subContainerMappings[name='EReferenceMapping']"/>
+ </ownedDiagramElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeContainer" xmi:id="_smZ8eRXQEeWwcbvMkwT-CQ" name="EClass2">
+ <target xmi:type="ecore:EClass" href="Bug467663.ecore#//EClass2"/>
+ <semanticElements xmi:type="ecore:EClass" href="Bug467663.ecore#//EClass2"/>
+ <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+ <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+ <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_smZ8ehXQEeWwcbvMkwT-CQ">
+ <description xmi:type="style:FlatContainerStyleDescription" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663']/@defaultLayer/@containerMappings[name='EClassMapping']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663']/@defaultLayer/@containerMappings[name='EClassMapping']"/>
+ <ownedDiagramElements xmi:type="diagram:DNodeContainer" xmi:id="_hHWrgBZaEeWC8NmpVA2EHg" name="ref3">
+ <target xmi:type="ecore:EReference" href="Bug467663.ecore#//EClass2/ref3"/>
+ <semanticElements xmi:type="ecore:EReference" href="Bug467663.ecore#//EClass2/ref3"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_hHWrgRZaEeWC8NmpVA2EHg">
+ <description xmi:type="style:FlatContainerStyleDescription" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663']/@defaultLayer/@containerMappings[name='EClassMapping']/@subContainerMappings[name='EReferenceMapping']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663']/@defaultLayer/@containerMappings[name='EClassMapping']/@subContainerMappings[name='EReferenceMapping']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeContainer" xmi:id="_hHXSkBZaEeWC8NmpVA2EHg" name="ref4">
+ <target xmi:type="ecore:EReference" href="Bug467663.ecore#//EClass2/ref4"/>
+ <semanticElements xmi:type="ecore:EReference" href="Bug467663.ecore#//EClass2/ref4"/>
+ <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+ <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+ <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_hHXSkRZaEeWC8NmpVA2EHg">
+ <description xmi:type="style:FlatContainerStyleDescription" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663']/@defaultLayer/@containerMappings[name='EClassMapping']/@subContainerMappings[name='EReferenceMapping']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663']/@defaultLayer/@containerMappings[name='EClassMapping']/@subContainerMappings[name='EReferenceMapping']"/>
+ </ownedDiagramElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_smZ8exXQEeWwcbvMkwT-CQ" sourceNode="_smZ8dRXQEeWwcbvMkwT-CQ" targetNode="_smZ8cxXQEeWwcbvMkwT-CQ">
+ <target xmi:type="ecore:EReference" href="Bug467663.ecore#//EClass1/ref1"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_smZ8fBXQEeWwcbvMkwT-CQ" size="2">
+ <description xmi:type="style:EdgeStyleDescription" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663']/@defaultLayer/@edgeMappings[name='ETypeMapping']/@style"/>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_smZ8fRXQEeWwcbvMkwT-CQ"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663']/@defaultLayer/@edgeMappings[name='ETypeMapping']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_smZ8fhXQEeWwcbvMkwT-CQ" sourceNode="_smZ8dxXQEeWwcbvMkwT-CQ" targetNode="_smZ8cxXQEeWwcbvMkwT-CQ">
+ <target xmi:type="ecore:EReference" href="Bug467663.ecore#//EClass1/ref2"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_smZ8fxXQEeWwcbvMkwT-CQ" size="2">
+ <description xmi:type="style:EdgeStyleDescription" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663']/@defaultLayer/@edgeMappings[name='ETypeMapping']/@style"/>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_smZ8gBXQEeWwcbvMkwT-CQ"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663']/@defaultLayer/@edgeMappings[name='ETypeMapping']"/>
+ </ownedDiagramElements>
+ <description xmi:type="description_1:DiagramDescription" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663']"/>
+ <filterVariableHistory xmi:type="diagram:FilterVariableHistory" xmi:id="_smZ8gRXQEeWwcbvMkwT-CQ"/>
+ <activatedLayers xmi:type="description_1:Layer" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663']/@defaultLayer"/>
+ <target xmi:type="ecore:EPackage" href="Bug467663.ecore#/"/>
+ </ownedRepresentations>
+ <ownedRepresentations xmi:type="diagram:DSemanticDiagram" xmi:id="_i7bPcBXREeWwcbvMkwT-CQ" name="new DiagramForBug467663WithRectilinear">
+ <ownedAnnotationEntries xmi:type="description:AnnotationEntry" xmi:id="_i7bPcRXREeWwcbvMkwT-CQ" source="DANNOTATION_CUSTOMIZATION_KEY">
+ <data xmi:type="diagram:ComputedStyleDescriptionRegistry" xmi:id="_i7bPchXREeWwcbvMkwT-CQ"/>
+ </ownedAnnotationEntries>
+ <ownedAnnotationEntries xmi:type="description:AnnotationEntry" xmi:id="_i7bPcxXREeWwcbvMkwT-CQ" source="GMF_DIAGRAMS">
+ <data xmi:type="notation:Diagram" xmi:id="_i7bPdBXREeWwcbvMkwT-CQ" type="Sirius" element="_i7bPcBXREeWwcbvMkwT-CQ" measurementUnit="Pixel">
+ <children xmi:type="notation:Node" xmi:id="_i7bPdRXREeWwcbvMkwT-CQ" type="2002" element="_i7bPqhXREeWwcbvMkwT-CQ">
+ <children xmi:type="notation:Node" xmi:id="_i7bPdhXREeWwcbvMkwT-CQ" type="5006"/>
+ <children xmi:type="notation:Node" xmi:id="_i7bPdxXREeWwcbvMkwT-CQ" type="7001">
+ <children xmi:type="notation:Node" xmi:id="_i7bPeBXREeWwcbvMkwT-CQ" type="3008" element="_i7bPrBXREeWwcbvMkwT-CQ">
+ <children xmi:type="notation:Node" xmi:id="_i7bPeRXREeWwcbvMkwT-CQ" type="5005"/>
+ <children xmi:type="notation:Node" xmi:id="_i7bPehXREeWwcbvMkwT-CQ" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_i7bPexXREeWwcbvMkwT-CQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_i7bPfBXREeWwcbvMkwT-CQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_i7bPfRXREeWwcbvMkwT-CQ" fontName="Cantarell" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_i7bPfhXREeWwcbvMkwT-CQ" x="90" y="24"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_i7bPfxXREeWwcbvMkwT-CQ" type="3008" element="_i7bPrhXREeWwcbvMkwT-CQ">
+ <children xmi:type="notation:Node" xmi:id="_i7bPgBXREeWwcbvMkwT-CQ" type="5005"/>
+ <children xmi:type="notation:Node" xmi:id="_i7bPgRXREeWwcbvMkwT-CQ" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_i7bPghXREeWwcbvMkwT-CQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_i7bPgxXREeWwcbvMkwT-CQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_i7bPhBXREeWwcbvMkwT-CQ" fontName="Cantarell" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_i7bPhRXREeWwcbvMkwT-CQ" x="90" y="124"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_i7bPhhXREeWwcbvMkwT-CQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_i7bPhxXREeWwcbvMkwT-CQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_i7bPiBXREeWwcbvMkwT-CQ" fontName="Cantarell" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_i7bPiRXREeWwcbvMkwT-CQ" x="65" y="45" width="388" height="248"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_i7bPihXREeWwcbvMkwT-CQ" type="2002" element="_i7bPsBXREeWwcbvMkwT-CQ">
+ <children xmi:type="notation:Node" xmi:id="_i7bPixXREeWwcbvMkwT-CQ" type="5006"/>
+ <children xmi:type="notation:Node" xmi:id="_i7bPjBXREeWwcbvMkwT-CQ" type="7001">
+ <children xmi:type="notation:Node" xmi:id="_fcHRsBZaEeWC8NmpVA2EHg" type="3008" element="_fb85oBZaEeWC8NmpVA2EHg">
+ <children xmi:type="notation:Node" xmi:id="_fcIf0BZaEeWC8NmpVA2EHg" type="5005"/>
+ <children xmi:type="notation:Node" xmi:id="_fcIf0RZaEeWC8NmpVA2EHg" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_fcIf0hZaEeWC8NmpVA2EHg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_fcIf0xZaEeWC8NmpVA2EHg"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_fcHRsRZaEeWC8NmpVA2EHg" fontName="Cantarell" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fcHRshZaEeWC8NmpVA2EHg" x="30" y="29"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_fcJG4BZaEeWC8NmpVA2EHg" type="3008" element="_fb_V4BZaEeWC8NmpVA2EHg">
+ <children xmi:type="notation:Node" xmi:id="_fcJt8BZaEeWC8NmpVA2EHg" type="5005"/>
+ <children xmi:type="notation:Node" xmi:id="_fcJt8RZaEeWC8NmpVA2EHg" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_fcJt8hZaEeWC8NmpVA2EHg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_fcJt8xZaEeWC8NmpVA2EHg"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_fcJG4RZaEeWC8NmpVA2EHg" fontName="Cantarell" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fcJG4hZaEeWC8NmpVA2EHg" x="30" y="124"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_i7bPjRXREeWwcbvMkwT-CQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_i7bPjhXREeWwcbvMkwT-CQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_i7bPjxXREeWwcbvMkwT-CQ" fontName="Cantarell" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_i7bPkBXREeWwcbvMkwT-CQ" x="485" y="45" width="288" height="248"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_i7bPkRXREeWwcbvMkwT-CQ"/>
+ <edges xmi:type="notation:Edge" xmi:id="_i7bPkhXREeWwcbvMkwT-CQ" type="4001" element="_i7bPshXREeWwcbvMkwT-CQ" source="_i7bPeBXREeWwcbvMkwT-CQ" target="_i7bPdRXREeWwcbvMkwT-CQ">
+ <children xmi:type="notation:Node" xmi:id="_i7bPkxXREeWwcbvMkwT-CQ" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_i7bPlBXREeWwcbvMkwT-CQ" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_i7bPlRXREeWwcbvMkwT-CQ" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_i7bPlhXREeWwcbvMkwT-CQ" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_i7bPlxXREeWwcbvMkwT-CQ" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_i7bPmBXREeWwcbvMkwT-CQ" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_i7bPmRXREeWwcbvMkwT-CQ" routing="Rectilinear"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_i7bPmhXREeWwcbvMkwT-CQ" fontName="Cantarell" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_i7bPmxXREeWwcbvMkwT-CQ" points="[1, 3, -140, 0]$[144, 3, 3, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_i7bPnBXREeWwcbvMkwT-CQ" id="(0.9933333333333333,0.5428571428571428)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_i7bPnRXREeWwcbvMkwT-CQ" id="(0.9922680412371134,0.28225806451612906)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_i7bPnhXREeWwcbvMkwT-CQ" type="4001" element="_i7bPtRXREeWwcbvMkwT-CQ" source="_i7bPfxXREeWwcbvMkwT-CQ" target="_i7bPdRXREeWwcbvMkwT-CQ">
+ <children xmi:type="notation:Node" xmi:id="_i7bPnxXREeWwcbvMkwT-CQ" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_i7bPoBXREeWwcbvMkwT-CQ" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_i7bPoRXREeWwcbvMkwT-CQ" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_i7bPohXREeWwcbvMkwT-CQ" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_i7bPoxXREeWwcbvMkwT-CQ" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_i7bPpBXREeWwcbvMkwT-CQ" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_i7bPpRXREeWwcbvMkwT-CQ" routing="Rectilinear"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_i7bPphXREeWwcbvMkwT-CQ" fontName="Cantarell" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_i7bPpxXREeWwcbvMkwT-CQ" points="[4, -11, -141, 19]$[147, -11, 2, 19]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_i7bPqBXREeWwcbvMkwT-CQ" id="(0.9733333333333334,0.6571428571428571)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_i7bPqRXREeWwcbvMkwT-CQ" id="(0.9948453608247423,0.5887096774193549)"/>
+ </edges>
+ </data>
+ </ownedAnnotationEntries>
+ <ownedDiagramElements xmi:type="diagram:DNodeContainer" xmi:id="_i7bPqhXREeWwcbvMkwT-CQ" name="EClass1" incomingEdges="_i7bPshXREeWwcbvMkwT-CQ _i7bPtRXREeWwcbvMkwT-CQ">
+ <target xmi:type="ecore:EClass" href="Bug467663.ecore#//EClass1"/>
+ <semanticElements xmi:type="ecore:EClass" href="Bug467663.ecore#//EClass1"/>
+ <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+ <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+ <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_i7bPqxXREeWwcbvMkwT-CQ">
+ <description xmi:type="style:FlatContainerStyleDescription" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663']/@defaultLayer/@containerMappings[name='EClassMapping']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663']/@defaultLayer/@containerMappings[name='EClassMapping']"/>
+ <ownedDiagramElements xmi:type="diagram:DNodeContainer" xmi:id="_i7bPrBXREeWwcbvMkwT-CQ" name="ref1" outgoingEdges="_i7bPshXREeWwcbvMkwT-CQ">
+ <target xmi:type="ecore:EReference" href="Bug467663.ecore#//EClass1/ref1"/>
+ <semanticElements xmi:type="ecore:EReference" href="Bug467663.ecore#//EClass1/ref1"/>
+ <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+ <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+ <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_i7bPrRXREeWwcbvMkwT-CQ">
+ <description xmi:type="style:FlatContainerStyleDescription" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663']/@defaultLayer/@containerMappings[name='EClassMapping']/@subContainerMappings[name='EReferenceMapping']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663']/@defaultLayer/@containerMappings[name='EClassMapping']/@subContainerMappings[name='EReferenceMapping']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeContainer" xmi:id="_i7bPrhXREeWwcbvMkwT-CQ" name="ref2" outgoingEdges="_i7bPtRXREeWwcbvMkwT-CQ">
+ <target xmi:type="ecore:EReference" href="Bug467663.ecore#//EClass1/ref2"/>
+ <semanticElements xmi:type="ecore:EReference" href="Bug467663.ecore#//EClass1/ref2"/>
+ <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+ <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+ <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_i7bPrxXREeWwcbvMkwT-CQ">
+ <description xmi:type="style:FlatContainerStyleDescription" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663']/@defaultLayer/@containerMappings[name='EClassMapping']/@subContainerMappings[name='EReferenceMapping']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663']/@defaultLayer/@containerMappings[name='EClassMapping']/@subContainerMappings[name='EReferenceMapping']"/>
+ </ownedDiagramElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeContainer" xmi:id="_i7bPsBXREeWwcbvMkwT-CQ" name="EClass2">
+ <target xmi:type="ecore:EClass" href="Bug467663.ecore#//EClass2"/>
+ <semanticElements xmi:type="ecore:EClass" href="Bug467663.ecore#//EClass2"/>
+ <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+ <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+ <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_i7bPsRXREeWwcbvMkwT-CQ">
+ <description xmi:type="style:FlatContainerStyleDescription" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663']/@defaultLayer/@containerMappings[name='EClassMapping']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663']/@defaultLayer/@containerMappings[name='EClassMapping']"/>
+ <ownedDiagramElements xmi:type="diagram:DNodeContainer" xmi:id="_fb85oBZaEeWC8NmpVA2EHg" name="ref3">
+ <target xmi:type="ecore:EReference" href="Bug467663.ecore#//EClass2/ref3"/>
+ <semanticElements xmi:type="ecore:EReference" href="Bug467663.ecore#//EClass2/ref3"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_fb9gsBZaEeWC8NmpVA2EHg">
+ <description xmi:type="style:FlatContainerStyleDescription" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663']/@defaultLayer/@containerMappings[name='EClassMapping']/@subContainerMappings[name='EReferenceMapping']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663']/@defaultLayer/@containerMappings[name='EClassMapping']/@subContainerMappings[name='EReferenceMapping']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeContainer" xmi:id="_fb_V4BZaEeWC8NmpVA2EHg" name="ref4">
+ <target xmi:type="ecore:EReference" href="Bug467663.ecore#//EClass2/ref4"/>
+ <semanticElements xmi:type="ecore:EReference" href="Bug467663.ecore#//EClass2/ref4"/>
+ <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+ <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+ <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_fb_V4RZaEeWC8NmpVA2EHg">
+ <description xmi:type="style:FlatContainerStyleDescription" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663']/@defaultLayer/@containerMappings[name='EClassMapping']/@subContainerMappings[name='EReferenceMapping']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663']/@defaultLayer/@containerMappings[name='EClassMapping']/@subContainerMappings[name='EReferenceMapping']"/>
+ </ownedDiagramElements>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_i7bPshXREeWwcbvMkwT-CQ" sourceNode="_i7bPrBXREeWwcbvMkwT-CQ" targetNode="_i7bPqhXREeWwcbvMkwT-CQ">
+ <target xmi:type="ecore:EReference" href="Bug467663.ecore#//EClass1/ref1"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_i7bPsxXREeWwcbvMkwT-CQ" size="2" routingStyle="manhattan">
+ <customFeatures>routingStyle</customFeatures>
+ <description xmi:type="style:EdgeStyleDescription" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663']/@defaultLayer/@edgeMappings[name='ETypeMapping']/@style"/>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_i7bPtBXREeWwcbvMkwT-CQ"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663']/@defaultLayer/@edgeMappings[name='ETypeMapping']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_i7bPtRXREeWwcbvMkwT-CQ" sourceNode="_i7bPrhXREeWwcbvMkwT-CQ" targetNode="_i7bPqhXREeWwcbvMkwT-CQ">
+ <target xmi:type="ecore:EReference" href="Bug467663.ecore#//EClass1/ref2"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_i7bPthXREeWwcbvMkwT-CQ" size="2" routingStyle="manhattan">
+ <customFeatures>routingStyle</customFeatures>
+ <description xmi:type="style:EdgeStyleDescription" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663']/@defaultLayer/@edgeMappings[name='ETypeMapping']/@style"/>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_i7bPtxXREeWwcbvMkwT-CQ"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663']/@defaultLayer/@edgeMappings[name='ETypeMapping']"/>
+ </ownedDiagramElements>
+ <description xmi:type="description_1:DiagramDescription" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663']"/>
+ <filterVariableHistory xmi:type="diagram:FilterVariableHistory" xmi:id="_i7bPuBXREeWwcbvMkwT-CQ"/>
+ <activatedLayers xmi:type="description_1:Layer" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663']/@defaultLayer"/>
+ <target xmi:type="ecore:EPackage" href="Bug467663.ecore#/"/>
+ </ownedRepresentations>
+ <viewpoint xmi:type="description:Viewpoint" href="Bug467663.odesign#//@ownedViewpoints[name='ComponentViewpointForBug467663']"/>
+ </ownedViews>
+ <ownedViews xmi:type="viewpoint:DRepresentationContainer" xmi:id="_qZmoYBT5EeWQ37jeOcGsxQ">
+ <ownedRepresentations xmi:type="diagram:DSemanticDiagram" xmi:id="_qi3SEBT5EeWQ37jeOcGsxQ" name=" package entities">
+ <ownedAnnotationEntries xmi:type="description:AnnotationEntry" xmi:id="_qi3SERT5EeWQ37jeOcGsxQ" source="DANNOTATION_CUSTOMIZATION_KEY">
+ <data xmi:type="diagram:ComputedStyleDescriptionRegistry" xmi:id="_qi3SEhT5EeWQ37jeOcGsxQ"/>
+ </ownedAnnotationEntries>
+ <ownedAnnotationEntries xmi:type="description:AnnotationEntry" xmi:id="_qi_N4BT5EeWQ37jeOcGsxQ" source="GMF_DIAGRAMS">
+ <data xmi:type="notation:Diagram" xmi:id="_qi_N4RT5EeWQ37jeOcGsxQ" type="Sirius" element="_qi3SEBT5EeWQ37jeOcGsxQ" measurementUnit="Pixel">
+ <children xmi:type="notation:Node" xmi:id="_qjC4QBT5EeWQ37jeOcGsxQ" type="2003" element="_qi3SExT5EeWQ37jeOcGsxQ">
+ <children xmi:type="notation:Node" xmi:id="_qjF7kBT5EeWQ37jeOcGsxQ" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_qjGioBT5EeWQ37jeOcGsxQ" type="7004">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_qjGioRT5EeWQ37jeOcGsxQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_qjGiohT5EeWQ37jeOcGsxQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_qjC4QRT5EeWQ37jeOcGsxQ" fontName="Cantarell" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qjC4QhT5EeWQ37jeOcGsxQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_qjGioxT5EeWQ37jeOcGsxQ" type="2003" element="_qi3SFRT5EeWQ37jeOcGsxQ">
+ <children xmi:type="notation:Node" xmi:id="_qjHJsBT5EeWQ37jeOcGsxQ" type="5007"/>
+ <children xmi:type="notation:Node" xmi:id="_qjHJsRT5EeWQ37jeOcGsxQ" type="7004">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_qjHJshT5EeWQ37jeOcGsxQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_qjHJsxT5EeWQ37jeOcGsxQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_qjGipBT5EeWQ37jeOcGsxQ" fontName="Cantarell" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qjGipRT5EeWQ37jeOcGsxQ"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_qi_N4hT5EeWQ37jeOcGsxQ"/>
+ <edges xmi:type="notation:Edge" xmi:id="_qjI-4BT5EeWQ37jeOcGsxQ" type="4001" element="_qi3SFxT5EeWQ37jeOcGsxQ" source="_qjC4QBT5EeWQ37jeOcGsxQ" target="_qjC4QBT5EeWQ37jeOcGsxQ">
+ <children xmi:type="notation:Node" xmi:id="_qjJl8BT5EeWQ37jeOcGsxQ" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qjJl8RT5EeWQ37jeOcGsxQ" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_qjK0EBT5EeWQ37jeOcGsxQ" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qjK0ERT5EeWQ37jeOcGsxQ" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_qjK0EhT5EeWQ37jeOcGsxQ" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qjK0ExT5EeWQ37jeOcGsxQ" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_qjI-4RT5EeWQ37jeOcGsxQ"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_qjI-4hT5EeWQ37jeOcGsxQ" fontName="Cantarell" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_qjI-4xT5EeWQ37jeOcGsxQ" points="[-1, -1, -1, -1]$[-1, -1, -1, -1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qjPFgBT5EeWQ37jeOcGsxQ" id="(0.5,0.5)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qjPFgRT5EeWQ37jeOcGsxQ" id="(0.5,0.5)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_qjPskBT5EeWQ37jeOcGsxQ" type="4001" element="_qi3SGhT5EeWQ37jeOcGsxQ" source="_qjC4QBT5EeWQ37jeOcGsxQ" target="_qjC4QBT5EeWQ37jeOcGsxQ">
+ <children xmi:type="notation:Node" xmi:id="_qjPslBT5EeWQ37jeOcGsxQ" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qjPslRT5EeWQ37jeOcGsxQ" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_qjQToBT5EeWQ37jeOcGsxQ" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qjQToRT5EeWQ37jeOcGsxQ" y="10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_qjQTohT5EeWQ37jeOcGsxQ" type="6003">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qjQToxT5EeWQ37jeOcGsxQ" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_qjPskRT5EeWQ37jeOcGsxQ"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_qjPskhT5EeWQ37jeOcGsxQ" fontName="Cantarell" fontHeight="8"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_qjPskxT5EeWQ37jeOcGsxQ" points="[-1, -1, -1, -1]$[-1, -1, -1, -1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qjQTpBT5EeWQ37jeOcGsxQ" id="(0.5,0.5)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qjQTpRT5EeWQ37jeOcGsxQ" id="(0.5,0.5)"/>
+ </edges>
+ </data>
+ </ownedAnnotationEntries>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_qi3SExT5EeWQ37jeOcGsxQ" name="EClass1" tooltipText=".EClass1" outgoingEdges="_qi3SFxT5EeWQ37jeOcGsxQ _qi3SGhT5EeWQ37jeOcGsxQ" incomingEdges="_qi3SFxT5EeWQ37jeOcGsxQ _qi3SGhT5EeWQ37jeOcGsxQ">
+ <target xmi:type="ecore:EClass" href="Bug467663.ecore#//EClass1"/>
+ <semanticElements xmi:type="ecore:EClass" href="Bug467663.ecore#//EClass1"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_qi3SFBT5EeWQ37jeOcGsxQ" backgroundStyle="GradientTopToBottom">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.sirius.sample.ecore.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.sirius.sample.ecore.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_qi3SFRT5EeWQ37jeOcGsxQ" name="EClass2" tooltipText=".EClass2">
+ <target xmi:type="ecore:EClass" href="Bug467663.ecore#//EClass2"/>
+ <semanticElements xmi:type="ecore:EClass" href="Bug467663.ecore#//EClass2"/>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_qi3SFhT5EeWQ37jeOcGsxQ" backgroundStyle="GradientTopToBottom">
+ <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.sirius.sample.ecore.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.sirius.sample.ecore.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_qi3SFxT5EeWQ37jeOcGsxQ" name="[0..1] ref1" sourceNode="_qi3SExT5EeWQ37jeOcGsxQ" targetNode="_qi3SExT5EeWQ37jeOcGsxQ">
+ <target xmi:type="ecore:EReference" href="Bug467663.ecore#//EClass1/ref1"/>
+ <semanticElements xmi:type="ecore:EReference" href="Bug467663.ecore#//EClass1/ref1"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_qi3SGBT5EeWQ37jeOcGsxQ">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.sirius.sample.ecore.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_qi3SGRT5EeWQ37jeOcGsxQ" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.sirius.sample.ecore.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+ </ownedDiagramElements>
+ <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_qi3SGhT5EeWQ37jeOcGsxQ" name="[0..1] ref2" sourceNode="_qi3SExT5EeWQ37jeOcGsxQ" targetNode="_qi3SExT5EeWQ37jeOcGsxQ">
+ <target xmi:type="ecore:EReference" href="Bug467663.ecore#//EClass1/ref2"/>
+ <semanticElements xmi:type="ecore:EReference" href="Bug467663.ecore#//EClass1/ref2"/>
+ <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_qi3SGxT5EeWQ37jeOcGsxQ">
+ <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.sirius.sample.ecore.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
+ <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_qi3SHBT5EeWQ37jeOcGsxQ" showIcon="false"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.sirius.sample.ecore.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+ </ownedDiagramElements>
+ <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.sirius.sample.ecore.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
+ <filterVariableHistory xmi:type="diagram:FilterVariableHistory" xmi:id="_qi3SHRT5EeWQ37jeOcGsxQ"/>
+ <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.sirius.sample.ecore.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/>
+ <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.sirius.sample.ecore.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Package']"/>
+ <target xmi:type="ecore:EPackage" href="Bug467663.ecore#/"/>
+ </ownedRepresentations>
+ <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.sirius.sample.ecore.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/>
+ </ownedViews>
+</viewpoint:DAnalysis>
diff --git a/plugins/org.eclipse.sirius.tests.swtbot/data/unit/edgeReconnection/Bug467663.component b/plugins/org.eclipse.sirius.tests.swtbot/data/unit/edgeReconnection/Bug467663.component
new file mode 100644
index 0000000000..0eabbc4472
--- /dev/null
+++ b/plugins/org.eclipse.sirius.tests.swtbot/data/unit/edgeReconnection/Bug467663.component
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component:Component xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:component="http://www.eclipse.org/sirius/sample/component">
+ <children name="c1">
+ <children name="c11">
+ <children name="c111" payload="true" references="//@children.1/@children.0/@children.0"/>
+ </children>
+ <children name="c12" payload="true"/>
+ <children name="c13">
+ <children name="c131" payload="true" references="//@children.1/@children.2/@children.0"/>
+ </children>
+ </children>
+ <children name="c2">
+ <children name="c21">
+ <children name="c211" payload="true" opposites="//@children.0/@children.0/@children.0"/>
+ </children>
+ <children name="c22" payload="true"/>
+ <children name="c23">
+ <children name="c231" payload="true" opposites="//@children.0/@children.2/@children.0"/>
+ </children>
+ </children>
+</component:Component>
diff --git a/plugins/org.eclipse.sirius.tests.swtbot/data/unit/edgeReconnection/Bug467663.ecore b/plugins/org.eclipse.sirius.tests.swtbot/data/unit/edgeReconnection/Bug467663.ecore
new file mode 100644
index 0000000000..1ca39ad630
--- /dev/null
+++ b/plugins/org.eclipse.sirius.tests.swtbot/data/unit/edgeReconnection/Bug467663.ecore
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="">
+ <eClassifiers xsi:type="ecore:EClass" name="EClass1">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ref1" eType="#//EClass1"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ref2" eType="#//EClass1"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EClass2">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ref3"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ref4"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.sirius.tests.swtbot/data/unit/edgeReconnection/Bug467663.odesign b/plugins/org.eclipse.sirius.tests.swtbot/data/unit/edgeReconnection/Bug467663.odesign
new file mode 100644
index 0000000000..31e1f56fd8
--- /dev/null
+++ b/plugins/org.eclipse.sirius.tests.swtbot/data/unit/edgeReconnection/Bug467663.odesign
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<description:Group xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:tool="http://www.eclipse.org/sirius/diagram/description/tool/1.1.0" xmlns:tool_1="http://www.eclipse.org/sirius/description/tool/1.1.0" name="Bug467663" version="10.0.0.201505222000">
+ <ownedViewpoints name="ComponentViewpointForBug467663" modelFileExtension="component">
+ <ownedRepresentations xsi:type="description_1:DiagramDescription" name="DiagramForBug467663" domainClass="ecore.EPackage" enablePopupBars="true">
+ <metamodel href="http://www.eclipse.org/emf/2002/Ecore#/"/>
+ <defaultLayer name="Default">
+ <edgeMappings name="ETypeMapping" sourceMapping="//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663']/@defaultLayer/@containerMappings[name='EClassMapping']/@subContainerMappings[name='EReferenceMapping']" targetMapping="//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663']/@defaultLayer/@containerMappings[name='EClassMapping']" targetFinderExpression="feature:eType" reconnections="//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663']/@defaultLayer/@toolSections.0/@ownedTools[name='ChangeTypeTool'] //@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663']/@defaultLayer/@toolSections.0/@ownedTools[name='ChangeTypeToolBis']">
+ <style sizeComputationExpression="2">
+ <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/>
+ <centerLabelStyleDescription>
+ <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ </centerLabelStyleDescription>
+ </style>
+ </edgeMappings>
+ <containerMappings name="EClassMapping" semanticCandidatesExpression="feature:eClassifiers" domainClass="ecore.EClass">
+ <subContainerMappings name="EReferenceMapping" semanticCandidatesExpression="feature:eStructuralFeatures" domainClass="ecore.EReference">
+ <style xsi:type="style:FlatContainerStyleDescription">
+ <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
+ <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_gray']"/>
+ </style>
+ </subContainerMappings>
+ <style xsi:type="style:FlatContainerStyleDescription">
+ <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
+ <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_gray']"/>
+ </style>
+ </containerMappings>
+ <toolSections name="DefaultSection">
+ <ownedTools xsi:type="tool:ReconnectEdgeDescription" name="ChangeTypeTool">
+ <source name="source"/>
+ <target name="target"/>
+ <sourceView name="sourceView"/>
+ <targetView name="targetView"/>
+ <element name="element"/>
+ <initialOperation>
+ <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:element">
+ <subModelOperations xsi:type="tool_1:SetValue" featureName="eType" valueExpression="var:target"/>
+ </firstModelOperations>
+ </initialOperation>
+ <edgeView name="edgeView"/>
+ </ownedTools>
+ <ownedTools xsi:type="tool:ReconnectEdgeDescription" name="ChangeTypeToolBis" reconnectionKind="RECONNECT_SOURCE">
+ <source name="source"/>
+ <target name="target"/>
+ <sourceView name="sourceView"/>
+ <targetView name="targetView"/>
+ <element name="element"/>
+ <initialOperation>
+ <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:source">
+ <subModelOperations xsi:type="tool_1:Unset" featureName="eType"/>
+ <subModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:target">
+ <subModelOperations xsi:type="tool_1:SetValue" featureName="eType" valueExpression="[otherEnd.oclAsType(viewpoint::DSemanticDecorator).target/]"/>
+ </subModelOperations>
+ </firstModelOperations>
+ </initialOperation>
+ <edgeView name="edgeView"/>
+ </ownedTools>
+ </toolSections>
+ </defaultLayer>
+ </ownedRepresentations>
+ <ownedRepresentations xsi:type="description_1:DiagramDescription" name="DiagramForBug467663Bis" domainClass="component.Component" enablePopupBars="true">
+ <metamodel href="http://www.eclipse.org/sirius/sample/component#/"/>
+ <defaultLayer name="Default">
+ <edgeMappings name="ComponentReferencesMapping" sourceMapping="//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663Bis']/@defaultLayer/@containerMappings[name='ComponentMapping']/@borderedNodeMappings[name='BorderComponentMapping']" targetMapping="//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663Bis']/@defaultLayer/@containerMappings[name='ComponentMapping']/@borderedNodeMappings[name='BorderComponentMapping']" targetFinderExpression="feature:references" reconnections="//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663Bis']/@defaultLayer/@toolSections.0/@ownedTools[name='ReconnectTool']">
+ <style sizeComputationExpression="2">
+ <strokeColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/>
+ <centerLabelStyleDescription>
+ <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ </centerLabelStyleDescription>
+ </style>
+ </edgeMappings>
+ <containerMappings name="ComponentMapping" semanticCandidatesExpression="feature:children" domainClass="component.Component" dropDescriptions="//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663Bis']/@defaultLayer/@toolSections.0/@ownedTools[name='DnDTool']">
+ <borderedNodeMappings name="BorderComponentMapping" preconditionExpression="feature:payload" semanticCandidatesExpression="feature:children" domainClass="component.Component">
+ <style xsi:type="style:SquareDescription" sizeComputationExpression="1" labelPosition="node" resizeKind="NSEW">
+ <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ <color xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='gray']"/>
+ </style>
+ </borderedNodeMappings>
+ <subContainerMappings name="SubComponentMapping" preconditionExpression="[not payload/]" semanticCandidatesExpression="feature:children" domainClass="component.Component" reusedBorderedNodeMappings="//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663Bis']/@defaultLayer/@containerMappings[name='ComponentMapping']/@borderedNodeMappings[name='BorderComponentMapping']" dropDescriptions="//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663Bis']/@defaultLayer/@toolSections.0/@ownedTools[name='DnDTool']">
+ <style xsi:type="style:FlatContainerStyleDescription">
+ <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
+ <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_gray']"/>
+ </style>
+ </subContainerMappings>
+ <style xsi:type="style:FlatContainerStyleDescription">
+ <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
+ <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='light_gray']"/>
+ </style>
+ </containerMappings>
+ <toolSections name="DefaultSection">
+ <ownedTools xsi:type="tool:ReconnectEdgeDescription" name="ReconnectTool">
+ <source name="source"/>
+ <target name="target"/>
+ <sourceView name="sourceView"/>
+ <targetView name="targetView"/>
+ <element name="element"/>
+ <initialOperation>
+ <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:element">
+ <subModelOperations xsi:type="tool_1:SetValue" featureName="references" valueExpression="var:target">
+ <subModelOperations xsi:type="tool_1:Unset" featureName="references" elementExpression="var:source"/>
+ </subModelOperations>
+ </firstModelOperations>
+ </initialOperation>
+ <edgeView name="edgeView"/>
+ </ownedTools>
+ <ownedTools xsi:type="tool:ContainerDropDescription" name="DnDTool" mappings="//@ownedViewpoints[name='ComponentViewpointForBug467663']/@ownedRepresentations[name='DiagramForBug467663Bis']/@defaultLayer/@containerMappings[name='ComponentMapping']/@borderedNodeMappings[name='BorderComponentMapping']">
+ <oldContainer name="oldSemanticContainer"/>
+ <newContainer name="newSemanticContainer"/>
+ <element name="element"/>
+ <newViewContainer name="newContainerView"/>
+ <initialOperation>
+ <firstModelOperations xsi:type="tool_1:ChangeContext" browseExpression="var:newSemanticContainer">
+ <subModelOperations xsi:type="tool_1:SetValue" featureName="children" valueExpression="var:element"/>
+ </firstModelOperations>
+ </initialOperation>
+ </ownedTools>
+ </toolSections>
+ </defaultLayer>
+ </ownedRepresentations>
+ </ownedViewpoints>
+</description:Group>
diff --git a/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/BracketEdgeTests.java b/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/BracketEdgeTests.java
index 697c74273e..2a90dc0270 100644
--- a/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/BracketEdgeTests.java
+++ b/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/BracketEdgeTests.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2010, 2014 THALES GLOBAL SERVICES.
+ * Copyright (c) 2010, 2015 THALES GLOBAL SERVICES.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -20,7 +20,6 @@ import org.eclipse.gef.ConnectionEditPart;
import org.eclipse.gef.GraphicalEditPart;
import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramUIMessages;
-import org.eclipse.gmf.runtime.emf.type.core.internal.l10n.EMFTypeCoreMessages;
import org.eclipse.sirius.diagram.DDiagram;
import org.eclipse.sirius.diagram.EdgeArrows;
import org.eclipse.sirius.diagram.description.style.BracketEdgeStyleDescription;
@@ -62,7 +61,6 @@ import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
*
* @author jdupont
*/
-@SuppressWarnings("restriction")
public class BracketEdgeTests extends AbstractSiriusSwtBotGefTestCase {
private static final String PATH = "data/unit/bracketEdge/";
@@ -147,7 +145,7 @@ public class BracketEdgeTests extends AbstractSiriusSwtBotGefTestCase {
protected void onSetUpAfterOpeningDesignerPerspective() throws Exception {
sessionAirdResource = new UIResource(designerProject, "/", SESSION_RESOURCE_NAME);
localSession = designerPerspective.openSessionFromFile(sessionAirdResource);
- editor = openDiagram(localSession.getOpenedSession(), REPRESENTATION_NAME, REPRESENTATION_INSTANCE_NAME, DDiagram.class, true);
+ editor = (SWTBotSiriusDiagramEditor) openRepresentation(localSession.getOpenedSession(), REPRESENTATION_NAME, REPRESENTATION_INSTANCE_NAME, DDiagram.class, true);
}
/**
@@ -211,7 +209,7 @@ public class BracketEdgeTests extends AbstractSiriusSwtBotGefTestCase {
// Check after reopening
editor.saveAndClose();
SWTBotUtils.waitAllUiEvents();
- editor = openDiagram(localSession.getOpenedSession(), REPRESENTATION_NAME, REPRESENTATION_INSTANCE_NAME, DDiagram.class, true);
+ editor = (SWTBotSiriusDiagramEditor) openRepresentation(localSession.getOpenedSession(), REPRESENTATION_NAME, REPRESENTATION_INSTANCE_NAME, DDiagram.class, true);
SWTBotUtils.waitAllUiEvents();
newEReference1BracketEdgeEditPartBot = editor.getEditPart(NEW_EREFERENCE_1, BracketEdgeEditPart.class);
@@ -287,7 +285,7 @@ public class BracketEdgeTests extends AbstractSiriusSwtBotGefTestCase {
// Check after reopening
editor.saveAndClose();
SWTBotUtils.waitAllUiEvents();
- editor = openDiagram(localSession.getOpenedSession(), REPRESENTATION_NAME, REPRESENTATION_INSTANCE_NAME, DDiagram.class, true);
+ editor = (SWTBotSiriusDiagramEditor) openRepresentation(localSession.getOpenedSession(), REPRESENTATION_NAME, REPRESENTATION_INSTANCE_NAME, DDiagram.class, true);
SWTBotUtils.waitAllUiEvents();
newEReference1BracketEdgeEditPartBot = editor.getEditPart(NEW_EREFERENCE_1, BracketEdgeEditPart.class);
@@ -364,7 +362,7 @@ public class BracketEdgeTests extends AbstractSiriusSwtBotGefTestCase {
// Check after reopening
editor.saveAndClose();
SWTBotUtils.waitAllUiEvents();
- editor = openDiagram(localSession.getOpenedSession(), REPRESENTATION_NAME, REPRESENTATION_INSTANCE_NAME, DDiagram.class, true);
+ editor = (SWTBotSiriusDiagramEditor) openRepresentation(localSession.getOpenedSession(), REPRESENTATION_NAME, REPRESENTATION_INSTANCE_NAME, DDiagram.class, true);
SWTBotUtils.waitAllUiEvents();
newEReference111BracketEdgeEditPartBot = editor.getEditPart(NEW_EREFERENCE_111, BracketEdgeEditPart.class);
@@ -440,7 +438,7 @@ public class BracketEdgeTests extends AbstractSiriusSwtBotGefTestCase {
// Check after reopening
editor.saveAndClose();
SWTBotUtils.waitAllUiEvents();
- editor = openDiagram(localSession.getOpenedSession(), REPRESENTATION_NAME, REPRESENTATION_INSTANCE_NAME, DDiagram.class, true);
+ editor = (SWTBotSiriusDiagramEditor) openRepresentation(localSession.getOpenedSession(), REPRESENTATION_NAME, REPRESENTATION_INSTANCE_NAME, DDiagram.class, true);
SWTBotUtils.waitAllUiEvents();
newEReference111BracketEdgeEditPartBot = editor.getEditPart(NEW_EREFERENCE_111, BracketEdgeEditPart.class);
@@ -514,7 +512,7 @@ public class BracketEdgeTests extends AbstractSiriusSwtBotGefTestCase {
// Check after reopening
editor.saveAndClose();
SWTBotUtils.waitAllUiEvents();
- editor = openDiagram(localSession.getOpenedSession(), REPRESENTATION_NAME, REPRESENTATION_INSTANCE_NAME, DDiagram.class);
+ editor = (SWTBotSiriusDiagramEditor) openRepresentation(localSession.getOpenedSession(), REPRESENTATION_NAME, REPRESENTATION_INSTANCE_NAME, DDiagram.class);
SWTBotUtils.waitAllUiEvents();
newEReference1BracketEdgeEditPartBot = editor.getEditPart(NEW_EREFERENCE_1, BracketEdgeEditPart.class);
@@ -588,7 +586,7 @@ public class BracketEdgeTests extends AbstractSiriusSwtBotGefTestCase {
// Check after reopening
editor.saveAndClose();
SWTBotUtils.waitAllUiEvents();
- editor = openDiagram(localSession.getOpenedSession(), REPRESENTATION_NAME, REPRESENTATION_INSTANCE_NAME, DDiagram.class);
+ editor = (SWTBotSiriusDiagramEditor) openRepresentation(localSession.getOpenedSession(), REPRESENTATION_NAME, REPRESENTATION_INSTANCE_NAME, DDiagram.class);
SWTBotUtils.waitAllUiEvents();
newEReference111BracketEdgeEditPartBot = editor.getEditPart(NEW_EREFERENCE_111, BracketEdgeEditPart.class);
@@ -740,7 +738,7 @@ public class BracketEdgeTests extends AbstractSiriusSwtBotGefTestCase {
// Check after reopening
editor.saveAndClose();
SWTBotUtils.waitAllUiEvents();
- editor = openDiagram(localSession.getOpenedSession(), REPRESENTATION_NAME, REPRESENTATION_INSTANCE_NAME, DDiagram.class);
+ editor = (SWTBotSiriusDiagramEditor) openRepresentation(localSession.getOpenedSession(), REPRESENTATION_NAME, REPRESENTATION_INSTANCE_NAME, DDiagram.class);
SWTBotUtils.waitAllUiEvents();
newEReference111BracketEdgeEditPartBot = editor.getEditPart(NEW_EREFERENCE_111, BracketEdgeEditPart.class);
@@ -798,7 +796,7 @@ public class BracketEdgeTests extends AbstractSiriusSwtBotGefTestCase {
editor.saveAndClose();
SWTBotUtils.waitAllUiEvents();
// Open editor
- editor = openDiagram(localSession.getOpenedSession(), REPRESENTATION_NAME, REPRESENTATION_INSTANCE_NAME, DDiagram.class);
+ editor = (SWTBotSiriusDiagramEditor) openRepresentation(localSession.getOpenedSession(), REPRESENTATION_NAME, REPRESENTATION_INSTANCE_NAME, DDiagram.class);
SWTBotUtils.waitAllUiEvents();
// Retrieve edge point location
checkPositionEdge(editor, NEW_ECLASS_1, NEW_ECLASS_2, point0.x, point0.y, point1.x + deltaX, point1.y, point2.x + deltaX, point2.y, point3.x + deltaX, point3.y, point4.x + deltaX,
@@ -860,7 +858,7 @@ public class BracketEdgeTests extends AbstractSiriusSwtBotGefTestCase {
}
changeDecorators(EdgeArrows.INPUT_FILL_CLOSED_ARROW_LITERAL);
// Open representation
- editor = openDiagram(localSession.getOpenedSession(), REPRESENTATION_NAME, REPRESENTATION_INSTANCE_NAME, DDiagram.class);
+ editor = (SWTBotSiriusDiagramEditor) openRepresentation(localSession.getOpenedSession(), REPRESENTATION_NAME, REPRESENTATION_INSTANCE_NAME, DDiagram.class);
// In SWTBOt must do refresh
editor.refresh();
// Check that Source and Target Arrow are set correctly
@@ -881,7 +879,7 @@ public class BracketEdgeTests extends AbstractSiriusSwtBotGefTestCase {
// expand the tree : EReference Mapping
SWTBotTree tree = odesignEditor.bot().tree();
tree.expandNode(ODESIGN).expandNode(GROUP).expandNode(VIEWPOINT_NAME).expandNode(DIAGRAM_DESCRIPTION_NAME).expandNode("Default").expandNode("EReferenceMapping")
- .expandNode("Bracket Edge Style solid").select();
+ .expandNode("Bracket Edge Style solid").select();
// accesses to property view
bot.viewByTitle(PROPERTIES).setFocus();
// accesses to tab Decorators
@@ -905,7 +903,7 @@ public class BracketEdgeTests extends AbstractSiriusSwtBotGefTestCase {
// expand the tree : EReference Mapping
SWTBotTree tree = odesignEditor.bot().tree();
tree.expandNode(ODESIGN).expandNode(GROUP).expandNode(VIEWPOINT_NAME).expandNode(DIAGRAM_DESCRIPTION_NAME).expandNode("Default").expandNode("EReferenceMapping")
- .expandNode("Bracket Edge Style solid").select();
+ .expandNode("Bracket Edge Style solid").select();
// accesses to property view
bot.viewByTitle(PROPERTIES).setFocus();
// accesses to tab Decorators
@@ -978,7 +976,7 @@ public class BracketEdgeTests extends AbstractSiriusSwtBotGefTestCase {
editor.saveAndClose();
SWTBotUtils.waitAllUiEvents();
// Open editor
- editor = openDiagram(localSession.getOpenedSession(), REPRESENTATION_NAME, REPRESENTATION_INSTANCE_NAME, DDiagram.class);
+ editor = (SWTBotSiriusDiagramEditor) openRepresentation(localSession.getOpenedSession(), REPRESENTATION_NAME, REPRESENTATION_INSTANCE_NAME, DDiagram.class);
SWTBotUtils.waitAllUiEvents();
// Check that sourceDecorator is over vertical line and targetDecorator
@@ -1000,7 +998,7 @@ public class BracketEdgeTests extends AbstractSiriusSwtBotGefTestCase {
// expand the tree : EReference Mapping
SWTBotTree tree = odesignEditor.bot().tree();
tree.expandNode(ODESIGN).expandNode(GROUP).expandNode(VIEWPOINT_NAME).expandNode(DIAGRAM_DESCRIPTION_NAME).expandNode("Default").expandNode("EReferenceMapping")
- .expandNode("Bracket Edge Style solid").select();
+ .expandNode("Bracket Edge Style solid").select();
// accesses to property view
bot.viewByTitle(PROPERTIES).setFocus();
// accesses to tab Decorators
@@ -1010,7 +1008,7 @@ public class BracketEdgeTests extends AbstractSiriusSwtBotGefTestCase {
lineStyle.setSelection(2);
assertEquals("Line style should be dot", "dot", lineStyle.getText());
odesignEditor.save();
- openDiagram(localSession.getOpenedSession(), REPRESENTATION_NAME, REPRESENTATION_INSTANCE_NAME, DDiagram.class);
+ openRepresentation(localSession.getOpenedSession(), REPRESENTATION_NAME, REPRESENTATION_INSTANCE_NAME, DDiagram.class);
// In SWTBOt must do refresh
editor.refresh();
// Check that line style are set correctly
@@ -1090,7 +1088,7 @@ public class BracketEdgeTests extends AbstractSiriusSwtBotGefTestCase {
assertEquals(targetEditPartBounds.getRight(), bracketEdgePointListAfterReconnect.getPoint(5));
// Undo
- undo(EMFTypeCoreMessages.Request_Label_ReorientSource);
+ undo(localSession.getOpenedSession());
SWTBotUtils.waitAllUiEvents();
// Check
@@ -1105,7 +1103,7 @@ public class BracketEdgeTests extends AbstractSiriusSwtBotGefTestCase {
assertEquals(bracketEdgePointList.getPoint(5), bracketEdgePointListAfterUndo.getPoint(5));
// Redo
- redo(EMFTypeCoreMessages.Request_Label_ReorientSource);
+ redo(localSession.getOpenedSession());
SWTBotUtils.waitAllUiEvents();
// Check
@@ -1122,7 +1120,7 @@ public class BracketEdgeTests extends AbstractSiriusSwtBotGefTestCase {
// Check after reopening
editor.saveAndClose();
SWTBotUtils.waitAllUiEvents();
- editor = openDiagram(localSession.getOpenedSession(), REPRESENTATION_NAME, REPRESENTATION_INSTANCE_NAME, DDiagram.class);
+ editor = (SWTBotSiriusDiagramEditor) openRepresentation(localSession.getOpenedSession(), REPRESENTATION_NAME, REPRESENTATION_INSTANCE_NAME, DDiagram.class);
SWTBotUtils.waitAllUiEvents();
bracketEdgeEditPartBot = editor.getEditPart(connection, BracketEdgeEditPart.class);
@@ -1202,7 +1200,7 @@ public class BracketEdgeTests extends AbstractSiriusSwtBotGefTestCase {
// Check after reopeningt
editor.saveAndClose();
SWTBotUtils.waitAllUiEvents();
- editor = openDiagram(localSession.getOpenedSession(), REPRESENTATION_NAME, REPRESENTATION_INSTANCE_NAME, DDiagram.class);
+ editor = (SWTBotSiriusDiagramEditor) openRepresentation(localSession.getOpenedSession(), REPRESENTATION_NAME, REPRESENTATION_INSTANCE_NAME, DDiagram.class);
SWTBotUtils.waitAllUiEvents();
bracketEdgeOnBracketEdgeEditPartBot = editor.getEditPart("eAnnotationToBracket", BracketEdgeEditPart.class);
@@ -1278,7 +1276,7 @@ public class BracketEdgeTests extends AbstractSiriusSwtBotGefTestCase {
// Check after reopening
editor.saveAndClose();
SWTBotUtils.waitAllUiEvents();
- editor = openDiagram(localSession.getOpenedSession(), REPRESENTATION_NAME, REPRESENTATION_INSTANCE_NAME, DDiagram.class);
+ editor = (SWTBotSiriusDiagramEditor) openRepresentation(localSession.getOpenedSession(), REPRESENTATION_NAME, REPRESENTATION_INSTANCE_NAME, DDiagram.class);
SWTBotUtils.waitAllUiEvents();
newEReference1BracketEdgeEditPartBot = editor.getEditPart(connection, BracketEdgeEditPart.class);
@@ -1354,7 +1352,7 @@ public class BracketEdgeTests extends AbstractSiriusSwtBotGefTestCase {
// Check after reopening
editor.saveAndClose();
SWTBotUtils.waitAllUiEvents();
- editor = openDiagram(localSession.getOpenedSession(), REPRESENTATION_NAME, REPRESENTATION_INSTANCE_NAME, DDiagram.class);
+ editor = (SWTBotSiriusDiagramEditor) openRepresentation(localSession.getOpenedSession(), REPRESENTATION_NAME, REPRESENTATION_INSTANCE_NAME, DDiagram.class);
SWTBotUtils.waitAllUiEvents();
newEReference1BracketEdgeEditPartBot = editor.getEditPart(connection, BracketEdgeEditPart.class);
@@ -1429,7 +1427,7 @@ public class BracketEdgeTests extends AbstractSiriusSwtBotGefTestCase {
// Check after reopening
editor.saveAndClose();
SWTBotUtils.waitAllUiEvents();
- editor = openDiagram(localSession.getOpenedSession(), REPRESENTATION_NAME, REPRESENTATION_INSTANCE_NAME, DDiagram.class);
+ editor = (SWTBotSiriusDiagramEditor) openRepresentation(localSession.getOpenedSession(), REPRESENTATION_NAME, REPRESENTATION_INSTANCE_NAME, DDiagram.class);
SWTBotUtils.waitAllUiEvents();
newEReference1BracketEdgeEditPartBot = editor.getEditPart(connection, BracketEdgeEditPart.class);
@@ -1504,7 +1502,7 @@ public class BracketEdgeTests extends AbstractSiriusSwtBotGefTestCase {
// Check after reopening
editor.saveAndClose();
SWTBotUtils.waitAllUiEvents();
- editor = openDiagram(localSession.getOpenedSession(), REPRESENTATION_NAME, REPRESENTATION_INSTANCE_NAME, DDiagram.class);
+ editor = (SWTBotSiriusDiagramEditor) openRepresentation(localSession.getOpenedSession(), REPRESENTATION_NAME, REPRESENTATION_INSTANCE_NAME, DDiagram.class);
SWTBotUtils.waitAllUiEvents();
newEReference1BracketEdgeEditPartBot = editor.getEditPart(connection, BracketEdgeEditPart.class);
diff --git a/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/EdgeReconnectionTests.java b/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/EdgeReconnectionTests.java
new file mode 100644
index 0000000000..2c8f6b0b01
--- /dev/null
+++ b/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/EdgeReconnectionTests.java
@@ -0,0 +1,285 @@
+/*******************************************************************************
+ * Copyright (c) 2015 THALES GLOBAL SERVICES and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.sirius.tests.swtbot;
+
+import java.util.List;
+
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.PointList;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.editparts.AbstractConnectionEditPart;
+import org.eclipse.sirius.business.api.helper.SiriusUtil;
+import org.eclipse.sirius.diagram.DDiagram;
+import org.eclipse.sirius.diagram.ui.edit.api.part.AbstractDiagramBorderNodeEditPart;
+import org.eclipse.sirius.diagram.ui.edit.api.part.AbstractDiagramContainerEditPart;
+import org.eclipse.sirius.tests.support.api.GraphicTestsSupportHelp;
+import org.eclipse.sirius.tests.swtbot.support.api.AbstractSiriusSwtBotGefTestCase;
+import org.eclipse.sirius.tests.swtbot.support.api.business.UIResource;
+import org.eclipse.sirius.tests.swtbot.support.api.editor.SWTBotSiriusDiagramEditor;
+import org.eclipse.swtbot.eclipse.gef.finder.widgets.SWTBotGefConnectionEditPart;
+import org.eclipse.swtbot.eclipse.gef.finder.widgets.SWTBotGefEditPart;
+import org.hamcrest.core.IsInstanceOf;
+
+/**
+ * Tests edge reconnection.
+ *
+ * @author <a href="mailto:esteban.dugueperoux@obeo.fr">Esteban Dugueperoux</a>
+ */
+public class EdgeReconnectionTests extends AbstractSiriusSwtBotGefTestCase {
+
+ private static final String PATH = "data/unit/edgeReconnection/";
+
+ private static final String MODELER_RESOURCE_NAME = "Bug467663." + SiriusUtil.DESCRIPTION_MODEL_EXTENSION;
+
+ private static final String SEMANTIC_RESOURCE1_NAME = "Bug467663.ecore";
+
+ private static final String SEMANTIC_RESOURCE2_NAME = "Bug467663.component";
+
+ private static final String SESSION_RESOURCE_NAME = "Bug467663." + SiriusUtil.SESSION_RESOURCE_EXTENSION;
+
+ private static final String REPRESENTATION1_NAME = "DiagramForBug467663";
+
+ private static final String REPRESENTATION2_NAME = "DiagramForBug467663Bis";
+
+ @Override
+ public void setUp() throws Exception {
+ super.setUp();
+ copyFileToTestProject(Activator.PLUGIN_ID, PATH, MODELER_RESOURCE_NAME, SEMANTIC_RESOURCE1_NAME, SEMANTIC_RESOURCE2_NAME, SESSION_RESOURCE_NAME);
+ sessionAirdResource = new UIResource(designerProject, "/", SESSION_RESOURCE_NAME);
+ localSession = designerPerspective.openSessionFromFile(sessionAirdResource, true);
+ }
+
+ /**
+ * Test reconnection of target edge end point from a container to another
+ * with oblique style routing.
+ */
+ public void testSimpleEdgeSourceReconnectionWithObliqueStyleRouting() {
+ editor = (SWTBotSiriusDiagramEditor) openRepresentation(localSession.getOpenedSession(), REPRESENTATION1_NAME, "new " + REPRESENTATION1_NAME, DDiagram.class, true);
+ SWTBotGefEditPart eClass1EditPartBot = editor.getEditPart("EClass1", AbstractDiagramContainerEditPart.class);
+ SWTBotGefEditPart eClass2EditPartBot = editor.getEditPart("EClass2", AbstractDiagramContainerEditPart.class);
+ SWTBotGefEditPart ref1EditPartBot = editor.getEditPart("ref1", AbstractDiagramContainerEditPart.class);
+ SWTBotGefEditPart ref2EditPartBot = editor.getEditPart("ref2", AbstractDiagramContainerEditPart.class);
+ SWTBotGefEditPart ref3EditPartBot = editor.getEditPart("ref3", AbstractDiagramContainerEditPart.class);
+ SWTBotGefEditPart ref4EditPartBot = editor.getEditPart("ref4", AbstractDiagramContainerEditPart.class);
+ SWTBotGefConnectionEditPart connection1EditPartBot = editor.getConnectionEditPart(ref1EditPartBot, eClass1EditPartBot).get(0);
+ SWTBotGefConnectionEditPart connection2EditPartBot = editor.getConnectionEditPart(ref2EditPartBot, eClass1EditPartBot).get(0);
+
+ // Reconnect target of first connection
+ PointList connection1Points = ((AbstractConnectionEditPart) connection1EditPartBot.part()).getConnectionFigure().getPoints().getCopy();
+ Point from = connection1Points.getLastPoint();
+ Point to = from.getCopy().setX(editor.getBounds(eClass2EditPartBot).x);
+ connection1EditPartBot.select();
+ editor.drag(from, to);
+ // Check that reconnection is correct
+ assertEquals(0, editor.getConnectionEditPart(ref1EditPartBot, eClass1EditPartBot).size());
+ List<SWTBotGefConnectionEditPart> newConnection1EditPartBotList = editor.getConnectionEditPart(ref1EditPartBot, eClass2EditPartBot);
+ assertEquals(1, newConnection1EditPartBotList.size());
+ SWTBotGefConnectionEditPart newConnection1EditPartBot = newConnection1EditPartBotList.get(0);
+ PointList newConnection1Points = ((AbstractConnectionEditPart) newConnection1EditPartBot.part()).getConnectionFigure().getPoints();
+ assertEquals(2, newConnection1Points.size());
+ GraphicTestsSupportHelp.assertEquals("After reconnection source end point is not at the correct position.", connection1Points.getFirstPoint(), newConnection1Points.getFirstPoint(), 0, 1);
+ GraphicTestsSupportHelp.assertEquals("After reconnection target end point is not at the correct position.", to, newConnection1Points.getLastPoint(), 0, 1);
+ connection1EditPartBot = newConnection1EditPartBot;
+
+ // Reconnect target of second connection
+ PointList connection2Points = ((AbstractConnectionEditPart) connection2EditPartBot.part()).getConnectionFigure().getPoints().getCopy();
+ from = connection2Points.getLastPoint();
+ to = from.getCopy().setX(editor.getBounds(eClass2EditPartBot).x);
+ connection2EditPartBot.select();
+ editor.drag(from, to);
+ // Check that reconnection is correct
+ assertEquals(0, editor.getConnectionEditPart(ref2EditPartBot, eClass1EditPartBot).size());
+ List<SWTBotGefConnectionEditPart> newConnection2EditPartBotList = editor.getConnectionEditPart(ref2EditPartBot, eClass2EditPartBot);
+ assertEquals(1, newConnection2EditPartBotList.size());
+ SWTBotGefConnectionEditPart newConnection2EditPartBot = newConnection2EditPartBotList.get(0);
+ PointList newConnection2Points = ((AbstractConnectionEditPart) newConnection2EditPartBot.part()).getConnectionFigure().getPoints();
+ assertEquals(2, newConnection2Points.size());
+ GraphicTestsSupportHelp.assertEquals("After reconnection source end point is not at the correct position.", connection2Points.getFirstPoint(), newConnection2Points.getFirstPoint(), 0, 2);
+ GraphicTestsSupportHelp.assertEquals("After reconnection target end point is not at the correct position.", to, newConnection2Points.getLastPoint(), 0, 2);
+ connection2EditPartBot = newConnection2EditPartBot;
+
+ // Reconnect target of first connection as initially
+ connection1Points = ((AbstractConnectionEditPart) connection1EditPartBot.part()).getConnectionFigure().getPoints().getCopy();
+ from = connection1Points.getLastPoint();
+ to = from.getCopy().setX(editor.getBounds(eClass1EditPartBot).getRight().x - 2);
+ connection1EditPartBot.select();
+ editor.drag(from, to);
+ // Check that reconnection is correct
+ assertEquals(0, editor.getConnectionEditPart(ref1EditPartBot, eClass2EditPartBot).size());
+ newConnection1EditPartBotList = editor.getConnectionEditPart(ref1EditPartBot, eClass1EditPartBot);
+ assertEquals(1, newConnection1EditPartBotList.size());
+ newConnection1EditPartBot = newConnection1EditPartBotList.get(0);
+ newConnection1Points = ((AbstractConnectionEditPart) newConnection1EditPartBot.part()).getConnectionFigure().getPoints();
+ assertEquals(2, newConnection1Points.size());
+ GraphicTestsSupportHelp.assertEquals("After reconnection source end point is not at the correct position.", connection1Points.getFirstPoint(), newConnection1Points.getFirstPoint(), 0, 1);
+ GraphicTestsSupportHelp.assertEquals("After reconnection target end point is not at the correct position.", to, newConnection1Points.getLastPoint(), 0, 1);
+ connection1EditPartBot = newConnection1EditPartBot;
+
+ // Reconnect target of second connection as initially
+ connection2Points = ((AbstractConnectionEditPart) connection2EditPartBot.part()).getConnectionFigure().getPoints().getCopy();
+ from = connection2Points.getLastPoint();
+ to = from.getCopy().setX(editor.getBounds(eClass1EditPartBot).getRight().x - 2);
+ connection2EditPartBot.select();
+ editor.drag(from, to);
+ // Check that reconnection is correct
+ assertEquals(0, editor.getConnectionEditPart(ref2EditPartBot, eClass2EditPartBot).size());
+ newConnection2EditPartBotList = editor.getConnectionEditPart(ref2EditPartBot, eClass1EditPartBot);
+ assertEquals(1, newConnection2EditPartBotList.size());
+ newConnection2EditPartBot = newConnection2EditPartBotList.get(0);
+ newConnection2Points = ((AbstractConnectionEditPart) newConnection2EditPartBot.part()).getConnectionFigure().getPoints();
+ assertEquals(2, newConnection2Points.size());
+ GraphicTestsSupportHelp.assertEquals("After reconnection source end point is not at the correct position.", connection2Points.getFirstPoint(), newConnection2Points.getFirstPoint(), 0, 2);
+ GraphicTestsSupportHelp.assertEquals("After reconnection target end point is not at the correct position.", to, newConnection2Points.getLastPoint(), 0, 2);
+ connection2EditPartBot = newConnection2EditPartBot;
+
+ // Reconnect source of first connection
+ connection1Points = ((AbstractConnectionEditPart) connection1EditPartBot.part()).getConnectionFigure().getPoints().getCopy();
+ from = connection1Points.getFirstPoint();
+ to = from.getCopy().setX(editor.getBounds(ref3EditPartBot).x);
+ connection1EditPartBot.select();
+ editor.drag(from, to);
+ // Check that reconnection is correct
+ assertEquals(0, editor.getConnectionEditPart(ref1EditPartBot, eClass1EditPartBot).size());
+ newConnection1EditPartBotList = editor.getConnectionEditPart(ref3EditPartBot, eClass1EditPartBot);
+ assertEquals(1, newConnection1EditPartBotList.size());
+ newConnection1EditPartBot = newConnection1EditPartBotList.get(0);
+ newConnection1Points = ((AbstractConnectionEditPart) newConnection1EditPartBot.part()).getConnectionFigure().getPoints();
+ assertEquals(2, newConnection1Points.size());
+ GraphicTestsSupportHelp.assertEquals("After reconnection source end point is not at the correct position.", to, newConnection1Points.getFirstPoint(), 0, 2);
+ connection1EditPartBot = newConnection1EditPartBot;
+
+ // Reconnect source of second connection
+ connection2Points = ((AbstractConnectionEditPart) connection2EditPartBot.part()).getConnectionFigure().getPoints().getCopy();
+ from = connection2Points.getFirstPoint();
+ to = from.getCopy().setX(editor.getBounds(ref4EditPartBot).x);
+ connection2EditPartBot.select();
+ editor.drag(from, to);
+ // Check that reconnection is correct
+ assertEquals(0, editor.getConnectionEditPart(ref2EditPartBot, eClass1EditPartBot).size());
+ newConnection2EditPartBotList = editor.getConnectionEditPart(ref4EditPartBot, eClass1EditPartBot);
+ assertEquals(1, newConnection2EditPartBotList.size());
+ newConnection2EditPartBot = newConnection2EditPartBotList.get(0);
+ newConnection2Points = ((AbstractConnectionEditPart) newConnection2EditPartBot.part()).getConnectionFigure().getPoints();
+ assertEquals(2, newConnection2Points.size());
+ GraphicTestsSupportHelp.assertEquals("After reconnection source end point is not at the correct position.", to, newConnection2Points.getFirstPoint(), 0, 1);
+ connection2EditPartBot = newConnection2EditPartBot;
+ }
+
+ /**
+ * Test reconnection of source edge port from a container to another with
+ * oblique style routing.
+ */
+ public void testEdgeWithPortSourceDnDWithObliqueStyleRouting() {
+ editor = (SWTBotSiriusDiagramEditor) openRepresentation(localSession.getOpenedSession(), REPRESENTATION2_NAME, "new " + REPRESENTATION2_NAME, DDiagram.class, true);
+ SWTBotGefEditPart c1EditPartBot = editor.getEditPart("c1", AbstractDiagramContainerEditPart.class);
+ SWTBotGefEditPart c11EditPartBot = editor.getEditPart("c11", AbstractDiagramContainerEditPart.class);
+ SWTBotGefEditPart c13EditPartBot = editor.getEditPart("c13", AbstractDiagramContainerEditPart.class);
+ SWTBotGefEditPart c131EditPartBot = editor.getEditPart("c131", AbstractDiagramBorderNodeEditPart.class);
+ SWTBotGefEditPart c231EditPartBot = editor.getEditPart("c231", AbstractDiagramBorderNodeEditPart.class);
+ SWTBotGefEditPart c111EditPartBot = editor.getEditPart("c111", AbstractDiagramBorderNodeEditPart.class);
+ SWTBotGefEditPart c211EditPartBot = editor.getEditPart("c211", AbstractDiagramBorderNodeEditPart.class);
+ SWTBotGefConnectionEditPart connection1EditPartBot = editor.getConnectionEditPart(c131EditPartBot, c231EditPartBot).get(0);
+ SWTBotGefConnectionEditPart connection2EditPartBot = editor.getConnectionEditPart(c111EditPartBot, c211EditPartBot).get(0);
+
+ // Reconnect source port of first connection
+ PointList connection1Points = ((AbstractConnectionEditPart) connection1EditPartBot.part()).getConnectionFigure().getPoints().getCopy();
+ Rectangle c131EditPartBounds = editor.getBounds(c131EditPartBot);
+ Point from = c131EditPartBounds.getCenter();
+ Point to = editor.getBounds(c1EditPartBot).getRight().setY(from.y).getTranslated(-5, 0);
+ c131EditPartBot.select();
+ editor.drag(from, to);
+ // Check that port dnd is correct
+ c131EditPartBot = editor.getEditPart("c131", AbstractDiagramBorderNodeEditPart.class);
+ assertEquals(0, c13EditPartBot.descendants(IsInstanceOf.<EditPart> instanceOf(AbstractDiagramBorderNodeEditPart.class)).size());
+ List<SWTBotGefEditPart> borderNodesEditPartBot = c1EditPartBot.descendants(IsInstanceOf.<EditPart> instanceOf(AbstractDiagramBorderNodeEditPart.class));
+ borderNodesEditPartBot.remove(c111EditPartBot);
+ assertEquals(2, borderNodesEditPartBot.size());
+ List<SWTBotGefConnectionEditPart> newConnection1EditPartBotList = editor.getConnectionEditPart(c131EditPartBot, c231EditPartBot);
+ assertEquals(1, newConnection1EditPartBotList.size());
+ SWTBotGefConnectionEditPart newConnection1EditPartBot = newConnection1EditPartBotList.get(0);
+ PointList newConnection1Points = ((AbstractConnectionEditPart) newConnection1EditPartBot.part()).getConnectionFigure().getPoints();
+ assertEquals(2, newConnection1Points.size());
+ assertEquals("After source port dnd source end point is not at the correct position.", to.getTranslated(5, 0), newConnection1Points.getFirstPoint());
+ assertEquals("After source port dnd target end point is not at the correct position.", connection1Points.getLastPoint(), newConnection1Points.getLastPoint());
+ connection1EditPartBot = newConnection1EditPartBot;
+
+ // Reconnect source port of second connection
+ PointList connection2Points = ((AbstractConnectionEditPart) connection2EditPartBot.part()).getConnectionFigure().getPoints().getCopy();
+ from = editor.getBounds(c111EditPartBot).getCenter();
+ to = editor.getBounds(c1EditPartBot).getRight().setY(from.y).getTranslated(-5, 0);
+ c111EditPartBot.select();
+ editor.drag(from, to);
+ // Check that port dnd is correct
+ c111EditPartBot = editor.getEditPart("c111", AbstractDiagramBorderNodeEditPart.class);
+ assertEquals(0, c11EditPartBot.descendants(IsInstanceOf.<EditPart> instanceOf(AbstractDiagramBorderNodeEditPart.class)).size());
+ borderNodesEditPartBot = c1EditPartBot.descendants(IsInstanceOf.<EditPart> instanceOf(AbstractDiagramBorderNodeEditPart.class));
+ assertEquals(3, borderNodesEditPartBot.size());
+ List<SWTBotGefConnectionEditPart> newConnection2EditPartBotList = editor.getConnectionEditPart(c111EditPartBot, c211EditPartBot);
+ assertEquals(1, newConnection2EditPartBotList.size());
+ SWTBotGefConnectionEditPart newConnection2EditPartBot = newConnection2EditPartBotList.get(0);
+ PointList newConnection2Points = ((AbstractConnectionEditPart) newConnection2EditPartBot.part()).getConnectionFigure().getPoints();
+ assertEquals(2, newConnection2Points.size());
+ assertEquals("After source port dnd source end point is not at the correct position.", to.getTranslated(5, 0), newConnection2Points.getFirstPoint());
+ assertEquals("After source port dnd target end point is not at the correct position.", connection2Points.getLastPoint(), newConnection2Points.getLastPoint());
+ connection2EditPartBot = newConnection2EditPartBot;
+
+ // Reconnect source port of first connection as initially
+ connection1Points = ((AbstractConnectionEditPart) connection1EditPartBot.part()).getConnectionFigure().getPoints().getCopy();
+ from = editor.getBounds(c131EditPartBot).getCenter();
+ to = editor.getBounds(c13EditPartBot).getRight().setY(from.y).getTranslated(-5, 0);
+ c131EditPartBot.select();
+ editor.drag(from, to);
+ // Check that port dnd is correct
+ c131EditPartBot = editor.getEditPart("c131", AbstractDiagramBorderNodeEditPart.class);
+ assertEquals(1, c13EditPartBot.descendants(IsInstanceOf.<EditPart> instanceOf(AbstractDiagramBorderNodeEditPart.class)).size());
+ borderNodesEditPartBot = c1EditPartBot.descendants(IsInstanceOf.<EditPart> instanceOf(AbstractDiagramBorderNodeEditPart.class));
+ borderNodesEditPartBot.remove(c131EditPartBot);
+ assertEquals(2, borderNodesEditPartBot.size());
+ newConnection1EditPartBotList = editor.getConnectionEditPart(c131EditPartBot, c231EditPartBot);
+ assertEquals(1, newConnection1EditPartBotList.size());
+ newConnection1EditPartBot = newConnection1EditPartBotList.get(0);
+ newConnection1Points = ((AbstractConnectionEditPart) newConnection1EditPartBot.part()).getConnectionFigure().getPoints();
+ assertEquals(2, newConnection1Points.size());
+ assertEquals("After source port dnd source end point is not at the correct position.", to.getTranslated(5, 0), newConnection1Points.getFirstPoint());
+ assertEquals("After source port dnd target end point is not at the correct position.", connection1Points.getLastPoint(), newConnection1Points.getLastPoint());
+ connection1EditPartBot = newConnection1EditPartBot;
+
+ // Reconnect source port of second connection as initially
+ connection2Points = ((AbstractConnectionEditPart) connection2EditPartBot.part()).getConnectionFigure().getPoints().getCopy();
+ from = editor.getBounds(c111EditPartBot).getCenter();
+ to = editor.getBounds(c11EditPartBot).getRight().setY(from.y).getTranslated(-5, 0);
+ c111EditPartBot.select();
+ editor.drag(from, to);
+ // Check that port dnd is correct
+ c111EditPartBot = editor.getEditPart("c111", AbstractDiagramBorderNodeEditPart.class);
+ assertEquals(1, c11EditPartBot.descendants(IsInstanceOf.<EditPart> instanceOf(AbstractDiagramBorderNodeEditPart.class)).size());
+ borderNodesEditPartBot = c1EditPartBot.descendants(IsInstanceOf.<EditPart> instanceOf(AbstractDiagramBorderNodeEditPart.class));
+ borderNodesEditPartBot.remove(c111EditPartBot);
+ borderNodesEditPartBot.remove(c131EditPartBot);
+ assertEquals(1, borderNodesEditPartBot.size());
+ newConnection2EditPartBotList = editor.getConnectionEditPart(c111EditPartBot, c211EditPartBot);
+ assertEquals(1, newConnection2EditPartBotList.size());
+ newConnection2EditPartBot = newConnection2EditPartBotList.get(0);
+ newConnection2Points = ((AbstractConnectionEditPart) newConnection2EditPartBot.part()).getConnectionFigure().getPoints();
+ assertEquals(2, newConnection2Points.size());
+ assertEquals("After source port dnd source end point is not at the correct position.", to.getTranslated(5, 0), newConnection2Points.getFirstPoint());
+ assertEquals("After source port dnd target end point is not at the correct position.", connection2Points.getLastPoint(), newConnection2Points.getLastPoint());
+ }
+
+ @Override
+ public void tearDown() throws Exception {
+ localSession.closeAndDiscardChanges();
+ localSession = null;
+ sessionAirdResource = null;
+ super.tearDown();
+ }
+}
diff --git a/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/suite/AllTestSuite.java b/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/suite/AllTestSuite.java
index cbb3b02ee0..1e149846f9 100644
--- a/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/suite/AllTestSuite.java
+++ b/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/suite/AllTestSuite.java
@@ -133,6 +133,7 @@ public class AllTestSuite extends TestCase {
suite.addTestSuite(CellEditorExtensionTest.class);
suite.addTestSuite(RefreshWithCustomizedStyleTests.class);
suite.addTestSuite(ShowTypeActionButtonTest.class);
+ suite.addTestSuite(EdgeReconnectionTests.class);
suite.addTestSuite(SpecificClosedOrNotClosedEditorTest.class);
}

Back to the top