#3052 Summary Plot : Make name helper class more robust

This commit is contained in:
Magne Sjaastad 2018-06-18 21:58:32 +02:00
parent 5059201126
commit 174538bb92
3 changed files with 60 additions and 17 deletions

View File

@ -1578,8 +1578,8 @@ void RimSummaryPlot::updateNameHelperWithCurveData(RimSummaryPlotNameHelper* nam
nameHelper->clear();
nameHelper->appendAddresses(addresses);
nameHelper->appendSummaryCases(sumCases);
nameHelper->appendEnsembleCases(ensembleCases);
nameHelper->setSummaryCases(sumCases);
nameHelper->setEnsembleCases(ensembleCases);
}
//--------------------------------------------------------------------------------------------------

View File

@ -36,7 +36,7 @@ RimSummaryPlotNameHelper::RimSummaryPlotNameHelper() {}
void RimSummaryPlotNameHelper::clear()
{
m_summaryCases.clear();
m_ensembleCases.clear();
m_analyzer.clear();
clearTitleSubStrings();
@ -55,13 +55,15 @@ void RimSummaryPlotNameHelper::appendAddresses(const std::vector<RifEclipseSumma
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimSummaryPlotNameHelper::appendSummaryCases(const std::vector<RimSummaryCase*>& summaryCases)
void RimSummaryPlotNameHelper::setSummaryCases(const std::vector<RimSummaryCase*>& summaryCases)
{
m_summaryCases.clear();
for (auto summaryCase : summaryCases)
m_summaryCases.resize(summaryCases.size());
for (size_t i = 0; i < summaryCases.size(); i++)
{
if (summaryCase) m_summaryCases.insert(summaryCase);
m_summaryCases[i] = summaryCases[i];
}
extractPlotTitleSubStrings();
@ -70,13 +72,15 @@ void RimSummaryPlotNameHelper::appendSummaryCases(const std::vector<RimSummaryCa
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimSummaryPlotNameHelper::appendEnsembleCases(const std::vector<RimSummaryCaseCollection*>& ensembleCases)
void RimSummaryPlotNameHelper::setEnsembleCases(const std::vector<RimSummaryCaseCollection*>& ensembleCases)
{
m_ensembleCases.clear();
for (auto ensembleCase : ensembleCases)
m_ensembleCases.resize(ensembleCases.size());
for (size_t i = 0; i < ensembleCases.size(); i++)
{
if (ensembleCase) m_ensembleCases.insert(ensembleCase);
m_ensembleCases[i] = ensembleCases[i];
}
extractPlotTitleSubStrings();
@ -216,21 +220,54 @@ void RimSummaryPlotNameHelper::extractPlotTitleSubStrings()
}
}
if (m_summaryCases.size() == 1 && m_ensembleCases.empty())
auto summaryCases = setOfSummaryCases();
auto ensembleCases = setOfEnsembleCases();
if (summaryCases.size() == 1 && ensembleCases.empty())
{
auto summaryCase = *(m_summaryCases.begin());
auto summaryCase = *(summaryCases.begin());
if (summaryCase)
{
m_titleCaseName = summaryCase->caseName();
}
}
else if (m_ensembleCases.size() == 1 && m_summaryCases.empty())
else if (ensembleCases.size() == 1 && summaryCases.empty())
{
auto ensembleCase = *(m_ensembleCases.begin());
auto ensembleCase = *(ensembleCases.begin());
if (ensembleCase)
{
m_titleCaseName = ensembleCase->name();
}
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::set<RimSummaryCase*> RimSummaryPlotNameHelper::setOfSummaryCases() const
{
std::set<RimSummaryCase*> summaryCases;
for (const auto& sumCase : m_summaryCases)
{
if (sumCase) summaryCases.insert(sumCase);
}
return summaryCases;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::set<RimSummaryCaseCollection*> RimSummaryPlotNameHelper::setOfEnsembleCases() const
{
std::set<RimSummaryCaseCollection*> ensembleCases;
for (const auto& ensemble : m_ensembleCases)
{
if (ensemble) ensembleCases.insert(ensemble);
}
return ensembleCases;
}

View File

@ -22,6 +22,8 @@
#include "RifEclipseSummaryAddress.h"
#include "cafPdmPointer.h"
#include <QString>
#include <string>
@ -42,8 +44,8 @@ public:
void clear();
void appendAddresses(const std::vector<RifEclipseSummaryAddress>& addresses);
void appendSummaryCases(const std::vector<RimSummaryCase*>& summaryCases);
void appendEnsembleCases(const std::vector<RimSummaryCaseCollection*>& ensembleCases);
void setSummaryCases(const std::vector<RimSummaryCase*>& summaryCases);
void setEnsembleCases(const std::vector<RimSummaryCaseCollection*>& ensembleCases);
QString plotTitle() const;
@ -57,11 +59,15 @@ private:
void clearTitleSubStrings();
void extractPlotTitleSubStrings();
std::set<RimSummaryCase*> setOfSummaryCases() const;
std::set<RimSummaryCaseCollection*> setOfEnsembleCases() const;
private:
RiaSummaryCurveAnalyzer m_analyzer;
std::set<RimSummaryCase*> m_summaryCases;
std::set<RimSummaryCaseCollection*> m_ensembleCases;
std::vector<caf::PdmPointer<RimSummaryCase>> m_summaryCases;
std::vector<caf::PdmPointer<RimSummaryCaseCollection>> m_ensembleCases;
std::string m_titleQuantity;
std::string m_titleWellName;