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++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#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;
};