#2754 Fix ensemble import workflow

This commit is contained in:
Bjørn Erik Jensen
2018-04-19 13:38:07 +02:00
parent b3ee1c1f9b
commit 32fb519073
5 changed files with 65 additions and 13 deletions

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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);

View File

@@ -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();

View File

@@ -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);