#10861 Add import/export for grid calculations

This commit is contained in:
Kristian Bendiksen
2023-11-24 11:42:31 +01:00
parent 52259a69f3
commit fa7a56f1e2
18 changed files with 440 additions and 42 deletions

View File

@@ -64,11 +64,12 @@ public:
std::vector<RimEclipseCase*> inputCases() const;
RimGridCalculationVariable* createVariable() override;
protected:
void onChildrenUpdated( caf::PdmChildArrayFieldHandle* childArray, std::vector<caf::PdmObjectHandle*>& updatedObjects ) override;
RimGridCalculationVariable* createVariable() override;
std::pair<bool, QString> validateVariables();
std::pair<bool, QString> validateVariables();
std::vector<double> getInputVectorForVariable( RimGridCalculationVariable* v,
size_t tsId,

View File

@@ -178,6 +178,14 @@ QString RimUserDefinedCalculation::unitName() const
return m_unit;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimUserDefinedCalculation::setUnit( const QString& unit )
{
m_unit = unit;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@@ -54,10 +54,10 @@ public:
std::vector<RimUserDefinedCalculationVariable*> allVariables() const;
void setExpression( const QString& expr );
QString expression() const;
QString unitName() const;
void setExpression( const QString& expr );
QString expression() const;
void setUnit( const QString& unit );
QString unitName() const;
bool parseExpression();
virtual bool preCalculate() const;
virtual bool calculate() = 0;
@@ -71,6 +71,8 @@ public:
QString shortName() const;
RimUserDefinedCalculationVariable* addVariable( const QString& name );
protected:
virtual RimUserDefinedCalculationVariable* createVariable() = 0;
@@ -79,7 +81,6 @@ protected:
void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) override;
RimUserDefinedCalculationVariable* findByName( const QString& name ) const;
RimUserDefinedCalculationVariable* addVariable( const QString& name );
void deleteVariable( RimUserDefinedCalculationVariable* calcVariable );
virtual QString buildCalculationName() const;

View File

@@ -40,15 +40,18 @@ RimUserDefinedCalculationCollection::RimUserDefinedCalculationCollection()
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimUserDefinedCalculation* RimUserDefinedCalculationCollection::addCalculation()
RimUserDefinedCalculation* RimUserDefinedCalculationCollection::addCalculation( bool addDefaultExpression )
{
RimUserDefinedCalculation* calculation = createCalculation();
assignCalculationIdToCalculation( calculation );
QString varName = QString( "Calculation_%1" ).arg( calculation->id() );
calculation->setDescription( varName );
calculation->setExpression( varName + " := x + y" );
calculation->parseExpression();
if ( addDefaultExpression )
{
QString varName = QString( "Calculation_%1" ).arg( calculation->id() );
calculation->setDescription( varName );
calculation->setExpression( varName + " := x + y" );
calculation->parseExpression();
}
m_calculations.push_back( calculation );

View File

@@ -37,7 +37,7 @@ class RimUserDefinedCalculationCollection : public caf::PdmObject
public:
RimUserDefinedCalculationCollection();
RimUserDefinedCalculation* addCalculation();
RimUserDefinedCalculation* addCalculation( bool addDefaultExpression = true );
RimUserDefinedCalculation* addCalculationCopy( const RimUserDefinedCalculation* sourceCalculation );
void deleteCalculation( RimUserDefinedCalculation* calculation );
std::vector<RimUserDefinedCalculation*> calculations() const;