mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#5441 Summary Case : Add public methods displayCaseName and nativeCaseName
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user