Assign calculation ID to existing addresses (#5304)

#5278 Assign calculation ID to existing addresses
This commit is contained in:
Magne Sjaastad 2020-01-07 12:29:12 +01:00 committed by GitHub
parent 4811cfb28f
commit 15dc0e974b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 51 additions and 2 deletions

View File

@ -71,7 +71,6 @@
#include "RimSummaryCaseMainCollection.h"
#include "RimSummaryCrossPlotCollection.h"
#include "RimSummaryPlot.h"
#include "RimSummaryPlotCollection.h"
#include "RimTextAnnotation.h"
#include "RimTextAnnotationInView.h"
#include "RimViewLinker.h"
@ -499,6 +498,12 @@ bool RiaApplication::loadProject( const QString& projectFileName,
}
}
{
RimMainPlotCollection* mainPlotColl = m_project->mainPlotCollection();
mainPlotColl->ensureCalculationIdsAreAssigned();
}
for ( RimOilField* oilField : m_project->oilFields )
{
if ( oilField == nullptr ) continue;

View File

@ -28,6 +28,7 @@
#include "RimProject.h"
#include "RimRftPlotCollection.h"
#include "RimSaturationPressurePlotCollection.h"
#include "RimSummaryAddress.h"
#include "RimSummaryCrossPlotCollection.h"
#include "RimSummaryPlotCollection.h"
#include "RimViewWindow.h"
@ -307,3 +308,17 @@ void RimMainPlotCollection::ensureDefaultFlowPlotsAreCreated()
{
m_flowPlotCollection()->ensureDefaultFlowPlotsAreCreated();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimMainPlotCollection::ensureCalculationIdsAreAssigned()
{
std::vector<RimSummaryAddress*> allAddresses;
this->descendantsIncludingThisOfType( allAddresses );
for ( RimSummaryAddress* adr : allAddresses )
{
adr->ensureIdIsAssigned();
}
}

View File

@ -67,6 +67,7 @@ public:
void updatePlotsWithCompletions();
void deleteAllCachedData();
void ensureDefaultFlowPlotsAreCreated();
void ensureCalculationIdsAreAssigned();
private:
// Overridden PDM methods

View File

@ -18,6 +18,12 @@
#include "RimSummaryAddress.h"
#include "RiaApplication.h"
#include "RimProject.h"
#include "RimSummaryCalculation.h"
#include "RimSummaryCalculationCollection.h"
namespace caf
{
template <>
@ -126,3 +132,24 @@ RifEclipseSummaryAddress RimSummaryAddress::address()
m_isErrorResult,
m_calculationId );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimSummaryAddress::ensureIdIsAssigned()
{
if ( m_category == RifEclipseSummaryAddress::SUMMARY_CALCULATED && m_calculationId == -1 )
{
RimSummaryCalculationCollection* calcColl = RiaApplication::instance()->project()->calculationCollection();
for ( const RimSummaryCalculation* c : calcColl->calculations() )
{
QString description = c->description();
if ( description == m_quantityName )
{
m_calculationId = c->id();
}
}
}
}

View File

@ -42,12 +42,13 @@ class RimSummaryAddress : public caf::PdmObject
public:
RimSummaryAddress();
;
~RimSummaryAddress() override;
void setAddress( const RifEclipseSummaryAddress& addr );
RifEclipseSummaryAddress address();
void ensureIdIsAssigned();
private:
caf::PdmField<caf::AppEnum<RifEclipseSummaryAddress::SummaryVarCategory>> m_category;
caf::PdmField<QString> m_quantityName;