#5189 Grid Case Group: Read Well Data Source when importing project

This commit is contained in:
Magne Sjaastad
2019-12-05 13:53:03 +01:00
parent 8113782dd6
commit 1f7818098a
2 changed files with 34 additions and 31 deletions

View File

@@ -178,6 +178,8 @@ bool RimEclipseStatisticsCase::openEclipseGridFile()
this->setReservoirData( eclipseCase.p() ); this->setReservoirData( eclipseCase.p() );
loadSimulationWellDataFromSourceCase();
if ( m_populateSelectionAfterLoadingGrid ) if ( m_populateSelectionAfterLoadingGrid )
{ {
this->populateResultSelection(); this->populateResultSelection();
@@ -544,24 +546,21 @@ void RimEclipseStatisticsCase::fieldChangedByUi( const caf::PdmFieldHandle* chan
if ( &m_wellDataSourceCase == changedField ) if ( &m_wellDataSourceCase == changedField )
{ {
// Find or load well data for given case loadSimulationWellDataFromSourceCase();
RimEclipseCase* sourceResultCase = caseGroup()->caseCollection()->findByDescription( m_wellDataSourceCase );
if ( sourceResultCase )
{
sourceResultCase->openEclipseGridFile();
// Propagate well info to statistics case caf::ProgressInfo progInfo( reservoirViews().size() + 1, "Updating Well Data for Views" );
if ( sourceResultCase->eclipseCaseData() )
{ // Update views
const cvf::Collection<RigSimWellData>& sourceCaseSimWellData = for ( size_t i = 0; i < reservoirViews().size(); i++ )
sourceResultCase->eclipseCaseData()->wellResults();
setWellResultsAndUpdateViews( sourceCaseSimWellData );
}
}
else
{ {
cvf::Collection<RigSimWellData> sourceCaseWellResults; RimEclipseView* reservoirView = reservoirViews()[i];
setWellResultsAndUpdateViews( sourceCaseWellResults ); 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<RigSimWellData>& sourceCaseSimWellData ) void RimEclipseStatisticsCase::loadSimulationWellDataFromSourceCase()
{ {
this->eclipseCaseData()->setSimWellData( sourceCaseSimWellData ); // Find or load well data for given case
RimEclipseCase* sourceResultCase = caseGroup()->caseCollection()->findByDescription( m_wellDataSourceCase );
caf::ProgressInfo progInfo( reservoirViews().size() + 1, "Updating Well Data for Views" ); if ( sourceResultCase )
// Update views
for ( size_t i = 0; i < reservoirViews().size(); i++ )
{ {
RimEclipseView* reservoirView = reservoirViews()[i]; sourceResultCase->openEclipseGridFile();
CVF_ASSERT( reservoirView );
reservoirView->wellCollection()->wells.deleteAllChildObjects(); // Propagate well info to statistics case
reservoirView->updateDisplayModelForWellResults(); if ( sourceResultCase->eclipseCaseData() )
reservoirView->wellCollection()->updateConnectedEditors(); {
const cvf::Collection<RigSimWellData>& sourceCaseSimWellData =
sourceResultCase->eclipseCaseData()->wellResults();
progInfo.incrementProgress(); this->eclipseCaseData()->setSimWellData( sourceCaseSimWellData );
}
}
else
{
cvf::Collection<RigSimWellData> sourceCaseWellResults;
this->eclipseCaseData()->setSimWellData( sourceCaseWellResults );
} }
} }

View File

@@ -87,8 +87,6 @@ private:
void updateSelectionSummaryLabel(); void updateSelectionSummaryLabel();
void updatePercentileUiVisibility(); void updatePercentileUiVisibility();
void setWellResultsAndUpdateViews( const cvf::Collection<RigSimWellData>& sourceCaseSimWellData );
void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override; void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override;
QList<caf::PdmOptionItemInfo> calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions, QList<caf::PdmOptionItemInfo> calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions,
bool* useOptionsOnly ) override; bool* useOptionsOnly ) override;
@@ -96,6 +94,8 @@ private:
const QVariant& oldValue, const QVariant& oldValue,
const QVariant& newValue ) override; const QVariant& newValue ) override;
void loadSimulationWellDataFromSourceCase();
void defineEditorAttribute( const caf::PdmFieldHandle* field, void defineEditorAttribute( const caf::PdmFieldHandle* field,
QString uiConfigName, QString uiConfigName,
caf::PdmUiEditorAttribute* attribute ) override; caf::PdmUiEditorAttribute* attribute ) override;