summaryrefslogtreecommitdiffstats
path: root/examples/uml
diff options
context:
space:
mode:
authorSandro S. Andrade <sandroandrade@kde.org>2013-11-21 20:07:30 -0300
committerSandro S. Andrade <sandroandrade@kde.org>2013-11-22 00:11:55 +0100
commit42eb8d038180d5e8486a8234301934bd93ae0ae6 (patch)
tree0927ed27b8d1d4cdd6c8a008c48f33be0735795c /examples/uml
parentb36a034244e2f76e7f06f624101697284a59266a (diff)
Add initial implementation of DuSE instance selection rules
Change-Id: I4b27122c3b34e14eb67790909e467244cc87fa22 Reviewed-by: Sandro S. Andrade <sandroandrade@kde.org>
Diffstat (limited to 'examples/uml')
-rw-r--r--examples/uml/duse-mt/src/app/SADuse.xmi2
-rw-r--r--examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorer.pro2
-rw-r--r--examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.cpp16
-rw-r--r--examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.h4
4 files changed, 22 insertions, 2 deletions
diff --git a/examples/uml/duse-mt/src/app/SADuse.xmi b/examples/uml/duse-mt/src/app/SADuse.xmi
index 4291b18f..6457c864 100644
--- a/examples/uml/duse-mt/src/app/SADuse.xmi
+++ b/examples/uml/duse-mt/src/app/SADuse.xmi
@@ -28,7 +28,7 @@
<designDimension xmi:type="duse:DesignDimension" name="Control Law" xmi:id="SADuse-ControlLaw">
<instanceSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-ControlLaw-InstanceSelectionRule">
<language>JavaScript</language>
- <body>var inputLength = input.length; var selected = new Array(); for (var i = 0; i &lt; inputLength; ++i) { if (input[i] instanceof QSADuseProfileProcessComponent) selected.push(input[i].base_Component); } selected;</body>
+ <body>input[0]</body>
</instanceSelectionRule>
<variationPoint xmi:type="duse:VariationPoint" name="Proportional" xmi:id="SADuse-ControlLaw-Proportional">
<modelChange xmi:type="duse:ModelChange" xmi:id="SADuse-ControlLaw-Proportional-ModelChange1">
diff --git a/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorer.pro b/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorer.pro
index 7e402bb9..4e6506c7 100644
--- a/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorer.pro
+++ b/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorer.pro
@@ -4,7 +4,7 @@
#
#-------------------------------------------------
-QT += widgets quick modeling
+QT += widgets quick modeling script
include(../../duse-mt-plugin.pri)
diff --git a/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.cpp b/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.cpp
index 0fd3f317..305e164e 100644
--- a/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.cpp
+++ b/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.cpp
@@ -40,6 +40,8 @@
****************************************************************************/
#include "designspaceexplorerplugin.h"
+#include <QDebug>
+
#include <duseinterfaces/iuicontroller.h>
#include <duseinterfaces/iprojectcontroller.h>
@@ -171,6 +173,20 @@ void DesignSpaceExplorerPlugin::newDuseDesign()
return;
}
+ QScriptValue array = _engine.newArray();
+ foreach (QObject *modelingObject, _core->projectController()->currentModelObjects())
+ array.property(QString::fromLatin1("push")).call(array, QScriptValueList() << _engine.newQObject(modelingObject));
+ _engine.globalObject().setProperty("input", array);
+
+ foreach (QObject *designDimension, _duseInstance.first()->asQModelingObject()->property("designDimensions").value< QList<QObject *> >()) {
+ foreach (const QString &body, (designDimension->property("instanceSelectionRule").value<QObject *>())->property("bodies").value< QList<QString> >()) {
+ qDebug() << body;
+ QScriptValue value = _engine.evaluate(body);
+ if (value.toQObject())
+ qDebug() << "result: " << value.toQObject()->objectName();
+ }
+ }
+
//modelingObjectList.first()->setQmlContextProperties(_metricsQuickView->engine()->rootContext());
// _engine.globalObject().setProperty("designspace", _engine.newQObject(modelingObjectList.at(0)->asQModelingObject()));
diff --git a/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.h b/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.h
index e24a7fff..36fef736 100644
--- a/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.h
+++ b/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.h
@@ -43,6 +43,8 @@
#include <duseinterfaces/iplugin.h>
+#include <QtScript/QScriptEngine>
+
class NewDuseDesignDialog;
class QQuickView;
@@ -78,6 +80,8 @@ private:
NewDuseDesignDialog *_newDuseDesignDialog;
QList<QModelingElement *> _duseInstance;
+
+ QScriptEngine _engine;
};
#endif // DESIGNSPACEEXPLORERPLUGIN_H