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

View File

@@ -748,7 +748,7 @@ std::set<RifEclipseSummaryAddress>
if ( !usedFilters[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] )
{
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()->caseName() == addr2.summaryCase()->caseName() )
if ( addr1.summaryCase()->displayCaseName() == addr2.summaryCase()->displayCaseName() )
{
if ( addr1.ensemble() && addr2.ensemble() )
{
@@ -252,7 +252,7 @@ bool operator<( const RifDataSourceForRftPlt& addr1, const RifDataSourceForRftPl
}
return addr1.ensemble() < addr2.ensemble();
}
return addr1.summaryCase()->caseName() < addr2.summaryCase()->caseName();
return addr1.summaryCase()->displayCaseName() < addr2.summaryCase()->displayCaseName();
}
return addr1.summaryCase() < addr2.summaryCase();
}

View File

@@ -28,11 +28,8 @@
#include "RimGeoMechModels.h"
#include "RimMeasurement.h"
#include "RimObservedDataCollection.h"
#include "RimObservedSummaryData.h"
#include "RimSummaryCase.h"
#include "RimSummaryCaseMainCollection.h"
#include "RimSurfaceCollection.h"
#include "RimValveTemplateCollection.h"
#include "RimWellPathCollection.h"
CAF_PDM_SOURCE_INIT( RimOilField, "ResInsightOilField" );
@@ -128,73 +125,6 @@ const RimValveTemplateCollection* RimOilField::valveTemplateCollection() const
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();
const RimValveTemplateCollection* valveTemplateCollection() const;
QString uniqueShortNameForCase( RimSummaryCase* summaryCase );
caf::PdmChildField<RimEclipseCaseCollection*> analysisModels;
caf::PdmChildField<RimGeoMechModels*> geoMechModels;
caf::PdmChildField<RimWellPathCollection*> wellPathCollection;

View File

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

View File

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

View File

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

View File

@@ -22,6 +22,7 @@
#include "RifSummaryReaderInterface.h"
#include "RimMainPlotCollection.h"
#include "RimObservedDataCollection.h"
#include "RimOilField.h"
#include "RimProject.h"
#include "RimSummaryCaseCollection.h"
@@ -30,6 +31,7 @@
#include "cvfAssert.h"
#include "RimObservedSummaryData.h"
#include <QFileInfo>
CAF_PDM_ABSTRACT_SOURCE_INIT( RimSummaryCase, "SummaryCase" );
@@ -178,6 +180,14 @@ RifReaderRftInterface* RimSummaryCase::rftReader()
return nullptr;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RimSummaryCase::errorMessagesFromReader()
{
return QString();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -191,8 +201,8 @@ void RimSummaryCase::defineUiTreeOrdering( caf::PdmUiTreeOrdering& uiTreeOrderin
//--------------------------------------------------------------------------------------------------
void RimSummaryCase::updateTreeItemName()
{
if ( caseName() != shortName() )
this->setUiName( caseName() + " (" + shortName() + ")" );
if ( caseName() != displayCaseName() )
this->setUiName( caseName() + " (" + displayCaseName() + ")" );
else
this->setUiName( caseName() );
}
@@ -200,11 +210,19 @@ void RimSummaryCase::updateTreeItemName()
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RimSummaryCase::shortName() const
QString RimSummaryCase::displayCaseName() const
{
return m_shortName();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RimSummaryCase::nativeCaseName() const
{
return caseName();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -226,6 +244,77 @@ void RimSummaryCase::initAfterRead()
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 )
{
RimOilField* oilField = nullptr;
this->firstAncestorOrThisOfType( oilField );
CVF_ASSERT( oilField );
m_shortName = oilField->uniqueShortNameForCase( this );
m_shortName = RimSummaryCase::uniqueShortNameForCase( this );
}
else if ( m_shortName() == DEFAULT_DISPLAY_NAME )
{

View File

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

View File

@@ -385,7 +385,7 @@ QList<caf::PdmOptionItemInfo> RimSummaryCurve::calculateValueOptions( const caf:
for ( RimSummaryCase* rimCase : cases )
{
options.push_back( caf::PdmOptionItemInfo( rimCase->caseName(), rimCase ) );
options.push_back( caf::PdmOptionItemInfo( rimCase->displayCaseName(), rimCase ) );
}
if ( options.size() > 0 )
@@ -794,12 +794,12 @@ QString RimSummaryCurve::curveExportDescription( const RifEclipseSummaryAddress&
{
return QString( "%1.%2.%3" )
.arg( QString::fromStdString( addressUiText ) )
.arg( m_yValuesSummaryCase->caseName() )
.arg( m_yValuesSummaryCase->nativeCaseName() )
.arg( group->name() );
}
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;
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;
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_GRID ) == 0 ) continue;
QString curveCaseName = curve->summaryCaseY()->caseName();
QString curveCaseName = curve->summaryCaseY()->displayCaseName();
size_t casePosInList = cvf::UNDEFINED_SIZE_T;
for ( size_t i = 0; i < curvesData->caseNames.size(); i++ )

View File

@@ -504,7 +504,7 @@ void RimSummaryPlotFilterTextCurveSetEditor::appendOptionItemsForSources( QList<
// Top level cases
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() )
{
auto optionItem = caf::PdmOptionItemInfo( sumCase->caseName(), sumCase );
auto optionItem = caf::PdmOptionItemInfo( sumCase->displayCaseName(), sumCase );
optionItem.setLevel( 1 );
options.push_back( optionItem );
}

View File

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

View File

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

View File

@@ -1333,7 +1333,7 @@ void RiuSummaryCurveDefSelection::appendOptionItemsForSources( QList<caf::PdmOpt
// Top level cases
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() )
{
auto optionItem = caf::PdmOptionItemInfo( sumCase->caseName(), sumCase );
auto optionItem = caf::PdmOptionItemInfo( sumCase->displayCaseName(), sumCase );
optionItem.setLevel( 1 );
options.push_back( optionItem );
}

View File

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