Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
- Don't use the ComponentParameters class to show the parameter values for TextAnnotation.
- Show progress bar and status message when opening the ComponentParameters & ComponentAttributes windows.

git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@23196 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
  • Loading branch information
adeas31 committed Nov 5, 2014
1 parent ba9d529 commit 323b0c0
Show file tree
Hide file tree
Showing 4 changed files with 61 additions and 40 deletions.
65 changes: 47 additions & 18 deletions OMEdit/OMEditGUI/Component/Component.cpp
Expand Up @@ -779,24 +779,43 @@ void Component::componentParameterHasChanged()
*/
QString Component::getParameterDisplayString(QString parameterName)
{
/*
Use the ComponentParameters class to get the parameters list and then check the parameterString against them.
Don't call show of the ComponentParameters class.
/*How to get the display value,
1. Check if the value is available in component modifier.
2. Check if the value is available in the component's class as a parameter or variable.
3. Find the value in extends classes and check if the value is present in extends modifier.
3.3 If there is no extends modifier then finally check if value is present in extends classes.
*/
MainWindow *pMainWindow = mpGraphicsView->getModelWidget()->getModelWidgetContainer()->getMainWindow();
ComponentParameters *pComponentParameters = new ComponentParameters(false, this, pMainWindow);
QList<Parameter*> parametersList = pComponentParameters->getParametersList();
QString result;
foreach (Parameter *pParameter, parametersList)
{
if (pParameter->getNameLabel()->text().compare(parameterName) == 0)
{
result = pParameter->getValueTextBox()->text();
break;
QString displayString = "";
QString modelName = mpGraphicsView->getModelWidget()->getLibraryTreeNode()->getNameStructure();
/* case 1 */
displayString = mpOMCProxy->getComponentModifierValue(modelName, mName + "." + parameterName);
/* case 2 */
if (displayString.isEmpty()) {
QList<ComponentInfo*> componentInfoList = mpOMCProxy->getComponents(mClassName);
foreach (ComponentInfo *pComponentInfo, componentInfoList) {
if (pComponentInfo->getName().compare(parameterName) == 0) {
displayString = mpOMCProxy->getParameterValue(mClassName, parameterName);
break;
}
}
}
/* case 3 */
if (displayString.isEmpty()) {
foreach (Component *pInheritedComponent, mpInheritanceList) {
QList<ComponentInfo*> componentInfoList = mpOMCProxy->getComponents(pInheritedComponent->getClassName());
foreach (ComponentInfo *pComponentInfo, componentInfoList) {
if (pComponentInfo->getName().compare(parameterName) == 0) {
displayString = mpOMCProxy->getExtendsModifierValue(mClassName, pInheritedComponent->getClassName(), parameterName);
/* case 3.3 */
if (displayString.isEmpty()) {
displayString = mpOMCProxy->getParameterValue(pInheritedComponent->getClassName(), parameterName);
}
break;
}
}
}
}
pComponentParameters->deleteLater();
return result;
return displayString;
}

void Component::duplicateHelper(GraphicsView *pGraphicsView)
Expand Down Expand Up @@ -1276,17 +1295,27 @@ void Component::moveShiftRight()
void Component::showParameters()
{
MainWindow *pMainWindow = mpGraphicsView->getModelWidget()->getModelWidgetContainer()->getMainWindow();
ComponentParameters *pComponentParameters = new ComponentParameters(true, this, pMainWindow);
pComponentParameters->show();
pMainWindow->getStatusBar()->showMessage(tr("Opening %1 %2 parameters window").arg(mClassName).arg(mName));
pMainWindow->getProgressBar()->setRange(0, 0);
pMainWindow->showProgressBar();
ComponentParameters *pComponentParameters = new ComponentParameters(this, pMainWindow);
pMainWindow->hideProgressBar();
pMainWindow->getStatusBar()->clearMessage();
pComponentParameters->exec();
}

//! Slot that opens up the component attributes dialog.
//! @see showParameters()
void Component::showAttributes()
{
MainWindow *pMainWindow = mpGraphicsView->getModelWidget()->getModelWidgetContainer()->getMainWindow();
pMainWindow->getStatusBar()->showMessage(tr("Opening %1 %2 attributes window").arg(mClassName).arg(mName));
pMainWindow->getProgressBar()->setRange(0, 0);
pMainWindow->showProgressBar();
ComponentAttributes *pComponentAttributes = new ComponentAttributes(this, pMainWindow);
pComponentAttributes->show();
pMainWindow->hideProgressBar();
pMainWindow->getStatusBar()->clearMessage();
pComponentAttributes->exec();
}

//! Slot that opens up the component Modelica class in a new tab/window.
Expand Down
26 changes: 7 additions & 19 deletions OMEdit/OMEditGUI/Component/ComponentProperties.cpp
Expand Up @@ -51,8 +51,7 @@
\param componentName - the name of the component.
*/
Parameter::Parameter(ComponentInfo *pComponentInfo, OMCProxy *pOMCProxy, QString className, QString componentBaseClassName,
QString componentClassName, QString componentName, bool parametersOnly, bool inheritedComponent,
QString inheritedClassName)
QString componentClassName, QString componentName, bool inheritedComponent, QString inheritedClassName)
{
mpNameLabel = new Label(pComponentInfo->getName());
mpValueTextBox = new QLineEdit;
Expand Down Expand Up @@ -92,16 +91,8 @@ Parameter::Parameter(ComponentInfo *pComponentInfo, OMCProxy *pOMCProxy, QString
value = pOMCProxy->getParameterValue(componentClassName, pComponentInfo->getName());
mpValueTextBox->setText(value);
mpValueTextBox->setCursorPosition(0); /* move the cursor to start so that parameter value will show up from start instead of end. */
/*
Do not get the unit if we are using the ComponentParameters dialog for TextAnnotation display of Component.
parametersOnly will be false if ComponentParameters dialog is created from Component::getParameterDisplayString
*/
if (!parametersOnly)
{
mpUnitLabel = new Label;
mpCommentLabel = new Label;
return;
}
mpUnitLabel = new Label;
mpCommentLabel = new Label;
/*
Get unit value
First check if unit is defined with in the component modifier.
Expand Down Expand Up @@ -295,13 +286,11 @@ QVBoxLayout *ParametersScrollArea::getLayout()
\param pComponent - pointer to Component
\param pMainWindow - pointer to MainWindow
*/
ComponentParameters::ComponentParameters(bool parametersOnly, Component *pComponent, MainWindow *pMainWindow)
ComponentParameters::ComponentParameters(Component *pComponent, MainWindow *pMainWindow)
: QDialog(pMainWindow, Qt::WindowTitleHint)
{
setWindowTitle(QString(Helper::applicationName).append(" - ").append(tr("Component Parameters")));
setAttribute(Qt::WA_DeleteOnClose);
setModal(true);
mParametersOnly = parametersOnly;
mpComponent = pComponent;
mpMainWindow = pMainWindow;
setUpDialog();
Expand Down Expand Up @@ -430,7 +419,7 @@ void ComponentParameters::createTabsAndGroupBoxes(OMCProxy *pOMCProxy, QString c
QString tab = "";
QString groupBox = "";
QStringList dialogAnnotation = StringHandler::getDialogAnnotation(componentAnnotations[i]);
if ((pComponentInfo->getVariablity().compare("parameter") == 0) || (dialogAnnotation.size() > 0) || !mParametersOnly)
if ((pComponentInfo->getVariablity().compare("parameter") == 0) || (dialogAnnotation.size() > 0))
{
if (dialogAnnotation.size() > 0)
{
Expand Down Expand Up @@ -508,7 +497,7 @@ void ComponentParameters::createParameters(OMCProxy *pOMCProxy, QString classNam
bool enable = true;
QString groupImage = "";
QStringList dialogAnnotation = StringHandler::getDialogAnnotation(componentAnnotations[i]);
if ((pComponentInfo->getVariablity().compare("parameter") == 0) || (dialogAnnotation.size() > 0) || !mParametersOnly)
if ((pComponentInfo->getVariablity().compare("parameter") == 0) || (dialogAnnotation.size() > 0))
{
if (dialogAnnotation.size() > 0)
{
Expand Down Expand Up @@ -537,7 +526,7 @@ void ComponentParameters::createParameters(OMCProxy *pOMCProxy, QString classNam
pGroupBox->show();
/* create a parameter */
Parameter *pParameter = new Parameter(pComponentInfo, pOMCProxy, className, componentBaseClassName, componentClassName,
componentName, mParametersOnly, inheritedComponent, inheritedClassName);
componentName, inheritedComponent, inheritedClassName);
pParameter->setEnabled(enable);
/*
Show a line under the inherited parameter and display the name of the
Expand Down Expand Up @@ -662,7 +651,6 @@ ComponentAttributes::ComponentAttributes(Component *pComponent, MainWindow *pMai
{
setWindowTitle(QString(Helper::applicationName).append(" - ").append(tr("Component Attributes")));
setAttribute(Qt::WA_DeleteOnClose);
setModal(true);
mpComponent = pComponent;
mpMainWindow = pMainWindow;
setUpDialog();
Expand Down
4 changes: 2 additions & 2 deletions OMEdit/OMEditGUI/Component/ComponentProperties.h
Expand Up @@ -45,7 +45,7 @@ class Parameter
{
public:
Parameter(ComponentInfo *pComponentInfo, OMCProxy *pOMCProxy, QString className, QString componentBaseClassName,
QString componentClassName, QString componentName, bool parametersOnly, bool inheritedComponent, QString inheritedClassName);
QString componentClassName, QString componentName, bool inheritedComponent, QString inheritedClassName);
Label* getNameLabel();
QLineEdit* getValueTextBox();
Label* getUnitLabel();
Expand Down Expand Up @@ -91,7 +91,7 @@ class ComponentParameters : public QDialog
{
Q_OBJECT
public:
ComponentParameters(bool parametersOnly, Component *pComponent, MainWindow *pMainWindow);
ComponentParameters(Component *pComponent, MainWindow *pMainWindow);
~ComponentParameters();
void setUpDialog();
void createTabsAndGroupBoxes(OMCProxy *pOMCProxy, QString componentClassName, QString componentBaseClassName = QString());
Expand Down
6 changes: 5 additions & 1 deletion OMEdit/OMEditGUI/OMC/OMCProxy.cpp
Expand Up @@ -1166,7 +1166,11 @@ QStringList OMCProxy::getParameterNames(QString className)
QString OMCProxy::getParameterValue(QString className, QString parameter)
{
sendCommand("getParameterValue(" + className + "," + parameter + ")", true, className);
return getResult();
if (getResult().toLower().contains("error")) {
return "";
} else {
return getResult();
}
}

/*!
Expand Down

0 comments on commit 323b0c0

Please sign in to comment.