#5441 Summary Case : Add public methods displayCaseName and nativeCaseName

This commit is contained in:
Magne Sjaastad
2020-01-30 14:23:33 +01:00
parent d8ef29a3c0
commit 7722893f0c
19 changed files with 129 additions and 115 deletions

View File

@@ -116,7 +116,7 @@ QString RiaSummaryCurveDefinition::curveDefinitionText() const
{ {
QString caseName; QString caseName;
if ( summaryCase() ) if ( summaryCase() )
caseName = summaryCase()->caseName(); caseName = summaryCase()->displayCaseName();
else if ( ensemble() ) else if ( ensemble() )
caseName = ensemble()->name(); caseName = ensemble()->name();
@@ -176,11 +176,11 @@ bool RiaSummaryCurveDefinition::operator<( const RiaSummaryCurveDefinition& othe
if ( m_summaryCase ) if ( m_summaryCase )
{ {
summaryCaseName = m_summaryCase->caseName(); summaryCaseName = m_summaryCase->displayCaseName();
} }
if ( other.summaryCase() ) if ( other.summaryCase() )
{ {
otherSummaryCaseName = other.summaryCase()->caseName(); otherSummaryCaseName = other.summaryCase()->displayCaseName();
} }
// First check if names are different to ensure stable alphabetic sort // First check if names are different to ensure stable alphabetic sort

View File

@@ -748,7 +748,7 @@ std::set<RifEclipseSummaryAddress>
if ( !usedFilters[cfIdx] ) if ( !usedFilters[cfIdx] )
{ {
RiaLogging::warning( "Vector filter \"" + summaryAddressFilters[static_cast<int>( cfIdx )] + RiaLogging::warning( "Vector filter \"" + summaryAddressFilters[static_cast<int>( cfIdx )] +
"\" did not match anything in case: \"" + sumCase->caseName() + "\"" ); "\" did not match anything in case: \"" + sumCase->nativeCaseName() + "\"" );
} }
} }
} }
@@ -780,7 +780,7 @@ std::vector<RimSummaryCurve*> RicSummaryPlotFeatureImpl::addCurvesFromAddressFil
if ( !usedFilters[cfIdx] ) if ( !usedFilters[cfIdx] )
{ {
RiaLogging::warning( "Vector filter \"" + curveFilters[static_cast<int>( cfIdx )] + RiaLogging::warning( "Vector filter \"" + curveFilters[static_cast<int>( cfIdx )] +
"\" did not match anything in case: \"" + summaryCase->caseName() + "\"" ); "\" did not match anything in case: \"" + summaryCase->nativeCaseName() + "\"" );
} }
} }

View File

