Add import/export grid calculations to Grid Calculator

Refactoring
This commit is contained in:
Magne Sjaastad 2023-11-10 09:16:06 +01:00
parent f49053c61d
commit 69f132ffa5
15 changed files with 403 additions and 6 deletions

View File

@ -229,6 +229,8 @@ RiaPreferences::RiaPreferences()
CAF_PDM_InitField( &m_useQtChartsPlotByDefault, "useQtChartsPlotByDefault", false, "Use QtChart as Default Plot Type" ); CAF_PDM_InitField( &m_useQtChartsPlotByDefault, "useQtChartsPlotByDefault", false, "Use QtChart as Default Plot Type" );
caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_useQtChartsPlotByDefault ); caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_useQtChartsPlotByDefault );
CAF_PDM_InitFieldNoDefault( &m_gridCalculationExpressionFolder, "gridCalculationExpressionFolder", "Grid Calculation Expression Folder" );
CAF_PDM_InitField( &m_surfaceImportResamplingDistance, CAF_PDM_InitField( &m_surfaceImportResamplingDistance,
"SurfaceImportResamplingDistance", "SurfaceImportResamplingDistance",
100.0, 100.0,
@ -292,6 +294,10 @@ void RiaPreferences::defineEditorAttribute( const caf::PdmFieldHandle* field, QS
myAttr->m_selectDirectory = true; myAttr->m_selectDirectory = true;
myAttr->m_appendUiSelectedFolderToText = true; myAttr->m_appendUiSelectedFolderToText = true;
} }
else if ( field == &m_gridCalculationExpressionFolder )
{
myAttr->m_selectDirectory = true;
}
} }
} }
@ -448,6 +454,9 @@ void RiaPreferences::defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering&
exportGroup->add( &csvTextExportFieldSeparator ); exportGroup->add( &csvTextExportFieldSeparator );
exportGroup->add( &m_openExportedPdfInViewer ); exportGroup->add( &m_openExportedPdfInViewer );
exportGroup->add( &m_writeEchoInGrdeclFiles ); exportGroup->add( &m_writeEchoInGrdeclFiles );
caf::PdmUiGroup* otherGroup = uiOrdering.addNewGroup( "Other" );
otherGroup->add( &m_gridCalculationExpressionFolder );
} }
else if ( RiaApplication::enableDevelopmentFeatures() && uiConfigName == RiaPreferences::tabNameSystem() ) else if ( RiaApplication::enableDevelopmentFeatures() && uiConfigName == RiaPreferences::tabNameSystem() )
{ {
@ -838,6 +847,14 @@ QString RiaPreferences::defaultMultiLateralWellNamePattern()
return "?*Y*"; return "?*Y*";
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RiaPreferences::gridCalculationExpressionFolder() const
{
return m_gridCalculationExpressionFolder().path();
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@ -102,6 +102,8 @@ public:
QString multiLateralWellNamePattern() const; QString multiLateralWellNamePattern() const;
static QString defaultMultiLateralWellNamePattern(); static QString defaultMultiLateralWellNamePattern();
QString gridCalculationExpressionFolder() const;
// 3D view // 3D view
RiaDefines::MeshModeType defaultMeshModeType() const; RiaDefines::MeshModeType defaultMeshModeType() const;
RiaDefines::RINavigationPolicy navigationPolicy() const; RiaDefines::RINavigationPolicy navigationPolicy() const;
@ -193,6 +195,8 @@ private:
caf::PdmField<caf::FilePath> m_lastUsedPlotTemplate; caf::PdmField<caf::FilePath> m_lastUsedPlotTemplate;
caf::PdmField<bool> m_useQtChartsPlotByDefault; caf::PdmField<bool> m_useQtChartsPlotByDefault;
caf::PdmField<caf::FilePath> m_gridCalculationExpressionFolder;
// Script paths // Script paths
caf::PdmField<QString> m_octaveExecutable; caf::PdmField<QString> m_octaveExecutable;
caf::PdmField<QString> m_pythonExecutable; caf::PdmField<QString> m_pythonExecutable;

View File

@ -89,6 +89,8 @@ set(SOURCE_GROUP_HEADER_FILES
${CMAKE_CURRENT_LIST_DIR}/RicImportRevealSummaryCaseFeature.h ${CMAKE_CURRENT_LIST_DIR}/RicImportRevealSummaryCaseFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicImportStimPlanSummaryCaseFeature.h ${CMAKE_CURRENT_LIST_DIR}/RicImportStimPlanSummaryCaseFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicCopyGridStatisticsToClipboardFeature.h ${CMAKE_CURRENT_LIST_DIR}/RicCopyGridStatisticsToClipboardFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicExportGridCalculationExpressionsFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicImportGridCalculationExpressionsFeature.h
) )
set(SOURCE_GROUP_SOURCE_FILES set(SOURCE_GROUP_SOURCE_FILES
@ -181,6 +183,8 @@ set(SOURCE_GROUP_SOURCE_FILES
${CMAKE_CURRENT_LIST_DIR}/RicImportRevealSummaryCaseFeature.cpp ${CMAKE_CURRENT_LIST_DIR}/RicImportRevealSummaryCaseFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportStimPlanSummaryCaseFeature.cpp ${CMAKE_CURRENT_LIST_DIR}/RicImportStimPlanSummaryCaseFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicCopyGridStatisticsToClipboardFeature.cpp ${CMAKE_CURRENT_LIST_DIR}/RicCopyGridStatisticsToClipboardFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicExportGridCalculationExpressionsFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicImportGridCalculationExpressionsFeature.cpp
) )
if(RESINSIGHT_USE_QT_CHARTS) if(RESINSIGHT_USE_QT_CHARTS)

View File

@ -0,0 +1,91 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2023 Equinor ASA
//
// ResInsight is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.
//
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
// for more details.
//
/////////////////////////////////////////////////////////////////////////////////
#include "RicExportGridCalculationExpressionsFeature.h"
#include "RiaGuiApplication.h"
#include "RiaLogging.h"
#include "RiaPreferences.h"
#include "RimGridCalculationCollection.h"
#include "RimProject.h"
#include "RiuFileDialogTools.h"
#include <QAction>
#include <QFile>
#include <QFileInfo>
CAF_CMD_SOURCE_INIT( RicExportGridCalculationExpressionsFeature, "RicExportGridCalculationExpressionsFeature" );
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RicExportGridCalculationExpressionsFeature::gridCalculationExpressionId()
{
return "GRID_CALCULATION_EXPRESSION";
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RicExportGridCalculationExpressionsFeature::onActionTriggered( bool isChecked )
{
auto proj = RimProject::current();
auto calcColl = proj->gridCalculationCollection();
if ( calcColl->calculations().empty() ) return;
auto objectAsText = calcColl->writeObjectToXmlString();
if ( objectAsText.isEmpty() ) return;
QString fallbackPath = RiaPreferences::current()->gridCalculationExpressionFolder();
auto app = RiaGuiApplication::instance();
QString startPath =
app->lastUsedDialogDirectoryWithFallback( RicExportGridCalculationExpressionsFeature::gridCalculationExpressionId(), fallbackPath );
QString fileName = RiuFileDialogTools::getSaveFileName( nullptr,
"Select File for Grid Calculation Expression Export",
startPath,
"Xml File(*.xml);;All files(*.*)" );
if ( fileName.isEmpty() ) return;
QFile exportFile( fileName );
if ( !exportFile.open( QIODevice::WriteOnly | QIODevice::Text ) )
{
RiaLogging::errorInMessageBox( nullptr,
"Export Grid Calculation Expressions",
QString( "Could not save to the file: %1" ).arg( fileName ) );
return;
}
QString absPath = QFileInfo( fileName ).absolutePath();
app->setLastUsedDialogDirectory( RicExportGridCalculationExpressionsFeature::gridCalculationExpressionId(), absPath );
QTextStream stream( &exportFile );
stream << objectAsText;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RicExportGridCalculationExpressionsFeature::setupActionLook( QAction* actionToSetup )
{
actionToSetup->setText( "Export Grid Calculation Expressions" );
actionToSetup->setIcon( QIcon( ":/Calculator.svg" ) );
}

View File

@ -0,0 +1,35 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2023 Equinor ASA
//
// ResInsight is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.
//
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
// for more details.
//
/////////////////////////////////////////////////////////////////////////////////
#pragma once
#include "cafCmdFeature.h"
//==================================================================================================
///
//==================================================================================================
class RicExportGridCalculationExpressionsFeature : public caf::CmdFeature
{
CAF_CMD_HEADER_INIT;
static QString gridCalculationExpressionId();
private:
void onActionTriggered( bool isChecked ) override;
void setupActionLook( QAction* actionToSetup ) override;
};

View File

@ -22,6 +22,9 @@
#include "RimProject.h" #include "RimProject.h"
#include "RimUserDefinedCalculationCollection.h" #include "RimUserDefinedCalculationCollection.h"
#include "cafCmdFeature.h"
#include "cafCmdFeatureManager.h"
CAF_PDM_SOURCE_INIT( RicGridCalculatorUi, "RicGridCalculator" ); CAF_PDM_SOURCE_INIT( RicGridCalculatorUi, "RicGridCalculator" );
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@ -30,6 +33,12 @@ CAF_PDM_SOURCE_INIT( RicGridCalculatorUi, "RicGridCalculator" );
RicGridCalculatorUi::RicGridCalculatorUi() RicGridCalculatorUi::RicGridCalculatorUi()
{ {
CAF_PDM_InitObject( "RicGridCalculator" ); CAF_PDM_InitObject( "RicGridCalculator" );
CAF_PDM_InitFieldNoDefault( &m_importCalculations, "ImportCalculations", "Import Calculations" );
RicUserDefinedCalculatorUi::assignPushButtonEditor( &m_importCalculations );
CAF_PDM_InitFieldNoDefault( &m_exportCalculations, "ExportCalculations", "Export Calculations" );
RicUserDefinedCalculatorUi::assignPushButtonEditor( &m_exportCalculations );
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@ -55,6 +64,68 @@ void RicGridCalculatorUi::notifyCalculatedNameChanged( int id, const QString& ne
{ {
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RicGridCalculatorUi::defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering )
{
RicUserDefinedCalculatorUi::defineUiOrdering( uiConfigName, uiOrdering );
caf::PdmUiGroup* group = uiOrdering.findGroup( calculationsGroupName() );
if ( group )
{
caf::PdmUiOrdering::LayoutOptions layoutOptions;
layoutOptions.newRow = false;
group->add( &m_importCalculations );
group->add( &m_exportCalculations, layoutOptions );
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RicGridCalculatorUi::fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue )
{
RicUserDefinedCalculatorUi::fieldChangedByUi( changedField, oldValue, newValue );
if ( changedField == &m_importCalculations )
{
if ( auto feature = caf::CmdFeatureManager::instance()->getCommandFeature( "RicImportGridCalculationExpressionsFeature" ) )
{
feature->action()->trigger();
}
m_importCalculations = false;
}
else if ( changedField == &m_exportCalculations )
{
if ( auto feature = caf::CmdFeatureManager::instance()->getCommandFeature( "RicExportGridCalculationExpressionsFeature" ) )
{
feature->action()->trigger();
}
m_exportCalculations = false;
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RicGridCalculatorUi::defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute )
{
RicUserDefinedCalculatorUi::defineEditorAttribute( field, uiConfigName, attribute );
if ( &m_importCalculations == field )
{
RicUserDefinedCalculatorUi::assignPushButtonEditorText( attribute, "Import Calculations" );
}
else if ( &m_exportCalculations == field )
{
RicUserDefinedCalculatorUi::assignPushButtonEditorText( attribute, "Export Calculations" );
}
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@ -36,4 +36,13 @@ public:
QString calulationGroupName() const override; QString calulationGroupName() const override;
RimUserDefinedCalculationCollection* calculationCollection() const override; RimUserDefinedCalculationCollection* calculationCollection() const override;
void notifyCalculatedNameChanged( int id, const QString& newName ) const override; void notifyCalculatedNameChanged( int id, const QString& newName ) const override;
protected:
void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override;
void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override;
void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) override;
private:
caf::PdmField<bool> m_exportCalculations;
caf::PdmField<bool> m_importCalculations;
}; };

View File

@ -0,0 +1,96 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2023 Equinor ASA
//
// ResInsight is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.
//
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
// for more details.
//
/////////////////////////////////////////////////////////////////////////////////
#include "RicImportGridCalculationExpressionsFeature.h"
#include "RicExportGridCalculationExpressionsFeature.h"
#include "RiaGuiApplication.h"
#include "RiaLogging.h"
#include "RiaPreferences.h"
#include "RimEclipseCaseTools.h"
#include "RimGridCalculationCollection.h"
#include "RimProject.h"
#include "RiuFileDialogTools.h"
#include "cafPdmDefaultObjectFactory.h"
#include "cafPdmXmlObjectHandle.h"
#include <QAction>
#include <QFile>
#include <QFileInfo>
#include <QTextStream>
CAF_CMD_SOURCE_INIT( RicImportGridCalculationExpressionsFeature, "RicImportGridCalculationExpressionsFeature" );
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RicImportGridCalculationExpressionsFeature::onActionTriggered( bool isChecked )
{
auto app = RiaGuiApplication::instance();
QString defaultDir = app->lastUsedDialogDirectoryWithFallback( RicExportGridCalculationExpressionsFeature::gridCalculationExpressionId(),
RiaPreferences::current()->gridCalculationExpressionFolder() );
QString fileName =
RiuFileDialogTools::getOpenFileName( nullptr, "Import Grid Calculation Expressions", defaultDir, "Xml File(*.xml);;All files(*.*)" );
if ( fileName.isEmpty() ) return;
QFile importFile( fileName );
if ( !importFile.open( QIODevice::ReadOnly | QIODevice::Text ) )
{
RiaLogging::error( QString( "Import Grid Calculation Expressions : Could not open the file: %1" ).arg( fileName ) );
return;
}
QTextStream stream( &importFile );
QString objectAsText = stream.readAll();
auto proj = RimProject::current();
auto calcColl = proj->gridCalculationCollection();
RimEclipseCase* firstCase = nullptr;
auto eclCases = RimEclipseCaseTools::allEclipseGridCases();
if ( !eclCases.empty() ) firstCase = eclCases.front();
RimGridCalculationCollection tmp;
tmp.xmlCapability()->readObjectFromXmlString( objectAsText, caf::PdmDefaultObjectFactory::instance() );
for ( auto calc : tmp.calculations() )
{
auto gridCalculation = dynamic_cast<RimGridCalculation*>( calcColl->addCalculationCopy( calc ) );
if ( gridCalculation && firstCase )
{
gridCalculation->assignEclipseCaseForNullPointers( firstCase );
}
}
QString absPath = QFileInfo( fileName ).absolutePath();
app->setLastUsedDialogDirectory( RicExportGridCalculationExpressionsFeature::gridCalculationExpressionId(), absPath );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RicImportGridCalculationExpressionsFeature::setupActionLook( QAction* actionToSetup )
{
actionToSetup->setText( "Import Grid Calculation Expressions" );
actionToSetup->setIcon( QIcon( ":/Calculator.svg" ) );
}

View File

@ -0,0 +1,33 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2023 Equinor ASA
//
// ResInsight is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.
//
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
// for more details.
//
/////////////////////////////////////////////////////////////////////////////////
#pragma once
#include "cafCmdFeature.h"
//==================================================================================================
///
//==================================================================================================
class RicImportGridCalculationExpressionsFeature : public caf::CmdFeature
{
CAF_CMD_HEADER_INIT;
private:
void onActionTriggered( bool isChecked ) override;
void setupActionLook( QAction* actionToSetup ) override;
};

View File

@ -133,7 +133,10 @@ void RicUserDefinedCalculatorUi::defineUiOrdering( QString uiConfigName, caf::Pd
caf::PdmUiGroup* group = uiOrdering.addNewGroupWithKeyword( "Calculations", calculationsGroupName() ); caf::PdmUiGroup* group = uiOrdering.addNewGroupWithKeyword( "Calculations", calculationsGroupName() );
group->add( &m_currentCalculation ); group->add( &m_currentCalculation );
group->add( &m_newCalculation ); group->add( &m_newCalculation );
group->add( &m_deleteCalculation );
caf::PdmUiOrdering::LayoutOptions layoutOptions;
layoutOptions.newRow = false;
group->add( &m_deleteCalculation, layoutOptions );
} }
{ {

View File

@ -48,18 +48,19 @@ public:
virtual RimUserDefinedCalculationCollection* calculationCollection() const = 0; virtual RimUserDefinedCalculationCollection* calculationCollection() const = 0;
virtual void notifyCalculatedNameChanged( int id, const QString& newName ) const = 0; virtual void notifyCalculatedNameChanged( int id, const QString& newName ) const = 0;
private: protected:
void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override;
void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override; void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override;
QList<caf::PdmOptionItemInfo> calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions ) override; void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override;
void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) override; void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) override;
void onEditorWidgetsCreated() override;
private:
// TODO : Move to a common caf helper class // TODO : Move to a common caf helper class
static void assignPushButtonEditor( caf::PdmFieldHandle* fieldHandle ); static void assignPushButtonEditor( caf::PdmFieldHandle* fieldHandle );
static void assignPushButtonEditorText( caf::PdmUiEditorAttribute* attribute, const QString& text ); static void assignPushButtonEditorText( caf::PdmUiEditorAttribute* attribute, const QString& text );
private:
QList<caf::PdmOptionItemInfo> calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions ) override;
void onEditorWidgetsCreated() override;
private: private:
caf::PdmPtrField<RimUserDefinedCalculation*> m_currentCalculation; caf::PdmPtrField<RimUserDefinedCalculation*> m_currentCalculation;

View File

@ -655,6 +655,28 @@ bool RimGridCalculation::calculateForCases( const std::vector<RimEclipseCase*>&
return !anyErrorsDetected; return !anyErrorsDetected;
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimGridCalculation::assignEclipseCaseForNullPointers( RimEclipseCase* eclipseCase )
{
if ( m_destinationCase() == nullptr )
{
m_destinationCase = eclipseCase;
}
for ( auto v : m_variables )
{
if ( auto gridVar = dynamic_cast<RimGridCalculationVariable*>( v.p() ) )
{
if ( gridVar->eclipseCase() == nullptr )
{
gridVar->setEclipseCase( eclipseCase );
}
}
}
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@ -58,6 +58,7 @@ public:
std::vector<RimEclipseCase*> outputEclipseCases() const; std::vector<RimEclipseCase*> outputEclipseCases() const;
RigEclipseResultAddress outputAddress() const; RigEclipseResultAddress outputAddress() const;
bool calculateForCases( const std::vector<RimEclipseCase*>& calculationCases, std::optional<std::vector<size_t>> timeSteps ); bool calculateForCases( const std::vector<RimEclipseCase*>& calculationCases, std::optional<std::vector<size_t>> timeSteps );
void assignEclipseCaseForNullPointers( RimEclipseCase* eclipseCase );
std::vector<RimEclipseCase*> inputCases() const; std::vector<RimEclipseCase*> inputCases() const;

View File

@ -73,6 +73,14 @@ QString RimGridCalculationVariable::displayString() const
return nameComponents.join( " - " ); return nameComponents.join( " - " );
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimGridCalculationVariable::setEclipseCase( RimEclipseCase* eclipseCase )
{
m_eclipseCase = eclipseCase;
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@ -46,6 +46,8 @@ public:
QString displayString() const override; QString displayString() const override;
void setEclipseCase( RimEclipseCase* eclipseCase );
RimEclipseCase* eclipseCase() const; RimEclipseCase* eclipseCase() const;
RiaDefines::ResultCatType resultCategoryType() const; RiaDefines::ResultCatType resultCategoryType() const;
QString resultVariable() const; QString resultVariable() const;