summaryrefslogtreecommitdiffstats
path: root/examples/uml
diff options
context:
space:
mode:
authorSandro S. Andrade <sandroandrade@kde.org>2013-12-05 20:10:46 -0300
committerSandro S. Andrade <sandroandrade@kde.org>2013-12-06 00:15:32 +0100
commit846d95ff6dc145677d4ffa58e57b8fb37bdac0a8 (patch)
tree49db45d02119a15a1f23727ef7e253e55cc540c3 /examples/uml
parent14e3c25fb6299f101b8ac06ff527de397d054b19 (diff)
Add creation of added element when navigating through design spaces
Change-Id: I42b4704e9ccfe9ae161883e80e402ad615c467ee Reviewed-by: Sandro S. Andrade <sandroandrade@kde.org>
Diffstat (limited to 'examples/uml')
-rw-r--r--examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorer.pro2
-rw-r--r--examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.cpp18
2 files changed, 11 insertions, 9 deletions
diff --git a/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorer.pro b/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorer.pro
index 6ec32b40..56f99df5 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 modelingwidgets script uml duse saduseprofile-private
+QT += widgets quick modeling modelingwidgets script uml duse
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 e631a202..01c966f6 100644
--- a/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.cpp
+++ b/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.cpp
@@ -41,12 +41,12 @@
#include "designspaceexplorerplugin.h"
#include <duseinterfaces/iuicontroller.h>
+#include <duseinterfaces/iplugincontroller.h>
#include <duseinterfaces/iprojectcontroller.h>
#include <QtQuick/QQuickView>
#include <QtWidgets/QAction>
-#include <QtWidgets/QWidget>
#include <QtWidgets/QComboBox>
#include <QtWidgets/QMessageBox>
#include <QtWidgets/QHeaderView>
@@ -58,7 +58,7 @@
#include <QtScript/QScriptValueIterator>
#include <QtModeling/QXmiReader>
-#include <QtModeling/QModelingElement>
+#include <QtModeling/QMetaModelPlugin>
#include <QtModelingWidgets/QModelingObjectView>
#include <QtModelingWidgets/QModelingObjectModel>
@@ -73,9 +73,6 @@
#include <QtDuse/QDuseDesignDimension>
#include <QtDuse/QDuseDesignDimensionInstance>
-#include <QtSADuseProfile/QSADuseProfileProcessComponent>
-#include "private/qsaduseprofileprocesscomponentobject_p.h"
-
#include "newdusedesigndialog.h"
#include <QDebug>
@@ -137,8 +134,6 @@ DesignSpaceExplorerPlugin::~DesignSpaceExplorerPlugin()
delete _engine;
}
-Q_SCRIPT_DECLARE_QMETAOBJECT(QSADuseProfileProcessComponentObject, QSADuseProfileProcessComponent *);
-
bool DesignSpaceExplorerPlugin::initialize()
{
_currentDesignSpaceLocationQuickView->setSource(QUrl("qrc:/designspaceexplorer/currentdesignspacelocation.qml"));
@@ -357,11 +352,18 @@ void DesignSpaceExplorerPlugin::currentDesignSpaceLocationChanged()
currentModelObjects << element->asQModelingObject();
QDuseDesignSpace *designSpace = dynamic_cast<QDuseDesignSpace *>(_duseInstance.first());
+ QUmlModel *topModel = dynamic_cast<QUmlModel *>(_currentDesignSpaceLocationMofModel.first());
foreach (QDuseDesignDimension *designDimension, designSpace->designDimensions())
foreach (QDuseDesignDimensionInstance *designDimensionInstance, designDimension->designDimensionInstances()) {
QDuseVariationPoint *variationPoint = _currentDesignSpaceLocation[designDimensionInstance->targetInstance()->asQModelingObject()->objectName()][designDimension];
- foreach (QModelingElement *addedElement, variationPoint->addedElements())
+ foreach (QModelingElement *addedElement, variationPoint->addedElements()) {
+ QObject *modelingObject = addedElement->asQModelingObject();
+ QMetaModelPlugin *plugin = DuSE::ICore::self()->pluginController()->metamodelPlugins()[modelingObject->property("namespaceUri").toString()];
+ QModelingElement *newAddedElement = plugin->createModelingElement(modelingObject->property("factoryType").toString());
+ newAddedElement->asQModelingObject()->setObjectName(QStringLiteral("%1-%2").arg(designDimensionInstance->targetInstance()->asQModelingObject()->objectName()).arg(modelingObject->property("factoryType").toString()));
+ topModel->addPackagedElement(dynamic_cast<QUmlPackageableElement *>(newAddedElement));
qDebug() << "Added" << addedElement->asQModelingObject()->objectName();
+ }
}
_currentDesignSpaceLocationQtModel->setModelingObjects(currentModelObjects);