mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Summary Case Import cleanup (#2795)
This commit is contained in:
@@ -67,7 +67,7 @@ bool RiaImportEclipseCaseTools::openEclipseCasesFromFile(const QStringList& file
|
||||
RifSummaryCaseRestartSelector selector;
|
||||
if(noDialog) selector.showDialog(false);
|
||||
selector.determineFilesToImportFromGridFiles(fileNames);
|
||||
std::vector<RifSummaryCaseFileInfo> summaryFileInfos = selector.summaryFileInfos();
|
||||
std::vector<RifSummaryCaseFileResultInfo> summaryFileInfos = selector.summaryFileInfos();
|
||||
|
||||
// Import eclipse case files
|
||||
for (const QString& gridCaseFile : selector.gridCaseFiles())
|
||||
|
||||
@@ -120,7 +120,7 @@ bool RicImportSummaryCasesFeature::createSummaryCasesFromFiles(const QStringList
|
||||
RifSummaryCaseRestartSelector fileSelector;
|
||||
fileSelector.determineFilesToImportFromSummaryFiles(fileNames);
|
||||
|
||||
std::vector<RifSummaryCaseFileInfo> importFileInfos = fileSelector.summaryFileInfos();
|
||||
std::vector<RifSummaryCaseFileResultInfo> importFileInfos = fileSelector.summaryFileInfos();
|
||||
|
||||
if (!importFileInfos.empty())
|
||||
{
|
||||
|
||||
@@ -91,7 +91,10 @@ void RifSummaryCaseRestartSelector::determineFilesToImportFromSummaryFiles(const
|
||||
std::vector<RifSummaryCaseFileImportInfo> files;
|
||||
for (QString f : initialSummaryFiles)
|
||||
{
|
||||
files.push_back(RifSummaryCaseFileImportInfo(f, "", true));
|
||||
RifSummaryCaseFileImportInfo importInfo(f, "");
|
||||
importInfo.setFailOnSummaryFileError(true);
|
||||
files.push_back(importInfo);
|
||||
|
||||
}
|
||||
determineFilesToImport(files);
|
||||
}
|
||||
@@ -104,17 +107,43 @@ void RifSummaryCaseRestartSelector::determineFilesToImportFromGridFiles(const QS
|
||||
std::vector<RifSummaryCaseFileImportInfo> files;
|
||||
for (QString f : initialGridFiles)
|
||||
{
|
||||
files.push_back(RifSummaryCaseFileImportInfo(getSummaryFileFromGridFile(f), f));
|
||||
RifSummaryCaseFileImportInfo importInfo(getSummaryFileFromGridFile(f), f);
|
||||
importInfo.setFailOnSummaryFileError(false);
|
||||
files.push_back(importInfo);
|
||||
}
|
||||
determineFilesToImport(files);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RifSummaryCaseRestartSelector::showDialog(bool show)
|
||||
{
|
||||
m_showDialog = show;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<RifSummaryCaseFileResultInfo> RifSummaryCaseRestartSelector::summaryFileInfos() const
|
||||
{
|
||||
return m_summaryFileInfos;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QStringList RifSummaryCaseRestartSelector::gridCaseFiles() const
|
||||
{
|
||||
return m_gridFiles;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RifSummaryCaseRestartSelector::determineFilesToImport(const std::vector<RifSummaryCaseFileImportInfo>& initialFiles)
|
||||
{
|
||||
std::vector<RifSummaryCaseFileInfo> fileInfos;
|
||||
std::vector<RifSummaryCaseFileImportInfo> fileInfos;
|
||||
if (m_showDialog)
|
||||
{
|
||||
bool enableApplyToAllField = initialFiles.size() > 1;
|
||||
@@ -169,10 +198,10 @@ void RifSummaryCaseRestartSelector::determineFilesToImportByAskingUser(const std
|
||||
{
|
||||
for (const QString& file : result.summaryFiles)
|
||||
{
|
||||
RifSummaryCaseFileInfo fi(file, result.summaryImportOption == RicSummaryCaseRestartDialog::IMPORT_ALL);
|
||||
if (!vectorContains(m_summaryFileInfos, fi))
|
||||
RifSummaryCaseFileResultInfo resultFileInfo(file, result.summaryImportOption == RicSummaryCaseRestartDialog::IMPORT_ALL);
|
||||
if (!vectorContains(m_summaryFileInfos, resultFileInfo))
|
||||
{
|
||||
m_summaryFileInfos.push_back(fi);
|
||||
m_summaryFileInfos.push_back(resultFileInfo);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -228,23 +257,23 @@ void RifSummaryCaseRestartSelector::determineFilesToImportUsingPrefs(const std::
|
||||
{
|
||||
if (m_defaultSummaryImportMode == RicSummaryCaseRestartDialog::IMPORT_ALL)
|
||||
{
|
||||
m_summaryFileInfos.push_back(RifSummaryCaseFileInfo(initialSummaryFile, true));
|
||||
m_summaryFileInfos.push_back(RifSummaryCaseFileResultInfo(initialSummaryFile, true));
|
||||
}
|
||||
else if (m_defaultSummaryImportMode == RicSummaryCaseRestartDialog::NOT_IMPORT)
|
||||
{
|
||||
m_summaryFileInfos.push_back(RifSummaryCaseFileInfo(initialSummaryFile, false));
|
||||
m_summaryFileInfos.push_back(RifSummaryCaseFileResultInfo(initialSummaryFile, false));
|
||||
}
|
||||
else if (m_defaultSummaryImportMode == RicSummaryCaseRestartDialog::SEPARATE_CASES)
|
||||
{
|
||||
m_summaryFileInfos.push_back(RifSummaryCaseFileInfo(initialSummaryFile, false));
|
||||
m_summaryFileInfos.push_back(RifSummaryCaseFileResultInfo(initialSummaryFile, false));
|
||||
bool hasWarnings = false;
|
||||
std::vector<RifRestartFileInfo> restartFileInfos = reader.getRestartFiles(initialSummaryFile, &hasWarnings);
|
||||
for (const auto& rfi : restartFileInfos)
|
||||
{
|
||||
RifSummaryCaseFileInfo fi(RiaFilePathTools::toInternalSeparator(rfi.fileName), false);
|
||||
if (!vectorContains(m_summaryFileInfos, fi))
|
||||
RifSummaryCaseFileResultInfo resultFileInfo(RiaFilePathTools::toInternalSeparator(rfi.fileName), false);
|
||||
if (!vectorContains(m_summaryFileInfos, resultFileInfo))
|
||||
{
|
||||
m_summaryFileInfos.push_back(fi);
|
||||
m_summaryFileInfos.push_back(resultFileInfo);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -261,10 +290,10 @@ void RifSummaryCaseRestartSelector::determineFilesToImportUsingPrefs(const std::
|
||||
std::vector<RifRestartFileInfo> restartFileInfos = reader.getRestartFiles(initialSummaryFile, &hasWarnings);
|
||||
for (const auto& rfi : restartFileInfos)
|
||||
{
|
||||
RifSummaryCaseFileInfo fi(RifEclipseSummaryTools::findGridCaseFileFromSummaryHeaderFile(rfi.fileName), false);
|
||||
if (!m_gridFiles.contains(fi.fileName) && QFileInfo(fi.fileName).exists())
|
||||
QString gridFileName = RifEclipseSummaryTools::findGridCaseFileFromSummaryHeaderFile(rfi.fileName);
|
||||
if (!m_gridFiles.contains(gridFileName) && QFileInfo(gridFileName).exists())
|
||||
{
|
||||
m_gridFiles.push_back(fi.fileName);
|
||||
m_gridFiles.push_back(gridFileName);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -359,20 +388,12 @@ QString RifSummaryCaseRestartSelector::getSummaryFileFromGridFile(const QString&
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifSummaryCaseFileImportInfo::RifSummaryCaseFileImportInfo(const QString& summaryFileName,
|
||||
const QString& gridFileName,
|
||||
bool failOnSummaryFileImportError /*= false*/)
|
||||
const QString& gridFileName)
|
||||
: m_summaryFileName(summaryFileName)
|
||||
, m_gridFileName(gridFileName)
|
||||
, m_failOnSummaryFileImportError(failOnSummaryFileImportError)
|
||||
, m_failOnSummaryFileImportError(false)
|
||||
{
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RifSummaryCaseFileImportInfo::failOnSummaryFileError() const
|
||||
{
|
||||
return m_failOnSummaryFileImportError;
|
||||
CVF_ASSERT(!m_summaryFileName.isEmpty());
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -390,3 +411,61 @@ const QString& RifSummaryCaseFileImportInfo::gridFileName() const
|
||||
{
|
||||
return m_gridFileName;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RifSummaryCaseFileImportInfo::failOnSummaryFileError() const
|
||||
{
|
||||
return m_failOnSummaryFileImportError;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RifSummaryCaseFileImportInfo::setFailOnSummaryFileError(bool failOnSummaryFileImportError)
|
||||
{
|
||||
m_failOnSummaryFileImportError = failOnSummaryFileImportError;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifSummaryCaseFileResultInfo::RifSummaryCaseFileResultInfo(const QString& summaryFileName, bool includeRestartFiles)
|
||||
: m_summaryFileName(summaryFileName)
|
||||
, m_includeRestartFiles(includeRestartFiles)
|
||||
{
|
||||
CVF_ASSERT(!m_summaryFileName.isEmpty());
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
const QString& RifSummaryCaseFileResultInfo::summaryFileName() const
|
||||
{
|
||||
return m_summaryFileName;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RifSummaryCaseFileResultInfo::includeRestartFiles() const
|
||||
{
|
||||
return m_includeRestartFiles;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RifSummaryCaseFileResultInfo::operator<(const RifSummaryCaseFileResultInfo& other) const
|
||||
{
|
||||
return m_summaryFileName < other.summaryFileName();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RifSummaryCaseFileResultInfo::operator==(const RifSummaryCaseFileResultInfo& other) const
|
||||
{
|
||||
return m_summaryFileName == other.summaryFileName();
|
||||
}
|
||||
|
||||
@@ -27,8 +27,8 @@
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
class RifSummaryCaseFileInfo;
|
||||
class RifSummaryCaseFileImportInfo;
|
||||
class RifSummaryCaseFileResultInfo;
|
||||
|
||||
//==================================================================================================
|
||||
//
|
||||
@@ -43,16 +43,15 @@ public:
|
||||
void determineFilesToImportFromSummaryFiles(const QStringList& initialSummaryFiles);
|
||||
void determineFilesToImportFromGridFiles(const QStringList& initialGridFiles);
|
||||
|
||||
void showDialog(bool show) { m_showDialog = show; }
|
||||
std::vector<RifSummaryCaseFileInfo> summaryFileInfos() const { return m_summaryFileInfos; }
|
||||
QStringList gridCaseFiles() const { return m_gridFiles; }
|
||||
bool foundErrors() const;
|
||||
const QStringList& summaryFilesWithErrors() const;
|
||||
QString createCombinedErrorMessage() const;
|
||||
void showDialog(bool show);
|
||||
std::vector<RifSummaryCaseFileResultInfo> summaryFileInfos() const;
|
||||
QStringList gridCaseFiles() const;
|
||||
bool foundErrors() const;
|
||||
const QStringList& summaryFilesWithErrors() const;
|
||||
QString createCombinedErrorMessage() const;
|
||||
|
||||
|
||||
static QStringList getSummaryFilesFromGridFiles(const QStringList& gridFiles);
|
||||
static QString getSummaryFileFromGridFile(const QString& gridFile);
|
||||
static QStringList getSummaryFilesFromGridFiles(const QStringList& gridFiles);
|
||||
static QString getSummaryFileFromGridFile(const QString& gridFile);
|
||||
|
||||
private:
|
||||
void determineFilesToImport(const std::vector<RifSummaryCaseFileImportInfo>& initialFiles);
|
||||
@@ -63,25 +62,9 @@ private:
|
||||
RicSummaryCaseRestartDialog::ImportOptions m_defaultSummaryImportMode;
|
||||
RicSummaryCaseRestartDialog::ImportOptions m_defaultGridImportMode;
|
||||
|
||||
std::vector<RifSummaryCaseFileInfo> m_summaryFileInfos;
|
||||
QStringList m_gridFiles;
|
||||
QStringList m_summaryFileErrors;
|
||||
};
|
||||
|
||||
//==================================================================================================
|
||||
///
|
||||
//==================================================================================================
|
||||
class RifSummaryCaseFileInfo
|
||||
{
|
||||
public:
|
||||
RifSummaryCaseFileInfo(const QString _fileName, bool _includeRestartFiles) :
|
||||
fileName(_fileName), includeRestartFiles(_includeRestartFiles) {}
|
||||
|
||||
QString fileName;
|
||||
bool includeRestartFiles;
|
||||
|
||||
bool operator<(const RifSummaryCaseFileInfo& other) const { return fileName < other.fileName; }
|
||||
bool operator==(const RifSummaryCaseFileInfo& other) const { return fileName == other.fileName; }
|
||||
std::vector<RifSummaryCaseFileResultInfo> m_summaryFileInfos;
|
||||
QStringList m_gridFiles;
|
||||
QStringList m_summaryFileErrors;
|
||||
};
|
||||
|
||||
//==================================================================================================
|
||||
@@ -90,14 +73,37 @@ public:
|
||||
class RifSummaryCaseFileImportInfo
|
||||
{
|
||||
public:
|
||||
RifSummaryCaseFileImportInfo(const QString& summaryFileName, const QString& gridFileName, bool failOnSummaryFileImportError = false);
|
||||
RifSummaryCaseFileImportInfo(const QString& summaryFileName,
|
||||
const QString& gridFileName);
|
||||
|
||||
const QString& summaryFileName() const;
|
||||
const QString& gridFileName() const;
|
||||
bool failOnSummaryFileError() const;
|
||||
void setFailOnSummaryFileError(bool failOnSummaryFileImportError);
|
||||
|
||||
private:
|
||||
QString m_summaryFileName;
|
||||
QString m_gridFileName;
|
||||
bool m_failOnSummaryFileImportError;
|
||||
};
|
||||
|
||||
//==================================================================================================
|
||||
///
|
||||
//==================================================================================================
|
||||
class RifSummaryCaseFileResultInfo
|
||||
{
|
||||
public:
|
||||
RifSummaryCaseFileResultInfo(const QString& summaryFileName,
|
||||
bool includeRestartFiles);
|
||||
|
||||
const QString& summaryFileName() const;
|
||||
bool includeRestartFiles() const;
|
||||
|
||||
bool operator<(const RifSummaryCaseFileResultInfo& other) const;
|
||||
bool operator==(const RifSummaryCaseFileResultInfo& other) const;
|
||||
|
||||
private:
|
||||
QString m_summaryFileName;
|
||||
bool m_includeRestartFiles;
|
||||
};
|
||||
|
||||
|
||||
@@ -117,7 +117,7 @@ void RimSummaryCaseMainCollection::createSummaryCasesFromRelevantEclipseResultCa
|
||||
QStringList summaryFileNames = RifSummaryCaseRestartSelector::getSummaryFilesFromGridFiles(QStringList({ eclResCase->gridFileName() }));
|
||||
if (!summaryFileNames.isEmpty())
|
||||
{
|
||||
RifSummaryCaseFileInfo fileInfo(summaryFileNames.front(), false);
|
||||
RifSummaryCaseFileResultInfo fileInfo(summaryFileNames.front(), false);
|
||||
createAndAddSummaryCasesFromFileInfos({ fileInfo });
|
||||
}
|
||||
}
|
||||
@@ -315,7 +315,7 @@ void RimSummaryCaseMainCollection::loadAllSummaryCaseData()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<RimSummaryCase*> RimSummaryCaseMainCollection::createAndAddSummaryCasesFromFileInfos(const std::vector<RifSummaryCaseFileInfo>& summaryHeaderFileInfos)
|
||||
std::vector<RimSummaryCase*> RimSummaryCaseMainCollection::createAndAddSummaryCasesFromFileInfos(const std::vector<RifSummaryCaseFileResultInfo>& summaryHeaderFileInfos)
|
||||
{
|
||||
std::vector<RimSummaryCase*> newCases = createSummaryCasesFromFileInfos(summaryHeaderFileInfos);
|
||||
addCases(newCases);
|
||||
@@ -325,16 +325,16 @@ std::vector<RimSummaryCase*> RimSummaryCaseMainCollection::createAndAddSummaryCa
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<RimSummaryCase*> RimSummaryCaseMainCollection::createSummaryCasesFromFileInfos(const std::vector<RifSummaryCaseFileInfo>& summaryHeaderFileInfos)
|
||||
std::vector<RimSummaryCase*> RimSummaryCaseMainCollection::createSummaryCasesFromFileInfos(const std::vector<RifSummaryCaseFileResultInfo>& summaryHeaderFileInfos)
|
||||
{
|
||||
RimProject* project = RiaApplication::instance()->project();
|
||||
|
||||
std::vector<RimSummaryCase*> sumCases;
|
||||
|
||||
for (RifSummaryCaseFileInfo fileInfo : summaryHeaderFileInfos)
|
||||
for (RifSummaryCaseFileResultInfo fileInfo : summaryHeaderFileInfos)
|
||||
{
|
||||
RimEclipseCase* eclCase = nullptr;
|
||||
QString gridCaseFile = RifEclipseSummaryTools::findGridCaseFileFromSummaryHeaderFile(fileInfo.fileName);
|
||||
QString gridCaseFile = RifEclipseSummaryTools::findGridCaseFileFromSummaryHeaderFile(fileInfo.summaryFileName());
|
||||
if (!gridCaseFile.isEmpty())
|
||||
{
|
||||
eclCase = project->eclipseCaseFromGridFileName(gridCaseFile);
|
||||
@@ -344,22 +344,22 @@ std::vector<RimSummaryCase*> RimSummaryCaseMainCollection::createSummaryCasesFro
|
||||
{
|
||||
RimGridSummaryCase* newSumCase = new RimGridSummaryCase();
|
||||
|
||||
newSumCase->setIncludeRestartFiles(fileInfo.includeRestartFiles);
|
||||
newSumCase->setIncludeRestartFiles(fileInfo.includeRestartFiles());
|
||||
newSumCase->setAssociatedEclipseCase(eclCase);
|
||||
newSumCase->createSummaryReaderInterface();
|
||||
newSumCase->updateOptionSensitivity();
|
||||
addCaseRealizationParametersIfFound(*newSumCase, fileInfo.fileName);
|
||||
addCaseRealizationParametersIfFound(*newSumCase, fileInfo.summaryFileName());
|
||||
sumCases.push_back(newSumCase);
|
||||
}
|
||||
else
|
||||
{
|
||||
RimFileSummaryCase* newSumCase = new RimFileSummaryCase();
|
||||
|
||||
newSumCase->setIncludeRestartFiles(fileInfo.includeRestartFiles);
|
||||
newSumCase->setSummaryHeaderFileName(fileInfo.fileName);
|
||||
newSumCase->setIncludeRestartFiles(fileInfo.includeRestartFiles());
|
||||
newSumCase->setSummaryHeaderFileName(fileInfo.summaryFileName());
|
||||
newSumCase->createSummaryReaderInterface();
|
||||
newSumCase->updateOptionSensitivity();
|
||||
addCaseRealizationParametersIfFound(*newSumCase, fileInfo.fileName);
|
||||
addCaseRealizationParametersIfFound(*newSumCase, fileInfo.summaryFileName());
|
||||
sumCases.push_back(newSumCase);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
class RimSummaryCase;
|
||||
class RimEclipseResultCase;
|
||||
class RimSummaryCaseCollection;
|
||||
class RifSummaryCaseFileInfo;
|
||||
class RifSummaryCaseFileResultInfo;
|
||||
|
||||
//==================================================================================================
|
||||
///
|
||||
@@ -45,8 +45,8 @@ public:
|
||||
std::vector<RimSummaryCaseCollection*> summaryCaseCollections() const;
|
||||
|
||||
void createSummaryCasesFromRelevantEclipseResultCases();
|
||||
std::vector<RimSummaryCase*> createAndAddSummaryCasesFromFileInfos(const std::vector<RifSummaryCaseFileInfo>& summaryHeaderFileInfos);
|
||||
std::vector<RimSummaryCase*> createSummaryCasesFromFileInfos(const std::vector<RifSummaryCaseFileInfo>& summaryHeaderFileInfos);
|
||||
std::vector<RimSummaryCase*> createAndAddSummaryCasesFromFileInfos(const std::vector<RifSummaryCaseFileResultInfo>& summaryHeaderFileInfos);
|
||||
std::vector<RimSummaryCase*> createSummaryCasesFromFileInfos(const std::vector<RifSummaryCaseFileResultInfo>& summaryHeaderFileInfos);
|
||||
|
||||
RimSummaryCase* findSummaryCaseFromEclipseResultCase(RimEclipseResultCase* eclResCase) const;
|
||||
RimSummaryCase* findSummaryCaseFromFileName(const QString& fileName) const;
|
||||
|
||||
Reference in New Issue
Block a user