From 6417daf167beec546accd6514b7cddc80865e21b Mon Sep 17 00:00:00 2001 From: Magne Sjaastad Date: Wed, 6 Apr 2022 08:43:02 +0200 Subject: [PATCH] #8773 Source Stepping : Realization cases are missing in some cases --- .../Tools/RiaEnsembleNameTools.cpp | 51 +++++++++++++++++ .../Application/Tools/RiaEnsembleNameTools.h | 6 ++ .../Summary/RimSummaryCase.cpp | 56 +------------------ .../ProjectDataModel/Summary/RimSummaryCase.h | 3 - .../Summary/RimSummaryPlotSourceStepping.cpp | 27 ++++++--- 5 files changed, 78 insertions(+), 65 deletions(-) diff --git a/ApplicationLibCode/Application/Tools/RiaEnsembleNameTools.cpp b/ApplicationLibCode/Application/Tools/RiaEnsembleNameTools.cpp index 3a484c80d3..51f4769348 100644 --- a/ApplicationLibCode/Application/Tools/RiaEnsembleNameTools.cpp +++ b/ApplicationLibCode/Application/Tools/RiaEnsembleNameTools.cpp @@ -22,6 +22,9 @@ #include "RiaTextStringTools.h" #include "RimCaseDisplayNameTools.h" +#include "RimProject.h" +#include "RimSummaryCase.h" +#include "RimSummaryCaseCollection.h" #include "cafAppEnum.h" @@ -131,6 +134,54 @@ std::vector RiaEnsembleNameTools::groupFilesByEnsemble( const QStri return groupedByIteration; } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +QString RiaEnsembleNameTools::uniqueShortNameForEnsembleCase( RimSummaryCase* summaryCase ) +{ + CAF_ASSERT( summaryCase && summaryCase->ensemble() ); + + auto ensembleCaseName = summaryCase->nativeCaseName(); + auto ensemble = summaryCase->ensemble(); + auto summaryCases = ensemble->allSummaryCases(); + + QStringList summaryFilePaths; + summaryFilePaths.push_back( summaryCase->summaryHeaderFilename() ); + + for ( auto otherSummaryCase : summaryCases ) + { + if ( otherSummaryCase != summaryCase ) + { + summaryFilePaths.push_back( otherSummaryCase->summaryHeaderFilename() ); + } + } + + return RiaEnsembleNameTools::uniqueShortName( summaryCase->summaryHeaderFilename(), summaryFilePaths, ensembleCaseName ); +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +QString RiaEnsembleNameTools::uniqueShortNameForSummaryCase( RimSummaryCase* summaryCase ) +{ + std::set allAutoShortNames; + + std::vector allCases; + RimProject::current()->descendantsOfType( allCases ); + + for ( auto sumCase : allCases ) + { + if ( sumCase && sumCase != summaryCase ) + { + allAutoShortNames.insert( sumCase->displayCaseName() ); + } + } + + return RimCaseDisplayNameTools::uniqueShortName( summaryCase->nativeCaseName(), + allAutoShortNames, + RimCaseDisplayNameTools::CASE_SHORT_NAME_LENGTH ); +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationLibCode/Application/Tools/RiaEnsembleNameTools.h b/ApplicationLibCode/Application/Tools/RiaEnsembleNameTools.h index ddf7290f79..d085814b54 100644 --- a/ApplicationLibCode/Application/Tools/RiaEnsembleNameTools.h +++ b/ApplicationLibCode/Application/Tools/RiaEnsembleNameTools.h @@ -19,9 +19,12 @@ #pragma once #include + #include #include +class RimSummaryCase; + //================================================================================================== // //================================================================================================== @@ -49,6 +52,9 @@ public: static std::vector groupFilesByEnsemble( const QStringList& fileNames, EnsembleGroupingMode groupingMode ); + static QString uniqueShortNameForEnsembleCase( RimSummaryCase* summaryCase ); + static QString uniqueShortNameForSummaryCase( RimSummaryCase* summaryCase ); + private: static QStringList findUniqueEnsembleNames( const QStringList& fileNames, const std::vector& fileNameComponents, diff --git a/ApplicationLibCode/ProjectDataModel/Summary/RimSummaryCase.cpp b/ApplicationLibCode/ProjectDataModel/Summary/RimSummaryCase.cpp index d715f50ad1..00c35f0dc6 100644 --- a/ApplicationLibCode/ProjectDataModel/Summary/RimSummaryCase.cpp +++ b/ApplicationLibCode/ProjectDataModel/Summary/RimSummaryCase.cpp @@ -304,58 +304,6 @@ void RimSummaryCase::initAfterRead() refreshMetaData(); } -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -QString RimSummaryCase::uniqueShortNameForEnsembleCase( RimSummaryCase* summaryCase ) -{ - CAF_ASSERT( summaryCase && summaryCase->ensemble() ); - - QString ensembleCaseName = summaryCase->caseName(); - - auto ensemble = summaryCase->ensemble(); - - std::vector summaryCases = ensemble->allSummaryCases(); - - QRegularExpression trimRe( "^[^a-zA-Z0-9]+" ); - - QStringList summaryFilePaths; - summaryFilePaths.push_back( summaryCase->summaryHeaderFilename() ); - - for ( auto otherSummaryCase : summaryCases ) - { - if ( otherSummaryCase != summaryCase ) - { - summaryFilePaths.push_back( otherSummaryCase->summaryHeaderFilename() ); - } - } - - return RiaEnsembleNameTools::uniqueShortName( summaryCase->summaryHeaderFilename(), summaryFilePaths, ensembleCaseName ); -} - -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -QString RimSummaryCase::uniqueShortNameForSummaryCase( RimSummaryCase* summaryCase ) -{ - std::set allAutoShortNames; - - std::vector allCases; - RimProject::current()->descendantsOfType( allCases ); - - for ( RimSummaryCase* sumCase : allCases ) - { - if ( sumCase && sumCase != summaryCase ) - { - allAutoShortNames.insert( sumCase->displayCaseName() ); - } - } - - return RimCaseDisplayNameTools::uniqueShortName( summaryCase->caseName(), - allAutoShortNames, - RimCaseDisplayNameTools::CASE_SHORT_NAME_LENGTH ); -} - //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- @@ -369,11 +317,11 @@ void RimSummaryCase::updateAutoShortName() { if ( ensemble() ) { - m_displayName = RimSummaryCase::uniqueShortNameForEnsembleCase( this ); + m_displayName = RiaEnsembleNameTools::uniqueShortNameForEnsembleCase( this ); } else { - m_displayName = RimSummaryCase::uniqueShortNameForSummaryCase( this ); + m_displayName = RiaEnsembleNameTools::uniqueShortNameForSummaryCase( this ); } } updateTreeItemName(); diff --git a/ApplicationLibCode/ProjectDataModel/Summary/RimSummaryCase.h b/ApplicationLibCode/ProjectDataModel/Summary/RimSummaryCase.h index a87b9352cb..52545d57d5 100644 --- a/ApplicationLibCode/ProjectDataModel/Summary/RimSummaryCase.h +++ b/ApplicationLibCode/ProjectDataModel/Summary/RimSummaryCase.h @@ -95,9 +95,6 @@ protected: void initAfterRead() override; private: - static QString uniqueShortNameForEnsembleCase( RimSummaryCase* summaryCase ); - static QString uniqueShortNameForSummaryCase( RimSummaryCase* summaryCase ); - void buildChildNodes(); protected: diff --git a/ApplicationLibCode/ProjectDataModel/Summary/RimSummaryPlotSourceStepping.cpp b/ApplicationLibCode/ProjectDataModel/Summary/RimSummaryPlotSourceStepping.cpp index 7e9e3fcb20..7c604b2383 100644 --- a/ApplicationLibCode/ProjectDataModel/Summary/RimSummaryPlotSourceStepping.cpp +++ b/ApplicationLibCode/ProjectDataModel/Summary/RimSummaryPlotSourceStepping.cpp @@ -18,6 +18,7 @@ #include "RimSummaryPlotSourceStepping.h" +#include "RiaEnsembleNameTools.h" #include "RiaGuiApplication.h" #include "RiaStdStringTools.h" #include "RiaSummaryAddressAnalyzer.h" @@ -58,8 +59,8 @@ RimSummaryPlotSourceStepping::RimSummaryPlotSourceStepping() CAF_PDM_InitField( &m_includeEnsembleCasesForCaseStepping, "IncludeEnsembleCasesForCaseStepping", - false, - "Allow Stepping on Ensemble cases" ); + true, + "Include Ensemble Cases in Case List" ); CAF_PDM_InitFieldNoDefault( &m_wellName, "WellName", "Well Name" ); CAF_PDM_InitFieldNoDefault( &m_wellGroupName, "GroupName", "Group Name" ); @@ -195,21 +196,32 @@ QList { return caf::PdmObject::calculateValueOptions( fieldNeedingOptions, useOptionsOnly ); } - else if ( fieldNeedingOptions == &m_placeholderForLabel ) + + if ( fieldNeedingOptions == &m_placeholderForLabel ) { return options; } - else if ( fieldNeedingOptions == &m_summaryCase ) + + if ( fieldNeedingOptions == &m_summaryCase ) { auto summaryCases = RimSummaryPlotSourceStepping::summaryCasesForSourceStepping(); for ( auto sumCase : summaryCases ) { - options.append( caf::PdmOptionItemInfo( sumCase->displayCaseName(), sumCase ) ); + if ( sumCase->ensemble() ) + { + auto name = sumCase->ensemble()->name() + " : " + sumCase->displayCaseName(); + options.append( caf::PdmOptionItemInfo( name, sumCase ) ); + } + else + { + options.append( caf::PdmOptionItemInfo( sumCase->displayCaseName(), sumCase ) ); + } } return options; } - else if ( fieldNeedingOptions == &m_ensemble ) + + if ( fieldNeedingOptions == &m_ensemble ) { RimProject* proj = RimProject::current(); for ( auto ensemble : proj->summaryGroups() ) @@ -745,8 +757,7 @@ std::vector RimSummaryPlotSourceStepping::activeFieldsForD m_summaryCase = *( sumCases.begin() ); fields.push_back( &m_summaryCase ); - - m_includeEnsembleCasesForCaseStepping.uiCapability()->setUiHidden( false ); + fields.push_back( &m_includeEnsembleCasesForCaseStepping ); } }