summaryrefslogtreecommitdiffstats
path: root/examples/uml
diff options
context:
space:
mode:
authorSandro S. Andrade <sandroandrade@kde.org>2013-11-17 02:24:27 -0300
committerSandro S. Andrade <sandroandrade@kde.org>2013-11-17 06:20:21 +0100
commitbd8c5b498950e8a01981fbbfcf3ace4baec81804 (patch)
treeadf3492dbff56abd552d1d44f38c988f1645387b /examples/uml
parent4e158477364f5f75b12b7f93d94207394f741e98 (diff)
Add concrete syntax handling of shared and composite UML properties
Change-Id: I1488821020ccc41fc52cc4b52b1ccc624e935cbc Reviewed-by: Sandro S. Andrade <sandroandrade@kde.org>
Diffstat (limited to 'examples/uml')
-rw-r--r--examples/uml/duse-mt/src/app/example.xmi21
-rw-r--r--examples/uml/duse-mt/src/plugins/umlconcretesyntax/qmlplugin/relationshipitem.cpp4
2 files changed, 22 insertions, 3 deletions
diff --git a/examples/uml/duse-mt/src/app/example.xmi b/examples/uml/duse-mt/src/app/example.xmi
index 26f0e517..1e561dd5 100644
--- a/examples/uml/duse-mt/src/app/example.xmi
+++ b/examples/uml/duse-mt/src/app/example.xmi
@@ -15,6 +15,14 @@
<association xmi:idref="MyRootPackage-A_student_professor"/>
</ownedEnd>
</packagedElement>
+ <packagedElement xmi:type="uml:Association" name="A_student_enrollment" xmi:id="MyRootPackage-A_student_enrollment">
+ <memberEnd xmi:idref="MyRootPackage-Package1-Student-enrollment"/>
+ <memberEnd xmi:idref="A_student_enrollment-student"/>
+ <ownedEnd xmi:type="uml:Property" name="student" visibility="public" xmi:id="A_student_enrollment-student">
+ <type xmi:idref="MyRootPackage-Package1-Student"/>
+ <association xmi:idref="MyRootPackage-A_student_enrollment"/>
+ </ownedEnd>
+ </packagedElement>
<packagedElement xmi:type="uml:Package" name="Package1" xmi:id="MyRootPackage-Package1">
<packagedElement xmi:type="uml:Class" isAbstract="true" name="Student" xmi:id="MyRootPackage-Package1-Student">
<ownedAttribute xmi:type="uml:Property" visibility="public" name="name" xmi:id="MyRootPackage-Package1-Student-name">
@@ -23,9 +31,12 @@
<ownedAttribute xmi:type="uml:Property" visibility="public" name="age" xmi:id="MyRootPackage-Package1-Student-age">
<type href=":/metamodels/PrimitiveTypes.xmi#Integer"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" visibility="public" name="advisor" xmi:id="MyRootPackage-Package1-Student-advisor" aggregation="composite">
+ <ownedAttribute xmi:type="uml:Property" visibility="public" name="advisor" xmi:id="MyRootPackage-Package1-Student-advisor" aggregation="shared">
<type href="MyRootPackage-Package1-Professor"/>
</ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" visibility="public" name="enrollment" xmi:id="MyRootPackage-Package1-Student-enrollment" aggregation="composite">
+ <type href="MyRootPackage-Package1-Enrollment"/>
+ </ownedAttribute>
<ownedOperation xmi:type="uml:Operation" name="getName" xmi:id="MyRootPackage-Package1-Student-getName"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" name="Professor" xmi:id="MyRootPackage-Package1-Professor">
@@ -36,6 +47,14 @@
<type href=":/metamodels/PrimitiveTypes.xmi#String"/>
</ownedAttribute>
</packagedElement>
+ <packagedElement xmi:type="uml:Class" name="Enrollment" xmi:id="MyRootPackage-Package1-Enrollment">
+ <ownedAttribute xmi:type="uml:Property" visibility="public" name="id" xmi:id="MyRootPackage-Package1-Enrollment-id">
+ <type href=":/metamodels/PrimitiveTypes.xmi#Integer"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" visibility="public" name="date" xmi:id="MyRootPackage-Package1-Enrollment-date">
+ <type href=":/metamodels/PrimitiveTypes.xmi#String"/>
+ </ownedAttribute>
+ </packagedElement>
<packagedElement xmi:type="uml:Enumeration" name="DirectionKind" xmi:id="MyRootPackage-Package1-DirectionKind">
<ownedLiteral xmi:type="uml:EnumerationLiteral" name="DirectionIn" xmi:id="MyRootPackage-Package1-DirectionKind-DirectionIn"/>
</packagedElement>
diff --git a/examples/uml/duse-mt/src/plugins/umlconcretesyntax/qmlplugin/relationshipitem.cpp b/examples/uml/duse-mt/src/plugins/umlconcretesyntax/qmlplugin/relationshipitem.cpp
index b1790525..f528436f 100644
--- a/examples/uml/duse-mt/src/plugins/umlconcretesyntax/qmlplugin/relationshipitem.cpp
+++ b/examples/uml/duse-mt/src/plugins/umlconcretesyntax/qmlplugin/relationshipitem.cpp
@@ -80,8 +80,8 @@ void RelationshipItem::paint(QPainter *painter)
transform.rotate(-originalLine.angle());
painter->drawPolyline(transform.map(arrow));
- if (_end1Aggregation == "composite") {
- painter->setBrush(QBrush(Qt::black));
+ if (_end1Aggregation == "composite" || _end1Aggregation == "shared") {
+ painter->setBrush(QBrush(_end1Aggregation == "composite" ? Qt::black:Qt::white));
QPolygon diamond(QVector<QPoint>() << QPoint(0, 0) << QPoint(10, -10) << QPoint(20, 0) << QPoint(10, 10));
QTransform transform;
transform.translate(p1.x()-x(), p1.y()-y());