From bc08aa1905b6da6697313489ee50b6ee7c11ec3d Mon Sep 17 00:00:00 2001 From: Kristian Bendiksen Date: Wed, 8 Apr 2020 14:30:38 +0200 Subject: [PATCH] #5775 Add case id to summary case. --- .../ProjectDataModel/RimProject.cpp | 19 ++++++++++++ ApplicationCode/ProjectDataModel/RimProject.h | 2 ++ .../Summary/RimSummaryCase.cpp | 31 +++++++++++++++++-- .../ProjectDataModel/Summary/RimSummaryCase.h | 6 +++- .../Summary/RimSummaryCaseMainCollection.cpp | 2 ++ 5 files changed, 57 insertions(+), 3 deletions(-) diff --git a/ApplicationCode/ProjectDataModel/RimProject.cpp b/ApplicationCode/ProjectDataModel/RimProject.cpp index e574a19bae..bb2c2d9398 100644 --- a/ApplicationCode/ProjectDataModel/RimProject.cpp +++ b/ApplicationCode/ProjectDataModel/RimProject.cpp @@ -113,6 +113,7 @@ RimProject::RimProject( void ) , m_nextValidViewId( 1 ) , m_nextValidPlotId( 1 ) , m_nextValidCalculationId( 1 ) + , m_nextValidSummaryCaseId( 1 ) { CAF_PDM_InitScriptableObjectWithNameAndComment( "Project", "", "", "", "Project", "The ResInsight Project" ); @@ -255,6 +256,7 @@ void RimProject::close() m_nextValidViewId = 1; m_nextValidPlotId = 1; m_nextValidCalculationId = 1; + m_nextValidSummaryCaseId = 1; } //-------------------------------------------------------------------------------------------------- @@ -485,6 +487,23 @@ void RimProject::setProjectFileNameAndUpdateDependencies( const QString& project wellPathImport->updateFilePaths(); } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimProject::assignCaseIdToSummaryCase( RimSummaryCase* summaryCase ) +{ + if ( summaryCase ) + { + std::vector summaryCases = allSummaryCases(); + for ( RimSummaryCase* s : summaryCases ) + { + m_nextValidSummaryCaseId = std::max( m_nextValidSummaryCaseId, s->caseId() + 1 ); + } + + summaryCase->setCaseId( m_nextValidSummaryCaseId++ ); + } +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ProjectDataModel/RimProject.h b/ApplicationCode/ProjectDataModel/RimProject.h index 9a43cb492e..bb75bf3f57 100644 --- a/ApplicationCode/ProjectDataModel/RimProject.h +++ b/ApplicationCode/ProjectDataModel/RimProject.h @@ -123,6 +123,7 @@ public: void assignViewIdToView( Rim3dView* view ); void assignPlotIdToPlotWindow( RimPlotWindow* plotWindow ); void assignCalculationIdToCalculation( RimSummaryCalculation* calculation ); + void assignCaseIdToSummaryCase( RimSummaryCase* summaryCase ); void allCases( std::vector& cases ) const; @@ -216,6 +217,7 @@ private: int m_nextValidViewId; int m_nextValidPlotId; int m_nextValidCalculationId; + int m_nextValidSummaryCaseId; caf::PdmChildArrayField casesObsolete; // obsolete caf::PdmChildArrayField caseGroupsObsolete; // obsolete diff --git a/ApplicationCode/ProjectDataModel/Summary/RimSummaryCase.cpp b/ApplicationCode/ProjectDataModel/Summary/RimSummaryCase.cpp index 98c87009ce..5e0ccac7c4 100644 --- a/ApplicationCode/ProjectDataModel/Summary/RimSummaryCase.cpp +++ b/ApplicationCode/ProjectDataModel/Summary/RimSummaryCase.cpp @@ -18,20 +18,21 @@ #include "RimSummaryCase.h" +#include "RiaApplication.h" #include "RiaSummaryTools.h" + #include "RicfCommandObject.h" #include "RifSummaryReaderInterface.h" #include "RimMainPlotCollection.h" #include "RimObservedDataCollection.h" +#include "RimObservedSummaryData.h" #include "RimOilField.h" #include "RimProject.h" #include "RimSummaryCaseCollection.h" #include "RimSummaryCaseMainCollection.h" #include "RimSummaryPlotCollection.h" -#include "RimObservedSummaryData.h" - #include "cafPdmFieldIOScriptability.h" #include "cvfAssert.h" @@ -60,6 +61,11 @@ RimSummaryCase::RimSummaryCase() "" ); m_summaryHeaderFilename.uiCapability()->setUiReadOnly( true ); + CAF_PDM_InitScriptableFieldWithIO( &m_caseId, "Id", -1, "Case ID", "", "", "" ); + m_caseId.registerKeywordAlias( "CaseId" ); + m_caseId.uiCapability()->setUiReadOnly( true ); + m_caseId.capability()->setIOWriteable( false ); + m_isObservedData = false; } @@ -252,6 +258,11 @@ RiaEclipseUnitTools::UnitSystemType RimSummaryCase::unitsSystem() //-------------------------------------------------------------------------------------------------- void RimSummaryCase::initAfterRead() { + if ( m_caseId() == -1 ) + { + RiaApplication::instance()->project()->assignCaseIdToSummaryCase( this ); + } + updateOptionSensitivity(); } @@ -351,3 +362,19 @@ void RimSummaryCase::resetAutoShortName() m_shortName = DEFAULT_DISPLAY_NAME; updateAutoShortName(); } + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimSummaryCase::setCaseId( int caseId ) +{ + m_caseId = caseId; +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +int RimSummaryCase::caseId() const +{ + return m_caseId(); +} diff --git a/ApplicationCode/ProjectDataModel/Summary/RimSummaryCase.h b/ApplicationCode/ProjectDataModel/Summary/RimSummaryCase.h index 91f96396a4..942764690a 100644 --- a/ApplicationCode/ProjectDataModel/Summary/RimSummaryCase.h +++ b/ApplicationCode/ProjectDataModel/Summary/RimSummaryCase.h @@ -47,6 +47,8 @@ public: virtual QString summaryHeaderFilename() const; QString displayCaseName() const; QString nativeCaseName() const; + void setCaseId( int caseId ); + int caseId() const; RiaEclipseUnitTools::UnitSystemType unitsSystem(); @@ -80,8 +82,9 @@ protected: virtual QString caseName() const = 0; + void initAfterRead() override; + private: - void initAfterRead() override; static QString uniqueShortNameForCase( RimSummaryCase* summaryCase ); protected: @@ -89,6 +92,7 @@ protected: caf::PdmField m_useAutoShortName; caf::PdmField m_summaryHeaderFilename; bool m_isObservedData; + caf::PdmField m_caseId; std::shared_ptr m_crlParameters; diff --git a/ApplicationCode/ProjectDataModel/Summary/RimSummaryCaseMainCollection.cpp b/ApplicationCode/ProjectDataModel/Summary/RimSummaryCaseMainCollection.cpp index 974674e551..b0a7441dd3 100644 --- a/ApplicationCode/ProjectDataModel/Summary/RimSummaryCaseMainCollection.cpp +++ b/ApplicationCode/ProjectDataModel/Summary/RimSummaryCaseMainCollection.cpp @@ -523,6 +523,7 @@ std::vector RimSummaryCaseMainCollection::createSummaryCasesFro newSumCase->setIncludeRestartFiles( fileInfo.includeRestartFiles() ); newSumCase->setAssociatedEclipseCase( eclCase ); newSumCase->updateOptionSensitivity(); + project->assignCaseIdToSummaryCase( newSumCase ); sumCases.push_back( newSumCase ); } else @@ -532,6 +533,7 @@ std::vector RimSummaryCaseMainCollection::createSummaryCasesFro newSumCase->setIncludeRestartFiles( fileInfo.includeRestartFiles() ); newSumCase->setSummaryHeaderFileName( fileInfo.summaryFileName() ); newSumCase->updateOptionSensitivity(); + project->assignCaseIdToSummaryCase( newSumCase ); sumCases.push_back( newSumCase ); }