#2555 Refactored summary restart file import

This commit is contained in:
Bjørn Erik Jensen
2018-03-20 11:25:54 +01:00
parent 2f11395525
commit d5bbeffdd0
11 changed files with 266 additions and 181 deletions

View File

@@ -1872,7 +1872,7 @@ bool RiaApplication::openFile(const QString& fileName)
}
else if (fileName.contains(".smspec", Qt::CaseInsensitive))
{
loadingSucceded = RicImportSummaryCasesFeature::createAndAddSummaryCaseFromFileWithDialog(fileName);
loadingSucceded = RicImportSummaryCasesFeature::createAndAddSummaryCasesFromFiles(QStringList({ fileName }));
if (loadingSucceded)
{
getOrCreateAndShowMainPlotWindow();

View File

@@ -64,17 +64,10 @@ void RicImportSummaryCaseFeature::onActionTriggered(bool isChecked)
if (fileNames.isEmpty()) return;
std::vector<RicSummaryCaseFileInfo> fileInfos;
if (prefs->summaryRestartFilesImportMode == RiaPreferences::ASK_USER)
if (RicImportSummaryCasesFeature::createAndAddSummaryCasesFromFiles(fileNames))
{
fileInfos = RicImportSummaryCasesFeature::getFilesToImportWithDialog(fileNames, true);
for(const auto& fileName : fileNames) RiaApplication::instance()->addToRecentFiles(fileName);
}
else
{
fileInfos = RicImportSummaryCasesFeature::getFilesToImportFromPrefs(fileNames, prefs->summaryRestartFilesImportMode);
}
RicImportSummaryCasesFeature::createAndAddSummaryCaseFromFileInfo(fileInfos);
std::vector<RimCase*> cases;
app->project()->allCases(cases);

View File

@@ -22,7 +22,6 @@
#include "RiaPreferences.h"
#include "RicFileHierarchyDialog.h"
#include "RicSummaryCaseRestartDialog.h"
#include "RimGridSummaryCase.h"
#include "RimMainPlotCollection.h"
@@ -56,7 +55,6 @@ bool RicImportSummaryCasesFeature::isCommandEnabled()
void RicImportSummaryCasesFeature::onActionTriggered(bool isChecked)
{
RiaApplication* app = RiaApplication::instance();
RiaPreferences* prefs = app->preferences();
QString defaultDir = app->lastUsedDialogDirectory("INPUT_FILES");
RicFileHierarchyDialogResult result = RicFileHierarchyDialog::getOpenFileNames(nullptr, "Import Summary Cases", defaultDir, m_pathFilter, m_fileNameFilter, QStringList(".SMSPEC"));
@@ -73,19 +71,10 @@ void RicImportSummaryCasesFeature::onActionTriggered(bool isChecked)
QStringList fileNames = result.files;
if (fileNames.isEmpty()) return;
std::vector<RicSummaryCaseFileInfo> fileInfos;
if (prefs->summaryRestartFilesImportMode == RiaPreferences::ASK_USER)
if (createAndAddSummaryCasesFromFiles(fileNames))
{
fileInfos = getFilesToImportWithDialog(fileNames, true);
for (const auto& fileName : fileNames) RiaApplication::instance()->addToRecentFiles(fileName);
}
else
{
fileInfos = getFilesToImportFromPrefs(fileNames, prefs->summaryRestartFilesImportMode);
}
createAndAddSummaryCaseFromFileInfo(fileInfos);
if (fileInfos.size() > 0) RiaApplication::instance()->addToRecentFiles(fileInfos.front().fileName);
std::vector<RimCase*> cases;
app->project()->allCases(cases);
@@ -108,128 +97,22 @@ void RicImportSummaryCasesFeature::setupActionLook(QAction* actionToSetup)
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::vector<RicSummaryCaseFileInfo> RicImportSummaryCasesFeature::getFilesToImportWithDialog(const QStringList& initialFiles,
bool enableApplyToAllField)
{
std::set<RicSummaryCaseFileInfo> filesToImport;
RicSummaryCaseRestartDialogResult lastResult;
for (const QString& file : initialFiles)
{
RicSummaryCaseRestartDialogResult result;
if (lastResult.applyToAll) result = lastResult;
else result = RicSummaryCaseRestartDialog::openDialog(file, enableApplyToAllField);
if (result.ok)
{
for (const QString& file : result.files)
{
RicSummaryCaseFileInfo fi(file, result.option == RicSummaryCaseRestartDialog::READ_ALL);
if (filesToImport.count(fi) == 0)
{
filesToImport.insert(fi);
}
}
}
lastResult = result;
}
return std::vector<RicSummaryCaseFileInfo>(filesToImport.begin(), filesToImport.end());
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::vector<RicSummaryCaseFileInfo> RicImportSummaryCasesFeature::getFilesToImportFromPrefs(const QStringList& initialFiles,
RiaPreferences::SummaryRestartFilesImportModeType summaryRestartMode)
{
std::set<RicSummaryCaseFileInfo> filesToImport;
RicSummaryCaseRestartDialogResult lastResult;
for (const QString& file : initialFiles)
{
if (summaryRestartMode == RiaPreferences::IMPORT)
{
filesToImport.insert(RicSummaryCaseFileInfo(file, true));
}
else if (summaryRestartMode == RiaPreferences::NOT_IMPORT)
{
filesToImport.insert(RicSummaryCaseFileInfo(file, false));
}
else if (summaryRestartMode == RiaPreferences::SEPARATE_CASES)
{
filesToImport.insert(RicSummaryCaseFileInfo(file, false));
RifReaderEclipseSummary reader;
std::vector<RifRestartFileInfo> restartFileInfos = reader.getRestartFiles(file);
for (const auto& fi : restartFileInfos)
filesToImport.insert(RicSummaryCaseFileInfo(fi.fileName, false));
}
}
return std::vector<RicSummaryCaseFileInfo>(filesToImport.begin(), filesToImport.end());
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RicImportSummaryCasesFeature::createAndAddSummaryCaseFromFileInfo(const std::vector<RicSummaryCaseFileInfo>& fileInfos)
{
RiaApplication* app = RiaApplication::instance();
RimProject* proj = app->project();
RimSummaryCaseMainCollection* sumCaseColl = proj->activeOilField() ? proj->activeOilField()->summaryCaseMainCollection() : nullptr;
if (!sumCaseColl) return false;
for (const auto& fi : fileInfos)
{
createAndAddSummaryCaseFromFile(fi.fileName, fi.includeRestartFiles);
}
return true;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RicImportSummaryCasesFeature::createAndAddSummaryCaseFromFileWithDialog(const QString& fileName)
{
RiaApplication* app = RiaApplication::instance();
RiaPreferences* prefs = app->preferences();
QStringList fileNames({ fileName });
std::vector<RicSummaryCaseFileInfo> fileInfos;
if (prefs->summaryRestartFilesImportMode == RiaPreferences::ASK_USER)
{
fileInfos = getFilesToImportWithDialog(fileNames, false);
}
else
{
fileInfos = getFilesToImportFromPrefs(fileNames, prefs->summaryRestartFilesImportMode);
}
bool res = createAndAddSummaryCaseFromFileInfo(fileInfos);
RiaApplication::instance()->addToRecentFiles(fileName);
return res;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RicImportSummaryCasesFeature::createAndAddSummaryCaseFromFile(const QString& fileName, bool includeRestartFiles)
bool RicImportSummaryCasesFeature::createAndAddSummaryCasesFromFiles(const QStringList& fileNames)
{
RiaApplication* app = RiaApplication::instance();
RimProject* proj = app->project();
RimSummaryCaseMainCollection* sumCaseColl = proj->activeOilField() ? proj->activeOilField()->summaryCaseMainCollection() : nullptr;
if (!sumCaseColl) return false;
RimSummaryCase* sumCase = sumCaseColl->createAndAddSummaryCaseFromFileName(fileName, includeRestartFiles);
std::vector<RimSummaryCase*> sumCases = sumCaseColl->createAndAddSummaryCasesFromFiles(fileNames);
sumCaseColl->updateAllRequiredEditors();
RiuMainPlotWindow* mainPlotWindow = app->getOrCreateAndShowMainPlotWindow();
if (mainPlotWindow)
if (mainPlotWindow && !sumCases.empty())
{
mainPlotWindow->selectAsCurrentItem(sumCase);
mainPlotWindow->selectAsCurrentItem(sumCases.back());
mainPlotWindow->updateSummaryPlotToolBar();
}
return true;
}

View File

@@ -27,22 +27,6 @@
class RicSummaryCaseRestartDialogResult;
//==================================================================================================
///
//==================================================================================================
class RicSummaryCaseFileInfo
{
public:
RicSummaryCaseFileInfo(const QString _fileName, bool _includeRestartFiles) :
fileName(_fileName), includeRestartFiles(_includeRestartFiles) {}
QString fileName;
bool includeRestartFiles;
bool operator<(const RicSummaryCaseFileInfo& other) const { return fileName < other.fileName; }
bool operator==(const RicSummaryCaseFileInfo& other) const { return fileName == other.fileName; }
};
//==================================================================================================
///
//==================================================================================================
@@ -53,17 +37,7 @@ class RicImportSummaryCasesFeature : public caf::CmdFeature
public:
RicImportSummaryCasesFeature() : m_pathFilter("*"), m_fileNameFilter("*") { }
static std::vector<RicSummaryCaseFileInfo> getFilesToImportWithDialog(const QStringList& initialFiles,
bool enableApplyToAllField);
static std::vector<RicSummaryCaseFileInfo> getFilesToImportFromPrefs(const QStringList& initialFiles,
RiaPreferences::SummaryRestartFilesImportModeType summaryRestartMode);
static bool createAndAddSummaryCaseFromFileInfo(const std::vector<RicSummaryCaseFileInfo>& fileInfos);
static bool createAndAddSummaryCaseFromFileWithDialog(const QString& fileName);
private:
static bool createAndAddSummaryCaseFromFile(const QString& fileName, bool includeRestartFiles);
static bool createAndAddSummaryCasesFromFiles(const QStringList& fileName);
protected:
// Overrides

View File

@@ -127,6 +127,7 @@ RicSummaryCaseRestartDialog::~RicSummaryCaseRestartDialog()
//--------------------------------------------------------------------------------------------------
RicSummaryCaseRestartDialogResult RicSummaryCaseRestartDialog::openDialog(const QString& summaryHeaderFile,
bool showApplyToAllWidget,
RicSummaryCaseRestartDialogResult *lastResult,
QWidget *parent)
{
RicSummaryCaseRestartDialog dialog(parent);
@@ -143,28 +144,41 @@ RicSummaryCaseRestartDialogResult RicSummaryCaseRestartDialog::openDialog(const
return RicSummaryCaseRestartDialogResult(true, READ_SINGLE, QStringList({ summaryHeaderFile }), false);
}
dialog.setWindowTitle("Summary Case Restart Files");
dialog.m_readAllRadioButton->setChecked(true);
dialog.m_currentFile->setText(summaryHeaderFile);
dialog.m_applyToAllCheckBox->setVisible(showApplyToAllWidget);
dialog.resize(DEFAULT_DIALOG_WIDTH, DEFAULT_DIALOG_INIT_HEIGHT);
dialog.exec();
RicSummaryCaseRestartDialogResult dialogResult;
if (lastResult && lastResult->applyToAll)
{
dialogResult = *lastResult;
dialogResult.files.clear();
}
else
{
dialog.setWindowTitle("Summary Case Restart Files");
dialog.m_readAllRadioButton->setChecked(true);
dialog.m_currentFile->setText(summaryHeaderFile);
dialog.m_applyToAllCheckBox->setVisible(showApplyToAllWidget);
dialog.resize(DEFAULT_DIALOG_WIDTH, DEFAULT_DIALOG_INIT_HEIGHT);
dialog.exec();
dialogResult = RicSummaryCaseRestartDialogResult(dialog.result() == QDialog::Accepted,
dialog.selectedOption(),
{},
dialog.applyToAllSelected());
}
if (dialog.result() != QDialog::Accepted)
if (!dialogResult.ok)
{
return RicSummaryCaseRestartDialogResult(false, READ_SINGLE, QStringList(), false);
}
QStringList files({ RiaFilePathTools::toInternalSeparator(summaryHeaderFile) });
if (dialog.selectedOption() == SEPARATE_CASES)
dialogResult.files.push_back(RiaFilePathTools::toInternalSeparator(summaryHeaderFile));
if (dialogResult.option == SEPARATE_CASES)
{
for (const auto& fileInfo : fileInfos)
{
files.push_back(RiaFilePathTools::toInternalSeparator(fileInfo.fileName));
dialogResult.files.push_back(RiaFilePathTools::toInternalSeparator(fileInfo.fileName));
}
}
return RicSummaryCaseRestartDialogResult(true, dialog.selectedOption(), files, dialog.applyToAllSelected());
return dialogResult;
}
//--------------------------------------------------------------------------------------------------

View File

@@ -53,6 +53,7 @@ public:
static RicSummaryCaseRestartDialogResult openDialog(const QString& summaryHeaderFile,
bool showApplyToAllWidget,
RicSummaryCaseRestartDialogResult *lastResult = nullptr,
QWidget *parent = nullptr);
ReadOptions selectedOption() const;

View File

@@ -38,6 +38,7 @@ ${CMAKE_CURRENT_LIST_DIR}/RifWellPathFormationsImporter.h
${CMAKE_CURRENT_LIST_DIR}/RifElementPropertyTableReader.h
${CMAKE_CURRENT_LIST_DIR}/RifElementPropertyReader.h
${CMAKE_CURRENT_LIST_DIR}/RifStimPlanXmlReader.h
${CMAKE_CURRENT_LIST_DIR}/RifSummaryCaseRestartSelector.h
# HDF5 file reader is directly included in ResInsight main CmakeList.txt
#${CMAKE_CURRENT_LIST_DIR}/RifHdf5Reader.h
@@ -80,6 +81,7 @@ ${CMAKE_CURRENT_LIST_DIR}/RifWellPathFormationsImporter.cpp
${CMAKE_CURRENT_LIST_DIR}/RifElementPropertyTableReader.cpp
${CMAKE_CURRENT_LIST_DIR}/RifElementPropertyReader.cpp
${CMAKE_CURRENT_LIST_DIR}/RifStimPlanXmlReader.cpp
${CMAKE_CURRENT_LIST_DIR}/RifSummaryCaseRestartSelector.cpp
# HDF5 file reader is directly included in ResInsight main CmakeList.txt
#${CMAKE_CURRENT_LIST_DIR}/RifHdf5Reader.cpp

View File

@@ -0,0 +1,131 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) Statoil ASA
//
// ResInsight is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.
//
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
// for more details.
//
/////////////////////////////////////////////////////////////////////////////////
#include "RifSummaryCaseRestartSelector.h"
#include "RiaApplication.h"
#include "RiaPreferences.h"
#include "RicSummaryCaseRestartDialog.h"
#include <string>
#include <assert.h>
#include <QDateTime>
#include <QString>
#include <QStringList>
#include <QDir>
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RifSummaryCaseRestartSelector::RifSummaryCaseRestartSelector()
{
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RifSummaryCaseRestartSelector::~RifSummaryCaseRestartSelector()
{
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::vector<RifSummaryCaseFileInfo> RifSummaryCaseRestartSelector::getFilesToImport(const QStringList& selectedFiles)
{
RiaApplication* app = RiaApplication::instance();
RiaPreferences* prefs = app->preferences();
std::vector<RifSummaryCaseFileInfo> fileInfos;
if (prefs->summaryRestartFilesImportMode == RiaPreferences::ASK_USER)
{
bool enableApplyToAllField = selectedFiles.size() > 1;
fileInfos = getFilesToImportByAskingUser(selectedFiles, enableApplyToAllField);
}
else
{
fileInfos = getFilesToImportUsingPrefs(selectedFiles, prefs->summaryRestartFilesImportMode);
}
return fileInfos;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::vector<RifSummaryCaseFileInfo> RifSummaryCaseRestartSelector::getFilesToImportByAskingUser(const QStringList& initialFiles,
bool enableApplyToAllField)
{
std::set<RifSummaryCaseFileInfo> filesToImport;
RicSummaryCaseRestartDialogResult lastResult;
for (const QString& file : initialFiles)
{
RicSummaryCaseRestartDialogResult result = RicSummaryCaseRestartDialog::openDialog(file, enableApplyToAllField, &lastResult);
if (result.ok)
{
for (const QString& file : result.files)
{
RifSummaryCaseFileInfo fi(file, result.option == RicSummaryCaseRestartDialog::READ_ALL);
if (filesToImport.count(fi) == 0)
{
filesToImport.insert(fi);
}
}
}
lastResult = result;
}
return std::vector<RifSummaryCaseFileInfo>(filesToImport.begin(), filesToImport.end());
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::vector<RifSummaryCaseFileInfo> RifSummaryCaseRestartSelector::getFilesToImportUsingPrefs(const QStringList& initialFiles,
RiaPreferences::SummaryRestartFilesImportModeType summaryRestartMode)
{
std::set<RifSummaryCaseFileInfo> filesToImport;
RicSummaryCaseRestartDialogResult lastResult;
for (const QString& file : initialFiles)
{
if (summaryRestartMode == RiaPreferences::IMPORT)
{
filesToImport.insert(RifSummaryCaseFileInfo(file, true));
}
else if (summaryRestartMode == RiaPreferences::NOT_IMPORT)
{
filesToImport.insert(RifSummaryCaseFileInfo(file, false));
}
else if (summaryRestartMode == RiaPreferences::SEPARATE_CASES)
{
filesToImport.insert(RifSummaryCaseFileInfo(file, false));
RifReaderEclipseSummary reader;
std::vector<RifRestartFileInfo> restartFileInfos = reader.getRestartFiles(file);
for (const auto& fi : restartFileInfos)
filesToImport.insert(RifSummaryCaseFileInfo(fi.fileName, false));
}
}
return std::vector<RifSummaryCaseFileInfo>(filesToImport.begin(), filesToImport.end());
}

View File

@@ -0,0 +1,67 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) Statoil ASA
//
// ResInsight is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.
//
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
// for more details.
//
/////////////////////////////////////////////////////////////////////////////////
#pragma once
#include "RiaPreferences.h"
#include <QString>
#include <string>
#include <vector>
#include <map>
class QStringList;
class RifSummaryCaseFileInfo;
//==================================================================================================
//
//
//==================================================================================================
class RifSummaryCaseRestartSelector
{
public:
RifSummaryCaseRestartSelector();
~RifSummaryCaseRestartSelector();
std::vector<RifSummaryCaseFileInfo> getFilesToImport(const QStringList& selectedFiles);
private:
std::vector<RifSummaryCaseFileInfo> getFilesToImportByAskingUser(const QStringList& initialFiles,
bool enableApplyToAllField);
std::vector<RifSummaryCaseFileInfo> getFilesToImportUsingPrefs(const QStringList& initialFiles,
RiaPreferences::SummaryRestartFilesImportModeType summaryRestartMode);
};
//==================================================================================================
///
//==================================================================================================
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; }
};

View File

@@ -18,6 +18,7 @@
#include "RimSummaryCaseMainCollection.h"
#include "RifEclipseSummaryTools.h"
#include "RifSummaryCaseRestartSelector.h"
#include "RimEclipseResultCase.h"
#include "RimFileSummaryCase.h"
@@ -267,8 +268,18 @@ void RimSummaryCaseMainCollection::loadAllSummaryCaseData()
RimSummaryCase* RimSummaryCaseMainCollection::createAndAddSummaryCaseFromEclipseResultCase(RimEclipseResultCase* eclResCase)
{
QString gridFileName = eclResCase->gridFileName();
if(RifEclipseSummaryTools::hasSummaryFiles(QDir::toNativeSeparators(gridFileName)))
QString summaryHeaderFile;
bool formatted;
RifEclipseSummaryTools::findSummaryHeaderFile(QDir::toNativeSeparators(gridFileName), &summaryHeaderFile, &formatted);
if(!summaryHeaderFile.isEmpty())
{
// Activate when after discussing how grid case and summary case(s) are going to be related
//
//RifSummaryCaseRestartSelector fileSelector;
//std::vector<RifSummaryCaseFileInfo> importFileInfos = fileSelector.getFilesToImport(QStringList({ summaryHeaderFile }));
RimGridSummaryCase* newSumCase = new RimGridSummaryCase();
this->m_cases.push_back(newSumCase);
newSumCase->setAssociatedEclipseCase(eclResCase);
@@ -282,17 +293,26 @@ RimSummaryCase* RimSummaryCaseMainCollection::createAndAddSummaryCaseFromEclipse
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimSummaryCase* RimSummaryCaseMainCollection::createAndAddSummaryCaseFromFileName(const QString& fileName, bool includeRestartFiles)
std::vector<RimSummaryCase*> RimSummaryCaseMainCollection::createAndAddSummaryCasesFromFiles(const QStringList& inputFileNames)
{
RimFileSummaryCase* newSumCase = new RimFileSummaryCase();
std::vector<RimSummaryCase*> sumCases;
RifSummaryCaseRestartSelector fileSelector;
std::vector<RifSummaryCaseFileInfo> importFileInfos = fileSelector.getFilesToImport(inputFileNames);
this->m_cases.push_back(newSumCase);
newSumCase->setIncludeRestartFiles(includeRestartFiles);
newSumCase->setSummaryHeaderFileName(fileName);
newSumCase->createSummaryReaderInterface();
newSumCase->updateOptionSensitivity();
for (const RifSummaryCaseFileInfo& fileInfo : importFileInfos)
{
RimFileSummaryCase* newSumCase = new RimFileSummaryCase();
return newSumCase;
this->m_cases.push_back(newSumCase);
newSumCase->setIncludeRestartFiles(fileInfo.includeRestartFiles);
newSumCase->setSummaryHeaderFileName(fileInfo.fileName);
newSumCase->createSummaryReaderInterface();
newSumCase->updateOptionSensitivity();
sumCases.push_back(newSumCase);
}
return sumCases;
}
//--------------------------------------------------------------------------------------------------

View File

@@ -45,7 +45,7 @@ public:
void createSummaryCasesFromRelevantEclipseResultCases();
RimSummaryCase* createAndAddSummaryCaseFromEclipseResultCase(RimEclipseResultCase* eclResCase);
RimSummaryCase* createAndAddSummaryCaseFromFileName(const QString& fileName, bool includeRestartFiles);
std::vector<RimSummaryCase*> createAndAddSummaryCasesFromFiles(const QStringList& inputFileNames);
RimSummaryCase* findSummaryCaseFromEclipseResultCase(RimEclipseResultCase* eclResCase) const;
RimSummaryCase* findSummaryCaseFromFileName(const QString& fileName) const;