|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
|
|
#include "iSubWndBaseAF.h"
|
|
|
|
|
|
|
|
|
|
|
|
class ZxDataGaugeBase;
|
|
|
|
|
|
class ZxDataObject;
|
|
|
|
|
|
class iGuiPlotInf;
|
|
|
|
|
|
class ZxObjBase;
|
|
|
|
|
|
class ZxObjPoint;
|
|
|
|
|
|
class ZxObjInfPoint;
|
|
|
|
|
|
|
|
|
|
|
|
class iWxRateInsert;
|
|
|
|
|
|
class iWxOptionSmooth;
|
|
|
|
|
|
class iWxOptionThinning;
|
|
|
|
|
|
class iWxPointSelPreview;
|
|
|
|
|
|
class iWxSwapPF;
|
|
|
|
|
|
class iSubWndBaseFit;
|
|
|
|
|
|
class iSubWndAnal;
|
|
|
|
|
|
|
|
|
|
|
|
class iWxInfDataPF;
|
|
|
|
|
|
class iDockBaseWx;
|
|
|
|
|
|
class iWxModelParameterUpDown;
|
|
|
|
|
|
|
|
|
|
|
|
class M_SUB_WND_EXPORT iSubWndInterfere : public iSubWndBaseAF
|
|
|
|
|
|
{
|
|
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
|
|
explicit iSubWndInterfere(QWidget *parent = 0, QString sExt = "");
|
|
|
|
|
|
~iSubWndInterfere();
|
|
|
|
|
|
|
|
|
|
|
|
// 配置窗体
|
|
|
|
|
|
virtual void configWnd(QString sPrevInfo);
|
|
|
|
|
|
|
|
|
|
|
|
virtual void loadData(QString sWell = ""); //加载数据
|
|
|
|
|
|
virtual void runUpdate(); //刷新
|
|
|
|
|
|
|
|
|
|
|
|
// 序列化
|
|
|
|
|
|
virtual void onSerialize(ZxSerializer* ser);
|
|
|
|
|
|
virtual void onDeserialize(ZxSerializer* ser);
|
|
|
|
|
|
virtual void onDeserialized();
|
|
|
|
|
|
|
|
|
|
|
|
// 保存加载
|
|
|
|
|
|
virtual bool loadRsts();
|
|
|
|
|
|
virtual bool saveRsts();
|
|
|
|
|
|
|
|
|
|
|
|
// 图件相关
|
|
|
|
|
|
virtual bool saveRstPlotInfos(ZxRstWnd* pRstWnd);
|
|
|
|
|
|
virtual bool loadRstPlotInfos(ZxRstWnd* pRstWnd);
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
|
|
// 外部调用
|
|
|
|
|
|
bool getInfInfos(QVector<ZxObjInfPoint*>& vecInfs);
|
|
|
|
|
|
void bindSubWndAnal(iSubWndAnal* p);
|
|
|
|
|
|
void freshAllInfPts();
|
|
|
|
|
|
|
|
|
|
|
|
// 当井相关的内容更改时进行相关的处理,比如更新一下井位图
|
|
|
|
|
|
virtual void dealwithWellChange(ZxDataWell* pDataWell, TreeNodeCmd o);
|
|
|
|
|
|
|
|
|
|
|
|
signals:
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
|
|
|
|
// 初始化UI
|
|
|
|
|
|
virtual QWidget* initUiMainWx();
|
|
|
|
|
|
virtual void initUiDockWxs();
|
|
|
|
|
|
virtual void initUiDockWxs_Chart();
|
|
|
|
|
|
virtual void initUiDockWxs_Table();
|
|
|
|
|
|
|
|
|
|
|
|
// 执行命令:通常来自图形右侧/左侧的工具栏
|
|
|
|
|
|
virtual bool runActionOf(QString sAction);
|
|
|
|
|
|
|
|
|
|
|
|
// 刷新
|
|
|
|
|
|
void updatePlots();
|
|
|
|
|
|
|
|
|
|
|
|
// 重新调整工具栏
|
|
|
|
|
|
virtual void reAdjustToolbar(QToolBar*);
|
|
|
|
|
|
|
|
|
|
|
|
// 点击一个InfPt,刷新右侧窗体
|
|
|
|
|
|
void freshRightWxsByObj(ZxObjBase* p, bool bPtsOnly);
|
|
|
|
|
|
void freshRstChartByObj(ZxObjBase* p, bool bPtsOnly);
|
|
|
|
|
|
|
|
|
|
|
|
public slots:
|
|
|
|
|
|
|
|
|
|
|
|
// Obj选择状态改变
|
|
|
|
|
|
void slotInfObjSelChanged(ZxObjBase*, bool);
|
|
|
|
|
|
|
|
|
|
|
|
// Obj数据发生了改变
|
|
|
|
|
|
void slotInfObjPtsChanged(ZxObjBase*);
|
|
|
|
|
|
|
|
|
|
|
|
// 获取当前中心井的压力和流量
|
|
|
|
|
|
void slotGetCentralDataPF(QVector<QPointF>& vecP,
|
|
|
|
|
|
QVector<QPointF>& vecF);
|
|
|
|
|
|
|
|
|
|
|
|
// 当前窗体所有信息的保存,比如关闭时提问的保存
|
|
|
|
|
|
virtual bool slotSaveAll();
|
|
|
|
|
|
|
|
|
|
|
|
// 井位图上右键按钮响应(需要自动获取当前选中的井点信息)
|
|
|
|
|
|
//void slotEditWellData(ZxDataWell* pDataWell, bool bEditable);
|
|
|
|
|
|
|
|
|
|
|
|
// 响应Well1Map2D 触发新建井
|
|
|
|
|
|
void slotCreateNewWellBy(VecPointF& vecInfPts, int nType, ZxDataWell*& pDataWell);
|
|
|
|
|
|
|
|
|
|
|
|
// 响应Well1Map2D 右键等Action
|
|
|
|
|
|
void slotRunInfAction(ZxDataWell* pDataWell, QString sAction, bool& bOK);
|
|
|
|
|
|
|
|
|
|
|
|
// 数据加载信号相应
|
|
|
|
|
|
virtual void slotPfObjSaved(ZxDataGaugeBase* p);
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
|
|
|
|
// 把流量数据应用于流动段,注意,此时,井已经缓存
|
|
|
|
|
|
void utilizeInfDataF(ZxDataGaugeBase* p);
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
|
|
|
|
// 绘图相关
|
|
|
|
|
|
iGuiPlotInf* m_pWxPlotInf;
|
|
|
|
|
|
|
|
|
|
|
|
// 关联的m_pAnalWnd,序列化需要特殊考虑
|
|
|
|
|
|
iSubWndAnal/*Seg*/* m_pAnalWnd;
|
|
|
|
|
|
|
|
|
|
|
|
iDockBaseWx* m_pWxDockRstChart; //模型参数
|
|
|
|
|
|
iGuiPlot* m_pWxRstPlot;
|
|
|
|
|
|
|
|
|
|
|
|
iDockBaseWx* m_pWxDockDataF;
|
|
|
|
|
|
iDockBaseWx* m_pWxDockDataP;
|
|
|
|
|
|
iWxInfDataPF* m_pWxDataF; //流量数据
|
|
|
|
|
|
iWxInfDataPF* m_pWxDataP;
|
|
|
|
|
|
|
|
|
|
|
|
bool m_bUtilizeNeeded; //临时变量
|
|
|
|
|
|
};
|