mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#8773 Source Stepping : Realization cases are missing in some cases
This commit is contained in:
parent
22673c1073
commit
6417daf167
@ -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<QStringList> 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<QString> allAutoShortNames;
|
||||
|
||||
std::vector<RimSummaryCase*> 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 );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -19,9 +19,12 @@
|
||||
#pragma once
|
||||
|
||||
#include <QString>
|
||||
|
||||
#include <map>
|
||||
#include <vector>
|
||||
|
||||
class RimSummaryCase;
|
||||
|
||||
//==================================================================================================
|
||||
//
|
||||
//==================================================================================================
|
||||
@ -49,6 +52,9 @@ public:
|
||||
|
||||
static std::vector<QStringList> 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<QStringList>& fileNameComponents,
|
||||
|
@ -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<RimSummaryCase*> 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<QString> allAutoShortNames;
|
||||
|
||||
std::vector<RimSummaryCase*> 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();
|
||||
|
@ -95,9 +95,6 @@ protected:
|
||||
void initAfterRead() override;
|
||||
|
||||
private:
|
||||
static QString uniqueShortNameForEnsembleCase( RimSummaryCase* summaryCase );
|
||||
static QString uniqueShortNameForSummaryCase( RimSummaryCase* summaryCase );
|
||||
|
||||
void buildChildNodes();
|
||||
|
||||
protected:
|
||||
|
@ -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<caf::PdmOptionItemInfo>
|
||||
{
|
||||
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<caf::PdmFieldHandle*> RimSummaryPlotSourceStepping::activeFieldsForD
|
||||
m_summaryCase = *( sumCases.begin() );
|
||||
|
||||
fields.push_back( &m_summaryCase );
|
||||
|
||||
m_includeEnsembleCasesForCaseStepping.uiCapability()->setUiHidden( false );
|
||||
fields.push_back( &m_includeEnsembleCasesForCaseStepping );
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user