mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#1813 Observed data: Move uniqueShortName to RimOilField to include observedData
This commit is contained in:
@@ -28,7 +28,9 @@
|
|||||||
#endif // USE_PROTOTYPE_FEATURE_FRACTURES
|
#endif // USE_PROTOTYPE_FEATURE_FRACTURES
|
||||||
|
|
||||||
#include "RimGeoMechModels.h"
|
#include "RimGeoMechModels.h"
|
||||||
|
#include "RimObservedData.h"
|
||||||
#include "RimObservedDataCollection.h"
|
#include "RimObservedDataCollection.h"
|
||||||
|
#include "RimSummaryCase.h"
|
||||||
#include "RimSummaryCaseMainCollection.h"
|
#include "RimSummaryCaseMainCollection.h"
|
||||||
#include "RimWellPathCollection.h"
|
#include "RimWellPathCollection.h"
|
||||||
|
|
||||||
@@ -81,3 +83,71 @@ RimOilField::~RimOilField(void)
|
|||||||
if (observedDataCollection()) delete observedDataCollection();
|
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 RimFractureTemplateCollection;
|
||||||
class RimGeoMechModels;
|
class RimGeoMechModels;
|
||||||
class RimObservedDataCollection;
|
class RimObservedDataCollection;
|
||||||
|
class RimSummaryCase;
|
||||||
class RimSummaryCaseMainCollection;
|
class RimSummaryCaseMainCollection;
|
||||||
class RimWellPathCollection;
|
class RimWellPathCollection;
|
||||||
|
|
||||||
@@ -45,6 +46,8 @@ public:
|
|||||||
RimOilField(void);
|
RimOilField(void);
|
||||||
virtual ~RimOilField(void);
|
virtual ~RimOilField(void);
|
||||||
|
|
||||||
|
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;
|
||||||
|
|||||||
@@ -19,13 +19,15 @@
|
|||||||
#include "RimSummaryCase.h"
|
#include "RimSummaryCase.h"
|
||||||
|
|
||||||
#include "RigSummaryCaseData.h"
|
#include "RigSummaryCaseData.h"
|
||||||
|
|
||||||
#include "RimEclipseCase.h"
|
#include "RimEclipseCase.h"
|
||||||
|
#include "RimMainPlotCollection.h"
|
||||||
|
#include "RimOilField.h"
|
||||||
|
#include "RimProject.h"
|
||||||
#include "RimSummaryCaseMainCollection.h"
|
#include "RimSummaryCaseMainCollection.h"
|
||||||
|
#include "RimSummaryPlotCollection.h"
|
||||||
|
|
||||||
#include <QFileInfo>
|
#include <QFileInfo>
|
||||||
#include "RimProject.h"
|
|
||||||
#include "RimSummaryPlotCollection.h"
|
|
||||||
#include "RimMainPlotCollection.h"
|
|
||||||
|
|
||||||
CAF_PDM_ABSTRACT_SOURCE_INIT(RimSummaryCase,"SummaryCase");
|
CAF_PDM_ABSTRACT_SOURCE_INIT(RimSummaryCase,"SummaryCase");
|
||||||
|
|
||||||
@@ -157,16 +159,16 @@ void RimSummaryCase::updateAutoShortName()
|
|||||||
{
|
{
|
||||||
if(m_useAutoShortName)
|
if(m_useAutoShortName)
|
||||||
{
|
{
|
||||||
RimSummaryCaseMainCollection* summaryCaseMainCollection = NULL;
|
RimOilField* oilField = NULL;
|
||||||
this->firstAncestorOrThisOfType(summaryCaseMainCollection);
|
this->firstAncestorOrThisOfType(oilField);
|
||||||
CVF_ASSERT(summaryCaseMainCollection);
|
CVF_ASSERT(oilField);
|
||||||
|
|
||||||
m_shortName = summaryCaseMainCollection->uniqueShortNameForCase(this);
|
m_shortName = oilField->uniqueShortNameForCase(this);
|
||||||
updateTreeItemName();
|
|
||||||
}
|
}
|
||||||
else if (m_shortName() == QString("Display Name"))
|
else if (m_shortName() == QString("Display Name"))
|
||||||
{
|
{
|
||||||
m_shortName = caseName();
|
m_shortName = caseName();
|
||||||
|
}
|
||||||
|
|
||||||
updateTreeItemName();
|
updateTreeItemName();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user