#pragma once #include "nmDataAnalyzeContextProvider.h" #include "nmSubWnd_global.h" // 窗口层的数据分析上下文控制器 // 负责把数据层的上下文请求转发给iSubWndFitting,避免nmData直接依赖nmSubWnd class NM_SUB_WND_EXPORT nmSubWndDataAnalyzeController : public nmDataAnalyzeContextProvider { public: // 获取全局唯一的上下文控制器实例 static nmSubWndDataAnalyzeController* instance(); // 获取当前分析窗口选中的流动段索引 bool getCurrentSegmentIndex(void* pFitting, int& nIndexF); // 获取基础数据中的PVT相态类型 bool getBasicPft(void* pFitting, PvtFluidType& eType); // 按参数名获取PVT基础参数值 bool getPvtParaValues(void* pFitting, const QStringList& listParas, QMap& mapValues); // 获取基础分层数据 bool getBasicDataLayers(void* pFitting, VVecVariant& vvecLayerData); // 获取指定相态和参数名对应的PVT曲线结果 bool getPvtRstOf(void* pFitting, PvtFluidType eType, const QString& sPara, VecDouble& vecX, VecDouble& vecY); // 获取Diffusion页面中某个参数的具体数值 bool getDiffusionParaOf(void* pFitting, DiffusionSubOption dso, const QString& sPara, double& d); // 获取Diffusion页面中指定子项的计算结果 bool getDiffusionRstOf(void* pFitting, DiffusionSubOption dso, VVecDouble& vvec); // 获取当前结果窗口对应的数值结果保存目录 bool getSaveResultDir(void* pFitting, const QString& sRstCode, QString& sDir); private: nmSubWndDataAnalyzeController() {} };