diff options
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 < 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 |