#2780 Ensemble Curve Set : Add basic auto name of curve set

This commit is contained in:
Magne Sjaastad
2018-04-27 13:07:33 +02:00
parent c831553cc2
commit 44c3e2c602
3 changed files with 101 additions and 5 deletions

View File

@@ -22,15 +22,16 @@
#include "RifReaderEclipseSummary.h"
#include "RimEnsembleCurveSetCollection.h"
#include "RimProject.h"
#include "RimRegularLegendConfig.h"
#include "RimSummaryAddress.h"
#include "RimSummaryCase.h"
#include "RimSummaryCaseCollection.h"
#include "RimSummaryCurve.h"
#include "RimSummaryPlot.h"
#include "RimSummaryCurveAutoName.h"
#include "RimSummaryFilter.h"
#include "RimSummaryAddress.h"
#include "RimEnsembleCurveSetCollection.h"
#include "RimSummaryPlot.h"
#include "RiuSummaryQwtPlot.h"
@@ -113,6 +114,20 @@ RimEnsembleCurveSet::RimEnsembleCurveSet()
CAF_PDM_InitFieldNoDefault(&m_legendConfig, "LegendConfig", "", "", "", "");
m_legendConfig = new RimRegularLegendConfig();
CAF_PDM_InitField(&m_userDefinedName, "UserDefinedName", QString("Ensamble Curve Set"), "Curve Set Name", "", "", "");
CAF_PDM_InitFieldNoDefault(&m_autoGeneratedName, "AutoGeneratedName", "Curve Set Name", "", "", "");
m_autoGeneratedName.registerGetMethod(this, &RimEnsembleCurveSet::createAutoName);
m_autoGeneratedName.uiCapability()->setUiReadOnly(true);
m_autoGeneratedName.xmlCapability()->disableIO();
CAF_PDM_InitField(&m_isUsingAutoName, "AutoName", true, "Auto Name", "", "", "");
CAF_PDM_InitFieldNoDefault(&m_summaryAddressNameTools, "SummaryAddressNameTools", "SummaryAddressNameTools", "", "", "");
m_summaryAddressNameTools.uiCapability()->setUiHidden(true);
m_summaryAddressNameTools.uiCapability()->setUiTreeChildrenHidden(true);
m_summaryAddressNameTools = new RimSummaryCurveAutoName;
}
//--------------------------------------------------------------------------------------------------
@@ -326,6 +341,10 @@ void RimEnsembleCurveSet::fieldChangedByUi(const caf::PdmFieldHandle* changedFie
updateQwtPlotAxis();
plot->updateAxes();
}
else if (changedField == &m_isUsingAutoName && !m_isUsingAutoName)
{
m_userDefinedName = createAutoName();
}
}
//--------------------------------------------------------------------------------------------------
@@ -333,6 +352,21 @@ void RimEnsembleCurveSet::fieldChangedByUi(const caf::PdmFieldHandle* changedFie
//--------------------------------------------------------------------------------------------------
void RimEnsembleCurveSet::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
{
{
caf::PdmUiGroup* nameGroup = uiOrdering.addNewGroup("Curve Name");
nameGroup->setCollapsedByDefault(true);
nameGroup->add(&m_isUsingAutoName);
if (m_isUsingAutoName)
{
nameGroup->add(&m_autoGeneratedName);
m_summaryAddressNameTools->uiOrdering(uiConfigName, *nameGroup);
}
else
{
nameGroup->add(&m_userDefinedName);
}
}
{
QString curveDataGroupName = "Summary Vector";
caf::PdmUiGroup* curveDataGroup = uiOrdering.addNewGroupWithKeyword(curveDataGroupName, "Summary Vector Y");
@@ -387,6 +421,21 @@ void RimEnsembleCurveSet::defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrd
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
caf::PdmFieldHandle* RimEnsembleCurveSet::userDescriptionField()
{
if (m_isUsingAutoName)
{
return &m_autoGeneratedName;
}
else
{
return &m_userDefinedName;
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
caf::PdmFieldHandle* RimEnsembleCurveSet::objectToggleField()
{
return &m_showCurves;
@@ -632,4 +681,26 @@ std::vector<QString> RimEnsembleCurveSet::ensembleParameters() const
}
}
return std::vector<QString>(paramSet.begin(), paramSet.end());
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RimEnsembleCurveSet::createAutoName() const
{
RimSummaryPlot* plot = nullptr;
firstAncestorOrThisOfTypeAsserted(plot);
QString curveSetName = m_summaryAddressNameTools->curveNameY(m_yValuesCurveVariable->address(), plot->activePlotTitleHelper());
if (curveSetName.isEmpty())
{
curveSetName = m_summaryAddressNameTools->curveNameY(m_yValuesCurveVariable->address(), nullptr);
}
if (curveSetName.isEmpty())
{
curveSetName = "Name Placeholder";
}
return curveSetName;
}