85 lines
2.1 KiB
C++
85 lines
2.1 KiB
C++
#ifndef _PAI_FRAME_MULTIWAVEPROCESSER_H_
|
|
#define _PAI_FRAME_MULTIWAVEPROCESSER_H_
|
|
|
|
#include "Module.h"
|
|
#include "WorkFlowFile.h"
|
|
|
|
using namespace pai::module;
|
|
|
|
namespace pai {
|
|
namespace workflow{
|
|
|
|
enum ParamOperateType
|
|
{
|
|
ADD_MULTIWAVE_PARAMS,
|
|
DELETE_MULTIWAVE_PARAMS
|
|
};
|
|
|
|
|
|
class MultiwaveProcesser
|
|
{
|
|
public:
|
|
/**
|
|
* @brief 处理界面编辑工作流时添加模块类型事件
|
|
* @param pModule 添加的模块
|
|
* @param workflow 工作流
|
|
* @return
|
|
*/
|
|
static void ProcessForAdd(CModule *pModule, CWorkFlowFile *workflow);
|
|
/**
|
|
* @brief 处理界面编辑工作流时修改模块参数类型事件
|
|
* @param pModule 改变参数后的模块
|
|
* @param workflow 工作流
|
|
* @return
|
|
*/
|
|
static void ProcessForParameterChange(CModule *pModule, CWorkFlowFile *workflow);
|
|
/**
|
|
* @brief 处理界面编辑工作流时修改模块类型事件
|
|
* @param pModule 改变类型后的模块
|
|
* @param workflow 工作流
|
|
* @return
|
|
*/
|
|
static void ProcessForModuleTypeChange(CModule *pModule, CWorkFlowFile *workflow);
|
|
/**
|
|
* @brief 处理界面编辑工作流时删除模块事件
|
|
* @param pModule 即将删除的模块
|
|
* @param workflow 工作流
|
|
* @return
|
|
*/
|
|
static void ProcessForDelete(CModule *pModule, CWorkFlowFile *workflow);
|
|
|
|
private:
|
|
/**
|
|
* @brief 添加模块的多波参数
|
|
* @param pModule 要添加的模块
|
|
* @return
|
|
*/
|
|
static void AddMultiwaveParams(CModule *pModule);
|
|
/**
|
|
* @brief 删除参数中的多波参数
|
|
* @param pParameter 模块参数
|
|
* @return
|
|
*/
|
|
static void DeleteMultiwaveParams(CModuleParameter *pParamter);
|
|
/**
|
|
* @brief 添加或者删除工作流中的多波参数
|
|
* @param pModule 模块
|
|
* @param workflow 工作流
|
|
* @param operateType 操作类型(添加多波参数、删除多波参数)
|
|
* @return
|
|
*/
|
|
static void MultiwaveParamsEdit(CModule *pModule, CWorkFlowFile *workflow, ParamOperateType operateType);
|
|
/**
|
|
* @brief 除pModule外工作流中是否有能够确定添加多波参数的模块
|
|
* @param pModule 发生改变的模块
|
|
* @param workflow 工作流
|
|
* @return
|
|
*/
|
|
static bool HasMultiwaveModules(CModule *pModule, CWorkFlowFile *workflow);
|
|
};
|
|
|
|
}
|
|
}
|
|
|
|
#endif
|