DiagramDesigner/diagramCavas/include/monitorPanel.h

70 lines
2.7 KiB
C++

#ifndef MONITORPANEL_H
#define MONITORPANEL_H
#include <QWidget>
#include <QToolBar>
#include "baseDrawingPanel.h"
class PowerEntity;
class MonitorSideBarDlg;
class MonitorConfigDlg;
class MonitorDetailAttributeDlg;
class MonitorDisplaySettingDlg;
class MonitorPanel : public BaseDrawingPanel
{
Q_OBJECT
public:
MonitorPanel(PowerEntity* pEntity,QWidget *parent = nullptr,DiagramMode mode = DM_edit);
~MonitorPanel();
void initial();
QJsonObject getMonitorInfo() const; //返回运行时的item信息
void loadNodes(QJsonObject obj) override; //加载图元信息
void saveNodes(int pageId) override; //保存到数据库
void setParentPage(const QString& str) {_sParentPage = str;}
QString getParentPage() {return _sParentPage;}
void updateSelectedItems(QList<monitorRelationItem>,bool);
QStandardItemModel* getLstModel() {return _itemListmodel;}
void initMonitorConfig(); //初始化参数设置(每个运行时可能不同)
void itemSelected(QUuid); //item选中事件
void detailItemSelected(QUuid); //显示详细属性页
void initDisplayState(); //初始化显示状态参照表
void initDisplaySetting(); //初始化显示状态设置
public:
//对层级关系的序列化与反序列化
QJsonArray serializeRelationToJsonArray(const QList<monitorRelationItem>& data) const;
bool deserializeRelationFromJsonArray(const QJsonArray& jsonArray, QList<monitorRelationItem>& result);
//对para的序列化与反序列化
QJsonArray serializeParaToJsonArray(const QMap<QUuid, QList<monitorItemAttributeInfo>>& data) const;
bool deserializeParaFromJsonArray(const QJsonArray& jsonArray,QMap<QUuid, QList<monitorItemAttributeInfo>>& result);
//对displaySetiing的序列化与反序列化
QJsonArray serializeDisplayToJsonArray(const QMap<monitorItemTypeStruct, QMap<monitorItemStateStruct, monitorItemDisplayInfo>>& data) const;
void deserializeDisplayFromJsonArray(const QJsonArray& jsonArray,QMap<monitorItemTypeStruct, QMap<monitorItemStateStruct, monitorItemDisplayInfo>>& result);
public slots:
void onRunClicked();
void onStopClicked();
void onConfigClicked();
void onItemConfigClicked();
void onConncecClicked();
protected:
void closeEvent(QCloseEvent *closeEvent) override;
private:
void createToolBar();
private:
QString _sParentPage; //派生自哪个工程
QToolBar* _toolBar;
MonitorSideBarDlg* _sideBar;
MonitorConfigDlg* _pConfigDlg;
QStandardItemModel* _itemListmodel;
MonitorDetailAttributeDlg* _detailAttributeDlg;
MonitorDisplaySettingDlg* _displaySettingDlg;
QMenu* _menuSetting;
};
#endif