logplus/ModuleConsole/include/WorkflowPlugin-.h

211 lines
5.1 KiB
C
Raw Normal View History

2026-01-16 17:18:41 +08:00
/**
* @file WorkflowPlugin.h
* @brief
* @date 2011-6-27
*/
#ifndef PAI_FRAME_WORKFLOWVIEW_WORKFLOWPLUGIN_H
#define PAI_FRAME_WORKFLOWVIEW_WORKFLOWPLUGIN_H
#include <QObject>
#include <QPointer>
#include <QModelIndex>
#include "IPlugin.h"
#include "IObjectTypeSupport.h"
#include "IContextMenuExtension.h"
#include "WorkflowPluginControl.h"
class QAction;
class QGraphicsItem;
class QWebPage;
class QTreeWidgetItem;
namespace pai
{
namespace objectmodel
{
class PaiObject;
class PaiWorkflowDataModel;
}
namespace graphics2d
{
class CParameterEditor;
}
namespace gui
{
class PaiAction;
}
}
namespace pai
{
/**
* @class CPaiWorkflowPlugin
* @brief
*/
class PAI_WORKFLOWVIEW_EXPORT CPaiWorkflowPlugin: public QObject,
public pai::IPlugin,
public pai::IObjectTypeSupport,
public pai::IContextMenuExtension
{
Q_OBJECT
Q_INTERFACES(pai::IPlugin pai::IObjectTypeSupport pai::IContextMenuExtension)
public:
CPaiWorkflowPlugin();
virtual ~CPaiWorkflowPlugin();
/**
* @brief插件集成到主控台
*/
virtual void Integrate();
/**
* Remove the seismic view from main console.
*/
virtual void Dispose();
/**
* Get the unique ID for the plugin.
*/
virtual QUuid GetID() const
{
return QUuid(QString("1e511b0b-02a6-4eec-af57-613f489d4b49"));
}
/**
* @brief
* @return
*/
virtual PluginInformation GetInformation();
/**
* @brief GUI插件的界面嵌入到主控台或其他GUI插件使IPlugin的ID进行界面的注册
*/
bool OpenView();
/**
* @brief
* @param[in] pObject
*/
virtual bool Show(pai::objectmodel::PaiObject * pObj);
/**
* @brief
* @param[in] pObject
*/
virtual bool Active(pai::objectmodel::PaiObject* pObject);
/**
* @brief
* @return
*/
virtual QList<QUuid> GetSupportedTypeIDs() const;
/**
* @brief
* @param[in] contextObjs
* @param[out] actions Action列表
* @return true, false
*/
virtual bool Handle(QList<pai::objectmodel::PaiObject*> & contextObjs, QList<pai::gui::PaiAction*> & actions);
/**
* @brief ID
*/
virtual std::string GetStringID() const
{
return GetID().toString().toStdString();
}
/**
* @brief
*/
WorkflowPluginControl * GetWorkflowPluginCtr()
{
return &m_control;
}
public slots:
/**
* @brief活动tab改变时tab
*/
void slotOnActiveTabPage(const QString &);
/**
* @brief redo
*/
void slotBrowseWorkflow();
/**
* @brief
*/
void slotActiveAreaTabPage(const QString& strAreaName,const std::string& activedViewID);
private slots:
/**
* @brief param点击后显示param的description
*/
void slotShowDescription(const QModelIndex & index);
/**
* @brief
*/
void slotShowHelpDoc(QTreeWidgetItem * item, int column);
/**
* @brief
*/
void slotShowHelpDocForSceneSelect(pai::workflow::CModuleInformation* pModuleInformation);
/**
*@brief
*@param objectList
*/
void slotShowTemplate(QList<pai::objectmodel::PaiObject*> objectList);
/**
*@brief
*@param objectList
*/
void slotDeleteTemplate(QList<pai::objectmodel::PaiObject*> objectList);
/**
* @brief
*/
void OpenWorkflowHelp();
private:
/**
* @brief
* @param pWorkflowObject
*/
bool _ShowWorkflow(pai::objectmodel::PaiWorkflowDataModel* pWorkflowObject);
/**
* @brief
*/
void ShowHelpDoc(std::string strHelp);
/**
* @brief Page
*/
QWebPage* GetWebHelpInfo();
protected:
/**
*@brief
*@return PaiWorkflowDataModel*
*/
pai::objectmodel::PaiWorkflowDataModel* GetActiveWorkflow();
QPointer<pai::graphics2d::CParameterEditor> m_pParameterEditor;
WorkflowPluginControl m_control; // 插件的控制器
};
}
#endif