summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSandro S. Andrade <sandroandrade@kde.org>2013-11-24 19:31:52 -0300
committerSandro S. Andrade <sandroandrade@kde.org>2013-11-24 23:27:20 +0100
commit365cfafdb4d830e314cea37414fb8a573003f490 (patch)
tree5c47e6b5501d95d64e72471e3a33a4da723a54cb
parent10c42dd6e9ea8e743b97c0732dd8fcf14b0cea37 (diff)
Populate design space explorer when creating a new DuSE Design Process
Change-Id: I887252abadf9ea1540b3c94feacf86a281fce495 Reviewed-by: Sandro S. Andrade <sandroandrade@kde.org>
-rw-r--r--INSOURCE-BUILDING6
-rw-r--r--examples/uml/duse-mt/src/app/SADuse.xmi4
-rw-r--r--examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.cpp48
-rw-r--r--examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.h2
4 files changed, 37 insertions, 23 deletions
diff --git a/INSOURCE-BUILDING b/INSOURCE-BUILDING
index 35bb23f1..aa9da67b 100644
--- a/INSOURCE-BUILDING
+++ b/INSOURCE-BUILDING
@@ -35,6 +35,7 @@ perl init-repository --module-subset=qtbase,qtdeclarative,qtscript,qtdoc,qtmodel
make -j <#core+1>
2) FOR INTEGRATED DOCUMENTATION GENERATION
+ (from http://qt-project.org/wiki/Checklist-for-Adding-Documentation-for-a-New-Module)
2.1) Add the following lines in the add-on modules table described in qtdoc/doc/src/qtmodules.qdoc:
@@ -52,3 +53,8 @@ make -j <#core+1>
\row \li modeling \li \l{Qt Modeling}
+Note: you should include the above lines in steps 2.1, 2.2, and 2.3 for EACH qt5 module in qtmodeling
+ (modeling, modelingwidgets, mof, uml, duse, saduseprofile, and so on)
+
+2.5) The previous files should be committed in qtbase and qtdoc repositories when qtmodeling is ready to be released
+
diff --git a/examples/uml/duse-mt/src/app/SADuse.xmi b/examples/uml/duse-mt/src/app/SADuse.xmi
index 8eea2091..04714586 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>input[0]</body>
+ <body>var inputLength = input.length; var selected = new Array(); for (var i = 0; i &lt; inputLength; ++i) { if (input[i].isKindOf("QSADuseProfileProcessComponent")) selected.push(input[i].base_Component); } selected;</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">
@@ -106,7 +106,7 @@
<designDimension xmi:type="duse:DesignDimension" name="Tuning Approach" xmi:id="SADuse-TunningApproach">
<instanceSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-TunningApproach-InstanceSelectionRule">
<language>JavaScript</language>
- <body>var inputLength = input.length; var selected = new Array(); for (var i = 0; i &lt; inputLength; ++i) { selected.push(typeof(input[i])); } selected;</body>
+ <body>var inputLength = input.length; var selected = new Array(); for (var i = 0; i &lt; inputLength; ++i) { if (input[i].isKindOf("QSADuseProfileProcessComponent")) selected.push(input[i].base_Component); } selected;</body>
</instanceSelectionRule>
<variationPoint xmi:type="duse:VariationPoint" name="Cohen-Coon" xmi:id="SADuse-TunningApproach-Cohen-Coon">
<modelChange xmi:type="duse:ModelChange" xmi:id="SADuse-TunningApproach-Cohen-Coon-ModelChange1">
diff --git a/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.cpp b/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.cpp
index cdbcfef2..7727bdce 100644
--- a/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.cpp
+++ b/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.cpp
@@ -49,10 +49,12 @@
#include <QtWidgets/QAction>
#include <QtWidgets/QWidget>
+#include <QtWidgets/QComboBox>
+#include <QtWidgets/QMessageBox>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QTableWidget>
#include <QtWidgets/QApplication>
-#include <QtWidgets/QMessageBox>
+
#include <QtCore/QFileInfo>
@@ -67,6 +69,7 @@
#include <QtUml/QUmlProfileApplication>
#include <QtDuse/QDuseDesignSpace>
+#include <QtDuse/QDuseVariationPoint>
#include <QtDuse/QDuseDesignDimension>
#include <QtDuse/QDuseDesignDimensionInstance>
@@ -261,27 +264,8 @@ void DesignSpaceExplorerPlugin::newDuseDesign()
}
}
- //modelingObjectList.first()->setQmlContextProperties(_metricsQuickView->engine()->rootContext());
-
-// _engine.globalObject().setProperty("designspace", _engine.newQObject(modelingObjectList.at(0)->asQModelingObject()));
-// _engine.evaluate("var dimensionsLength = designspace.designDimensions.length; \
-// for (var dimensionCounter = 0; dimensionCounter < dimensionsLength; ++dimensionCounter) { \
-// if (designspace.designDimensions[dimensionCounter].instanceSelectionRule) { \
-// var selected = eval(designspace.designDimensions[dimensionCounter].instanceSelectionRule); \
-// var selectedLength = selected.length; \
-// for (var selectedCounter = 0; selectedCounter < selectedLength; ++selectedCounter) { \
-// var dimensionInstance = new QDuseDesignDimensionInstance(); \
-// dimensionInstance.objectName = selected[selectedCounter].name; \
-// designspace.designDimensions[dimensionCounter].addDesignDimensionInstance(dimensionInstance); \
-// } \
-// } \
-// }");
-
-
// evaluateQualityMetrics();
-// populateDesignSpaceView(modelingObjectList.at(0));
-
-// setCursor(Qt::ArrowCursor);
+ populateDesignSpaceExplorer();
}
}
else
@@ -289,6 +273,28 @@ void DesignSpaceExplorerPlugin::newDuseDesign()
} while (_newDuseDesignDialog->_inputModelFileName.isEmpty() || _newDuseDesignDialog->_duseInstanceModelFileName.isEmpty());
}
+void DesignSpaceExplorerPlugin::populateDesignSpaceExplorer()
+{
+ QDuseDesignSpace *designSpace = dynamic_cast<QDuseDesignSpace *>(_duseInstance.first());
+ _designSpaceExplorer->setRowCount(0);
+ int row = 0;
+ foreach (QDuseDesignDimension *dimension, designSpace->designDimensions()) {
+ _designSpaceExplorer->setRowCount(_designSpaceExplorer->rowCount() + dimension->designDimensionInstances().count());
+ foreach (QDuseDesignDimensionInstance *instance, dimension->designDimensionInstances()) {
+ _designSpaceExplorer->setItem(row, 0, new QTableWidgetItem(dimension->name()));
+ _designSpaceExplorer->setItem(row, 1, new QTableWidgetItem(instance->targetInstance()->asQModelingObject()->objectName()));
+ QComboBox *comboBox = new QComboBox;
+ foreach (QDuseVariationPoint *variationPoint, dimension->variationPoints()) {
+ comboBox->addItem(variationPoint->asQModelingObject()->objectName());
+ }
+ _designSpaceExplorer->setCellWidget(row, 2, comboBox);
+ connect(comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(designSpaceChanged()));
+ ++row;
+ }
+ }
+ _designSpaceExplorer->resizeRowsToContents();
+}
+
void DesignSpaceExplorerPlugin::openDuseDesign()
{
}
diff --git a/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.h b/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.h
index 36fef736..190d862b 100644
--- a/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.h
+++ b/examples/uml/duse-mt/src/plugins/designspaceexplorer/designspaceexplorerplugin.h
@@ -82,6 +82,8 @@ private:
QList<QModelingElement *> _duseInstance;
QScriptEngine _engine;
+
+ void populateDesignSpaceExplorer();
};
#endif // DESIGNSPACEEXPLORERPLUGIN_H