Bug 580913: [Sirius][ClassDiagram] The bendpoint feature must be deleted
-remove the associated filter
-remove the common layer
-remove the refresh extension
-update the documentation
Signed-off-by: Vincent Lorenzo <vincent.lorenzo@cea.fr>
Change-Id: I7758b4c759a0fa55c95bd1267cc77d299b9c66cd
diff --git a/plugins/doc/org.eclipse.papyrus.sirius.doc/image/user/4_Filters.png b/plugins/doc/org.eclipse.papyrus.sirius.doc/image/user/4_Filters.png
deleted file mode 100755
index 25411c9..0000000
--- a/plugins/doc/org.eclipse.papyrus.sirius.doc/image/user/4_Filters.png
+++ /dev/null
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.sirius.doc/src/site/mediawiki/papyrus-sirius-devDoc.mediawiki b/plugins/doc/org.eclipse.papyrus.sirius.doc/src/site/mediawiki/papyrus-sirius-devDoc.mediawiki
index f2f301e..ddf456d 100755
--- a/plugins/doc/org.eclipse.papyrus.sirius.doc/src/site/mediawiki/papyrus-sirius-devDoc.mediawiki
+++ b/plugins/doc/org.eclipse.papyrus.sirius.doc/src/site/mediawiki/papyrus-sirius-devDoc.mediawiki
@@ -152,11 +152,6 @@
For more information about viewpoint description, you can have a look at the sirius documentation available here:
https://www.eclipse.org/sirius/doc/specifier/general/Specifying_Viewpoints.html
-Note that each viewpoint shall reuse:
-* The common layer which is a mandatory layer defining the common concept of all diagrams (Bendpoint for example).
-* The common tool, for deletion, etc.
-* Common and specific java services.
-
= Adding a new diagram to the architecture file =
The editor provided to edit the DocumentStructureTemplate metamodel is not exactly the version generated by EMF. We customized it in order to use a TransactionalEditingDomain (to ease the Papyrus integration).
@@ -230,16 +225,6 @@
== Common concepts ==
-=== Bendpoints ===
-
-Benpoints mapping is used to draw a Benpoint node at the intersection of edges when the Benpoints filter is activated.
-
-=== Refresh provider ===
-
-In some sirius diagrams, for several purpose (region management, bendpoints and sequence diagram reorder), the post refresh behavior of sirius diagrams have been overriden.
-
-To override this behavior, we have used the following extension point org.eclipse.sirius.refreshExtensionProvider.
-
=== Common services ===
* PapyrusSiriusTabbarContributor allows to enable or deactivate tools in the sirius tabbar.
diff --git a/plugins/doc/org.eclipse.papyrus.sirius.doc/src/site/mediawiki/papyrus-sirius-userDoc.mediawiki b/plugins/doc/org.eclipse.papyrus.sirius.doc/src/site/mediawiki/papyrus-sirius-userDoc.mediawiki
index 36401b6..f553746 100755
--- a/plugins/doc/org.eclipse.papyrus.sirius.doc/src/site/mediawiki/papyrus-sirius-userDoc.mediawiki
+++ b/plugins/doc/org.eclipse.papyrus.sirius.doc/src/site/mediawiki/papyrus-sirius-userDoc.mediawiki
@@ -33,12 +33,6 @@
While most part is similar to the former GMF diagram. There are some small differences between both.
-=== Filters ===
-
-While using sirius diagram, you can enable or disable filters on the representation. For example filters can show or hide the Bendpoints in the Class Diagram.
-
-[[File:../../../image/user/4_Filters.png]]
-
=== Layers ===
Layers can be defined to hide or show several mapping and/or several tools in the palette in a diagram.
diff --git a/plugins/uml/org.eclipse.papyrus.sirius.uml.diagram.clazz/description/papyrus_class.odesign b/plugins/uml/org.eclipse.papyrus.sirius.uml.diagram.clazz/description/papyrus_class.odesign
index a605c48..db134a0 100755
--- a/plugins/uml/org.eclipse.papyrus.sirius.uml.diagram.clazz/description/papyrus_class.odesign
+++ b/plugins/uml/org.eclipse.papyrus.sirius.uml.diagram.clazz/description/papyrus_class.odesign
@@ -1,9 +1,8 @@
<?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:filter="http://www.eclipse.org/sirius/diagram/description/filter/1.1.0" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:tool="http://www.eclipse.org/sirius/description/tool/1.1.0" xmlns:tool_1="http://www.eclipse.org/sirius/diagram/description/tool/1.1.0" documentation="Copyright (c) 2009, 2014, 2021-2022 Obeo, CEA LIST, Artal Technologies

All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License 2.0
which accompanies this distribution, and is available at
https://www.eclipse.org/legal/epl-2.0/

SPDX-License-Identifier: EPL-2.0

Contributors:
 Obeo - initial API and implementation
 Aurelien Didier (ARTAL) - aurelien.didier51@gmail.com - adaptation to integrate in Papyrus
 Vincent Lorenzo (CEA LIST) - vincent.lorenzo@cea.fr - adaptation to integrate in Papyrus" name="papyrus" version="12.0.0.2017041100">
