mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-09 23:16:00 -06:00
#1813 Observed data: Move uniqueShortName to RimOilField to include observedData
This commit is contained in:
parent
12c8051266
commit
28c86b08d7
@ -28,7 +28,9 @@
|
||||
#endif // USE_PROTOTYPE_FEATURE_FRACTURES
|
||||
|
||||
#include "RimGeoMechModels.h"
|
||||
#include "RimObservedData.h"
|
||||
#include "RimObservedDataCollection.h"
|
||||
#include "RimSummaryCase.h"
|
||||
#include "RimSummaryCaseMainCollection.h"
|
||||
#include "RimWellPathCollection.h"
|
||||
|
||||
@ -81,3 +83,71 @@ RimOilField::~RimOilField(void)
|
||||
if (observedDataCollection()) delete observedDataCollection();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString RimOilField::uniqueShortNameForCase(RimSummaryCase* summaryCase)
|
||||
{
|
||||
std::set<QString> allAutoShortNames;
|
||||
|
||||
std::vector<RimSummaryCase*> allCases = summaryCaseMainCollection->allSummaryCases();
|
||||
std::vector<RimObservedData*> observedDataCases = observedDataCollection->allObservedData();
|
||||
|
||||
for (RimObservedData* observedData : observedDataCases)
|
||||
{
|
||||
allCases.push_back(dynamic_cast<RimSummaryCase*>(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;
|
||||
}
|
||||
}
|
||||
|
||||
QString candidate = shortName;
|
||||
int autoNumber = 0;
|
||||
|
||||
while (!foundUnique)
|
||||
{
|
||||
candidate = shortName + QString::number(autoNumber++);
|
||||
if (allAutoShortNames.count(candidate) == 0)
|
||||
{
|
||||
shortName = candidate;
|
||||
foundUnique = true;
|
||||
}
|
||||
}
|
||||
|
||||
return shortName;
|
||||
}
|
||||
|
||||
|
@ -30,6 +30,7 @@ class RimFormationNamesCollection;
|
||||
class RimFractureTemplateCollection;
|
||||
class RimGeoMechModels;
|
||||
class RimObservedDataCollection;
|
||||
class RimSummaryCase;
|
||||
class RimSummaryCaseMainCollection;
|
||||
class RimWellPathCollection;
|
||||
|
||||
@ -45,6 +46,8 @@ public:
|
||||
RimOilField(void);
|
||||
virtual ~RimOilField(void);
|
||||
|
||||
QString uniqueShortNameForCase(RimSummaryCase* summaryCase);
|
||||
|
||||
caf::PdmChildField<RimEclipseCaseCollection*> analysisModels;
|
||||
caf::PdmChildField<RimGeoMechModels*> geoMechModels;
|
||||
caf::PdmChildField<RimWellPathCollection*> wellPathCollection;
|
||||
|
@ -19,13 +19,15 @@
|
||||
#include "RimSummaryCase.h"
|
||||
|
||||
#include "RigSummaryCaseData.h"
|
||||
|
||||
#include "RimEclipseCase.h"
|
||||
#include "RimMainPlotCollection.h"
|
||||
#include "RimOilField.h"
|
||||
#include "RimProject.h"
|
||||
#include "RimSummaryCaseMainCollection.h"
|
||||
#include "RimSummaryPlotCollection.h"
|
||||
|
||||
#include <QFileInfo>
|
||||
#include "RimProject.h"
|
||||
#include "RimSummaryPlotCollection.h"
|
||||
#include "RimMainPlotCollection.h"
|
||||
|
||||
CAF_PDM_ABSTRACT_SOURCE_INIT(RimSummaryCase,"SummaryCase");
|
||||
|
||||
@ -157,16 +159,16 @@ void RimSummaryCase::updateAutoShortName()
|
||||
{
|
||||
if(m_useAutoShortName)
|
||||
{
|
||||
RimSummaryCaseMainCollection* summaryCaseMainCollection = NULL;
|
||||
this->firstAncestorOrThisOfType(summaryCaseMainCollection);
|
||||
CVF_ASSERT(summaryCaseMainCollection);
|
||||
RimOilField* oilField = NULL;
|
||||
this->firstAncestorOrThisOfType(oilField);
|
||||
CVF_ASSERT(oilField);
|
||||
|
||||
m_shortName = summaryCaseMainCollection->uniqueShortNameForCase(this);
|
||||
updateTreeItemName();
|
||||
m_shortName = oilField->uniqueShortNameForCase(this);
|
||||
}
|
||||
else if (m_shortName() == QString("Display Name"))
|
||||
{
|
||||
m_shortName = caseName();
|
||||
updateTreeItemName();
|
||||
}
|
||||
|
||||
updateTreeItemName();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user