From 8d7a578d6fbc7cb95f2dc979ccf6aa1b332f84eb Mon Sep 17 00:00:00 2001 From: Rebecca Cox Date: Fri, 1 Dec 2017 10:26:32 +0100 Subject: [PATCH] #2137 Formation Names: Update all plots necessary when changing formation names on case --- .../RigFemPartResultsCollection.cpp | 45 +++++++++++++---- .../RimMainPlotCollection.cpp | 49 +++++++++++++++++-- .../ProjectDataModel/RimMainPlotCollection.h | 1 + .../ReservoirDataModel/RigEclipseCaseData.cpp | 18 ++++++- 4 files changed, 97 insertions(+), 16 deletions(-) diff --git a/ApplicationCode/GeoMech/GeoMechDataModel/RigFemPartResultsCollection.cpp b/ApplicationCode/GeoMech/GeoMechDataModel/RigFemPartResultsCollection.cpp index d3b32816af..5d9b8c7b78 100644 --- a/ApplicationCode/GeoMech/GeoMechDataModel/RigFemPartResultsCollection.cpp +++ b/ApplicationCode/GeoMech/GeoMechDataModel/RigFemPartResultsCollection.cpp @@ -24,25 +24,35 @@ #ifdef USE_ODB_API #include "RifOdbReader.h" #endif -#include "RigFemScalarResultFrames.h" -#include "RigStatisticsDataCache.h" -#include "RigFemPartResults.h" + +#include "RiaApplication.h" + +#include "RigFemNativeStatCalc.h" #include "RigFemPartCollection.h" +#include "RigFemPartGrid.h" +#include "RigFemPartResults.h" +#include "RigFemScalarResultFrames.h" #include "RigFormationNames.h" +#include "RigStatisticsDataCache.h" + +#include "RimMainPlotCollection.h" +#include "RimProject.h" +#include "RimWellLogPlot.h" +#include "RimWellLogPlotCollection.h" #include "cafProgressInfo.h" #include "cvfBoundingBox.h" -#include -#include -#include -#include "RigFemNativeStatCalc.h" -#include "cafTensor3.h" #include "cafProgressInfo.h" -#include "RigFemPartGrid.h" +#include "cafTensor3.h" #include "cvfGeometryTools.h" #include "cvfMath.h" +#include + +#include +#include + //-------------------------------------------------------------------------------------------------- /// @@ -80,6 +90,23 @@ RigFemPartResultsCollection::~RigFemPartResultsCollection() void RigFemPartResultsCollection::setActiveFormationNames(RigFormationNames* activeFormationNames) { m_activeFormationNamesData = activeFormationNames; + + RimProject* project = RiaApplication::instance()->project(); + if (project) + { + if (project->mainPlotCollection()) + { + RimWellLogPlotCollection* plotCollection = project->mainPlotCollection()->wellLogPlotCollection(); + if (plotCollection) + { + for (RimWellLogPlot* wellLogPlot : plotCollection->wellLogPlots) + { + wellLogPlot->loadDataAndUpdate(); + } + } + } + } + this->deleteResult(RigFemResultAddress(RIG_FORMATION_NAMES, "Active Formation Names", "")); } diff --git a/ApplicationCode/ProjectDataModel/RimMainPlotCollection.cpp b/ApplicationCode/ProjectDataModel/RimMainPlotCollection.cpp index aa57302e3b..d4b2b73349 100644 --- a/ApplicationCode/ProjectDataModel/RimMainPlotCollection.cpp +++ b/ApplicationCode/ProjectDataModel/RimMainPlotCollection.cpp @@ -19,17 +19,21 @@ #include "RimMainPlotCollection.h" +#include "RimFlowCharacteristicsPlot.h" #include "RimFlowPlotCollection.h" -#include "RimProject.h" -#include "RimSummaryPlotCollection.h" -#include "RimSummaryCrossPlotCollection.h" -#include "RimRftPlotCollection.h" #include "RimPltPlotCollection.h" +#include "RimProject.h" +#include "RimRftPlotCollection.h" +#include "RimSummaryCrossPlotCollection.h" +#include "RimSummaryPlotCollection.h" +#include "RimViewWindow.h" +#include "RimWellLogPlot.h" #include "RimWellLogPlotCollection.h" +#include "RimWellPltPlot.h" +#include "RimWellRftPlot.h" #include "RiuMainWindow.h" #include "RiuProjectPropertyView.h" -#include "RimFlowCharacteristicsPlot.h" CAF_PDM_SOURCE_INIT(RimMainPlotCollection, "MainPlotCollection"); @@ -171,3 +175,38 @@ void RimMainPlotCollection::updateCurrentTimeStepInPlots() m_flowPlotCollection()->defaultFlowCharacteristicsPlot()->updateCurrentTimeStep(); } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimMainPlotCollection::updatePlotsWithFormations() +{ + if (m_wellLogPlotCollection) + { + for (RimWellLogPlot* wellLogPlot : m_wellLogPlotCollection->wellLogPlots()) + { + wellLogPlot->loadDataAndUpdate(); + } + } + + if (m_pltPlotCollection) + { + for (RimWellPltPlot* pltPlot : m_pltPlotCollection->pltPlots()) + { + pltPlot->loadDataAndUpdate(); + } + } + + if (m_rftPlotCollection) + { + for (RimWellRftPlot* rftPlot : m_rftPlotCollection->rftPlots()) + { + rftPlot->loadDataAndUpdate(); + } + } + + if (m_flowPlotCollection) + { + m_flowPlotCollection->loadDataAndUpdate(); + } +} + diff --git a/ApplicationCode/ProjectDataModel/RimMainPlotCollection.h b/ApplicationCode/ProjectDataModel/RimMainPlotCollection.h index d749572e63..c842bc03d0 100644 --- a/ApplicationCode/ProjectDataModel/RimMainPlotCollection.h +++ b/ApplicationCode/ProjectDataModel/RimMainPlotCollection.h @@ -58,6 +58,7 @@ public: void deleteAllContainedObjects(); void updateCurrentTimeStepInPlots(); + void updatePlotsWithFormations(); private: diff --git a/ApplicationCode/ReservoirDataModel/RigEclipseCaseData.cpp b/ApplicationCode/ReservoirDataModel/RigEclipseCaseData.cpp index 9624a58e74..50f645438b 100644 --- a/ApplicationCode/ReservoirDataModel/RigEclipseCaseData.cpp +++ b/ApplicationCode/ReservoirDataModel/RigEclipseCaseData.cpp @@ -20,18 +20,24 @@ #include "RigEclipseCaseData.h" +#include "RiaApplication.h" + #include "RigActiveCellInfo.h" #include "RigCaseCellResultsData.h" #include "RigFormationNames.h" #include "RigMainGrid.h" #include "RigResultAccessorFactory.h" #include "RigSimWellData.h" - -#include #include "RigSimulationWellCenterLineCalculator.h" #include "RigSimulationWellCoordsAndMD.h" #include "RigWellPath.h" +#include "RimFlowPlotCollection.h" +#include "RimMainPlotCollection.h" +#include "RimProject.h" + +#include + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- @@ -670,6 +676,14 @@ void RigEclipseCaseData::setActiveFormationNames(RigFormationNames* activeFormat } } + RimProject* project = RiaApplication::instance()->project(); + if (project) + { + if (project->mainPlotCollection()) + { + project->mainPlotCollection->updatePlotsWithFormations(); + } + } } //--------------------------------------------------------------------------------------------------