Refactor RimElasticPropertyScalingCollection.

This commit is contained in:
Kristian Bendiksen
2026-01-05 13:15:47 +01:00
parent 79984604cc
commit d62a6017bf
4 changed files with 23 additions and 42 deletions
@@ -34,29 +34,7 @@ RimElasticPropertyScalingCollection::RimElasticPropertyScalingCollection()
{
CAF_PDM_InitScriptableObject( "Elastic Property Scalings" );
CAF_PDM_InitScriptableFieldNoDefault( &m_elasticPropertyScalings, "ElasticPropertyScalings", "Elastic Property Scalings" );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::vector<RimElasticPropertyScaling*> RimElasticPropertyScalingCollection::elasticPropertyScalings() const
{
std::vector<RimElasticPropertyScaling*> templates;
for ( auto& templ : m_elasticPropertyScalings )
{
templates.push_back( templ );
}
return templates;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimElasticPropertyScalingCollection::addElasticPropertyScaling( RimElasticPropertyScaling* scaling )
{
scaling->changed.connect( this, &RimElasticPropertyScalingCollection::elasticPropertyScalingChanged );
m_elasticPropertyScalings.push_back( scaling );
CAF_PDM_InitScriptableFieldNoDefault( &m_items, "ElasticPropertyScalings", "Elastic Property Scalings" );
}
//--------------------------------------------------------------------------------------------------
@@ -70,9 +48,9 @@ void RimElasticPropertyScalingCollection::elasticPropertyScalingChanged( const c
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimElasticPropertyScalingCollection::onChildDeleted( caf::PdmChildArrayFieldHandle* childArray,
std::vector<caf::PdmObjectHandle*>& referringObjects )
void RimElasticPropertyScalingCollection::onItemsChanged()
{
connectSignals();
changed.send();
}
@@ -83,7 +61,7 @@ double RimElasticPropertyScalingCollection::getScaling( const QString&
const QString& faciesName,
RiaDefines::CurveProperty property ) const
{
for ( const RimElasticPropertyScaling* scaling : m_elasticPropertyScalings )
for ( const RimElasticPropertyScaling* scaling : items() )
{
if ( scaling->property() == property && ( scaling->formation().compare( formationName, Qt::CaseInsensitive ) == 0 ) &&
( scaling->facies().compare( faciesName, Qt::CaseInsensitive ) == 0 ) && scaling->isChecked() )
@@ -101,7 +79,15 @@ double RimElasticPropertyScalingCollection::getScaling( const QString&
//--------------------------------------------------------------------------------------------------
void RimElasticPropertyScalingCollection::initAfterRead()
{
for ( auto& scaling : m_elasticPropertyScalings )
connectSignals();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimElasticPropertyScalingCollection::connectSignals()
{
for ( auto& scaling : items() )
{
scaling->changed.connect( this, &RimElasticPropertyScalingCollection::elasticPropertyScalingChanged );
}
@@ -18,19 +18,17 @@
#pragma once
#include "cafPdmChildArrayField.h"
#include "cafPdmField.h"
#include "cafPdmObject.h"
#include "RiaStimPlanModelDefines.h"
class RimElasticPropertyScaling;
#include "RimElasticPropertyScaling.h"
#include "cafPdmObjectCollection.h"
//==================================================================================================
///
///
//==================================================================================================
class RimElasticPropertyScalingCollection : public caf::PdmObject
class RimElasticPropertyScalingCollection : public caf::PdmObjectCollection<RimElasticPropertyScaling>
{
CAF_PDM_HEADER_INIT;
@@ -39,17 +37,14 @@ public:
caf::Signal<> changed;
std::vector<RimElasticPropertyScaling*> elasticPropertyScalings() const;
void addElasticPropertyScaling( RimElasticPropertyScaling* templ );
void onChildDeleted( caf::PdmChildArrayFieldHandle* childArray, std::vector<caf::PdmObjectHandle*>& referringObjects ) override;
// Domain-specific methods
double getScaling( const QString& formationName, const QString& faciesName, RiaDefines::CurveProperty property ) const;
protected:
void initAfterRead() override;
void onItemsChanged() override;
private:
void elasticPropertyScalingChanged( const caf::SignalEmitter* emitter );
caf::PdmChildArrayField<RimElasticPropertyScaling*> m_elasticPropertyScalings;
void connectSignals();
void elasticPropertyScalingChanged( const caf::SignalEmitter* emitter );
};