From 1f7818098a9d08db06cc42177abbbac44e04b6fb Mon Sep 17 00:00:00 2001 From: Magne Sjaastad Date: Thu, 5 Dec 2019 13:53:03 +0100 Subject: [PATCH] #5189 Grid Case Group: Read Well Data Source when importing project --- .../RimEclipseStatisticsCase.cpp | 61 ++++++++++--------- .../RimEclipseStatisticsCase.h | 4 +- 2 files changed, 34 insertions(+), 31 deletions(-) diff --git a/ApplicationCode/ProjectDataModel/RimEclipseStatisticsCase.cpp b/ApplicationCode/ProjectDataModel/RimEclipseStatisticsCase.cpp index 9863786af6..f76cbb7db6 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipseStatisticsCase.cpp +++ b/ApplicationCode/ProjectDataModel/RimEclipseStatisticsCase.cpp @@ -178,6 +178,8 @@ bool RimEclipseStatisticsCase::openEclipseGridFile() this->setReservoirData( eclipseCase.p() ); + loadSimulationWellDataFromSourceCase(); + if ( m_populateSelectionAfterLoadingGrid ) { this->populateResultSelection(); @@ -544,24 +546,21 @@ void RimEclipseStatisticsCase::fieldChangedByUi( const caf::PdmFieldHandle* chan if ( &m_wellDataSourceCase == changedField ) { - // Find or load well data for given case - RimEclipseCase* sourceResultCase = caseGroup()->caseCollection()->findByDescription( m_wellDataSourceCase ); - if ( sourceResultCase ) - { - sourceResultCase->openEclipseGridFile(); + loadSimulationWellDataFromSourceCase(); - // Propagate well info to statistics case - if ( sourceResultCase->eclipseCaseData() ) - { - const cvf::Collection& sourceCaseSimWellData = - sourceResultCase->eclipseCaseData()->wellResults(); - setWellResultsAndUpdateViews( sourceCaseSimWellData ); - } - } - else + caf::ProgressInfo progInfo( reservoirViews().size() + 1, "Updating Well Data for Views" ); + + // Update views + for ( size_t i = 0; i < reservoirViews().size(); i++ ) { - cvf::Collection sourceCaseWellResults; - setWellResultsAndUpdateViews( sourceCaseWellResults ); + RimEclipseView* reservoirView = reservoirViews()[i]; + CVF_ASSERT( reservoirView ); + + reservoirView->wellCollection()->wells.deleteAllChildObjects(); + reservoirView->updateDisplayModelForWellResults(); + reservoirView->wellCollection()->updateConnectedEditors(); + + progInfo.incrementProgress(); } } } @@ -569,23 +568,27 @@ void RimEclipseStatisticsCase::fieldChangedByUi( const caf::PdmFieldHandle* chan //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -void RimEclipseStatisticsCase::setWellResultsAndUpdateViews( const cvf::Collection& sourceCaseSimWellData ) +void RimEclipseStatisticsCase::loadSimulationWellDataFromSourceCase() { - this->eclipseCaseData()->setSimWellData( sourceCaseSimWellData ); - - caf::ProgressInfo progInfo( reservoirViews().size() + 1, "Updating Well Data for Views" ); - - // Update views - for ( size_t i = 0; i < reservoirViews().size(); i++ ) + // Find or load well data for given case + RimEclipseCase* sourceResultCase = caseGroup()->caseCollection()->findByDescription( m_wellDataSourceCase ); + if ( sourceResultCase ) { - RimEclipseView* reservoirView = reservoirViews()[i]; - CVF_ASSERT( reservoirView ); + sourceResultCase->openEclipseGridFile(); - reservoirView->wellCollection()->wells.deleteAllChildObjects(); - reservoirView->updateDisplayModelForWellResults(); - reservoirView->wellCollection()->updateConnectedEditors(); + // Propagate well info to statistics case + if ( sourceResultCase->eclipseCaseData() ) + { + const cvf::Collection& sourceCaseSimWellData = + sourceResultCase->eclipseCaseData()->wellResults(); - progInfo.incrementProgress(); + this->eclipseCaseData()->setSimWellData( sourceCaseSimWellData ); + } + } + else + { + cvf::Collection sourceCaseWellResults; + this->eclipseCaseData()->setSimWellData( sourceCaseWellResults ); } } diff --git a/ApplicationCode/ProjectDataModel/RimEclipseStatisticsCase.h b/ApplicationCode/ProjectDataModel/RimEclipseStatisticsCase.h index ea2df79db9..e9dfb4aaeb 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipseStatisticsCase.h +++ b/ApplicationCode/ProjectDataModel/RimEclipseStatisticsCase.h @@ -87,8 +87,6 @@ private: void updateSelectionSummaryLabel(); void updatePercentileUiVisibility(); - void setWellResultsAndUpdateViews( const cvf::Collection& sourceCaseSimWellData ); - void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override; QList calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions, bool* useOptionsOnly ) override; @@ -96,6 +94,8 @@ private: const QVariant& oldValue, const QVariant& newValue ) override; + void loadSimulationWellDataFromSourceCase(); + void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) override;