Skip to content
This repository was archived by the owner on Nov 26, 2025. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
107 changes: 22 additions & 85 deletions plugins/org.obeonetwork.dsl.uml2.design/description/uml2.odesign

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,10 @@
import org.eclipse.emf.ecore.util.ECrossReferenceAdapter;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.uml2.common.util.UML2Util;
import org.eclipse.uml2.uml.AssociationClass;
import org.eclipse.uml2.uml.Element;
import org.eclipse.uml2.uml.Property;
import org.eclipse.uml2.uml.Relationship;
import org.eclipse.uml2.uml.Type;
import org.eclipse.uml2.uml.internal.operations.ElementOperations;
import org.obeonetwork.dsl.uml2.design.internal.services.ElementServices;
Expand Down Expand Up @@ -137,6 +140,12 @@ private void removeReferences(EObject eObject, EObject ancestorEObject) {
&& (ancestorEObject == null || !EcoreUtil.isAncestor(ancestorEObject,
inverseReference.getEObject()))) {
EcoreUtil.remove(inverseReference, eObject);
if (inverseReference.getEObject() instanceof Relationship) {
destroy(inverseReference.getEObject());
} else if (inverseReference.getEObject() instanceof Property
&& inverseReference.getEObject().eContainer() instanceof AssociationClass) {
destroy(inverseReference.getEObject().eContainer());
}
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
--- RCPTT testcase ---
Format-Version: 1.0
Context-Type: org.eclipse.rcptt.ctx.ecl
Element-Name: ContextForAssociationClassDeletionInClassDiagram
Element-Type: context
Element-Version: 2.0
Id: _H8jl8PM6EeSJppkJ7ssP0Q
Runtime-Version: 1.5.5.201503020312
Save-Time: 5/5/15 5:20 PM

------=_.ecl.context-718f04b4-ed39-33e3-af62-0995e4561998
Content-Type: text/ecl
Entry-Name: .ecl.context

// Context for association class
with [get-editor "test Class Diagram"] {
with [get-palette] {
with [get-palette-entry Associations] {
mouse-move 12 12 button1 -height 23 -width 130
mouse-press 12 12 button1 -height 23 -width 130
mouse-release 12 12 button1 524288 -height 23 -width 130
}
with [get-palette-entry "Association Class"] {
mouse-move 29 10 button1 -height 23 -width 130
mouse-press 29 10 button1 -height 23 -width 130
mouse-release 29 10 button1 524288 -height 23 -width 130
}
}
// AssociationClass1
with [get-diagram -index 1 | get-edit-part -name "test Class Diagram"] {
with [get-edit-part -name Interface1 | get-edit-part -className DNodeListViewNodeListCompartment2EditPart] {
mouse-move 82 38 button1 CTRL -height 71 -width 116
mouse-press 82 38 button1 CTRL -height 71 -width 116
mouse-release 82 38 button1 786432 -height 71 -width 116
}
with [get-edit-part -name Class1 | get-edit-part -className DNodeListViewNodeListCompartment2EditPart] {
mouse-move 53 52 button1 CTRL -height 71 -width 116
mouse-press 53 52 button1 CTRL -height 71 -width 116
mouse-release 53 52 button1 786432 -height 71 -width 116
}
}
// AssciationClass2
with [get-diagram -index 1 | get-edit-part -name "test Class Diagram"] {
with [get-edit-part -name Class1 | get-edit-part -className DNodeListViewNodeListCompartment2EditPart] {
mouse-move 85 30 button1 CTRL -height 71 -width 116
mouse-press 85 30 button1 CTRL -height 71 -width 116
mouse-release 85 30 button1 786432 -height 71 -width 116
}
mouse-move 618 182 -mask CTRL -height 550 -width 801
with [get-edit-part -name Class2 | get-edit-part -className DNodeListViewNodeListCompartment2EditPart] {
mouse-move 51 50 button1 CTRL -height 71 -width 116
mouse-press 51 50 button1 CTRL -height 71 -width 116
mouse-release 51 50 button1 786432 -height 71 -width 116

}
}
// AssociationClass3
with [get-diagram -index 1 | get-edit-part -name "test Class Diagram"] {
with [get-edit-part -name Class5 | get-edit-part -className DNodeListViewNodeListCompartment2EditPart] {
mouse-move 100 25 button1 -height 71 -width 116
mouse-press 100 25 button1 -height 71 -width 116
mouse-release 100 57 button1 524288 -height 71 -width 116
}
with [get-edit-part -name Class4 | get-edit-part -className DNodeListViewNodeListCompartment2EditPart] {
mouse-move 56 39 button1 CTRL -height 71 -width 116
mouse-press 56 39 button1 CTRL -height 71 -width 116
mouse-release 56 39 button1 786432 -height 71 -width 116
}
}
// AssociationClass4
with [get-diagram -index 1 | get-edit-part -name "test Class Diagram"] {
with [get-edit-part -name Class4 | get-edit-part -className DNodeListViewNodeListCompartment2EditPart] {
mouse-move 75 36 button1 -height 71 -width 116
mouse-press 75 36 button1 -height 71 -width 116
mouse-release 75 54 button1 524288 -height 71 -width 116
}
with [get-edit-part -name Class3 | get-edit-part -className DNodeListViewNodeListCompartment2EditPart] {
mouse-move 28 35 button1 -height 71 -width 116
mouse-press 28 35 button1 -height 71 -width 116
mouse-release 28 35 button1 786432 -height 71 -width 116
}
key-type ESC
}
}
with [get-editor "test Class Diagram" | get-diagram -index 1 | get-edit-part -name "test Class Diagram"] {
get-property "element.edges.size" | equals 8 | verify-true
get-property "element.nodes.size" | equals 0 | verify-true
get-property "element.nodeListElements.size" | equals 0 | verify-true
get-property "element.containers.size" | equals 10 | verify-true
get-property "element.target.member.size" | equals 10 | verify-true
get-property "element.target.member.Class[0].name" | equals Class1 | verify-true
get-property "element.target.member.Class[1].name" | equals Class2 | verify-true
get-property "element.target.member.Class[2].name" | equals Class3 | verify-true
get-property "element.target.member.Class[3].name" | equals Class4 | verify-true
get-property "element.target.member.Class[4].name" | equals Class5 | verify-true
get-property "element.target.member.Interface[5].name" | equals Interface1 | verify-true
get-property "element.target.member.AssociationClass[6].name" | equals AssociationClass1 | verify-true
get-property "element.target.member.AssociationClass[7].name" | equals AssociationClass2 | verify-true
get-property "element.target.member.AssociationClass[8].name" | equals AssociationClass3 | verify-true
get-property "element.target.member.AssociationClass[9].name" | equals AssociationClass4 | verify-true
}
------=_.ecl.context-718f04b4-ed39-33e3-af62-0995e4561998--
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
--- RCPTT testcase ---
Format-Version: 1.0
Context-Type: org.eclipse.rcptt.ctx.ecl
Element-Name: ContextForConnectionDeletionInClassDiagram
Element-Type: context
Element-Version: 2.0
Id: _--vM0PMtEeSJppkJ7ssP0Q
Runtime-Version: 1.5.5.201503020312
Save-Time: 5/5/15 5:18 PM

------=_.ecl.context-718f04b4-ed39-33e3-af62-0995e4561998
Content-Type: text/ecl
Entry-Name: .ecl.context

// Create Classes
with [get-editor "test Class Diagram"] {
with [get-palette | get-palette-entry Class] {
mouse-press 24 11 button1 -height 23 -width 130
mouse-release 24 11 button1 524288 -height 23 -width 130
}
// Class1
with [get-diagram -index 1 | get-edit-part -name "test Class Diagram"] {
mouse-move 320 120 button1 CTRL -height 519 -width 802
mouse-press 320 120 button1 CTRL -height 519 -width 802
mouse-release 320 120 button1 786432 -height 519 -width 802
}
// Class2
with [get-diagram -index 1 | get-edit-part -name "test Class Diagram"] {
mouse-move 620 120 button1 CTRL -height 514 -width 801
mouse-press 620 120 button1 CTRL -height 514 -width 801
mouse-release 620 120 button1 786432 -height 514 -width 801
}
// Class3
with [get-diagram -index 1 | get-edit-part -name "test Class Diagram"] {
mouse-move 620 450 button1 CTRL -height 514 -width 801
mouse-press 620 450 button1 CTRL -height 514 -width 801
mouse-release 620 450 button1 786432 -height 514 -width 801
}
// Class4
with [get-diagram -index 1 | get-edit-part -name "test Class Diagram"] {
mouse-move 320 450 button1 CTRL -height 551 -width 801
mouse-press 320 450 button1 CTRL -height 551 -width 801
mouse-release 320 450 button1 786432 -height 551 -width 801
}
// Class5
with [get-diagram -index 1 | get-edit-part -name "test Class Diagram"] {
mouse-move 20 450 button1 CTRL -height 551 -width 801
mouse-press 20 450 button1 CTRL -height 551 -width 801
mouse-release 20 450 button1 786432 -height 551 -width 801
}
key-type ESC
}
// Create an Interface
with [get-editor "test Class Diagram"] {
with [get-palette | get-palette-entry Interface] {
mouse-move 56 16 button1 -height 23 -width 130
mouse-press 56 16 button1 -height 23 -width 130
mouse-release 56 16 button1 524288 -height 23 -width 130
}
with [get-diagram -index 1 | get-edit-part -name "test Class Diagram"] {
mouse-move 20 120 button1 CTRL -height 586 -width 801
mouse-press 20 120 button1 CTRL -height 586 -width 801
mouse-release 20 120 button1 786432 -height 586 -width 801
}
key-type ESC
}
// Check context
with [get-editor "test Class Diagram" | get-diagram -index 1 | get-edit-part -name "test Class Diagram"] {
get-property "element.target.ownedMember.size" | equals 6 | verify-true
get-property "element.target.ownedMember.Class[0].name" | equals Class1 | verify-true
get-property "element.target.ownedMember.Class[1].name" | equals Class2 | verify-true
get-property "element.target.ownedMember.Class[2].name" | equals Class3 | verify-true
get-property "element.target.ownedMember.Class[3].name" | equals Class4 | verify-true
get-property "element.target.ownedMember.Class[4].name" | equals Class5 | verify-true
get-property "element.target.ownedMember.Interface[5].name" | equals Interface1 | verify-true
get-edit-part -name Interface1
get-edit-part -name Class1
get-edit-part -name Class2
get-edit-part -name Class3
get-edit-part -name Class4
get-edit-part -name Class5
}
------=_.ecl.context-718f04b4-ed39-33e3-af62-0995e4561998--
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
--- RCPTT testcase ---
Format-Version: 1.0
Context-Type: org.eclipse.rcptt.ctx.ecl
Element-Name: ContextForInterfaceRealizationDeletionInClassDiagram
Element-Type: context
Element-Version: 2.0
Id: _hGqPMPNAEeSJppkJ7ssP0Q
Runtime-Version: 1.5.5.201503020312
Save-Time: 5/5/15 6:05 PM

------=_.ecl.context-718f04b4-ed39-33e3-af62-0995e4561998
Content-Type: text/ecl
Entry-Name: .ecl.context

// Create Interface realizations
with [get-editor "test Class Diagram"] {
with [get-palette | get-palette-entry "Interface Realization"] {
mouse-move 44 19 button1 -height 37 -width 130
mouse-press 44 19 button1 -height 37 -width 130
mouse-release 44 19 button1 524288 -height 37 -width 130
}
// InterfaceRealization1
with [get-diagram -index 1 | get-edit-part -name "test Class Diagram"] {
with [get-edit-part -name Class1 | get-edit-part -className DNodeListViewNodeListCompartment2EditPart] {
mouse-move 37 19 button1 CTRL -height 71 -width 116
mouse-press 37 19 button1 CTRL -height 71 -width 116
mouse-release 37 19 button1 786432 -height 71 -width 116
}
with [get-edit-part -name Interface1 | get-edit-part -className DNodeListViewNodeListCompartment2EditPart] {
mouse-move 49 7 button1 CTRL -height 71 -width 116
mouse-press 49 7 button1 CTRL -height 71 -width 116
mouse-release 49 7 button1 786432 -height 71 -width 116
}
}
// InterfaceRealization2
with [get-diagram -index 1 | get-edit-part -name "test Class Diagram"] {
with [get-edit-part -name Class5 | get-edit-part -className DNodeListViewNodeListCompartment2EditPart] {
mouse-move 48 3 button1 CTRL -height 71 -width 116
mouse-press 48 3 button1 CTRL -height 71 -width 116
mouse-release 48 3 button1 -mask 786432 -height 71 -width 116
}
with [get-edit-part -name Interface1 | get-edit-part -className DNodeListViewNodeListCompartment2EditPart] {
mouse-move 53 45 button1 CTRL -height 71 -width 116
mouse-press 53 45 button1 CTRL -height 71 -width 116
mouse-release 55 71 button1 786432 -height 100 -width 120
}
}
with [get-diagram -index 1 | get-edit-part -name "test Class Diagram"] {
with [get-edit-part -name Class4 | get-edit-part -className DNodeListViewNodeListCompartment2EditPart] {
mouse-move 65 31 button1 -height 71 -width 116
mouse-press 65 31 button1 -height 71 -width 116
mouse-release 65 67 button1 786432 -height 71 -width 116
}
with [get-edit-part -name Interface1 | get-edit-part -className DNodeListViewNodeListCompartment2EditPart] {
mouse-move 79 18 button1 -height 71 -width 116
mouse-press 79 18 button1 -height 71 -width 116
mouse-release 79 18 button1 786432 -height 71 -width 116
}
key-type ESC
}

}
// Check context
with [get-editor "test Class Diagram" | get-diagram -index 1 | get-edit-part -name "test Class Diagram"] {
get-property "element.edges.size" | equals 3 | verify-true
get-property "element.edges.DEdge[0].semanticElements.InterfaceRealization[0].source.Class[0].name" | equals Class1
| verify-true
get-property "element.edges.DEdge[0].semanticElements.InterfaceRealization[0].target.Interface[0].name"
| equals Interface1 | verify-true
get-property "element.edges.DEdge[1].semanticElements.InterfaceRealization[0].source.Class[0].name" | equals Class5
| verify-true
get-property "element.edges.DEdge[1].semanticElements.InterfaceRealization[0].target.Interface[0].name"
| equals Interface1 | verify-true
get-property "element.edges.DEdge[2].semanticElements.InterfaceRealization[0].source.Class[0].name" | equals Class4
| verify-true
get-property "element.edges.DEdge[2].semanticElements.InterfaceRealization[0].target.Interface[0].name"
| equals Interface1 | verify-true
get-property "element.target.ownedMember.Class[0].interfaceRealization.InterfaceRealization[0].target.Interface[0].name"
| equals Interface1 | verify-true
get-property "element.target.ownedMember.Class[3].interfaceRealization.InterfaceRealization[0].target.Interface[0].name"
| equals Interface1 | verify-true
get-property "element.target.ownedMember.Class[4].interfaceRealization.InterfaceRealization[0].target.Interface[0].name"
| equals Interface1 | verify-true
}
------=_.ecl.context-718f04b4-ed39-33e3-af62-0995e4561998--
Loading