#ifndef MONITORPANEL_H #define MONITORPANEL_H #include #include #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,bool); QStandardItemModel* getLstModel() {return _itemListmodel;} void initMonitorConfig(); //初始化参数设置(每个运行时可能不同) void itemSelected(QUuid); //item选中事件 void detailItemSelected(QUuid); //显示详细属性页 void initDisplayState(); //初始化显示状态参照表 void initDisplaySetting(); //初始化显示状态设置 public: //对层级关系的序列化与反序列化 QJsonArray serializeRelationToJsonArray(const QList& data) const; bool deserializeRelationFromJsonArray(const QJsonArray& jsonArray, QList& result); //对para的序列化与反序列化 QJsonArray serializeParaToJsonArray(const QMap>& data) const; bool deserializeParaFromJsonArray(const QJsonArray& jsonArray,QMap>& result); //对displaySetiing的序列化与反序列化 QJsonArray serializeDisplayToJsonArray(const QMap>& data) const; void deserializeDisplayFromJsonArray(const QJsonArray& jsonArray,QMap>& 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