160 lines
5.4 KiB
C
160 lines
5.4 KiB
C
|
|
/**
|
|||
|
|
* @file PaiObjectBrowser.h
|
|||
|
|
* @brief 一个支持P.A.I系统对象浏览选择及输入(包括拖拽)的复合文本框
|
|||
|
|
* @date: 2012-3-1
|
|||
|
|
* @author: sinapec
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
#ifndef PAI_FRAME_WORKFLOWVIEW_PAIOBJECTBROWSER_H_
|
|||
|
|
#define PAI_FRAME_WORKFLOWVIEW_PAIOBJECTBROWSER_H_
|
|||
|
|
#include "ParameterItemControl.h"
|
|||
|
|
#include <QUuid>
|
|||
|
|
#include <QMap>
|
|||
|
|
class QStringListModel;
|
|||
|
|
namespace pai
|
|||
|
|
{
|
|||
|
|
namespace gui
|
|||
|
|
{
|
|||
|
|
/**
|
|||
|
|
* @class CPaiObjectBrowser
|
|||
|
|
* @brief 一个支持P.A.I系统对象浏览选择及输入(包括拖拽)的复合文本框
|
|||
|
|
*/
|
|||
|
|
class CPaiObjectBrowser:public PaiLineEdit,public CParameterItemControl
|
|||
|
|
{
|
|||
|
|
Q_OBJECT
|
|||
|
|
public:
|
|||
|
|
/**
|
|||
|
|
* @brief 构造函数
|
|||
|
|
* @param objectTypeID 对象类型
|
|||
|
|
* @param pParent 父控件的句柄
|
|||
|
|
*/
|
|||
|
|
CPaiObjectBrowser(const QList<QUuid>& lstObjectTypeIDs,QWidget* pParent = 0);
|
|||
|
|
/**
|
|||
|
|
* @brief 析构函数
|
|||
|
|
*/
|
|||
|
|
virtual ~CPaiObjectBrowser();
|
|||
|
|
/**
|
|||
|
|
* @brief 获取与text相对应的背后的Value
|
|||
|
|
*/
|
|||
|
|
QString GetData();
|
|||
|
|
/**
|
|||
|
|
* @brief 设置与text相对应的背后的Value
|
|||
|
|
* @param strData 与text相对应的背后的数据
|
|||
|
|
*/
|
|||
|
|
void SetData(const QString& strData);
|
|||
|
|
protected:
|
|||
|
|
/**
|
|||
|
|
* @brief 支持从P.A.I系统的数据树拖拽对象
|
|||
|
|
* @param e 拖拽事件
|
|||
|
|
*/
|
|||
|
|
virtual void dropEvent ( QDropEvent *pEvent);
|
|||
|
|
/**
|
|||
|
|
* @brief 重载此函数来判断拖拽进来的数据是否合法
|
|||
|
|
* @param e 拖拽事件
|
|||
|
|
*/
|
|||
|
|
virtual void dragEnterEvent ( QDragEnterEvent *pEvent);
|
|||
|
|
/**
|
|||
|
|
* @brief 重载该函数,为输入内容提供智能提示
|
|||
|
|
* @param e 焦点事件
|
|||
|
|
*/
|
|||
|
|
virtual void focusInEvent ( QFocusEvent * e );
|
|||
|
|
/**
|
|||
|
|
* @brief 重载该函数,根据输入内容匹配text相对应的背后数据
|
|||
|
|
* @param e 焦点事件
|
|||
|
|
*/
|
|||
|
|
virtual void focusOutEvent ( QFocusEvent * e );
|
|||
|
|
/**
|
|||
|
|
* @brief 将控件中显示的值转化成QVariant并返回
|
|||
|
|
*/
|
|||
|
|
virtual QVariant GetDisplayValue() const;
|
|||
|
|
/**
|
|||
|
|
* @brief 将控件对应的值转化成QVariant并返回
|
|||
|
|
*/
|
|||
|
|
virtual QVariant GetValue() const;
|
|||
|
|
/**
|
|||
|
|
* @brief 为控件设置当前显示值
|
|||
|
|
* @param varDisplayValue
|
|||
|
|
*/
|
|||
|
|
virtual void SetDisplayValue(const QVariant& varDisplayValue);
|
|||
|
|
/**
|
|||
|
|
* @brief 为控件设置对应的值
|
|||
|
|
*/
|
|||
|
|
virtual void SetValue(const QVariant& varValue);
|
|||
|
|
private:
|
|||
|
|
/**
|
|||
|
|
* @brief 从数据模型树获取所有支持类型的数据以供用户选择
|
|||
|
|
*/
|
|||
|
|
void BuildCompleteModel();
|
|||
|
|
private slots:
|
|||
|
|
/**
|
|||
|
|
* @brief 这个槽函数用来在用户清空编辑框时,将其对应的data也清空
|
|||
|
|
* @param strNewText 新输入的文本
|
|||
|
|
*/
|
|||
|
|
void slotOnTextEdited(const QString& strNewText);
|
|||
|
|
/**
|
|||
|
|
* @brief 下拉所有的可选数据
|
|||
|
|
*/
|
|||
|
|
void slotBrowseAllData();
|
|||
|
|
private:
|
|||
|
|
QList<QUuid> m_lstObjectTypeIDs;//支持的对象类型
|
|||
|
|
QString m_strData;//与text相对应的背后的Value
|
|||
|
|
QMap<QString,QString> m_mapTexts;//key代表显示出来的文本 value代表背后的值
|
|||
|
|
QStringListModel* m_pCompleterModel;
|
|||
|
|
QString m_strOldText;//之前输入的文本
|
|||
|
|
QString m_strOldValue;
|
|||
|
|
|
|||
|
|
signals:
|
|||
|
|
/**
|
|||
|
|
*@brief layerPick file 改变时发送该信号
|
|||
|
|
*/
|
|||
|
|
void signalLayerPickFileChanged(const QString& layerPickFile);
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @class CHdfsFileEditor
|
|||
|
|
* @brief 一个支持P.A.I系统输出模块的文本编译器
|
|||
|
|
*/
|
|||
|
|
class CHdfsFileEditor :public PaiLineEdit,public CParameterItemControl
|
|||
|
|
{
|
|||
|
|
/**
|
|||
|
|
* @brief 构造函数
|
|||
|
|
* @param objectTypeID 对象类型
|
|||
|
|
* @param pParent 父控件的句柄
|
|||
|
|
*/
|
|||
|
|
public:
|
|||
|
|
CHdfsFileEditor(const QUuid& workflowID, QWidget* pParent = 0);
|
|||
|
|
/**
|
|||
|
|
* @brief 析构函数
|
|||
|
|
*/
|
|||
|
|
virtual ~CHdfsFileEditor();
|
|||
|
|
/**
|
|||
|
|
* @brief 获取与text相对应的背后的Value
|
|||
|
|
*/
|
|||
|
|
QString GetData();
|
|||
|
|
protected:
|
|||
|
|
/**
|
|||
|
|
* @brief 将控件中显示的值转化成QVariant并返回
|
|||
|
|
*/
|
|||
|
|
virtual QVariant GetDisplayValue() const;
|
|||
|
|
/**
|
|||
|
|
* @brief 将控件对应的值转化成QVariant并返回
|
|||
|
|
*/
|
|||
|
|
virtual QVariant GetValue() const;
|
|||
|
|
/**
|
|||
|
|
* @brief 为控件设置当前显示值
|
|||
|
|
* @param varDisplayValue
|
|||
|
|
*/
|
|||
|
|
virtual void SetDisplayValue(const QVariant& varDisplayValue);
|
|||
|
|
/**
|
|||
|
|
* @brief 为控件设置对应的值
|
|||
|
|
*/
|
|||
|
|
virtual void SetValue(const QVariant& varValue);
|
|||
|
|
private:
|
|||
|
|
QUuid m_workflowID; //工作流ID
|
|||
|
|
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#endif /* PAI_FRAME_WORKFLOWVIEW_PAIOBJECTBROWSER_H_ */
|