73 lines
1.7 KiB
C++
73 lines
1.7 KiB
C++
#ifndef DATAMANAGER_H
|
|
#define DATAMANAGER_H
|
|
|
|
#include<QList>
|
|
#include "DPData.h"
|
|
#include "DBPlatformNew.h"
|
|
#include "SysManager.h"
|
|
|
|
|
|
//根结点,管理所有数据
|
|
class DataManager :public DPData
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
DataManager();
|
|
~DataManager();
|
|
|
|
enum class DataType
|
|
{
|
|
project,
|
|
dataModel,
|
|
dataPack,
|
|
dataClass,
|
|
dataAttribute,
|
|
scene
|
|
};
|
|
|
|
public:
|
|
/*增加child数据*/
|
|
bool addChild(DPData* newData);
|
|
/*删除一条child数据*/
|
|
bool deleteChild(unsigned int id);
|
|
/*获取所有下层数据*/
|
|
void getAllChildren(DPData* pManager=nullptr, bool reload = false);
|
|
void clearAllProject();
|
|
|
|
void insertDataMap(DataType type, unsigned int id, DPData* pData);
|
|
void deleteInDataMap(DataType type, unsigned int id);
|
|
|
|
DPData* findObjectById(DataType type, int id);
|
|
//查找指定数据模型下的数据对象
|
|
DPData* findobjectByNameInDatamodel(int type, QString propertyName, QString name, int dataModelId);
|
|
DataType transformType(int type);
|
|
//获取指定数据类型的map
|
|
void getDataMap(DataType type, QMap<unsigned int, DPData*>& map);
|
|
|
|
|
|
/*最近打开两个项目*/
|
|
QList<DPData*> lastProject;
|
|
DBPlatformSpace::DBPlatformNew* pTheDBPlatform = nullptr;
|
|
bool _dbConnected = false; //数据库连接状态
|
|
|
|
|
|
|
|
private:
|
|
QMap<unsigned int, DPData*> platformDataMap; //所有数据对象---之后删除
|
|
QMap<unsigned int, DPData*> mapProject;
|
|
QMap<unsigned int, DPData*> mapDataModel;
|
|
QMap<unsigned int, DPData*> mapDataPack;
|
|
QMap<unsigned int, DPData*> mapDataClass;
|
|
QMap<unsigned int, DPData*> mapDataAttribute;
|
|
QMap<unsigned int, DPData*> mapDataScene;
|
|
QMap<DataType, QMap<unsigned int, DPData*>> platformData;
|
|
|
|
|
|
};
|
|
|
|
|
|
DataManager& GetDataRoot();
|
|
|
|
#endif
|
|
|