@@ -244,7 +244,7 @@ bool operator<( const RifDataSourceForRftPlt& addr1, const RifDataSourceForRftPl
{ {
if ( addr1.summaryCase() && addr2.summaryCase() ) if ( addr1.summaryCase() && addr2.summaryCase() )
{ {
if ( addr1.summaryCase()->caseName() == addr2.summaryCase()->caseName() ) if ( addr1.summaryCase()->displayCaseName() == addr2.summaryCase()->displayCaseName() )
{ {
if ( addr1.ensemble() && addr2.ensemble() ) if ( addr1.ensemble() && addr2.ensemble() )
{ {
@@ -252,7 +252,7 @@ bool operator<( const RifDataSourceForRftPlt& addr1, const RifDataSourceForRftPl
} }
return addr1.ensemble() < addr2.ensemble(); return addr1.ensemble() < addr2.ensemble();
} }
return addr1.summaryCase()->caseName() < addr2.summaryCase()->caseName(); return addr1.summaryCase()->displayCaseName() < addr2.summaryCase()->displayCaseName();
} }
return addr1.summaryCase() < addr2.summaryCase(); return addr1.summaryCase() < addr2.summaryCase();
} }

View File

@@ -28,11 +28,8 @@
#include "RimGeoMechModels.h" #include "RimGeoMechModels.h"
#include "RimMeasurement.h" #include "RimMeasurement.h"
#include "RimObservedDataCollection.h" #include "RimObservedDataCollection.h"
#include "RimObservedSummaryData.h"
#include "RimSummaryCase.h"
#include "RimSummaryCaseMainCollection.h" #include "RimSummaryCaseMainCollection.h"
#include "RimSurfaceCollection.h" #include "RimSurfaceCollection.h"
#include "RimValveTemplateCollection.h"
#include "RimWellPathCollection.h" #include "RimWellPathCollection.h"
CAF_PDM_SOURCE_INIT( RimOilField, "ResInsightOilField" ); CAF_PDM_SOURCE_INIT( RimOilField, "ResInsightOilField" );
@@ -128,73 +125,6 @@ const RimValveTemplateCollection* RimOilField::valveTemplateCollection() const
return completionTemplateCollection()->valveTemplateCollection(); return completionTemplateCollection()->valveTemplateCollection();
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RimOilField::uniqueShortNameForCase( RimSummaryCase* summaryCase )
{
std::set<QString> allAutoShortNames;
std::vector<RimSummaryCase*> allCases = summaryCaseMainCollection->allSummaryCases();
std::vector<RimObservedSummaryData*> observedDataCases = observedDataCollection->allObservedSummaryData();
for ( auto observedData : observedDataCases )
{
allCases.push_back( observedData );
}
for ( RimSummaryCase* sumCase : allCases )
{
if ( sumCase && sumCase != summaryCase )
{
allAutoShortNames.insert( sumCase->shortName() );
}
}
bool foundUnique = false;
QString caseName = summaryCase->caseName();
QString shortName;
if ( caseName.size() > 2 )
{
QString candidate;
candidate += caseName[0];
for ( int i = 1; i < caseName.size(); ++i )
{
if ( allAutoShortNames.count( candidate + caseName[i] ) == 0 )
{
shortName = candidate + caseName[i];
foundUnique = true;
break;
}
}
}
else
{
shortName = caseName.left( 2 );
if ( allAutoShortNames.count( shortName ) == 0 )
{
foundUnique = true;
}
}
int autoNumber = 0;
while ( !foundUnique )
{
QString candidate = shortName + QString::number( autoNumber++ );
if ( allAutoShortNames.count( candidate ) == 0 )
{
shortName = candidate;
foundUnique = true;
}
}
return shortName;
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@@ -57,8 +57,6 @@ public:
RimValveTemplateCollection* valveTemplateCollection(); RimValveTemplateCollection* valveTemplateCollection();
const RimValveTemplateCollection* valveTemplateCollection() const; const RimValveTemplateCollection* valveTemplateCollection() const;
QString uniqueShortNameForCase( RimSummaryCase* summaryCase );
caf::PdmChildField<RimEclipseCaseCollection*> analysisModels; caf::PdmChildField<RimEclipseCaseCollection*> analysisModels;
caf::PdmChildField<RimGeoMechModels*> geoMechModels; caf::PdmChildField<RimGeoMechModels*> geoMechModels;
caf::PdmChildField<RimWellPathCollection*> wellPathCollection; caf::PdmChildField<RimWellPathCollection*> wellPathCollection;

View File

@@ -132,7 +132,7 @@ void RimSummaryCalculationVariable::fieldChangedByUi( const caf::PdmFieldHandle*
QString RimSummaryCalculationVariable::summaryAddressDisplayString() const QString RimSummaryCalculationVariable::summaryAddressDisplayString() const
{ {
QString caseName; QString caseName;
if ( m_case() ) caseName = m_case()->caseName(); if ( m_case() ) caseName = m_case()->displayCaseName();
return RiaSummaryCurveDefinition::curveDefinitionText( caseName, m_summaryAddress()->address() ); return RiaSummaryCurveDefinition::curveDefinitionText( caseName, m_summaryAddress()->address() );
} }

View File

@@ -336,7 +336,7 @@ QString RimWellLogRftCurve::createCurveAutoName()
} }
else if ( m_summaryCase ) else if ( m_summaryCase )
{ {
name.push_back( m_summaryCase->caseName() ); name.push_back( m_summaryCase->displayCaseName() );
} }
else if ( m_observedFmuRftData ) else if ( m_observedFmuRftData )
{ {

View File

@@ -184,8 +184,8 @@ void RimDerivedEnsembleCase::calculate( const RifEclipseSummaryAddress& address
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
QString RimDerivedEnsembleCase::caseName() const QString RimDerivedEnsembleCase::caseName() const
{ {
auto case1Name = m_summaryCase1->caseName(); auto case1Name = m_summaryCase1->displayCaseName();
auto case2Name = m_summaryCase2->caseName(); auto case2Name = m_summaryCase2->displayCaseName();
if ( case1Name == case2Name ) if ( case1Name == case2Name )
return case1Name; return case1Name;

View File

@@ -22,6 +22,7 @@
#include "RifSummaryReaderInterface.h" #include "RifSummaryReaderInterface.h"
#include "RimMainPlotCollection.h" #include "RimMainPlotCollection.h"
#include "RimObservedDataCollection.h"
#include "RimOilField.h" #include "RimOilField.h"
#include "RimProject.h" #include "RimProject.h"
#include "RimSummaryCaseCollection.h" #include "RimSummaryCaseCollection.h"
@@ -30,6 +31,7 @@
#include "cvfAssert.h" #include "cvfAssert.h"
#include "RimObservedSummaryData.h"
#include <QFileInfo> #include <QFileInfo>
CAF_PDM_ABSTRACT_SOURCE_INIT( RimSummaryCase, "SummaryCase" ); CAF_PDM_ABSTRACT_SOURCE_INIT( RimSummaryCase, "SummaryCase" );
@@ -178,6 +180,14 @@ RifReaderRftInterface* RimSummaryCase::rftReader()
return nullptr; return nullptr;
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RimSummaryCase::errorMessagesFromReader()
{
return QString();
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@@ -191,8 +201,8 @@ void RimSummaryCase::defineUiTreeOrdering( caf::PdmUiTreeOrdering& uiTreeOrderin
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RimSummaryCase::updateTreeItemName() void RimSummaryCase::updateTreeItemName()
{ {
if ( caseName() != shortName() ) if ( caseName() != displayCaseName() )
this->setUiName( caseName() + " (" + shortName() + ")" ); this->setUiName( caseName() + " (" + displayCaseName() + ")" );
else else
this->setUiName( caseName() ); this->setUiName( caseName() );
} }
@@ -200,11 +210,19 @@ void RimSummaryCase::updateTreeItemName()
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
QString RimSummaryCase::shortName() const QString RimSummaryCase::displayCaseName() const
{ {
return m_shortName(); return m_shortName();
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RimSummaryCase::nativeCaseName() const
{
return caseName();
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@@ -226,6 +244,77 @@ void RimSummaryCase::initAfterRead()
updateOptionSensitivity(); updateOptionSensitivity();
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RimSummaryCase::uniqueShortNameForCase( RimSummaryCase* summaryCase )
{
RimOilField* oilField = nullptr;
summaryCase->firstAncestorOrThisOfType( oilField );
CVF_ASSERT( oilField );
std::set<QString> allAutoShortNames;
std::vector<RimSummaryCase*> allCases = oilField->summaryCaseMainCollection->allSummaryCases();
std::vector<RimObservedSummaryData*> observedDataCases = oilField->observedDataCollection->allObservedSummaryData();
for ( auto observedData : observedDataCases )
{
allCases.push_back( observedData );
}
for ( RimSummaryCase* sumCase : allCases )
{
if ( sumCase && sumCase != summaryCase )
{
allAutoShortNames.insert( sumCase->displayCaseName() );
}
}
bool foundUnique = false;
QString caseName = summaryCase->caseName();
QString shortName;
if ( caseName.size() > 2 )
{
QString candidate;
candidate += caseName[0];
for ( int i = 1; i < caseName.size(); ++i )
{
if ( allAutoShortNames.count( candidate + caseName[i] ) == 0 )
{
shortName = candidate + caseName[i];
foundUnique = true;
break;
}
}
}
else
{
shortName = caseName.left( 2 );
if ( allAutoShortNames.count( shortName ) == 0 )
{
foundUnique = true;
}
}
int autoNumber = 0;
while ( !foundUnique )
{
QString candidate = shortName + QString::number( autoNumber++ );
if ( allAutoShortNames.count( candidate ) == 0 )
{
shortName = candidate;
foundUnique = true;
}
}
return shortName;
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@@ -233,11 +322,7 @@ void RimSummaryCase::updateAutoShortName()
{ {
if ( m_useAutoShortName ) if ( m_useAutoShortName )
{ {
RimOilField* oilField = nullptr; m_shortName = RimSummaryCase::uniqueShortNameForCase( this );
this->firstAncestorOrThisOfType( oilField );
CVF_ASSERT( oilField );
m_shortName = oilField->uniqueShortNameForCase( this );
} }
else if ( m_shortName() == DEFAULT_DISPLAY_NAME ) else if ( m_shortName() == DEFAULT_DISPLAY_NAME )
{ {

View File

@@ -45,8 +45,8 @@ public:
~RimSummaryCase() override; ~RimSummaryCase() override;
virtual QString summaryHeaderFilename() const; virtual QString summaryHeaderFilename() const;
virtual QString caseName() const = 0; QString displayCaseName() const;
QString shortName() const; QString nativeCaseName() const;
RiaEclipseUnitTools::UnitSystemType unitsSystem(); RiaEclipseUnitTools::UnitSystemType unitsSystem();
@@ -58,10 +58,7 @@ public:
virtual void createRftReaderInterface() {} virtual void createRftReaderInterface() {}
virtual RifSummaryReaderInterface* summaryReader() = 0; virtual RifSummaryReaderInterface* summaryReader() = 0;
virtual RifReaderRftInterface* rftReader(); virtual RifReaderRftInterface* rftReader();
virtual QString errorMessagesFromReader() virtual QString errorMessagesFromReader();
{
return QString();
}
virtual void updateFilePathsFromProjectPath( const QString& newProjectPath, const QString& oldProjectPath ) = 0; virtual void updateFilePathsFromProjectPath( const QString& newProjectPath, const QString& oldProjectPath ) = 0;
@@ -83,6 +80,13 @@ protected:
void defineUiTreeOrdering( caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName = "" ) override; void defineUiTreeOrdering( caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName = "" ) override;
void updateTreeItemName(); void updateTreeItemName();
virtual QString caseName() const = 0;
private:
void initAfterRead() override;
static QString uniqueShortNameForCase( RimSummaryCase* summaryCase );
protected:
caf::PdmField<QString> m_shortName; caf::PdmField<QString> m_shortName;
caf::PdmField<bool> m_useAutoShortName; caf::PdmField<bool> m_useAutoShortName;
caf::PdmField<caf::FilePath> m_summaryHeaderFilename; caf::PdmField<caf::FilePath> m_summaryHeaderFilename;
@@ -91,7 +95,4 @@ protected:
std::shared_ptr<RigCaseRealizationParameters> m_crlParameters; std::shared_ptr<RigCaseRealizationParameters> m_crlParameters;
static const QString DEFAULT_DISPLAY_NAME; static const QString DEFAULT_DISPLAY_NAME;
private:
void initAfterRead() override;
}; };

View File

@@ -544,13 +544,13 @@ QString RimSummaryCaseMainCollection::uniqueShortNameForCase( RimSummaryCase* su
{ {
if ( sumCase && sumCase != summaryCase ) if ( sumCase && sumCase != summaryCase )
{ {
allAutoShortNames.insert( sumCase->shortName() ); allAutoShortNames.insert( sumCase->displayCaseName() );
} }
} }
bool foundUnique = false; bool foundUnique = false;
QString caseName = summaryCase->caseName(); QString caseName = summaryCase->nativeCaseName();
QString shortName; QString shortName;
if ( caseName.size() > 2 ) if ( caseName.size() > 2 )

View File

@@ -385,7 +385,7 @@ QList<caf::PdmOptionItemInfo> RimSummaryCurve::calculateValueOptions( const caf:
for ( RimSummaryCase* rimCase : cases ) for ( RimSummaryCase* rimCase : cases )
{ {
options.push_back( caf::PdmOptionItemInfo( rimCase->caseName(), rimCase ) ); options.push_back( caf::PdmOptionItemInfo( rimCase->displayCaseName(), rimCase ) );
} }
if ( options.size() > 0 ) if ( options.size() > 0 )
@@ -794,12 +794,12 @@ QString RimSummaryCurve::curveExportDescription( const RifEclipseSummaryAddress&
{ {
return QString( "%1.%2.%3" ) return QString( "%1.%2.%3" )
.arg( QString::fromStdString( addressUiText ) ) .arg( QString::fromStdString( addressUiText ) )
.arg( m_yValuesSummaryCase->caseName() ) .arg( m_yValuesSummaryCase->nativeCaseName() )
.arg( group->name() ); .arg( group->name() );
} }
else else
{ {
return QString( "%1.%2" ).arg( QString::fromStdString( addressUiText ) ).arg( m_yValuesSummaryCase->caseName() ); return QString( "%1.%2" ).arg( QString::fromStdString( addressUiText ) ).arg( m_yValuesSummaryCase->nativeCaseName() );
} }
} }

View File

@@ -79,7 +79,7 @@ QString RimSummaryCurveAutoName::curveNameY( const RifEclipseSummaryAddress& sum
std::string caseNameY; std::string caseNameY;
if ( caseNameY.empty() && summaryCurve && summaryCurve->summaryCaseY() ) if ( caseNameY.empty() && summaryCurve && summaryCurve->summaryCaseY() )
{ {
caseNameY = summaryCurve->summaryCaseY()->caseName().toStdString(); caseNameY = summaryCurve->summaryCaseY()->displayCaseName().toStdString();
} }
{ {
@@ -114,7 +114,7 @@ QString RimSummaryCurveAutoName::curveNameX( const RifEclipseSummaryAddress& sum
std::string caseNameX; std::string caseNameX;
if ( caseNameX.empty() && summaryCurve && summaryCurve->summaryCaseX() ) if ( caseNameX.empty() && summaryCurve && summaryCurve->summaryCaseX() )
{ {
caseNameX = summaryCurve->summaryCaseX()->caseName().toStdString(); caseNameX = summaryCurve->summaryCaseX()->displayCaseName().toStdString();
} }
{ {

View File

@@ -2107,7 +2107,7 @@ void populateSummaryCurvesData( std::vector<RimSummaryCurve*> curves, SummaryCur
if ( isObservedCurve && ( curveType & CURVE_TYPE_OBSERVED ) == 0 ) continue; if ( isObservedCurve && ( curveType & CURVE_TYPE_OBSERVED ) == 0 ) continue;
if ( !isObservedCurve && ( curveType & CURVE_TYPE_GRID ) == 0 ) continue; if ( !isObservedCurve && ( curveType & CURVE_TYPE_GRID ) == 0 ) continue;
QString curveCaseName = curve->summaryCaseY()->caseName(); QString curveCaseName = curve->summaryCaseY()->displayCaseName();
size_t casePosInList = cvf::UNDEFINED_SIZE_T; size_t casePosInList = cvf::UNDEFINED_SIZE_T;
for ( size_t i = 0; i < curvesData->caseNames.size(); i++ ) for ( size_t i = 0; i < curvesData->caseNames.size(); i++ )

View File

@@ -504,7 +504,7 @@ void RimSummaryPlotFilterTextCurveSetEditor::appendOptionItemsForSources( QList<
// Top level cases // Top level cases
for ( const auto& sumCase : sumCaseMainColl->topLevelSummaryCases() ) for ( const auto& sumCase : sumCaseMainColl->topLevelSummaryCases() )
{ {
options.push_back( caf::PdmOptionItemInfo( sumCase->caseName(), sumCase ) ); options.push_back( caf::PdmOptionItemInfo( sumCase->displayCaseName(), sumCase ) );
} }
} }
@@ -539,7 +539,7 @@ void RimSummaryPlotFilterTextCurveSetEditor::appendOptionItemsForSources( QList<
for ( const auto& sumCase : sumCaseColl->allSummaryCases() ) for ( const auto& sumCase : sumCaseColl->allSummaryCases() )
{ {
auto optionItem = caf::PdmOptionItemInfo( sumCase->caseName(), sumCase ); auto optionItem = caf::PdmOptionItemInfo( sumCase->displayCaseName(), sumCase );
optionItem.setLevel( 1 ); optionItem.setLevel( 1 );
options.push_back( optionItem ); options.push_back( optionItem );
} }

View File

@@ -293,7 +293,7 @@ void RimSummaryPlotNameHelper::extractPlotTitleSubStrings()
if ( summaryCase ) if ( summaryCase )
{ {
m_titleCaseName = summaryCase->shortName(); m_titleCaseName = summaryCase->displayCaseName();
} }
} }
else if ( ensembleCases.size() == 1 && summaryCases.empty() ) else if ( ensembleCases.size() == 1 && summaryCases.empty() )

View File

@@ -193,7 +193,7 @@ QList<caf::PdmOptionItemInfo>
auto summaryCases = RimSummaryPlotSourceStepping::summaryCasesForSourceStepping(); auto summaryCases = RimSummaryPlotSourceStepping::summaryCasesForSourceStepping();
for ( auto sumCase : summaryCases ) for ( auto sumCase : summaryCases )
{ {
options.append( caf::PdmOptionItemInfo( sumCase->caseName(), sumCase ) ); options.append( caf::PdmOptionItemInfo( sumCase->displayCaseName(), sumCase ) );
} }
return options; return options;

View File

@@ -1333,7 +1333,7 @@ void RiuSummaryCurveDefSelection::appendOptionItemsForSources( QList<caf::PdmOpt
// Top level cases // Top level cases
for ( const auto& sumCase : sumCaseMainColl->topLevelSummaryCases() ) for ( const auto& sumCase : sumCaseMainColl->topLevelSummaryCases() )
{ {
options.push_back( caf::PdmOptionItemInfo( sumCase->caseName(), sumCase ) ); options.push_back( caf::PdmOptionItemInfo( sumCase->displayCaseName(), sumCase ) );
} }
} }
@@ -1368,7 +1368,7 @@ void RiuSummaryCurveDefSelection::appendOptionItemsForSources( QList<caf::PdmOpt
for ( const auto& sumCase : sumCaseColl->allSummaryCases() ) for ( const auto& sumCase : sumCaseColl->allSummaryCases() )
{ {
auto optionItem = caf::PdmOptionItemInfo( sumCase->caseName(), sumCase ); auto optionItem = caf::PdmOptionItemInfo( sumCase->displayCaseName(), sumCase );
optionItem.setLevel( 1 ); optionItem.setLevel( 1 );
options.push_back( optionItem ); options.push_back( optionItem );
} }

View File

@@ -84,7 +84,7 @@ public:
sumCurve = dynamic_cast<RimSummaryCurve*>( riuCurve->ownerRimCurve() ); sumCurve = dynamic_cast<RimSummaryCurve*>( riuCurve->ownerRimCurve() );
} }
return sumCurve && sumCurve->summaryCaseY() ? sumCurve->summaryCaseY()->caseName() : ""; return sumCurve && sumCurve->summaryCaseY() ? sumCurve->summaryCaseY()->displayCaseName() : "";
} }
}; };
static EnsembleCurveInfoTextProvider ensembleCurveInfoTextProvider; static EnsembleCurveInfoTextProvider ensembleCurveInfoTextProvider;