mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#775 Short name for summary cases refurbished
This commit is contained in:
parent
0d7a1e8bd7
commit
ff6b198966
@ -17,6 +17,7 @@
|
|||||||
/////////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#include "RimFileSummaryCase.h"
|
#include "RimFileSummaryCase.h"
|
||||||
|
#include "QFileInfo"
|
||||||
|
|
||||||
|
|
||||||
//==================================================================================================
|
//==================================================================================================
|
||||||
@ -58,4 +59,12 @@ QString RimFileSummaryCase::summaryHeaderFilename() const
|
|||||||
return m_summaryHeaderFilename();
|
return m_summaryHeaderFilename();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
QString RimFileSummaryCase::caseName() const
|
||||||
|
{
|
||||||
|
QFileInfo caseFileName(this->summaryHeaderFilename());
|
||||||
|
|
||||||
|
return caseFileName.completeBaseName();
|
||||||
|
}
|
||||||
|
@ -34,6 +34,7 @@ public:
|
|||||||
|
|
||||||
void setSummaryHeaderFilename(const QString& fileName);
|
void setSummaryHeaderFilename(const QString& fileName);
|
||||||
virtual QString summaryHeaderFilename() const override;
|
virtual QString summaryHeaderFilename() const override;
|
||||||
|
virtual QString caseName() const override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
caf::PdmField<QString> m_summaryHeaderFilename;
|
caf::PdmField<QString> m_summaryHeaderFilename;
|
||||||
|
@ -36,16 +36,6 @@ CAF_PDM_SOURCE_INIT(RimGridSummaryCase,"GridSummaryCase");
|
|||||||
RimGridSummaryCase::RimGridSummaryCase()
|
RimGridSummaryCase::RimGridSummaryCase()
|
||||||
{
|
{
|
||||||
CAF_PDM_InitFieldNoDefault(&m_eclipseCase, "Associated3DCase", "Main View", "", "", "");
|
CAF_PDM_InitFieldNoDefault(&m_eclipseCase, "Associated3DCase", "Main View", "", "", "");
|
||||||
|
|
||||||
CAF_PDM_InitField(&m_userName, "UserName", QString("User Name"), "Case Name", "", "", "");
|
|
||||||
m_userName.xmlCapability()->setIOReadable(false);
|
|
||||||
m_userName.xmlCapability()->setIOWritable(false);
|
|
||||||
m_userName.uiCapability()->setUiReadOnly(true);
|
|
||||||
|
|
||||||
CAF_PDM_InitField(&m_summaryHeaderFilename, "SummaryHeaderFile", QString("Summary Header File"), "Summary File", "", "", "");
|
|
||||||
m_summaryHeaderFilename.xmlCapability()->setIOReadable(false);
|
|
||||||
m_summaryHeaderFilename.xmlCapability()->setIOWritable(false);
|
|
||||||
m_summaryHeaderFilename.uiCapability()->setUiReadOnly(true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -62,8 +52,8 @@ RimGridSummaryCase::~RimGridSummaryCase()
|
|||||||
void RimGridSummaryCase::setAssociatedEclipseCase(RimEclipseCase* eclipseCase)
|
void RimGridSummaryCase::setAssociatedEclipseCase(RimEclipseCase* eclipseCase)
|
||||||
{
|
{
|
||||||
m_eclipseCase = eclipseCase;
|
m_eclipseCase = eclipseCase;
|
||||||
|
this->updateAutoShortName();
|
||||||
updateUiNames();
|
this->updateTreeItemName();
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -80,35 +70,12 @@ QString RimGridSummaryCase::summaryHeaderFilename() const
|
|||||||
return possibleSumHeaderFileName;
|
return possibleSumHeaderFileName;
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
///
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
void RimGridSummaryCase::initAfterRead()
|
|
||||||
{
|
|
||||||
RimSummaryCase::updateOptionSensitivity();
|
|
||||||
|
|
||||||
updateUiNames();
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimGridSummaryCase::updateUiNames()
|
QString RimGridSummaryCase::caseName() const
|
||||||
{
|
{
|
||||||
m_summaryHeaderFilename = summaryHeaderFilename();
|
return m_eclipseCase()->caseUserDescription();
|
||||||
|
|
||||||
m_userName = curveDisplayName() + " - " + baseName();
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
///
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
QString RimGridSummaryCase::baseName() const
|
|
||||||
{
|
|
||||||
if (!m_eclipseCase()) return QString();
|
|
||||||
|
|
||||||
QFileInfo gridFileInfo(m_eclipseCase()->gridFileName());
|
|
||||||
|
|
||||||
return gridFileInfo.completeBaseName();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,20 +36,10 @@ public:
|
|||||||
RimEclipseCase* associatedEclipseCase() { return m_eclipseCase(); }
|
RimEclipseCase* associatedEclipseCase() { return m_eclipseCase(); }
|
||||||
|
|
||||||
virtual QString summaryHeaderFilename() const override;
|
virtual QString summaryHeaderFilename() const override;
|
||||||
|
virtual QString caseName() const override;
|
||||||
virtual caf::PdmFieldHandle* userDescriptionField() { return &m_userName; }
|
|
||||||
virtual void initAfterRead();
|
|
||||||
|
|
||||||
private:
|
|
||||||
void updateUiNames();
|
|
||||||
QString baseName() const;
|
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
caf::PdmPtrField<RimEclipseCase*> m_eclipseCase;
|
caf::PdmPtrField<RimEclipseCase*> m_eclipseCase;
|
||||||
|
|
||||||
caf::PdmField<QString> m_userName;
|
|
||||||
caf::PdmField<QString> m_summaryHeaderFilename;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -36,8 +36,8 @@ RimSummaryCase::RimSummaryCase()
|
|||||||
{
|
{
|
||||||
CAF_PDM_InitObject("Summary Case",":/Cases16x16.png","","");
|
CAF_PDM_InitObject("Summary Case",":/Cases16x16.png","","");
|
||||||
|
|
||||||
CAF_PDM_InitField(&curveDisplayName, "CurveDisplayName", QString("Curve Display Name"), "Curve Display Name", "", "", "");
|
CAF_PDM_InitField(&m_shortName, "ShortName", QString("Short Name"), "Short Name", "", "", "");
|
||||||
CAF_PDM_InitField(&autoCurveDisplayName, "AutoCurveDisplayName", true, "Auto Curve Display Name", "", "", "");
|
CAF_PDM_InitField(&m_useAutoShortName, "AutoShortyName", true, "Use Auto Short Name", "", "", "");
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -56,32 +56,19 @@ void RimSummaryCase::loadCase()
|
|||||||
if (m_summaryCaseData.isNull()) m_summaryCaseData = new RigSummaryCaseData(this->summaryHeaderFilename());
|
if (m_summaryCaseData.isNull()) m_summaryCaseData = new RigSummaryCaseData(this->summaryHeaderFilename());
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
///
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
QString RimSummaryCase::caseName()
|
|
||||||
{
|
|
||||||
QFileInfo caseFileName(this->summaryHeaderFilename());
|
|
||||||
|
|
||||||
return caseFileName.completeBaseName();
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimSummaryCase::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
|
void RimSummaryCase::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
|
||||||
{
|
{
|
||||||
if (changedField == &autoCurveDisplayName)
|
if (changedField == &m_useAutoShortName)
|
||||||
{
|
{
|
||||||
if (autoCurveDisplayName)
|
this->updateAutoShortName();
|
||||||
{
|
}
|
||||||
RimSummaryCaseCollection* summaryCaseCollection = NULL;
|
else if (changedField == &m_shortName)
|
||||||
this->firstAnchestorOrThisOfType(summaryCaseCollection);
|
{
|
||||||
if (summaryCaseCollection)
|
updateTreeItemName();
|
||||||
{
|
|
||||||
curveDisplayName = summaryCaseCollection->uniqueShortNameForCase(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
RimProject* proj = NULL;
|
RimProject* proj = NULL;
|
||||||
@ -100,5 +87,47 @@ void RimSummaryCase::fieldChangedByUi(const caf::PdmFieldHandle* changedField, c
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimSummaryCase::updateOptionSensitivity()
|
void RimSummaryCase::updateOptionSensitivity()
|
||||||
{
|
{
|
||||||
curveDisplayName.uiCapability()->setUiReadOnly(autoCurveDisplayName);
|
m_shortName.uiCapability()->setUiReadOnly(m_useAutoShortName);
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RimSummaryCase::updateTreeItemName()
|
||||||
|
{
|
||||||
|
this->setUiName(caseName() + " (" + shortName() +")");
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
QString RimSummaryCase::shortName() const
|
||||||
|
{
|
||||||
|
return m_shortName();
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RimSummaryCase::initAfterRead()
|
||||||
|
{
|
||||||
|
updateOptionSensitivity();
|
||||||
|
|
||||||
|
updateTreeItemName();
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RimSummaryCase::updateAutoShortName()
|
||||||
|
{
|
||||||
|
if(m_useAutoShortName)
|
||||||
|
{
|
||||||
|
RimSummaryCaseCollection* summaryCaseCollection = NULL;
|
||||||
|
this->firstAnchestorOrThisOfType(summaryCaseCollection);
|
||||||
|
CVF_ASSERT(summaryCaseCollection);
|
||||||
|
|
||||||
|
m_shortName = summaryCaseCollection->uniqueShortNameForCase(this);
|
||||||
|
updateTreeItemName();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -39,23 +39,26 @@ public:
|
|||||||
RimSummaryCase();
|
RimSummaryCase();
|
||||||
virtual ~RimSummaryCase();
|
virtual ~RimSummaryCase();
|
||||||
|
|
||||||
QString caseName();
|
virtual QString summaryHeaderFilename() const = 0;
|
||||||
|
virtual QString caseName() const = 0;
|
||||||
|
QString shortName() const;
|
||||||
|
|
||||||
virtual QString summaryHeaderFilename() const = 0;
|
void updateAutoShortName();
|
||||||
void loadCase();
|
void updateOptionSensitivity();
|
||||||
|
|
||||||
|
void loadCase();
|
||||||
RigSummaryCaseData* caseData() { return m_summaryCaseData.p(); }
|
RigSummaryCaseData* caseData() { return m_summaryCaseData.p(); }
|
||||||
|
|
||||||
caf::PdmField<QString> curveDisplayName;
|
|
||||||
caf::PdmField<bool> autoCurveDisplayName;
|
|
||||||
|
|
||||||
void updateOptionSensitivity();
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
void updateTreeItemName();
|
||||||
|
|
||||||
|
caf::PdmField<QString> m_shortName;
|
||||||
|
caf::PdmField<bool> m_useAutoShortName;
|
||||||
|
|
||||||
cvf::ref<RigSummaryCaseData> m_summaryCaseData;
|
cvf::ref<RigSummaryCaseData> m_summaryCaseData;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// Overridden PDM methods
|
// Overridden PDM methods
|
||||||
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
|
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
|
||||||
|
virtual void initAfterRead() override;
|
||||||
};
|
};
|
||||||
|
@ -127,10 +127,9 @@ RimGridSummaryCase* RimSummaryCaseCollection::createAndAddSummaryCaseFromEclipse
|
|||||||
if(RifEclipseSummaryTools::hasSummaryFiles(QDir::toNativeSeparators(gridFileName).toStdString()))
|
if(RifEclipseSummaryTools::hasSummaryFiles(QDir::toNativeSeparators(gridFileName).toStdString()))
|
||||||
{
|
{
|
||||||
RimGridSummaryCase* newSumCase = new RimGridSummaryCase();
|
RimGridSummaryCase* newSumCase = new RimGridSummaryCase();
|
||||||
newSumCase->setAssociatedEclipseCase(eclResCase);
|
|
||||||
newSumCase->curveDisplayName = uniqueShortNameForCase(newSumCase);
|
|
||||||
newSumCase->updateOptionSensitivity();
|
|
||||||
this->m_cases.push_back(newSumCase);
|
this->m_cases.push_back(newSumCase);
|
||||||
|
newSumCase->setAssociatedEclipseCase(eclResCase);
|
||||||
|
newSumCase->updateOptionSensitivity();
|
||||||
return newSumCase;
|
return newSumCase;
|
||||||
}
|
}
|
||||||
return nullptr;
|
return nullptr;
|
||||||
@ -141,37 +140,57 @@ RimGridSummaryCase* RimSummaryCaseCollection::createAndAddSummaryCaseFromEclipse
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
QString RimSummaryCaseCollection::uniqueShortNameForCase(RimSummaryCase* summaryCase)
|
QString RimSummaryCaseCollection::uniqueShortNameForCase(RimSummaryCase* summaryCase)
|
||||||
{
|
{
|
||||||
QStringList allAutoShortNames;
|
std::set<QString> allAutoShortNames;
|
||||||
|
|
||||||
for (RimSummaryCase* sumCase : m_cases)
|
for (RimSummaryCase* sumCase : m_cases)
|
||||||
{
|
{
|
||||||
if (sumCase && sumCase != summaryCase)
|
if (sumCase && sumCase != summaryCase)
|
||||||
{
|
{
|
||||||
allAutoShortNames.push_back(sumCase->curveDisplayName());
|
allAutoShortNames.insert(sumCase->shortName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool foundUnique = false;
|
bool foundUnique = false;
|
||||||
|
|
||||||
QString caseName = summaryCase->caseName();
|
QString caseName = summaryCase->caseName();
|
||||||
QString candidateBase = caseName.left(2);
|
QString shortName;
|
||||||
QString candidate = candidateBase;
|
|
||||||
int autoNumber = 0;
|
if (caseName.size() > 2)
|
||||||
while (!foundUnique)
|
|
||||||
{
|
{
|
||||||
bool foundExisting = false;
|
QString candidate = caseName[0];
|
||||||
for (QString autoName : allAutoShortNames)
|
|
||||||
|
for (int i = 1; i < caseName.size(); ++i )
|
||||||
{
|
{
|
||||||
if (autoName.left(candidate.size()) == candidate)
|
if (allAutoShortNames.count(candidate + caseName[i]) == 0)
|
||||||
{
|
{
|
||||||
candidate = candidateBase + QString::number(autoNumber++);
|
shortName = candidate + caseName[i];
|
||||||
foundExisting = true;
|
foundUnique = true;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
foundUnique = !foundExisting;
|
else
|
||||||
|
{
|
||||||
|
shortName = caseName.left(2);
|
||||||
|
if(allAutoShortNames.count(shortName) == 0)
|
||||||
|
{
|
||||||
|
foundUnique = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return candidate;
|
QString candidate = shortName;
|
||||||
|
int autoNumber = 0;
|
||||||
|
|
||||||
|
while (!foundUnique)
|
||||||
|
{
|
||||||
|
candidate = shortName + QString::number(autoNumber++);
|
||||||
|
if(allAutoShortNames.count(candidate) == 0)
|
||||||
|
{
|
||||||
|
shortName = candidate;
|
||||||
|
foundUnique = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return shortName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,16 +31,15 @@ public:
|
|||||||
RimSummaryCaseCollection();
|
RimSummaryCaseCollection();
|
||||||
virtual ~RimSummaryCaseCollection();
|
virtual ~RimSummaryCaseCollection();
|
||||||
|
|
||||||
RimSummaryCase* summaryCase(size_t idx);
|
RimSummaryCase* summaryCase(size_t idx);
|
||||||
size_t summaryCaseCount();
|
size_t summaryCaseCount();
|
||||||
|
|
||||||
void createSummaryCasesFromRelevantEclipseResultCases();
|
|
||||||
|
|
||||||
|
void createSummaryCasesFromRelevantEclipseResultCases();
|
||||||
RimGridSummaryCase* createAndAddSummaryCaseFromEclipseResultCase(RimEclipseResultCase* eclResCase);
|
RimGridSummaryCase* createAndAddSummaryCaseFromEclipseResultCase(RimEclipseResultCase* eclResCase);
|
||||||
|
|
||||||
void loadAllSummaryCaseData();
|
void loadAllSummaryCaseData();
|
||||||
|
|
||||||
QString uniqueShortNameForCase(RimSummaryCase* summaryCase);
|
QString uniqueShortNameForCase(RimSummaryCase* summaryCase);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
caf::PdmChildArrayField<RimSummaryCase*> m_cases;
|
caf::PdmChildArrayField<RimSummaryCase*> m_cases;
|
||||||
|
@ -309,7 +309,7 @@ QString RimSummaryCurve::createCurveAutoName()
|
|||||||
generatedCurveName += ", ";
|
generatedCurveName += ", ";
|
||||||
}
|
}
|
||||||
|
|
||||||
generatedCurveName += m_summaryCase->curveDisplayName();
|
generatedCurveName += m_summaryCase->shortName();
|
||||||
}
|
}
|
||||||
|
|
||||||
return generatedCurveName;
|
return generatedCurveName;
|
||||||
|
Loading…
Reference in New Issue
Block a user