This commit is contained in:
jonjenssen authored and jonjenssen committed 2025-04-05 15:22:33 +02:00
1 parent 5f0dd58de9
commit 876e460954
2 files changed
+30 -39

No files matched your search

@@ -81,6 +81,7 @@ void caf::AppEnum<RimStatisticsContourMap::StatisticsType>::setUp()
///
//--------------------------------------------------------------------------------------------------
RimStatisticsContourMap::RimStatisticsContourMap()
: m_openEclipseCase( nullptr )
{
CAF_PDM_InitObject( "Ensemble Contour Map", ":/Histogram16x16.png" );
@@ -119,12 +120,12 @@ RimStatisticsContourMap::RimStatisticsContourMap()
m_resultDefinition->setResultType( RiaDefines::ResultCatType::DYNAMIC_NATIVE );
m_resultDefinition->setResultVariable( "SOIL" );
CAF_PDM_InitField( &m_primaryCase,
"PrimaryCase",
RiaResultNames::undefinedResultName(),
"Primary Case",
"",
"Eclipse Case used for wells and faults shown in views, initializing available result list, timesteps, etc." );
CAF_PDM_InitFieldNoDefault( &m_primaryCase,
"PrimaryEclipseCase",
"Primary Case",
"",
"Eclipse Case used for wells and faults shown in views, initializing available result list, timesteps, "
"etc." );
CAF_PDM_InitFieldNoDefault( &m_computeStatisticsButton, "ComputeStatisticsButton", "" );
caf::PdmUiPushButtonEditor::configureEditorLabelLeft( &m_computeStatisticsButton );
@@ -153,7 +154,6 @@ void RimStatisticsContourMap::defineUiOrdering( QString uiConfigName, caf::PdmUi
{
auto selCase = ensemble()->cases().front();
setEclipseCase( selCase );
m_primaryCase = selCase->caseUserDescription();
}
bool computeOK = !( m_enableFormationFilter && m_selectedFormations().empty() );
@@ -233,16 +233,16 @@ void RimStatisticsContourMap::defineUiOrdering( QString uiConfigName, caf::PdmUi
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimStatisticsContourMap::setEclipseCase( RimEclipseCase* eclipseCase )
void RimStatisticsContourMap::setEclipseCase( RimEclipseCase* eCase )
{
m_resultDefinition->setEclipseCase( eclipseCase );
if ( eclipseCase )
{
m_primaryCase = eclipseCase->caseUserDescription();
m_resultDefinition->setEclipseCase( eCase );
m_primaryCase = eCase;
if ( eCase != nullptr )
{
if ( m_selectedTimeSteps().empty() )
{
int nSteps = (int)eclipseCase->timeStepStrings().size();
int nSteps = (int)eCase->timeStepStrings().size();
if ( nSteps > 0 )
{
m_selectedTimeSteps.setValue( { nSteps - 1 } );
@@ -252,7 +252,7 @@ void RimStatisticsContourMap::setEclipseCase( RimEclipseCase* eclipseCase )
for ( auto& view : m_views )
{
view->setEclipseCase( eclipseCase );
view->setEclipseCase( eCase );
}
m_resultDefinition->updateConnectedEditors();
}
@@ -299,7 +299,7 @@ void RimStatisticsContourMap::fieldChangedByUi( const caf::PdmFieldHandle* chang
{
switchToSelectedSourceCase();
// Update views
// Update well views as wells might have changed from last case
for ( auto& view : m_views )
{
view->wellCollection()->wells.deleteChildren();
@@ -312,28 +312,22 @@ void RimStatisticsContourMap::fieldChangedByUi( const caf::PdmFieldHandle* chang
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimEclipseCase* RimStatisticsContourMap::switchToSelectedSourceCase()
void RimStatisticsContourMap::switchToSelectedSourceCase()
{
RimEclipseCase* sourceResultCase = ensemble()->findByDescription( m_primaryCase );
if ( sourceResultCase == nullptr )
{
setEclipseCase( nullptr );
return nullptr;
}
auto newCase = eclipseCase();
if ( newCase == nullptr ) return;
if ( sourceResultCase != eclipseCase() )
if ( m_openEclipseCase != newCase )
{
auto oldCase = eclipseCase();
sourceResultCase->ensureReservoirCaseIsOpen();
setEclipseCase( sourceResultCase );
newCase->ensureReservoirCaseIsOpen();
if ( oldCase && !ensemble()->casesInViews().contains( oldCase ) )
if ( m_openEclipseCase && !ensemble()->casesInViews().contains( m_openEclipseCase ) )
{
oldCase->closeReservoirCase();
m_openEclipseCase->closeReservoirCase();
}
m_openEclipseCase = newCase;
setEclipseCase( newCase );
}
return sourceResultCase;
}
//--------------------------------------------------------------------------------------------------
@@ -359,12 +353,9 @@ QList<caf::PdmOptionItemInfo> RimStatisticsContourMap::calculateValueOptions( co
}
else if ( &m_primaryCase == fieldNeedingOptions )
{
QStringList sourceCaseNames;
sourceCaseNames += RiaResultNames::undefinedResultName();
for ( auto eCase : ensemble()->cases() )
{
options.push_back( caf::PdmOptionItemInfo( eCase->caseUserDescription(), eCase->caseUserDescription() ) );
options.push_back( caf::PdmOptionItemInfo( eCase->caseUserDescription(), eCase, false, eCase->uiIconProvider() ) );
}
return options;
}
@@ -628,9 +619,7 @@ void RimStatisticsContourMap::computeStatistics()
//--------------------------------------------------------------------------------------------------
RimEclipseCase* RimStatisticsContourMap::eclipseCase() const
{
if ( !m_resultDefinition() ) return nullptr;
return m_resultDefinition->eclipseCase();
return m_primaryCase();
}
//--------------------------------------------------------------------------------------------------
@@ -95,7 +95,7 @@ protected:
void appendMenuItems( caf::CmdFeatureMenuBuilder& menuBuilder ) const override;
QList<caf::PdmOptionItemInfo> calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions ) override;
RimEclipseCase* switchToSelectedSourceCase();
void switchToSelectedSourceCase();
private:
void computeStatistics();
@@ -110,7 +110,7 @@ private:
caf::PdmField<bool> m_computeStatisticsButton;
caf::PdmField<bool> m_enableFormationFilter;
caf::PdmField<std::vector<QString>> m_selectedFormations;
caf::PdmField<QString> m_primaryCase;
caf::PdmPtrField<RimEclipseCase*> m_primaryCase;
caf::PdmPtrArrayField<RimPolygon*> m_selectedPolygons;
caf::PdmField<caf::AppEnum<RimContourMapResolutionTools::SamplingResolution>> m_resolution;
@@ -124,4 +124,6 @@ private:
std::map<size_t, std::map<StatisticsType, std::vector<double>>> m_timeResults;
caf::PdmChildArrayField<RimStatisticsContourMapView*> m_views;
RimEclipseCase* m_openEclipseCase;
};