DiagramDesigner/diagramCavas/include/diagramEditor/diagramEditorBaseBlock.h

69 lines
2.6 KiB
C++

#ifndef DIAGRAMEDITORBASEBLOCK_H
#define DIAGRAMEDITORBASEBLOCK_H
//组态编辑基础块(分段母线、间隔等)
#include <QObject>
#include "global.h"
class DiagramEditorStructContainer;
class DiagramEditorBaseBlock: public QObject
{
Q_OBJECT
public:
DiagramEditorBaseBlock(QObject *parent = 0);
virtual ~DiagramEditorBaseBlock() = 0;
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(const QString&,int nType); //与目标建立连接
virtual void addConnect(DiagramEditorBriefConnect); //直接添加连接
virtual void removeConnect(const QString&);
virtual void removeConnect(DiagramEditorBriefConnect);
virtual QList<DiagramEditorBriefConnect> getConnect() {return lstCon;}
virtual void clearConnect() {lstCon.clear();}
virtual void setCurContainer(DiagramEditorStructContainer* p) {_curContainer = p;}
virtual DiagramEditorStructContainer* getCurContainer() {return _curContainer;}
protected:
QString sName;
int nType; //1母线,2间隔
QList<DiagramEditorBriefConnect> lstCon; //连接信息
DiagramEditorStructContainer* _curContainer; //当前所处的容器
};
/***************************划分后的分段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;}
protected:
BayType nBayType;
};
#endif