#908 Replace file summary case with Eclipse summary case when grid is imported

This commit is contained in:
Magne Sjaastad
2016-11-07 15:57:21 +01:00
parent 612c64a607
commit cb468f0c48
4 changed files with 130 additions and 17 deletions

View File

@@ -37,7 +37,7 @@ public:
void setAssociatedEclipseCase(RimEclipseCase* eclipseCase);
RimEclipseCase* associatedEclipseCase();
virtual QString summaryHeaderFilename() const override;
virtual QString summaryHeaderFilename() const override;
virtual QString caseName() const override;
private:

View File

@@ -16,14 +16,16 @@
//
/////////////////////////////////////////////////////////////////////////////////
#include "RimSummaryCaseCollection.h"
#include "RimSummaryCase.h"
#include "RifEclipseSummaryTools.h"
#include "RimEclipseResultCase.h"
#include "RimFileSummaryCase.h"
#include "RimGridSummaryCase.h"
#include "RimOilField.h"
#include "RimProject.h"
#include "RimEclipseResultCase.h"
#include "RimGridSummaryCase.h"
#include "RifEclipseSummaryTools.h"
#include "RimSummaryCase.h"
#include <QDir>
#include "RimFileSummaryCase.h"
CAF_PDM_SOURCE_INIT(RimSummaryCaseCollection,"SummaryCaseCollection");
@@ -88,10 +90,62 @@ void RimSummaryCaseCollection::createSummaryCasesFromRelevantEclipseResultCases(
}
}
}
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimSummaryCase* RimSummaryCaseCollection::findSummaryCaseFromEclipseResultCase(RimEclipseResultCase* eclipseResultCase) const
{
for (RimSummaryCase* summaryCase : m_cases)
{
RimGridSummaryCase* gridSummaryCase = dynamic_cast<RimGridSummaryCase*>(summaryCase);
if (gridSummaryCase)
{
if (gridSummaryCase->associatedEclipseCase()->gridFileName() == eclipseResultCase->gridFileName())
{
return gridSummaryCase;
}
}
}
return nullptr;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimSummaryCase* RimSummaryCaseCollection::findSummaryCaseFromFileName(const QString& fileName) const
{
// Use QFileInfo object to compare two file names to avoid mix of / and \\
QFileInfo incomingFileInfo(fileName);
for (RimSummaryCase* summaryCase : m_cases)
{
RimFileSummaryCase* fileSummaryCase = dynamic_cast<RimFileSummaryCase*>(summaryCase);
if (fileSummaryCase)
{
QFileInfo summaryFileInfo(fileSummaryCase->summaryHeaderFilename());
if (incomingFileInfo == summaryFileInfo)
{
return fileSummaryCase;
}
}
}
return nullptr;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimSummaryCaseCollection::deleteCase(RimSummaryCase* summaryCase)
{
m_cases.removeChildObject(summaryCase);
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@@ -36,11 +36,19 @@ public:
void createSummaryCasesFromRelevantEclipseResultCases();
RimSummaryCase* createAndAddSummaryCaseFromEclipseResultCase(RimEclipseResultCase* eclResCase);
RimSummaryCase* createAndAddSummaryCaseFromFileName(const QString& fileName);
RimSummaryCase* findSummaryCaseFromEclipseResultCase(RimEclipseResultCase* eclResCase) const;
RimSummaryCase* findSummaryCaseFromFileName(const QString& fileName) const;
void deleteCase(RimSummaryCase* summaryCase);
void loadAllSummaryCaseData();
QString uniqueShortNameForCase(RimSummaryCase* summaryCase);
private:
private:
caf::PdmChildArrayField<RimSummaryCase*> m_cases;
};