logplus/ModuleConsole/include/PaiObjectBrowser.h

160 lines
5.4 KiB
C
Raw Normal View History

2026-01-16 17:18:41 +08:00
/**
* @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_ */