+<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/description/tool/1.1.0" xmlns:tool_1="http://www.eclipse.org/sirius/diagram/description/tool/1.1.0" documentation="Copyright (c) 2009, 2014, 2021-2022 Obeo, CEA LIST, Artal Technologies

All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License 2.0
which accompanies this distribution, and is available at
https://www.eclipse.org/legal/epl-2.0/

SPDX-License-Identifier: EPL-2.0

Contributors:
 Obeo - initial API and implementation
 Aurelien Didier (ARTAL) - aurelien.didier51@gmail.com - adaptation to integrate in Papyrus
 Vincent Lorenzo (CEA LIST) - vincent.lorenzo@cea.fr - adaptation to integrate in Papyrus" name="papyrus" version="12.0.0.2017041100">
<ownedViewpoints name="ClassDiagram" modelFileExtension="uml">
<ownedRepresentations xsi:type="description_1:DiagramDescription" dropDescriptions="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.3/@ownedTools[name='SemanticPackageDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.3/@ownedTools[name='SemanticClassDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.3/@ownedTools[name='SemanticModelDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.3/@ownedTools[name='SemanticEnumerationDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.3/@ownedTools[name='SemanticDataTypeDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.4/@ownedTools[name='GraphicalEnumerationDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.3/@ownedTools[name='SemanticComponentDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.3/@ownedTools[name='SemanticInterfaceDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.3/@ownedTools[name='SemanticSignalDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.3/@ownedTools[name='SemanticInstanceSpecificationDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.3/@ownedTools[name='SemanticInformationItemDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.3/@ownedTools[name='SemanticPrimitiveTypeDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.3/@ownedTools[name='SemanticCommentDrop'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.3/@ownedTools[name='SemanticConstraintDrop']" documentation="Representation to edit class diagrams" name="ClassDiagram" titleExpression="aql:self.name +' Class Diagram'" domainClass="uml::Package" preconditionExpression="" enablePopupBars="true">
<metamodel href="platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/>
- <filters xsi:type="filter:CompositeFilterDescription" name="Show Bendpoint"/>
<defaultLayer name="Class">
<nodeMappings name="CD_Comment" deletionDescription="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.6/@ownedTools[name='PapyrusSemanticDeleteAction']" labelDirectEdit="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@toolSections.5/@ownedTools[name='Comment_body_EditionTool']" semanticCandidatesExpression="feature:ownedComment" createElements="false" domainClass="uml.Comment">
<style xsi:type="style:NoteDescription" labelSize="9" showIcon="false" labelExpression="feature:body" sizeComputationExpression="9" labelPosition="node" resizeKind="NSEW" color="//@userColorsPalettes[name='CD_ColorPalette']/@entries[name='CommentColor']">
@@ -2141,16 +2140,7 @@
</vsmElementCustomizations>
</customization>
</defaultLayer>
- <additionalLayers name="Common" optional="false">
- <nodeMappings name="Bendpoint" semanticCandidatesExpression="aql:diagram.getCommonBendpointsToDraw()" synchronizationLock="true" domainClass="uml.Element">
- <style xsi:type="style:DotDescription" labelSize="12" showIcon="false" labelExpression="" hideLabelByDefault="true" sizeComputationExpression="aql:self.getBenpointDiameter()">
- <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='black']"/>
- </style>
- </nodeMappings>
- </additionalLayers>
- <additionalLayers endUserDocumentation="This layer is used to display the qualified name of the elements." name="QualifiedNameLayer" label="Display Qualified Name" reusedMappings="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_Abstraction'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_Association'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_AssociationClass_Link'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_AssociationClass_Node'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Class'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Class']/@borderedNodeMappings[name='CD_RedefinableTemplateSignature'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_SHARED_NestedClassifier']/@subNodeMappings[name='CD_ClassLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_Comment'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Component'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_Constraint'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_DataType'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_SHARED_NestedClassifier']/@subNodeMappings[name='CD_DataTypeLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_Dependency'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_ElementImport'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Enumeration'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_SHARED_NestedClassifier']/@subNodeMappings[name='CD_EnumerationLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Enumeration']/@subContainerMappings[name='CD_EnumerationLiteralsCompartment']/@subNodeMappings[name='CD_EnumerationLiteralLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_Generalization'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_GeneralizationSet'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_InformationFlow'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_InformationItem'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_InstanceSpecification_Link'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_InstanceSpecification_Node'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Interface'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_SHARED_NestedClassifier']/@subNodeMappings[name='CD_InterfaceLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_InterfaceRealization'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Model'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_SHARED_OwnedOperation']/@subNodeMappings[name='CD_OperationLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Package'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_PackageImport'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_PackageMerge'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_PrimitiveType'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_SHARED_NestedClassifier']/@subNodeMappings[name='CD_PrimitiveTypeLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_SHARED_OwnedAttribute']/@subNodeMappings[name='CD_PropertyLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_Realization'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_SHARED_OwnedReception']/@subNodeMappings[name='CD_ReceptionLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Signal'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_SHARED_NestedClassifier']/@subNodeMappings[name='CD_SignalLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_InstanceSpecification_Node']/@subContainerMappings[name='CD_InstanceSpecificationSlotsCompartment']/@subNodeMappings[name='CD_SlotLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_Substitution'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_TemplateBinding'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_Usage'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@additionalLayers[name='Common']/@nodeMappings[name='Bendpoint']"/>
+ <additionalLayers endUserDocumentation="This layer is used to display the qualified name of the elements." name="QualifiedNameLayer" label="Display Qualified Name" reusedMappings="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_Abstraction'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_Association'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_AssociationClass_Link'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_AssociationClass_Node'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Class'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Class']/@borderedNodeMappings[name='CD_RedefinableTemplateSignature'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_SHARED_NestedClassifier']/@subNodeMappings[name='CD_ClassLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_Comment'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Component'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_Constraint'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_DataType'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_SHARED_NestedClassifier']/@subNodeMappings[name='CD_DataTypeLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_Dependency'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_ElementImport'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Enumeration'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_SHARED_NestedClassifier']/@subNodeMappings[name='CD_EnumerationLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Enumeration']/@subContainerMappings[name='CD_EnumerationLiteralsCompartment']/@subNodeMappings[name='CD_EnumerationLiteralLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_Generalization'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_GeneralizationSet'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_InformationFlow'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_InformationItem'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_InstanceSpecification_Link'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_InstanceSpecification_Node'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Interface'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_SHARED_NestedClassifier']/@subNodeMappings[name='CD_InterfaceLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_InterfaceRealization'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Model'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_SHARED_OwnedOperation']/@subNodeMappings[name='CD_OperationLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Package'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_PackageImport'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_PackageMerge'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_PrimitiveType'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_SHARED_NestedClassifier']/@subNodeMappings[name='CD_PrimitiveTypeLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_SHARED_OwnedAttribute']/@subNodeMappings[name='CD_PropertyLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_Realization'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_SHARED_OwnedReception']/@subNodeMappings[name='CD_ReceptionLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Signal'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_SHARED_NestedClassifier']/@subNodeMappings[name='CD_SignalLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_InstanceSpecification_Node']/@subContainerMappings[name='CD_InstanceSpecificationSlotsCompartment']/@subNodeMappings[name='CD_SlotLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_Substitution'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_TemplateBinding'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_Usage']"/>
<additionalLayers endUserDocumentation="This layer is used to display the applied Stereotypes on the elements." name="AppliedStereotypeLayer" label="Display Applied Stereotypes" reusedMappings="//@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_Abstraction'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_Association'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_AssociationClass_Link'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_AssociationClass_Node'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Class'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_SHARED_NestedClassifier']/@subNodeMappings[name='CD_ClassLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_Comment'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Component'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_Constraint'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_DataType'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_SHARED_NestedClassifier']/@subNodeMappings[name='CD_DataTypeLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_Dependency'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_ElementImport'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Enumeration'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_SHARED_NestedClassifier']/@subNodeMappings[name='CD_EnumerationLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_Generalization'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_GeneralizationSet'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_InformationFlow'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@nodeMappings[name='CD_InformationItem'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_InstanceSpecification_Link'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_InstanceSpecification_Node'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Interface'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_SHARED_NestedClassifier']/@subNodeMappings[name='CD_InterfaceLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_InterfaceRealization'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Model'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_SHARED_OwnedOperation']/@subNodeMappings[name='CD_OperationLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Package'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_PackageImport'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_PackageMerge'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_PrimitiveType'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_SHARED_NestedClassifier']/@subNodeMappings[name='CD_PrimitiveTypeLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_SHARED_OwnedAttribute']/@subNodeMappings[name='CD_PropertyLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_Realization'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_SHARED_OwnedReception']/@subNodeMappings[name='CD_ReceptionLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_Signal'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_SHARED_NestedClassifier']/@subNodeMappings[name='CD_SignalLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@containerMappings[name='CD_InstanceSpecification_Node']/@subContainerMappings[name='CD_InstanceSpecificationSlotsCompartment']/@subNodeMappings[name='CD_SlotLabelNode'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_Substitution'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_TemplateBinding'] //@ownedViewpoints[name='ClassDiagram']/@ownedRepresentations[name='ClassDiagram']/@defaultLayer/@edgeMappings[name='CD_Usage']" activeByDefault="true"/>
</ownedRepresentations>
<ownedJavaExtensions qualifiedClassName="org.eclipse.papyrus.sirius.uml.diagram.clazz.services.ClassDiagramServices"/>
diff --git a/plugins/uml/org.eclipse.papyrus.sirius.uml.diagram.common/plugin.xml b/plugins/uml/org.eclipse.papyrus.sirius.uml.diagram.common/plugin.xml
index a97221d..69aacb6 100755
--- a/plugins/uml/org.eclipse.papyrus.sirius.uml.diagram.common/plugin.xml
+++ b/plugins/uml/org.eclipse.papyrus.sirius.uml.diagram.common/plugin.xml
@@ -10,12 +10,6 @@
</decoratorProvider>
</extension>
- <extension
- point="org.eclipse.sirius.refreshExtensionProvider">
- <refreshExtensionProvider
- providerClass="org.eclipse.papyrus.sirius.uml.diagram.common.refresh.CommonRefreshExtensionProvider">
- </refreshExtensionProvider>
- </extension>
<extension
point="org.eclipse.gmf.runtime.diagram.ui.editpolicyProviders">
<editpolicyProvider
diff --git a/plugins/uml/org.eclipse.papyrus.sirius.uml.diagram.common/src/org/eclipse/papyrus/sirius/uml/diagram/common/core/services/FilterService.java b/plugins/uml/org.eclipse.papyrus.sirius.uml.diagram.common/src/org/eclipse/papyrus/sirius/uml/diagram/common/core/services/FilterService.java
deleted file mode 100755
index 8557bf6..0000000
--- a/plugins/uml/org.eclipse.papyrus.sirius.uml.diagram.common/src/org/eclipse/papyrus/sirius/uml/diagram/common/core/services/FilterService.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2021 CEA LIST, Artal Technologies
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Aurelien Didier (ARTAL) - aurelien.didier51@gmail.com - Initial API and implementation
- *****************************************************************************/
-package org.eclipse.papyrus.sirius.uml.diagram.common.core.services;
-
-import org.eclipse.sirius.diagram.DDiagram;
-import org.eclipse.sirius.diagram.description.filter.FilterDescription;
-
-/**
- * Service to manage filters.
- *
- */
-public final class FilterService {
- /**
- * A singleton instance to be accessed by other java services.
- */
- public static final FilterService INSTANCE = new FilterService();
-
- /**
- * Hidden constructor.
- */
- private FilterService() {
- }
-
- public boolean isBenpointFilterActivated(DDiagram diagram) {
- for (FilterDescription filter : diagram.getActivatedFilters()) {
- if (filter.getName().equals("Show Bendpoint")) {
- return true;
- }
- }
- return false;
- }
-
-}
diff --git a/plugins/uml/org.eclipse.papyrus.sirius.uml.diagram.common/src/org/eclipse/papyrus/sirius/uml/diagram/common/refresh/CommonDiagramRefreshExtension.java b/plugins/uml/org.eclipse.papyrus.sirius.uml.diagram.common/src/org/eclipse/papyrus/sirius/uml/diagram/common/refresh/CommonDiagramRefreshExtension.java
deleted file mode 100755
index bc5030f..0000000
--- a/plugins/uml/org.eclipse.papyrus.sirius.uml.diagram.common/src/org/eclipse/papyrus/sirius/uml/diagram/common/refresh/CommonDiagramRefreshExtension.java
+++ /dev/null
@@ -1,486 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2021 CEA LIST, Artal Technologies
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Aurelien Didier (ARTAL) - aurelien.didier51@gmail.com - Initial API and implementation
- *****************************************************************************/
-package org.eclipse.papyrus.sirius.uml.diagram.common.refresh;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-
-import org.eclipse.draw2d.AbstractPointListShape;
-import org.eclipse.draw2d.Connection;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.PointList;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.gef.ConnectionEditPart;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
-import org.eclipse.gmf.runtime.draw2d.ui.geometry.LineSeg;
-import org.eclipse.gmf.runtime.notation.Diagram;
-import org.eclipse.gmf.runtime.notation.Edge;
-import org.eclipse.papyrus.sirius.uml.diagram.common.core.services.DisplayLabelSwitch;
-import org.eclipse.papyrus.sirius.uml.diagram.common.core.services.FilterService;
-import org.eclipse.papyrus.sirius.uml.diagram.common.services.DiagramServices;
-import org.eclipse.papyrus.sirius.uml.diagram.common.utils.ODesignConstant;
-import org.eclipse.sirius.business.api.session.Session;
-import org.eclipse.sirius.business.api.session.SessionManager;
-import org.eclipse.sirius.common.tools.api.interpreter.IInterpreter;
-import org.eclipse.sirius.common.tools.api.util.RefreshIdsHolder;
-import org.eclipse.sirius.diagram.DDiagram;
-import org.eclipse.sirius.diagram.DNode;
-import org.eclipse.sirius.diagram.DSemanticDiagram;
-import org.eclipse.sirius.diagram.DragAndDropTarget;
-import org.eclipse.sirius.diagram.ResizeKind;
-import org.eclipse.sirius.diagram.business.api.componentization.DiagramMappingsManager;
-import org.eclipse.sirius.diagram.business.api.componentization.DiagramMappingsManagerRegistry;
-import org.eclipse.sirius.diagram.business.api.refresh.IRefreshExtension;
-import org.eclipse.sirius.diagram.business.internal.sync.DDiagramElementSynchronizer;
-import org.eclipse.sirius.diagram.business.internal.sync.DDiagramSynchronizer;
-import org.eclipse.sirius.diagram.business.internal.sync.DNodeCandidate;
-import org.eclipse.sirius.diagram.description.DiagramDescription;
-import org.eclipse.sirius.diagram.description.DiagramElementMapping;
-import org.eclipse.sirius.diagram.description.NodeMapping;
-import org.eclipse.sirius.diagram.ui.business.api.view.SiriusGMFHelper;
-import org.eclipse.sirius.diagram.ui.business.api.view.SiriusLayoutDataManager;
-import org.eclipse.sirius.diagram.ui.business.internal.view.RootLayoutData;
-import org.eclipse.sirius.diagram.ui.internal.refresh.GMFHelper;
-import org.eclipse.sirius.ecore.extender.business.api.accessor.ModelAccessor;
-import org.eclipse.sirius.ext.base.Option;
-import org.eclipse.sirius.tools.api.SiriusPlugin;
-import org.eclipse.sirius.viewpoint.description.RepresentationDescription;
-
-/**
- *
- * This class add the common bendpoints on sirius diagram
- *
- */
-public class CommonDiagramRefreshExtension implements IRefreshExtension {
-
- private int bendpointDiameter = 7;
-
-
- /**
- * @see org.eclipse.sirius.business.api.refresh.IRefreshExtension#beforeRefresh(org.eclipse.sirius.DDiagram)
- */
- @Override
- public void beforeRefresh(DDiagram diagram) {
- long showStereotype = diagram.getActivatedLayers().stream().filter(layer -> ODesignConstant.APPLIED_STEREOTYPE_LAYER_ID.equals(layer.getName())).count(); //$NON-NLS-1$
- DisplayLabelSwitch.setStereotypeFilter(showStereotype == 1);
-
- long showQualifiedName = diagram.getActivatedLayers().stream().filter(layer -> ODesignConstant.QUALIFIED_NAMED_LAYER_ID.equals(layer.getName())).count(); //$NON-NLS-1$
- DisplayLabelSwitch.setQualifiedNameFilter(showQualifiedName == 1);
- }
-
- /**
- * @see org.eclipse.sirius.business.api.refresh.IRefreshExtension#postRefresh(org.eclipse.sirius.DDiagram)
- */
- @Override
- public void postRefresh(DDiagram diagram) {
- List<EObject> list = new ArrayList<>();
- diagram.eAllContents().forEachRemaining(list::add);
- // ResetStyleHelper.resetStyle(list);
- if (FilterService.INSTANCE.isBenpointFilterActivated(diagram)) {
- Collection<Point> bendpointsToDraw = getCommonBenpointsToDraw(diagram);
- Diagram gmfDiagram = SiriusGMFHelper.getGmfDiagram(diagram);
- Option<GraphicalEditPart> gef = GMFHelper.getGraphicalEditPart(gmfDiagram);
- if (gef.some()) {
- if (bendpointsToDraw.size() > 0) {
- drawCommonBendpoints((DSemanticDiagram) diagram, (IGraphicalEditPart) gef.get(), bendpointsToDraw);
- }
- }
- }
- // Not this one : DiagramHelper.refresh(gmfDiagram.get,true);
- }
-
- /**
- *
- * @param diagram
- *
- */
- protected Collection<Point> getCommonBenpointsToDraw(DDiagram diagram) {
- final Collection<Point> commonBendpointsToDraw = new HashSet<>();
-
- Diagram gmfDiagram = SiriusGMFHelper.getGmfDiagram(diagram);
- EList<Edge> edges = gmfDiagram.getEdges();
- for (Edge edge : edges) {
- // get the figure
- GraphicalEditPart currentEditPart = GMFHelper.getGraphicalEditPart(edge).get();
- IFigure currentEdgeFigure = ((IGraphicalEditPart) currentEditPart).getFigure();
- if (currentEdgeFigure instanceof AbstractPointListShape) {
- PointList bendPoints = ((AbstractPointListShape) currentEdgeFigure).getPoints();
- EClass eClass = null;
- if (currentEditPart instanceof IGraphicalEditPart) {
- final EObject el = ((IGraphicalEditPart) currentEditPart).resolveSemanticElement();
- if (el != null) {
- eClass = el.eClass();
-
- // 2. find all connections editpart with same source AND/OR same target than the
- // current one
- if (currentEditPart instanceof ConnectionEditPart && eClass != null) {
- final EditPart sourceEP = ((ConnectionEditPart) currentEditPart).getSource();
- final EditPart targetEP = ((ConnectionEditPart) currentEditPart).getTarget();
- final Set<Object> allConnectionsEP = new HashSet<>();
- // 2.1. get all potential editpart connections
- if (sourceEP instanceof AbstractGraphicalEditPart
- && targetEP instanceof AbstractGraphicalEditPart) {
- allConnectionsEP.addAll(((AbstractGraphicalEditPart) sourceEP).getSourceConnections());
- allConnectionsEP.addAll(((AbstractGraphicalEditPart) targetEP).getSourceConnections());
- allConnectionsEP.addAll(((AbstractGraphicalEditPart) sourceEP).getTargetConnections());
- allConnectionsEP.addAll(((AbstractGraphicalEditPart) targetEP).getTargetConnections());
- allConnectionsEP.remove(currentEditPart);
- }
-
- // 2.2 get the figure for these connections and keep only figure when its
- // editpart has the same kind than the current one
- final Set<Connection> allConnections = new HashSet<>();
- if (allConnectionsEP.size() > 0) {
- for (final Object current : allConnectionsEP) {
- // the editpart be instance of the same class
- if (current.getClass().isInstance(currentEditPart)
- && currentEditPart.getClass().isInstance(current)
- && current instanceof IGraphicalEditPart) {
- final EObject resolvedElement = ((IGraphicalEditPart) current)
- .resolveSemanticElement();
- if (resolvedElement != null && eClass != null
- && resolvedElement.eClass() != eClass) {
- continue;// we draw ben point only for elements which have the same eClass,
- // when
- // this
- // eClass is not null
- }
- final IFigure currentFig = ((IGraphicalEditPart) current).getFigure();
- if (currentFig instanceof Connection) {
- allConnections.add((Connection) currentFig);
- }
- }
- }
- }
-
- // 3. Create the list of the LineSeg of the current figure
- final List<LineSeg> refs = new ArrayList<>();
- for (int i = 0; i < bendPoints.size() - 1; i++) {
- LineSeg seg = new LineSeg(bendPoints.getPoint(i), bendPoints.getPoint(i + 1));
- refs.add(seg);
- }
-
- // 4. find common segments between the current figure and each others link
- // we need to associate each common segment to the concerned link
- final Map<Connection, Map<LineSeg, List<LineSeg>>> segs = new HashMap<>();
- for (Connection currentConn : allConnections) {
- final PointList currentPoints = currentConn.getPoints();
- final Map<LineSeg, List<LineSeg>> mapSegs = new HashMap<>();
- segs.put(currentConn, mapSegs);
- for (LineSeg refSeg : refs) {
- final List<LineSeg> commonSubSegs = new ArrayList<>();
- mapSegs.put(refSeg, commonSubSegs);
- for (int i = 0; i < currentPoints.size() - 1; i++) {
- LineSeg tmp = new LineSeg(currentPoints.getPoint(i),
- currentPoints.getPoint(i + 1));
- PointList intersection = getCommonSegment(refSeg, tmp);
- if (intersection.size() == 2) {
- if (!intersection.getFirstPoint().equals(intersection.getLastPoint())) {
- double distanceFromFirst = refSeg.getOrigin()
- .getDistance(intersection.getFirstPoint());
- double distanceFromSecond = refSeg.getOrigin()
- .getDistance(intersection.getLastPoint());
- final LineSeg commonSeg;
- // we arrange the 2 points in order to have the first point nearest of
- // the
- // start
- // of the current segment
- if (distanceFromFirst < distanceFromSecond) {
- commonSeg = new LineSeg(intersection.getFirstPoint(),
- intersection.getLastPoint());
- } else {
- commonSeg = new LineSeg(intersection.getLastPoint(),
- intersection.getFirstPoint());
- }
- commonSubSegs.add(commonSeg);
- }
- }
- }
- }
- }
-
- // 5. we look for the bendpoints crossing existing link on the model, then
- // crossing their common segment with the current figure, to find bendpoints to
- // draw
- for (Entry<Connection, Map<LineSeg, List<LineSeg>>> entry : segs.entrySet()) {
- final Map<LineSeg, List<LineSeg>> commonSegMap = entry.getValue();
- for (int i = 0; i < refs.size(); i++) { // we iterate on the segments of the current
- // figure
-
- // 5.1 find required values to find bendpoints to draw
- final LineSeg currentFigureSeg = refs.get(i);
- final List<LineSeg> currentCommonSegs = commonSegMap.get(currentFigureSeg);
-
- final LineSeg previousSeg;
- final List<LineSeg> previousCommonSegs;
-
- final LineSeg nextSeg;
- final List<LineSeg> nextCommonSegs;
-
- // obtain previous segs of the current figure
- if (i != 0) {
- previousSeg = refs.get(i - 1);
- previousCommonSegs = commonSegMap.get(previousSeg);
- } else {
- previousSeg = null;
- previousCommonSegs = null;
- }
-
- // obtain next segs of the current figure
- if (i != refs.size() - 1) {
- nextSeg = refs.get(i + 1);
- nextCommonSegs = commonSegMap.get(nextSeg);
- } else {
- nextSeg = null;
- nextCommonSegs = null;
- }
-
- LineSeg previousCommonSeg = null;
- LineSeg nextCommonSeg = null;
-
- // we iterate on the common subsegment shared with others link with the current
- // figure
- for (int a = 0; a < currentCommonSegs.size(); a++) {
- final LineSeg curr = currentCommonSegs.get(a);
- final Point first = curr.getOrigin();
- final Point second = curr.getTerminus();
- // obtain previous common seg
- if (a == 0) {
- if (previousCommonSegs != null && previousCommonSegs.size() > 0) {
- previousCommonSeg = previousCommonSegs
- .get(previousCommonSegs.size() - 1);
- } else {
- previousCommonSeg = null;
- }
- } else {
- previousCommonSeg = currentCommonSegs.get(a - 1);
- }
-
- // obtain next common seg
- if (a == currentCommonSegs.size() - 1) {
- if (nextCommonSegs != null && nextCommonSegs.size() > 0) {
- nextCommonSeg = nextCommonSegs.get(0);
- } else {
- nextCommonSeg = null;
- }
- } else {
- nextCommonSeg = currentCommonSegs.get(a + 1);
- }
-
- // 5.2 calculates bendpoints visibility
-
- // determining if we draw first point :
- if (previousCommonSeg == null) {
- if (i == 0) {// first segment of the figure
- if (!bendPoints.getFirstPoint().equals(first)) {
- // we draw the point when it is not the first anchor of the figure
- commonBendpointsToDraw.add(first);
- }
- } else {
- commonBendpointsToDraw.add(first);
- }
- } else if (!previousCommonSeg.getTerminus().equals(first)) {
- // the previous common seg doesn't share this point with the current segment
- // we draw the first point
- commonBendpointsToDraw.add(first);
- }
-
- // determining if we draw the second point
- if (nextCommonSeg == null) {
- if (i == refs.size() - 1) {
- if (!bendPoints.getLastPoint().equals(second)) {
- // we draw the point when it is not the first anchor of the figure
- commonBendpointsToDraw.add(second);
- }
- } else {
- commonBendpointsToDraw.add(second);
- }
- } else if (!nextCommonSeg.getOrigin().equals(second)) {
- // the next common seg doesn't share this point with the current segment
- // we draw the second point
- commonBendpointsToDraw.add(second);
- }
- }
- }
- }
- }
- }
- }
- }
- }
- return commonBendpointsToDraw;
- }
-
- /**
- *
- * @param seg1
- * the first segment
- * @param seg2
- * the secong segment
- * @return
- */
- public static final PointList getCommonSegment(final LineSeg seg1, final LineSeg seg2) {
- final List<Point> list = new ArrayList<>();
- list.add(seg1.getOrigin());
- list.add(seg2.getOrigin());
- list.add(seg1.getTerminus());
- list.add(seg2.getTerminus());
-
- List<Point> commonPoints = new ArrayList<>();
- for (Point point : list) {
- if (!commonPoints.contains(point)) {
- if (seg1.containsPoint(point, 0) && seg2.containsPoint(point, 0)) {
- commonPoints.add(point);
- }
- }
- }
-
- final PointList result = new PointList();
- for (final Point point : commonPoints) {
- result.addPoint(point);
- }
- return result;
- }
-
- /**
- *
- * @return <code>true</code> according to the preference store
- */
- protected boolean getDrawBendpointPreferenceValue() {
- return true;
- }
-
- /**
- * Calculate the best diameter and set the diameter value
- *
- * @param diameter
- * the diameter of the bendpoints (if diameter<=1, we set the
- * diameter to 0)
- */
- public void setBendPointDiameter(final int diameter) {
- if (diameter <= 1) {
- this.bendpointDiameter = 0;
- }
- if (diameter % 2 != 0) {
- this.bendpointDiameter = diameter;
- } else {
- setBendPointDiameter(diameter + 1);
- }
- }
-
- /**
- *
- * @return the bendpoint diameter
- */
- protected final int getBendPointDiameter() {
- return bendpointDiameter;
- }
-
- /**
- *
- * @param figure
- * graphics
- * @param pointsToDraw
- * the list of the points to draw
- */
- public void drawCommonBendpoints(DSemanticDiagram diagram, final IGraphicalEditPart gep,
- final Collection<Point> bendPoints) {
-
- // See PapyrusEdgeFigure for the initial algorithm.
- final int diameter = getBendPointDiameter();
- for (final Point point : bendPoints) {
-
- Point adjustedPoint = new Point((double) point.x - (double) bendpointDiameter / 2,
- (double) point.y - (double) bendpointDiameter / 2);
- NodeMapping mapping = null;
-
- // Before we were using
- // NodeMapping mapping= (NodeMapping)
- // DiagramServices.getDiagramServices().getMappingByName(diagram.getDescription(),
- // "Bendpoint");
- // but in papyrus context, description is not initialized as expected so we have
- // to use DiagramMappingsManager
- DiagramMappingsManager dmm = getMappingManager(diagram);
- for (NodeMapping map : dmm.getNodeMappings()) {
- if (ODesignConstant.BENDPOINT_MAPPING.equals(map.getName())) {
- mapping = map;
- }
- }
- // DNodeCandidate nodeCandidate = new DNodeCandidate(mapping, diagram.getTarget(), diagram, rId);
- if (mapping != null) { // some diagram doesn't have this mapping
- DNode node = createNode(mapping, diagram.getTarget(), diagram, diagram);
- node.setResizeKind(ResizeKind.NONE_LITERAL);
- // find how to set color
- Dimension dim = new Dimension(bendpointDiameter, bendpointDiameter);
- RootLayoutData layoutData = new RootLayoutData(node, adjustedPoint, dim);
- SiriusLayoutDataManager.INSTANCE.addData(layoutData);
- }
- }
- }
-
- public DNode createNode(NodeMapping mapping, EObject modelElement, DragAndDropTarget container, DDiagram diagram) {
- final DDiagram diag = diagram;
-
- ModelAccessor accessor = SiriusPlugin.getDefault().getModelAccessorRegistry().getModelAccessor(modelElement);
- IInterpreter interpreter = SiriusPlugin.getDefault().getInterpreterRegistry().getInterpreter(modelElement);
- final DDiagramSynchronizer diagramSync = new DDiagramSynchronizer(interpreter, diag.getDescription(), accessor);
- diagramSync.setDiagram((DSemanticDiagram) diagram);
- final DDiagramElementSynchronizer elementSync = diagramSync.getElementSynchronizer();
- RefreshIdsHolder rId = RefreshIdsHolder.getOrCreateHolder(diagram);
-
- DNodeCandidate nodeCandidate = new DNodeCandidate(mapping, modelElement, container, rId);
- return (DNode) elementSync.createNewNode(getMappingManager((DSemanticDiagram) diag), nodeCandidate, false);
- }
-
- private DiagramMappingsManager getMappingManager(final DSemanticDiagram diagram) {
- Session session = SessionManager.INSTANCE.getSession(diagram.getTarget());
- return DiagramMappingsManagerRegistry.INSTANCE.getDiagramMappingsManager(session, diagram);
- }
-
- /**
- * @param targetDescription
- * @param targetMappingName
- * @return
- */
- public DiagramElementMapping getMappingByName(RepresentationDescription targetDescription,
- String targetMappingName) {
- DiagramElementMapping mapping = null;
-
- if ((targetMappingName != null) && (targetDescription != null)
- && (targetDescription instanceof DiagramDescription)) {
- mapping = DiagramServices.getDiagramServices()
- .getAbstractNodeMapping((DiagramDescription) targetDescription, targetMappingName);
- if (mapping == null) {
- mapping = DiagramServices.getDiagramServices().getEdgeMapping((DiagramDescription) targetDescription,
- targetMappingName);
- }
- }
-
- return mapping;
- }
-
-}
diff --git a/plugins/uml/org.eclipse.papyrus.sirius.uml.diagram.common/src/org/eclipse/papyrus/sirius/uml/diagram/common/refresh/CommonRefreshExtensionProvider.java b/plugins/uml/org.eclipse.papyrus.sirius.uml.diagram.common/src/org/eclipse/papyrus/sirius/uml/diagram/common/refresh/CommonRefreshExtensionProvider.java
deleted file mode 100755
index 51d4402..0000000
--- a/plugins/uml/org.eclipse.papyrus.sirius.uml.diagram.common/src/org/eclipse/papyrus/sirius/uml/diagram/common/refresh/CommonRefreshExtensionProvider.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2021 CEA LIST, Artal Technologies
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Aurelien Didier (ARTAL) - aurelien.didier51@gmail.com - Initial API and implementation
- *****************************************************************************/
-package org.eclipse.papyrus.sirius.uml.diagram.common.refresh;
-
-import org.eclipse.sirius.diagram.DDiagram;
-import org.eclipse.sirius.diagram.business.api.refresh.IRefreshExtension;
-import org.eclipse.sirius.diagram.business.api.refresh.IRefreshExtensionProvider;
-
-public class CommonRefreshExtensionProvider implements IRefreshExtensionProvider {
-
- private static final CommonDiagramRefreshExtension REFRESH_EXTENSION = new CommonDiagramRefreshExtension();
-
- public CommonRefreshExtensionProvider() {
- // empty constructor
- }
-
- /**
- * @see org.eclipse.sirius.business.api.refresh.IRefreshExtensionProvider#getRefreshExtension(org.eclipse.sirius.DDiagram)
- */
- public IRefreshExtension getRefreshExtension(DDiagram viewPoint_p) {
- return REFRESH_EXTENSION;
- }
-
- /**
- * @see org.eclipse.sirius.business.api.refresh.IRefreshExtensionProvider#provides(org.eclipse.sirius.DDiagram)
- */
- public boolean provides(DDiagram viewPoint_p) {
- return true;
- }
-
- }
diff --git a/plugins/uml/org.eclipse.papyrus.sirius.uml.diagram.common/src/org/eclipse/papyrus/sirius/uml/diagram/common/utils/ODesignConstant.java b/plugins/uml/org.eclipse.papyrus.sirius.uml.diagram.common/src/org/eclipse/papyrus/sirius/uml/diagram/common/utils/ODesignConstant.java
index 25cbebf..dcf9b1d 100755
--- a/plugins/uml/org.eclipse.papyrus.sirius.uml.diagram.common/src/org/eclipse/papyrus/sirius/uml/diagram/common/utils/ODesignConstant.java
+++ b/plugins/uml/org.eclipse.papyrus.sirius.uml.diagram.common/src/org/eclipse/papyrus/sirius/uml/diagram/common/utils/ODesignConstant.java
@@ -31,10 +31,5 @@
* The ID of the layer used to show/hide qualified name
*/
public static final String QUALIFIED_NAMED_LAYER_ID = "QualifiedNameLayer"; //$NON-NLS-1$
-
- /**
- * The ID of the mapping used to draw bendpoints
- */
- public static final String BENDPOINT_MAPPING = "Bendpoint"; //$NON-NLS-1$
}