You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nmWTAI-Platform/Include/mGui/mSubWnd/iSubWndMap.h

124 lines
3.1 KiB
C

#pragma once
#include "iSubWndBaseAF.h"
class ZxDataGaugeBase;
class ZxDataObject;
class iGuiPlotMap;
class ZxObjBase;
class ZxObjPoint;
class ZxObjWmPoint;
class iWxRateInsert;
class iWxOptionSmooth;
class iWxOptionThinning;
class iWxPointSelPreview;
class iWxSwapPF;
class iSubWndBaseFit;
class iSubWndAnal;
class iWxWmDataPF;
class iDockBaseWx;
class iWxModelParameterUpDown;
class M_SUB_WND_EXPORT iSubWndMap : public iSubWndBaseAF
{
Q_OBJECT
public:
explicit iSubWndMap(QWidget *parent = 0, QString sExt = "");
~iSubWndMap();
// 配置窗体
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 getWmInfos(QVector<ZxObjWmPoint*>& vecWms);
void bindSubWndAnal(iSubWndAnal* p);
void freshAllWmPts();
// 当井相关的内容更改时进行相关的处理,比如更新一下井位图
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*);
// 点击一个WmPt刷新右侧窗体
void freshRightWxsByObj(ZxObjBase* p, bool bPtsOnly);
void freshRstChartByObj(ZxObjBase* p, bool bPtsOnly);
public slots:
// Obj选择状态改变
void slotWmObjSelChanged(ZxObjBase*, bool);
// Obj数据发生了改变
void slotWmObjPtsChanged(ZxObjBase*);
// 获取当前中心井的压力和流量
void slotGetCentralDataPF(QVector<QPointF>& vecP,
QVector<QPointF>& vecF);
// 当前窗体所有信息的保存,比如关闭时提问的保存
virtual bool slotSaveAll();
// 井位图上右键按钮响应(需要自动获取当前选中的井点信息)
void slotSetAsCurWell(ZxDataWell* pDataWell);
void slotRunAnalPF(ZxDataWell* pDataWell);
void slotRunAnalNm(QVector<ZxDataWell*>& vecWells);
void slotEditWellData(ZxDataWell* pDataWell, bool bEditable);
// 触发新建井
void slotCreateNewWellBy(VecPointF& vecWmPts, int nType, ZxDataWell*& pDataWell);
private:
// 绘图相关
iGuiPlotMap* m_pWxPlotMap;
// 关联的m_pAnalWnd序列化需要特殊考虑
iSubWndAnal/*Seg*/* m_pAnalWnd;
iDockBaseWx* m_pWxDockRstChart; //模型参数
iGuiPlot* m_pWxRstPlot;
iDockBaseWx* m_pWxDockDataF;
iDockBaseWx* m_pWxDockDataP;
iWxWmDataPF* m_pWxDataF; //流量数据
iWxWmDataPF* m_pWxDataP;
};