#2689 Ensemble curves. Set default ensemble parameter

This commit is contained in:
Bjørn Erik Jensen 2018-04-20 13:25:46 +02:00
parent ac10c4b9ac
commit 8bcec23390
2 changed files with 37 additions and 18 deletions

View File

@ -313,11 +313,19 @@ void RimEnsembleCurveSet::fieldChangedByUi(const caf::PdmFieldHandle* changedFie
updateAllCurves();
}
else if (changedField == &m_ensembleParameter ||
changedField == &m_color ||
changedField == &m_colorMode)
changedField == &m_color)
{
updateCurveColors();
}
else if (changedField == &m_colorMode)
{
if (m_ensembleParameter().isEmpty())
{
auto params = ensembleParameters();
m_ensembleParameter = !params.empty() ? params.front() : "";
}
updateCurveColors();
}
else if (changedField == &m_plotAxis)
{
for (RimSummaryCurve* curve : curves())
@ -351,6 +359,7 @@ void RimEnsembleCurveSet::defineUiOrdering(QString uiConfigName, caf::PdmUiOrder
}
caf::PdmUiGroup* colorsGroup = uiOrdering.addNewGroup("Colors");
m_colorMode.uiCapability()->setUiReadOnly(!m_yValuesSummaryGroup());
colorsGroup->add(&m_colorMode);
if (m_colorMode == SINGLE_COLOR)
@ -359,6 +368,7 @@ void RimEnsembleCurveSet::defineUiOrdering(QString uiConfigName, caf::PdmUiOrder
}
else if (m_colorMode == BY_ENSEMBLE_PARAM)
{
m_ensembleParameter.uiCapability()->setUiReadOnly(!m_yValuesSummaryGroup());
colorsGroup->add(&m_ensembleParameter);
}
uiOrdering.skipRemainingFields(true);
@ -417,24 +427,10 @@ QList<caf::PdmOptionItemInfo> RimEnsembleCurveSet::calculateValueOptions(const c
}
else if (fieldNeedingOptions == &m_ensembleParameter)
{
RimSummaryCaseCollection* group = m_yValuesSummaryGroup;
if (group)
for (auto param : ensembleParameters())
{
std::set<QString> paramSet;
for (RimSummaryCase* rimCase : group->allSummaryCases())
{
if (!rimCase->caseRealizationParameters().isNull())
{
auto ps = rimCase->caseRealizationParameters()->parameters();
for (auto p : ps) paramSet.insert(p.first);
}
}
for (auto param : paramSet)
{
options.push_back(caf::PdmOptionItemInfo(param, param));
}
options.push_back(caf::PdmOptionItemInfo(param, param));
}
}
else if (fieldNeedingOptions == &m_yValuesUiFilterResultSelection)
@ -615,3 +611,25 @@ void RimEnsembleCurveSet::updateAllCurves()
}
updateCurveColors();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::vector<QString> RimEnsembleCurveSet::ensembleParameters() const
{
RimSummaryCaseCollection* group = m_yValuesSummaryGroup;
std::set<QString> paramSet;
if (group)
{
for (RimSummaryCase* rimCase : group->allSummaryCases())
{
if (!rimCase->caseRealizationParameters().isNull())
{
auto ps = rimCase->caseRealizationParameters()->parameters();
for (auto p : ps) paramSet.insert(p.first);
}
}
}
return std::vector<QString>(paramSet.begin(), paramSet.end());
}

View File

@ -99,6 +99,7 @@ private:
void updateCurveColors();
void updateQwtPlotAxis();
void updateAllCurves();
std::vector<QString> ensembleParameters() const;
private:
caf::PdmField<bool> m_showCurves;