#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