-
Notifications
You must be signed in to change notification settings - Fork 298
/
OMSSimulationDialog.h
117 lines (109 loc) · 4.06 KB
/
OMSSimulationDialog.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
/*
* This file is part of OpenModelica.
*
* Copyright (c) 1998-CurrentYear, Open Source Modelica Consortium (OSMC),
* c/o Linköpings universitet, Department of Computer and Information Science,
* SE-58183 Linköping, Sweden.
*
* All rights reserved.
*
* THIS PROGRAM IS PROVIDED UNDER THE TERMS OF GPL VERSION 3 LICENSE OR
* THIS OSMC PUBLIC LICENSE (OSMC-PL) VERSION 1.2.
* ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
* OF THE OSMC PUBLIC LICENSE OR THE GPL VERSION 3, ACCORDING TO RECIPIENTS CHOICE.
*
* The OpenModelica software and the Open Source Modelica
* Consortium (OSMC) Public License (OSMC-PL) are obtained
* from OSMC, either from the above address,
* from the URLs: http://www.ida.liu.se/projects/OpenModelica or
* http://www.openmodelica.org, and in the OpenModelica distribution.
* GNU version 3 is obtained from: http://www.gnu.org/copyleft/gpl.html.
*
* This program is distributed WITHOUT ANY WARRANTY; without
* even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH
* IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS OF OSMC-PL.
*
* See the full OSMC Public License conditions for more details.
*
*/
/*
* @author Adeel Asghar <adeel.asghar@liu.se>
*/
#ifndef OMSSIMULATIONDIALOG_H
#define OMSSIMULATIONDIALOG_H
#include "Util/Utilities.h"
#include "Util/Helper.h"
#include <QDateTime>
#include <QDialog>
#include <QTreeWidget>
#include <QDialogButtonBox>
#include <QHBoxLayout>
class LibraryTreeItem;
class OMSSimulationOutputWidget;
class SystemSimulationInformationWidget;
class ArchivedOMSSimulationItem : public QTreeWidgetItem
{
public:
ArchivedOMSSimulationItem(const QString &cref, const double startTime, const double stopTime, OMSSimulationOutputWidget *pOMSSimulationOutputWidget)
: mpOMSSimulationOutputWidget(pOMSSimulationOutputWidget)
{
setText(0, cref);
setToolTip(0, cref);
setText(1, QDateTime::currentDateTime().toString());
setToolTip(1, QDateTime::currentDateTime().toString());
setText(2, QString::number(startTime));
setToolTip(2, QString::number(startTime));
setText(3, QString::number(stopTime));
setToolTip(3, QString::number(stopTime));
setStatus(Helper::running);
}
OMSSimulationOutputWidget* getOMSSimulationOutputWidget() {return mpOMSSimulationOutputWidget;}
void setStatus(QString status) {
setText(4, status);
setToolTip(4, status);
}
private:
OMSSimulationOutputWidget *mpOMSSimulationOutputWidget;
};
class OMSSimulationDialog : public QDialog
{
Q_OBJECT
public:
OMSSimulationDialog(QWidget *pParent = 0);
~OMSSimulationDialog();
int exec(const QString &modelCref, LibraryTreeItem *pLibraryTreeItem);
void simulate(LibraryTreeItem *pLibraryTreeItem);
void simulationFinished(const QString &resultFilePath, QDateTime resultFileLastModifiedDateTime);
QTreeWidget* getArchivedSimulationsTreeWidget() {return mpArchivedSimulationsTreeWidget;}
QList<OMSSimulationOutputWidget*> getOMSSimulationOutputWidgetsList() {return mOMSSimulationOutputWidgetsList;}
private:
QString mModelCref;
LibraryTreeItem *mpLibraryTreeItem;
Label *mpSimulationHeading;
QFrame *mpHorizontalLine;
SystemSimulationInformationWidget *mpSystemSimulationInformationWidget;
QGroupBox *mpSystemSimulationInformationGroupBox;
Label *mpStartTimeLabel;
QLineEdit *mpStartTimeTextBox;
Label *mpStopTimeLabel;
QLineEdit *mpStopTimeTextBox;
Label *mpResultFileLabel;
QLineEdit *mpResultFileTextBox;
Label *mpResultFileBufferSizeLabel;
QSpinBox *mpResultFileBufferSizeSpinBox;
Label *mpLoggingIntervalLabel;
QLineEdit *mpLoggingIntervalTextBox;
Label *mpSignalFilterLabel;
QLineEdit *mpSignalFilterTextBox;
QTreeWidget *mpArchivedSimulationsTreeWidget;
// buttons
QPushButton *mpOkButton;
QPushButton *mpCancelButton;
QDialogButtonBox *mpButtonBox;
QList<OMSSimulationOutputWidget*> mOMSSimulationOutputWidgetsList;
public slots:
void showArchivedSimulation(QTreeWidgetItem *pTreeWidgetItem);
void saveSimulationSettings();
};
#endif // OMSSIMULATIONDIALOG_H