diff options
| author | Esteban Dugueperoux | 2015-06-16 14:21:36 +0000 |
|---|---|---|
| committer | Pierre-Charles David | 2015-08-25 14:50:37 +0000 |
| commit | 9b8b63d3e419293ac7c062e509430be569b2c0c9 (patch) | |
| tree | 0189c075643749dd3e7cef171075a392a03dcad7 | |
| parent | 27d55f94ccbad5201279b9a445dfae933c9fc272 (diff) | |
| download | org.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>
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); } |
