mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#1841 Curve creator. Improved case selection. Case grouping
This commit is contained in:
@@ -44,6 +44,9 @@
|
||||
#include <algorithm>
|
||||
#include <sstream>
|
||||
#include <stack>
|
||||
#include "RimSummaryCaseMainCollection.h"
|
||||
#include "RimOilField.h"
|
||||
#include "RimSummaryCaseCollection.h"
|
||||
|
||||
|
||||
CAF_PDM_SOURCE_INIT(RicSummaryCurveCreator, "RicSummaryCurveCreator");
|
||||
@@ -339,13 +342,50 @@ QList<caf::PdmOptionItemInfo> RicSummaryCurveCreator::calculateValueOptions(cons
|
||||
if (fieldNeedingOptions == &m_selectedCases)
|
||||
{
|
||||
RimProject* proj = RiaApplication::instance()->project();
|
||||
std::vector<RimSummaryCase*> cases;
|
||||
std::vector<RimSummaryCase*> topLevelCases;
|
||||
std::vector<RimOilField*> oilFields;
|
||||
|
||||
proj->allSummaryCases(cases);
|
||||
|
||||
for (RimSummaryCase* rimCase : cases)
|
||||
proj->allOilFields(oilFields);
|
||||
for (RimOilField* oilField : oilFields)
|
||||
{
|
||||
options.push_back(caf::PdmOptionItemInfo(rimCase->caseName(), rimCase));
|
||||
RimSummaryCaseMainCollection* sumCaseMainColl = oilField->summaryCaseMainCollection();
|
||||
if (sumCaseMainColl)
|
||||
{
|
||||
// Top level cases
|
||||
for (const auto& sumCase : sumCaseMainColl->topLevelSummaryCases())
|
||||
{
|
||||
options.push_back(caf::PdmOptionItemInfo(sumCase->caseName(), sumCase));
|
||||
}
|
||||
|
||||
// Grouped cases
|
||||
for (const auto& sumCaseColl : sumCaseMainColl->summaryCaseCollections())
|
||||
{
|
||||
options.push_back(caf::PdmOptionItemInfo::createHeader(sumCaseColl->name(), true));
|
||||
|
||||
for (const auto& sumCase : sumCaseColl->allSummaryCases())
|
||||
{
|
||||
auto optionItem = caf::PdmOptionItemInfo(sumCase->caseName(), sumCase);
|
||||
optionItem.setLevel(1);
|
||||
options.push_back(optionItem);
|
||||
}
|
||||
}
|
||||
|
||||
// Observed cases
|
||||
|
||||
// Under construction...
|
||||
//auto observedCases = sumCaseMainColl->topLevelSummaryCases/*observedCases*/();
|
||||
//if (observedCases.size() > 0)
|
||||
//{
|
||||
// options.push_back(caf::PdmOptionItemInfo::createHeader("Observed Summary Cases", true));
|
||||
|
||||
// for (const auto& sumCase : observedCases)
|
||||
// {
|
||||
// auto optionItem = caf::PdmOptionItemInfo(sumCase->caseName(), sumCase);
|
||||
// optionItem.setLevel(1);
|
||||
// options.push_back(optionItem);
|
||||
// }
|
||||
//}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (fieldNeedingOptions == &m_targetPlot)
|
||||
|
||||
@@ -630,6 +630,18 @@ void RimProject::createDisplayModelAndRedrawAllViews()
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimProject::allOilFields(std::vector<RimOilField*>& oilFields)
|
||||
{
|
||||
oilFields.clear();
|
||||
for (const auto& oilField : this->oilFields)
|
||||
{
|
||||
oilFields.push_back(oilField);
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
/// Currently there will be only one oil field in Resinsight, so return hardcoded first oil field
|
||||
/// from the RimOilField collection.
|
||||
|
||||
@@ -101,8 +101,9 @@ public:
|
||||
|
||||
void computeUtmAreaOfInterest();
|
||||
|
||||
RimOilField* activeOilField();
|
||||
const RimOilField* activeOilField() const;
|
||||
void allOilFields(std::vector<RimOilField*>& oilFields);
|
||||
RimOilField* activeOilField();
|
||||
const RimOilField* activeOilField() const;
|
||||
|
||||
void actionsBasedOnSelection(QMenu& contextMenu);
|
||||
|
||||
|
||||
@@ -35,7 +35,8 @@ public:
|
||||
void removeCase(RimSummaryCase* summaryCase);
|
||||
void addCase(RimSummaryCase* summaryCase);
|
||||
|
||||
std::vector<RimSummaryCase*> allSummaryCases();
|
||||
std::vector<RimSummaryCase*> allSummaryCases();
|
||||
QString name() const { return m_name; }
|
||||
|
||||
private:
|
||||
virtual caf::PdmFieldHandle* userDescriptionField() override;
|
||||
|
||||
@@ -225,6 +225,32 @@ std::vector<RimSummaryCase*> RimSummaryCaseMainCollection::allSummaryCases()
|
||||
return cases;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<RimSummaryCase*> RimSummaryCaseMainCollection::topLevelSummaryCases() const
|
||||
{
|
||||
std::vector<RimSummaryCase*> cases;
|
||||
for (const auto& sumCase : m_cases)
|
||||
{
|
||||
cases.push_back(sumCase);
|
||||
}
|
||||
return cases;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<RimSummaryCaseCollection*> RimSummaryCaseMainCollection::summaryCaseCollections() const
|
||||
{
|
||||
std::vector<RimSummaryCaseCollection*> summaryCaseCollections;
|
||||
for (const auto& caseColl : m_caseCollections)
|
||||
{
|
||||
summaryCaseCollections.push_back(caseColl);
|
||||
}
|
||||
return summaryCaseCollections;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -39,8 +39,10 @@ public:
|
||||
RimSummaryCase* summaryCase(size_t idx);
|
||||
size_t summaryCaseCount() const;
|
||||
|
||||
std::vector<RimSummaryCase*> allSummaryCases();
|
||||
|
||||
std::vector<RimSummaryCase*> allSummaryCases();
|
||||
std::vector<RimSummaryCase*> topLevelSummaryCases() const;
|
||||
std::vector<RimSummaryCaseCollection*> summaryCaseCollections() const;
|
||||
|
||||
void createSummaryCasesFromRelevantEclipseResultCases();
|
||||
RimSummaryCase* createAndAddSummaryCaseFromEclipseResultCase(RimEclipseResultCase* eclResCase);
|
||||
RimSummaryCase* createAndAddSummaryCaseFromFileName(const QString& fileName);
|
||||
|
||||
Reference in New Issue
Block a user