/* * @file ComplexInputDataParser.h * @brief ComplexInputDataParser对带onclick的InputData进行解析,InputData是工作流模块参数的一个属性。 * @date: 2012-07-26 * @author: limengzhuo */ #ifndef PAI_FRAME_WORKFLOWVIEW_COMPLEXINPUTDATAPARSER_H #define PAI_FRAME_WORKFLOWVIEW_COMPLEXINPUTDATAPARSER_H #include #include namespace pai { namespace graphics2d { /** * @class ItemData * @brief 参数控制的控制信息 */ class ItemData { public: ItemData(QModelIndex parentIndex, QString destItemIDs, QString destCategorys, QString property, QString value, QString parentID); /** * @brief 被参数取值为m_value时控制的控件ID列表 */ QStringList GetDestItemIDList(); /** * @brief 被参数取值为m_value时控制的类别列表 */ QStringList GetDestCategoryList(); /** * @brief 获得被控制的控件列表的parent的QModelIndex */ QModelIndex GetParentIndex(); /** * @brief 获得被控制的控件列表的parent的ID */ QString GetParentID(); /** * @brief 获得该控制信息对应的参数值 */ QString GetValue(); /** * @brief 获得参数控制的属性 */ QString GetProperty(); private: QString m_property; //参数控制的属性 QStringList m_destItemIDList; //被参数取值为m_value时控制的控件ID列表 QStringList m_destCategoryList; //被参数取值为m_value时控制的类别列表 QString m_value; //该控制信息对应的参数值 QModelIndex m_parentIndex; //被控制的控件列表的parent的QModelIndex QString m_parentID; //被控制的控件列表的parent的ID }; /** * @class ComplexInputDataParser * @brief ComplexInputDataParser对带onclick的InputData进行解析,InputData是工作流模块参数的一个属性 */ class ComplexInputDataParser { public: ComplexInputDataParser(QModelIndex inputIndex, QString inputData, QString inputValue, std::string inputID); /** * @brief 获得被该参数控制的控制信息列表 */ QList GetItemDataList(); /** * @brief 根据参数值和属性,获得被控制控件的InputData字符串 * @param inputdata 被控制控件原来的InputData字符串 * @param property 控件被控制的属性 * @param itemValue 控件被控制的参数值 * @return 根据以上参数得到的控件的InputData字符串,可用于设置InputData。 */ std::string ResetInputDataString(std::string inputdata, QString property, QString itemValue); private: QList m_itemDataList; //被该参数控制的控制信息列表 QString m_inputValue; //参数当前的值 QModelIndex m_inputIndex; //参数对应的QModelIndex }; } } #endif