mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#2754 Fix ensemble import workflow
This commit is contained in:
@@ -70,6 +70,7 @@ void RicImportEnsambleFeature::onActionTriggered(bool isChecked)
|
||||
QString ensambleName = askForEnsambleName();
|
||||
if (ensambleName.isEmpty()) return;
|
||||
|
||||
RicImportSummaryCasesFeature::addSummaryCases(cases);
|
||||
RicCreateSummaryCaseCollectionFeature::groupSummaryCases(cases, ensambleName);
|
||||
|
||||
std::vector<RimCase*> allCases;
|
||||
|
@@ -66,6 +66,8 @@ void RicImportSummaryCasesFeature::onActionTriggered(bool isChecked)
|
||||
RiaApplication* app = RiaApplication::instance();
|
||||
std::vector<RimSummaryCase*> cases = importSummaryCases("Import Summary Cases");
|
||||
|
||||
addSummaryCases(cases);
|
||||
|
||||
for (const auto& rimCase : cases) RiaApplication::instance()->addToRecentFiles(rimCase->summaryHeaderFilename());
|
||||
|
||||
std::vector<RimCase*> allCases;
|
||||
@@ -90,6 +92,21 @@ void RicImportSummaryCasesFeature::setupActionLook(QAction* actionToSetup)
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RicImportSummaryCasesFeature::createAndAddSummaryCasesFromFiles(const QStringList& fileNames, std::vector<RimSummaryCase*>* newCases)
|
||||
{
|
||||
std::vector<RimSummaryCase*> temp;
|
||||
std::vector<RimSummaryCase*>* cases = newCases ? newCases : &temp;
|
||||
if (createSummaryCasesFromFiles(fileNames, cases))
|
||||
{
|
||||
addSummaryCases(*cases);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RicImportSummaryCasesFeature::createSummaryCasesFromFiles(const QStringList& fileNames, std::vector<RimSummaryCase*>* newCases)
|
||||
{
|
||||
RiaApplication* app = RiaApplication::instance();
|
||||
RimProject* proj = app->project();
|
||||
@@ -101,21 +118,32 @@ bool RicImportSummaryCasesFeature::createAndAddSummaryCasesFromFiles(const QStri
|
||||
RifSummaryCaseRestartSelector fileSelector;
|
||||
std::vector<RifSummaryCaseFileInfo> importFileInfos = fileSelector.getFilesToImportFromSummaryFiles(fileNames);
|
||||
|
||||
std::vector<RimSummaryCase*> sumCases = sumCaseColl->createAndAddSummaryCasesFromFileInfos(importFileInfos);
|
||||
sumCaseColl->updateAllRequiredEditors();
|
||||
|
||||
RiuMainPlotWindow* mainPlotWindow = app->getOrCreateAndShowMainPlotWindow();
|
||||
if (mainPlotWindow && !sumCases.empty())
|
||||
{
|
||||
mainPlotWindow->selectAsCurrentItem(sumCases.back());
|
||||
|
||||
mainPlotWindow->updateSummaryPlotToolBar();
|
||||
}
|
||||
std::vector<RimSummaryCase*> sumCases = sumCaseColl->createSummaryCasesFromFileInfos(importFileInfos);
|
||||
|
||||
if (newCases) newCases->insert(newCases->end(), sumCases.begin(), sumCases.end());
|
||||
return true;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RicImportSummaryCasesFeature::addSummaryCases(const std::vector<RimSummaryCase*> cases)
|
||||
{
|
||||
RiaApplication* app = RiaApplication::instance();
|
||||
RimProject* proj = app->project();
|
||||
RimSummaryCaseMainCollection* sumCaseColl = proj->activeOilField() ? proj->activeOilField()->summaryCaseMainCollection() : nullptr;
|
||||
sumCaseColl->addCases(cases);
|
||||
sumCaseColl->updateAllRequiredEditors();
|
||||
|
||||
RiuMainPlotWindow* mainPlotWindow = app->getOrCreateAndShowMainPlotWindow();
|
||||
if (mainPlotWindow && !cases.empty())
|
||||
{
|
||||
mainPlotWindow->selectAsCurrentItem(cases.back());
|
||||
|
||||
mainPlotWindow->updateSummaryPlotToolBar();
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -139,6 +167,6 @@ std::vector<RimSummaryCase*> RicImportSummaryCasesFeature::importSummaryCases(co
|
||||
if (fileNames.isEmpty()) return std::vector<RimSummaryCase*>();
|
||||
|
||||
std::vector<RimSummaryCase*> newCases;
|
||||
createAndAddSummaryCasesFromFiles(fileNames, &newCases);
|
||||
createSummaryCasesFromFiles(fileNames, &newCases);
|
||||
return newCases;
|
||||
}
|
||||
|
@@ -39,6 +39,8 @@ public:
|
||||
RicImportSummaryCasesFeature() { }
|
||||
|
||||
static bool createAndAddSummaryCasesFromFiles(const QStringList& fileName, std::vector<RimSummaryCase*>* newCases = nullptr);
|
||||
static bool createSummaryCasesFromFiles(const QStringList& fileName, std::vector<RimSummaryCase*>* newCases);
|
||||
static void addSummaryCases(const std::vector<RimSummaryCase*> cases);
|
||||
|
||||
static std::vector<RimSummaryCase*> importSummaryCases(const QString& dialogTitle);
|
||||
|
||||
|
@@ -170,6 +170,17 @@ RimSummaryCase* RimSummaryCaseMainCollection::findSummaryCaseFromFileName(const
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimSummaryCaseMainCollection::addCases(const std::vector<RimSummaryCase*> cases)
|
||||
{
|
||||
for (RimSummaryCase* sumCase : cases)
|
||||
{
|
||||
addCase(sumCase);
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -298,6 +309,16 @@ void RimSummaryCaseMainCollection::loadAllSummaryCaseData()
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<RimSummaryCase*> RimSummaryCaseMainCollection::createAndAddSummaryCasesFromFileInfos(const std::vector<RifSummaryCaseFileInfo>& summaryHeaderFileInfos)
|
||||
{
|
||||
std::vector<RimSummaryCase*> newCases = createSummaryCasesFromFileInfos(summaryHeaderFileInfos);
|
||||
addCases(newCases);
|
||||
return newCases;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<RimSummaryCase*> RimSummaryCaseMainCollection::createSummaryCasesFromFileInfos(const std::vector<RifSummaryCaseFileInfo>& summaryHeaderFileInfos)
|
||||
{
|
||||
RimProject* project = RiaApplication::instance()->project();
|
||||
|
||||
@@ -316,7 +337,6 @@ std::vector<RimSummaryCase*> RimSummaryCaseMainCollection::createAndAddSummaryCa
|
||||
{
|
||||
RimGridSummaryCase* newSumCase = new RimGridSummaryCase();
|
||||
|
||||
this->m_cases.push_back(newSumCase);
|
||||
newSumCase->setIncludeRestartFiles(fileInfo.includeRestartFiles);
|
||||
newSumCase->setAssociatedEclipseCase(eclCase);
|
||||
newSumCase->createSummaryReaderInterface();
|
||||
@@ -328,7 +348,6 @@ std::vector<RimSummaryCase*> RimSummaryCaseMainCollection::createAndAddSummaryCa
|
||||
{
|
||||
RimFileSummaryCase* newSumCase = new RimFileSummaryCase();
|
||||
|
||||
this->m_cases.push_back(newSumCase);
|
||||
newSumCase->setIncludeRestartFiles(fileInfo.includeRestartFiles);
|
||||
newSumCase->setSummaryHeaderFileName(fileInfo.fileName);
|
||||
newSumCase->createSummaryReaderInterface();
|
||||
|
@@ -46,10 +46,12 @@ public:
|
||||
|
||||
void createSummaryCasesFromRelevantEclipseResultCases();
|
||||
std::vector<RimSummaryCase*> createAndAddSummaryCasesFromFileInfos(const std::vector<RifSummaryCaseFileInfo>& summaryHeaderFileInfos);
|
||||
std::vector<RimSummaryCase*> createSummaryCasesFromFileInfos(const std::vector<RifSummaryCaseFileInfo>& summaryHeaderFileInfos);
|
||||
|
||||
RimSummaryCase* findSummaryCaseFromEclipseResultCase(RimEclipseResultCase* eclResCase) const;
|
||||
RimSummaryCase* findSummaryCaseFromFileName(const QString& fileName) const;
|
||||
|
||||
void addCases(const std::vector<RimSummaryCase*> cases);
|
||||
void addCase(RimSummaryCase* summaryCase);
|
||||
void removeCase(RimSummaryCase* summaryCase);
|
||||
|
||||
|
Reference in New Issue
Block a user