From 42eb8d038180d5e8486a8234301934bd93ae0ae6 Mon Sep 17 00:00:00 2001 From: "Sandro S. Andrade" Date: Thu, 21 Nov 2013 20:07:30 -0300 Subject: Add initial implementation of DuSE instance selection rules Change-Id: I4b27122c3b34e14eb67790909e467244cc87fa22 Reviewed-by: Sandro S. Andrade --- examples/uml/duse-mt/src/app/SADuse.xmi | 2 +- .../plugins/designspaceexplorer/designspaceexplorer.pro | 2 +- .../designspaceexplorer/designspaceexplorerplugin.cpp | 16 ++++++++++++++++ .../designspaceexplorer/designspaceexplorerplugin.h | 4 ++++ 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 @@ JavaScript - 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; + input[0] 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 + #include #include @@ -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 >()) { + foreach (const QString &body, (designDimension->property("instanceSelectionRule").value())->property("bodies").value< QList >()) { + 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 +#include + class NewDuseDesignDialog; class QQuickView; @@ -78,6 +80,8 @@ private: NewDuseDesignDialog *_newDuseDesignDialog; QList _duseInstance; + + QScriptEngine _engine; }; #endif // DESIGNSPACEEXPLORERPLUGIN_H -- cgit v1.2.3