#ifndef DIAGRAMEDITORBASEBLOCK_H #define DIAGRAMEDITORBASEBLOCK_H //组态编辑基础块(分段母线、间隔等) #include #include "global.h" class DiagramEditorStructContainer; class DiagramEditorBaseBlock: public QObject { Q_OBJECT public: DiagramEditorBaseBlock(QObject *parent = 0); virtual ~DiagramEditorBaseBlock() = 0; virtual void setId(QUuid id) {uid = id;} virtual QUuid getId() {return uid;} virtual void setName(const QString& str) {sName = str;} virtual QString getName() {return sName;} virtual void setType(int n) {nType = n;} virtual int getType() {return nType;} virtual void addConnect(QUuid); //直接添加连接 virtual void removeConnect(QUuid); virtual QList getConnect() {return _lstCon;} virtual void clearConnect() {_lstCon.clear();} virtual void setCurContainer(DiagramEditorStructContainer* p) {_curContainer = p;} virtual DiagramEditorStructContainer* getCurContainer() {return _curContainer;} virtual void setContainerLevel(int n) {nContainerLevel = n;} virtual int getContainerLevel() {return nContainerLevel;} virtual void setRecSize(QRectF rec) {recSize = rec;} virtual QRectF getRecSize() {return recSize;} virtual void setSeceneDelta(QPointF p){sceneDelta = p;} virtual QPointF getSceneDelta() {return sceneDelta;} virtual void setEditState(bool b){bEditState = b;} virtual bool getEditState(){return bEditState;} protected: QString sName; int nType; //1母线,2间隔,3变压器 int nContainerLevel; //所处容器的层级 0,1,2,3 QUuid uid; QList _lstCon; //连接信息 QRectF recSize; //当前大小(根据内容确定) QPointF sceneDelta; //block中心相对位移(计算布局位置 DiagramEditorStructContainer* _curContainer; //当前所处的容器 bool bEditState; //详细编辑状态 }; /***************************划分后的分段bus单元****************************/ class DiagramEditorBusBlock:public DiagramEditorBaseBlock { Q_OBJECT public: DiagramEditorBusBlock(QObject *parent = 0); virtual ~DiagramEditorBusBlock(); virtual void setVoltage(float f) { fVoltage = f;} virtual float getVoltage() {return fVoltage;} virtual void setBusType(int n) {nBusType = n;} virtual int getBusType() {return nBusType;} virtual void setIndex(int n) {nIndex = n;} virtual int getIndex() {return nIndex;} virtual void setBusPro(QString sNa,int nTp,float fVol,int nBT,int nIdx) {sName = sNa;nType = nTp;fVoltage = fVol;nBusType = nBT;nIndex = nIdx;} protected: float fVoltage; //母线电压 int nBusType; //0无前缀,1:Ⅰ母,2Ⅱ母 int nIndex; //第几段,1A,2B,3C,4D,5E,6F,7G,8H }; /***************************bay单元****************************/ class DiagramEditorBayBlock:public DiagramEditorBaseBlock { Q_OBJECT public: DiagramEditorBayBlock(QObject *parent = 0); virtual ~DiagramEditorBayBlock(); virtual void setBayType(BayType typ) {nBayType = typ;} virtual BayType getBayType() {return nBayType;} virtual void setBayInfo(DiagramEditorBayInfo info) {bayInfo = info;} virtual DiagramEditorBayInfo& getBayInfo(){return bayInfo;} protected: BayType nBayType; DiagramEditorBayInfo bayInfo; //间隔信息 }; /***************************transformer单元****************************/ class DiagramEditorTransformerBlock:public DiagramEditorBaseBlock { Q_OBJECT public: DiagramEditorTransformerBlock(QObject *parent = 0); virtual ~DiagramEditorTransformerBlock(); virtual void setTransType(TransformerType typ) {nTransType = typ;} virtual TransformerType getTransType() {return nTransType;} virtual void setTransInfo(DiagramEditorTransInfo info) {transInfo = info;} virtual DiagramEditorTransInfo& getTranInfo() {return transInfo;} protected: TransformerType nTransType; DiagramEditorTransInfo transInfo; }; #endif