summaryrefslogtreecommitdiffstats
path: root/src/uml/qumlstructuredactivitynode.cpp
diff options
context:
space:
mode:
authorSandro S. Andrade <sandroandrade@kde.org>2013-08-26 01:50:38 -0300
committerSandro S. Andrade <sandroandrade@kde.org>2013-08-26 06:49:24 +0200
commite19731ec2dc5dd478180e54bc47e1ecb163bb208 (patch)
tree808e3f4491a3460a73b72348721c9fd6a2b82fb7 /src/uml/qumlstructuredactivitynode.cpp
parentb15e532fc664d4c5d91095bb22093a68e3bdfd39 (diff)
Add support for opposite properties handling
Change-Id: Ic0706bac72eeed36cabb07b54b778190f34736b7 Reviewed-by: Sandro S. Andrade <sandroandrade@kde.org>
Diffstat (limited to 'src/uml/qumlstructuredactivitynode.cpp')
-rw-r--r--src/uml/qumlstructuredactivitynode.cpp64
1 files changed, 64 insertions, 0 deletions
diff --git a/src/uml/qumlstructuredactivitynode.cpp b/src/uml/qumlstructuredactivitynode.cpp
index 8c3e528a..703cbbab 100644
--- a/src/uml/qumlstructuredactivitynode.cpp
+++ b/src/uml/qumlstructuredactivitynode.cpp
@@ -99,6 +99,15 @@ void QUmlStructuredActivityNode::addEdge(QUmlActivityEdge *edge)
if (!_edge.contains(edge)) {
_edge.insert(edge);
+
+ // Adjust subsetted properties
+ addContainedEdge(edge);
+ addOwnedElement(edge);
+
+ // Adjust opposite properties
+ if (edge) {
+ edge->setInStructuredNode(this);
+ }
}
}
@@ -108,6 +117,15 @@ void QUmlStructuredActivityNode::removeEdge(QUmlActivityEdge *edge)
if (_edge.contains(edge)) {
_edge.remove(edge);
+
+ // Adjust subsetted properties
+ removeContainedEdge(edge);
+ removeOwnedElement(edge);
+
+ // Adjust opposite properties
+ if (edge) {
+ edge->setInStructuredNode(0);
+ }
}
}
@@ -146,6 +164,15 @@ void QUmlStructuredActivityNode::addNode(QUmlActivityNode *node)
if (!_node.contains(node)) {
_node.insert(node);
+
+ // Adjust subsetted properties
+ addContainedNode(node);
+ addOwnedElement(node);
+
+ // Adjust opposite properties
+ if (node) {
+ node->setInStructuredNode(this);
+ }
}
}
@@ -155,6 +182,15 @@ void QUmlStructuredActivityNode::removeNode(QUmlActivityNode *node)
if (_node.contains(node)) {
_node.remove(node);
+
+ // Adjust subsetted properties
+ removeContainedNode(node);
+ removeOwnedElement(node);
+
+ // Adjust opposite properties
+ if (node) {
+ node->setInStructuredNode(0);
+ }
}
}
@@ -171,6 +207,9 @@ void QUmlStructuredActivityNode::addStructuredNodeInput(QUmlInputPin *structured
if (!_structuredNodeInput.contains(structuredNodeInput)) {
_structuredNodeInput.insert(structuredNodeInput);
+
+ // Adjust subsetted properties
+ addInput(structuredNodeInput);
}
}
@@ -180,6 +219,9 @@ void QUmlStructuredActivityNode::removeStructuredNodeInput(QUmlInputPin *structu
if (_structuredNodeInput.contains(structuredNodeInput)) {
_structuredNodeInput.remove(structuredNodeInput);
+
+ // Adjust subsetted properties
+ removeInput(structuredNodeInput);
}
}
@@ -196,6 +238,9 @@ void QUmlStructuredActivityNode::addStructuredNodeOutput(QUmlOutputPin *structur
if (!_structuredNodeOutput.contains(structuredNodeOutput)) {
_structuredNodeOutput.insert(structuredNodeOutput);
+
+ // Adjust subsetted properties
+ addOutput(structuredNodeOutput);
}
}
@@ -205,6 +250,9 @@ void QUmlStructuredActivityNode::removeStructuredNodeOutput(QUmlOutputPin *struc
if (_structuredNodeOutput.contains(structuredNodeOutput)) {
_structuredNodeOutput.remove(structuredNodeOutput);
+
+ // Adjust subsetted properties
+ removeOutput(structuredNodeOutput);
}
}
@@ -224,6 +272,14 @@ void QUmlStructuredActivityNode::addVariable(QUmlVariable *variable)
if (!_variable.contains(variable)) {
_variable.insert(variable);
+
+ // Adjust subsetted properties
+ addOwnedMember(variable);
+
+ // Adjust opposite properties
+ if (variable) {
+ variable->setScope(this);
+ }
}
}
@@ -233,6 +289,14 @@ void QUmlStructuredActivityNode::removeVariable(QUmlVariable *variable)
if (_variable.contains(variable)) {
_variable.remove(variable);
+
+ // Adjust subsetted properties
+ removeOwnedMember(variable);
+
+ // Adjust opposite properties
+ if (variable) {
+ variable->setScope(0);
+ }
}
}