//-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- void RicImportEnsembleFeature::onActionTriggered(bool isChecked) { RiaApplication* app = RiaApplication::instance(); QStringList fileNames = RicImportSummaryCasesFeature::runRecursiveSummaryCaseFileSearchDialog("Import Ensemble"); if (fileNames.isEmpty()) return; QString ensembleName = askForEnsembleName(); if (ensembleName.isEmpty()) return; std::vector<RimSummaryCase*> cases; RicImportSummaryCasesFeature::createSummaryCasesFromFiles(fileNames, &cases); validateEnsembleCases(cases); RicImportSummaryCasesFeature::addSummaryCases(cases); RicCreateSummaryCaseCollectionFeature::groupSummaryCases(cases, ensembleName, true); RiuPlotMainWindow* mainPlotWindow = app->getOrCreateAndShowMainPlotWindow(); if (mainPlotWindow && !cases.empty()) { mainPlotWindow->selectAsCurrentItem(cases.back()); mainPlotWindow->updateSummaryPlotToolBar(); } std::vector<RimCase*> allCases; app->project()->allCases(allCases); if (allCases.size() == 0) { RiuMainWindow::instance()->close(); } }
//-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- bool RicImportSummaryCasesFeature::createAndAddSummaryCasesFromFiles(const QStringList& fileNames, std::vector<RimSummaryCase*>* newCases) { RiaApplication* app = RiaApplication::instance(); std::vector<RimSummaryCase*> temp; std::vector<RimSummaryCase*>* cases = newCases ? newCases : &temp; if (createSummaryCasesFromFiles(fileNames, cases)) { addSummaryCases(*cases); if (!cases->empty()) { createNewPlot(cases->back()); } RiuPlotMainWindow* mainPlotWindow = app->getOrCreateAndShowMainPlotWindow(); if (mainPlotWindow && !cases->empty()) { mainPlotWindow->selectAsCurrentItem(cases->back()); mainPlotWindow->updateSummaryPlotToolBar(); // Close main window if there are no eclipse cases imported std::vector<RimCase*> allCases; app->project()->allCases(allCases); if (allCases.size() == 0) { RiuMainWindow::instance()->close(); } } return true; } return false; }
//-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- void RicNewSummaryEnsembleCurveSetFeature::createPlotForCurveSetAndUpdate(RimSummaryCaseCollection* ensemble) { RiaApplication* app = RiaApplication::instance(); RimProject* proj = app->project(); RimSummaryPlotCollection* summaryPlotCollection = proj->mainPlotCollection->summaryPlotCollection(); RimSummaryPlot* plot = summaryPlotCollection->createSummaryPlotWithAutoTitle(); RimEnsembleCurveSet* curveSet = RicNewSummaryEnsembleCurveSetFeature::addDefaultCurveSet(plot, ensemble); plot->loadDataAndUpdate(); summaryPlotCollection->updateConnectedEditors(); RiuPlotMainWindow* mainPlotWindow = app->getOrCreateAndShowMainPlotWindow(); if (mainPlotWindow) { mainPlotWindow->selectAsCurrentItem(curveSet); mainPlotWindow->updateSummaryPlotToolBar(); } }
//-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- void RicImportSummaryCasesFeature::onActionTriggered(bool isChecked) { RiaApplication* app = RiaApplication::instance(); QString pathCacheName = "INPUT_FILES"; QStringList fileNames = runRecursiveSummaryCaseFileSearchDialog("Import Summary Cases", pathCacheName); std::vector<RimSummaryCase*> cases; if (!fileNames.isEmpty()) createSummaryCasesFromFiles(fileNames, &cases); addSummaryCases(cases); if (!cases.empty()) { createNewPlot(cases.front()); } addCasesToGroupIfRelevant(cases); for (const auto& rimCase : cases) RiaApplication::instance()->addToRecentFiles(rimCase->summaryHeaderFilename()); RiuPlotMainWindow* mainPlotWindow = app->getOrCreateAndShowMainPlotWindow(); if (mainPlotWindow && !cases.empty()) { mainPlotWindow->selectAsCurrentItem(cases.back()); mainPlotWindow->updateSummaryPlotToolBar(); } std::vector<RimCase*> allCases; app->project()->allCases(allCases); if (allCases.size() == 0) { RiuMainWindow::instance()->close(); } }