#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 iWxModelParameterEx; class M_SUB_WND_EXPORT iSubWndMap : public iSubWndBaseAF { Q_OBJECT public: explicit iSubWndMap(QWidget *parent = 0, QString sExt = ""); ~iSubWndMap(); // 配置窗体 virtual void configWnd(); virtual void loadData(QString sWell = ""); //加载数据 virtual void runUpdate(); //刷新 // 序列化 virtual void onSerialize(ZxSerializer* ser); virtual void onDeserialize(ZxSerializer* ser); virtual void onDeserialized(); // 保存加载 virtual bool loadRss(); virtual bool saveRss(); public: // 外部调用 bool getWmInfos(QVector& vecWms); void bindSubWndAnal(iSubWndAnal* p); void freshWmPtC(); signals: protected: // 初始化UI virtual QWidget* initUiMainWx(); virtual void initUiDockWxs(); // 执行命令:通常来自图形右侧/左侧的工具栏 virtual bool runActionOf(QString sAction); // 刷新 void updatePlots(); // 重新调整工具栏 virtual void reAdjustToolbar(QToolBar*); // 点击一个WmPt,刷新右侧窗体 void freshRightWxsByObj(ZxObjBase* p, bool bPtsOnly); public slots: // Obj选择状态改变 void slotWmObjSelChanged(ZxObjBase*, bool); // Obj数据发生了改变 void slotWmObjPtsChanged(ZxObjBase*); // 获取当前中心井的压力和流量 void slotGetCentralDataPF(QVector& vecP, QVector& vecF); // 当前窗体所有信息的保存,比如关闭时提问的保存 virtual bool slotSaveAll(); private: // 绘图相关 iGuiPlotMap* m_pWxPlotMap; // 关联的m_pAnalWnd,序列化需要特殊考虑 iSubWndAnal/*Seg*/* m_pAnalWnd; iDockBaseWx* m_pWxDockModelParameter; //模型参数 iWxModelParameterEx* m_pWxModelParameter; iDockBaseWx* m_pWxDockDataF; iDockBaseWx* m_pWxDockDataP; iWxWmDataPF* m_pWxDataF; //流量数据 iWxWmDataPF* m_pWxDataP; };