DPS/DataPlatform/Session.h

86 lines
1.9 KiB
C++

#pragma once
#include <QObject>
class MainWindow;
class TitleBar;
class SideBar;
class ProjectManager;
class DataModel;
class CodeGenerateEventModule;
class MainWindowEventModule;
class HomePage;
class ProjectEventModule;
class DataModelEventModule;
class DataPackEventModule;
class SearchEditEventModule;
class XmlEditEventModule;
/**
* @brief 程序运行期间的事务处理管理组件
*/
class Session : public QObject
{
Q_OBJECT
public:
explicit Session(MainWindow* parent);
~Session();
/**
* @brief 返回标题栏管理组件
* @return 标题栏管理组件
*/
TitleBar* titleBar();
/**
* @brief 返回导航栏管理组件
* @return 导航栏管理组件
*/
SideBar* sideBar();
/**
* @brief 返回项目管理组件
* @return 项目管理组件
*/
ProjectManager* projectManager();
/**
* @brief 返回数据建模模块
* @return 数据建模模块
*/
DataModel* dataModel();
/**
* @brief 返回代码生成模块
* @return 代码生成模块
*/
CodeGenerateEventModule* codeGenerate();
MainWindow* parent();
ProjectEventModule* projectEventModule();
DataModelEventModule* dataModelEventModule();
DataPackEventModule* dataPackEventModule();
SearchEditEventModule* searchEditEventModule();
XmlEditEventModule* xmlEditEventModule();
HomePage* homePage();
/**
* @brief 返回Session单例对象
* @return Session对象
*/
static Session* getSession();
private:
TitleBar* _titleBar = nullptr;
SideBar* _sideBar = nullptr;
ProjectManager* _projectManager = nullptr;
DataModel* _dataModel = nullptr;
CodeGenerateEventModule* _codeGenerate = nullptr;
HomePage* _homePage = nullptr;
ProjectEventModule* _projectEventModule = nullptr;
DataModelEventModule* _dataModelEventModule = nullptr;
DataPackEventModule* _dataPackEvenModule = nullptr;
SearchEditEventModule* _searchEditModule = nullptr;
XmlEditEventModule* _xmlEditModule = nullptr;
MainWindow* _parent = nullptr;
static Session* _session;
friend class MainWindow;
};