#ifndef WIDGET_H #define WIDGET_H #include #include #include #include #include #include #include #include #include #include #include "ModuleBase/dockWidgetBase.h" namespace GUI { class MainWindow; } namespace Ui { class FunctionTreeSetup; } namespace MainWidget { class PropertyTable; } namespace DataProperty { class ParameterBase; class DataBase; class ParameterGroup; } namespace ConfigOption { class ProjectTreeInfo; class PostCurve; class PostConfigInfo; } namespace LAMPCAEDesigner { class ModelBase; class FunctionTreeSetup : public ModuleBase::DockWidgetBase { Q_OBJECT public: FunctionTreeSetup(GUI::MainWindow *mainwindow, QWidget *parent = 0); ~FunctionTreeSetup(); QList GetPhysicsList(); QList GetMaterialList(); public: void resizeEvent(QResizeEvent *e); void showEvent(QShowEvent *); int returnParent(QTreeWidgetItem *treeparent); QMenu *createTreeRootMenu(QMenu *menu, QTreeWidgetItem *treeNode); QMenu *createTreeNodeMenu(QMenu *menu, QTreeWidgetItem *childNode); QMenu *createTreePostMenu(QMenu *menu, QTreeWidgetItem *postNode); // QMenu* createShowMenu(QMenu* menu, QTreeWidgetItem* treeNode); // QAction* createInsertAction(); // QAction* createHideOrDeleteAction(); // signals: // void sendChildItem(QTreeWidgetItem* child); // private slots: void OnProjectTreeRightClicked(const QPoint &point); void OnInsertChild(); void OnHideThis(); void OnShowThis(int childindex); void OnDeleteItem(/*int flag*/); void OnInsertPhysicsTree(); void OnProjectTreeDoubleClicked(QTreeWidgetItem *treeItem); void OnProjectTreeItemClicked(QTreeWidgetItem *treeItem, int index); void OnInsertMaterialTree(); void OnDeleteAllMaterialItem(); void onShowParameterLinkage(int type); private: void Init(); void InitTreeWidget(); void FillTreeWidget(); void FillTreePhysics(); void FillTreeMaterial(); // void updatePhysicsTree(); void UpdateDataBase(ModelBase *model); QTreeWidgetItem *CreateTreeWidgetItem(QTreeWidgetItem *root, QString text, QString iconName); // ModelBase* CreateCase(QString nameChn, QString nameEng, QString icon); ModelBase *CreatePhysics(QString nameEng, QString nameChn); void DeletePhysicsModel(ModelBase *model); QList GetCaseUsedNameList(QList modelList, int nameType); //初始化构造功能树及节点的数据 void InitProjectData(); void IniMaterialProjectData(); void InitPhysicsProjectData(); void FillSimulationAndSolverChildModel(ModelBase *caseRoot, ConfigOption::ProjectTreeInfo *treeModel, int projectTreeType); ModelBase *CreateModelFactory(int type); ModelBase *GetSpecialTypeModel(QList modelList, int type); void FillSimulationRootParameterData(ModelBase *model, int treeType, int dataType); void FillBcData(ModelBase *model, int treeType); void FillPostData(ModelBase *model, int treeType); void FillMonitorData(ModelBase *model, int treeType); DataProperty::DataBase *GetChildDataBase(int type, int id); int getDisableItemType(QString disableItem); void InitPhysicsTreeNodeVisable(QStringList disableItemList, ModelBase *caseRootModel); QList getPostCurve(QList, QString); //初始化构造功能树及节点的数据 void ClearModelBaseList(QList &list); //获取参数信息列表 void insertParameterToList(DataProperty::DataBase *model); // 20200327 void SetParentModel(QTreeWidgetItem *item); ModelBase *getSimulationSolverChildNameModel(QList modelList, QString name); ModelBase *getChildModelFromName(ModelBase *model, QString name); private: Ui::FunctionTreeSetup *ui; GUI::MainWindow *_mainwindow; MainWidget::PropertyTable *_propTable{nullptr}; QTreeWidgetItem *_curretnItem{nullptr}; QTreeWidgetItem *_materialRoot{nullptr}; QTreeWidgetItem *_physicsModelRoot{nullptr}; QList _physicsList; QList _materialList; // xuxinwei 20200325 QList _parameterList; QList _parameterGroupList; }; } #endif // WIDGET_H