Improve property linking

* Allow linking of property filters across cases with same IJK size
* Recalculate when grid is replaced
Find dependencies between calculations and order them accordingly
This commit is contained in:
Magne Sjaastad
2022-11-22 10:22:17 +01:00
committed by GitHub
parent 10d5246644
commit a74b168e03
10 changed files with 143 additions and 79 deletions

View File

@@ -85,7 +85,7 @@ bool RimGridCalculation::calculate()
{
QString leftHandSideVariableName = RimGridCalculation::findLeftHandSide( m_expression );
RimEclipseCase* eclipseCase = destinationEclipseCase();
RimEclipseCase* eclipseCase = outputEclipseCase();
if ( !eclipseCase )
{
RiaLogging::errorInMessageBox( nullptr,
@@ -183,7 +183,7 @@ bool RimGridCalculation::calculate()
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimEclipseCase* RimGridCalculation::destinationEclipseCase() const
RimEclipseCase* RimGridCalculation::outputEclipseCase() const
{
return m_destinationCase;
}
@@ -345,6 +345,16 @@ void RimGridCalculation::onVariableUpdated( const SignalEmitter* emitter )
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RigEclipseResultAddress RimGridCalculation::outputAddress() const
{
QString leftHandSideVariableName = RimGridCalculation::findLeftHandSide( m_expression );
RigEclipseResultAddress resAddr( RiaDefines::ResultCatType::GENERATED, leftHandSideVariableName );
return resAddr;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -469,7 +479,7 @@ void RimGridCalculation::filterResults( RimGridView*
//--------------------------------------------------------------------------------------------------
void RimGridCalculation::updateDependentObjects()
{
RimEclipseCase* eclipseCase = destinationEclipseCase();
RimEclipseCase* eclipseCase = outputEclipseCase();
if ( eclipseCase )
{
RimReloadCaseTools::updateAll3dViews( eclipseCase );
@@ -487,7 +497,7 @@ void RimGridCalculation::removeDependentObjects()
RigEclipseResultAddress resAddr( RiaDefines::ResultCatType::GENERATED, leftHandSideVariableName );
RimEclipseCase* eclipseCase = destinationEclipseCase();
RimEclipseCase* eclipseCase = outputEclipseCase();
if ( eclipseCase )
{
// Select "None" result if the result that is being removed were displayed in a view.