DiagramDesigner/include/topologyView.h

56 lines
1.9 KiB
C
Raw Normal View History

2025-04-30 16:29:17 +08:00
#ifndef TOPOLOGYVIEW_H
#define TOPOLOGYVIEW_H
#include <QDialog>
#include <QStandardItemModel>
#include "global.h"
QT_BEGIN_NAMESPACE
namespace Ui { class topologyView; }
QT_END_NAMESPACE
2025-05-09 19:36:32 +08:00
class TopologyTree;
2026-03-02 20:15:22 +08:00
class ExtraPropertyManager;
class StructDataSource;
2025-04-30 16:29:17 +08:00
class TopologyView : public QDialog
{
Q_OBJECT
public:
TopologyView(QWidget *parent = nullptr);
~TopologyView();
void initial();
2025-05-09 19:36:32 +08:00
void loadTopologyFromDB(); //加载拓扑关系
2025-04-30 16:29:17 +08:00
signals:
void entityCreate(EntityInfo);
void entityChange(EntityInfo);
void entityDelete(EntityInfo);
void entitySelected(EntityInfo);
public slots:
void onItemChanged(QStandardItem *item);
void onItemClicked(const QModelIndex &index);
2026-03-02 20:15:22 +08:00
void onUpdateTopology(QList<RelationItem> lst,bool refresh);
2025-05-23 10:30:52 +08:00
private:
2026-03-02 20:15:22 +08:00
void clearItems();
QString getLevelType(int index);
void buildTreeStructure(QStandardItemModel* model, const QVector<ExtraProperty>& properties);
QVector<ExtraProperty> getPropertiesForNode(QStandardItem* node);
QString getNodeInfo(QStandardItem* node);
QStandardItem* findBayItem(const QString& voltageLevel, const QString& bayName);
QStandardItem* findOrCreateVoltageLevel(const QString& voltageLevel); // 查找或创建电压层级节点
QStandardItem* createBayItem(const QString& voltageLevel, const RelationSturctItem& bayInfo);
void createDeviceItem(QStandardItem* pParent, const RelationSturctItem& deviceInfo); // 创建设备节点
2025-04-30 16:29:17 +08:00
private:
Ui::topologyView *ui;
2026-03-02 20:15:22 +08:00
QStandardItemModel* _treeModel;
ExtraPropertyManager* _pExtraProManager;
StructDataSource* m_dataSource;
2025-05-09 19:36:32 +08:00
TopologyTree* _treeView;
2026-03-02 20:15:22 +08:00
QHash<QString, QStandardItem*> m_mapVoltageLevels; // 存储电压层级名称到树节点的映射
QHash<QString, QStandardItem*> m_mapBayItems; // 存储间隔节点key格式为"电压层级|间隔名称"
2025-04-30 16:29:17 +08:00
};
#endif