#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;
}

View File

@@ -35,6 +35,7 @@
#include "cafAppEnum.h"
#include "RifEclipseSummaryAddressQMetaType.h"
#include "cafPdmProxyValueField.h"
class QwtPlot;
class QwtPlotCurve;
@@ -44,6 +45,7 @@ class RimSummaryCurve;
class RimSummaryAddress;
class RimSummaryFilter;
class RimSummaryPlotSourceStepping;
class RimSummaryCurveAutoName;
class QKeyEvent;
//==================================================================================================
@@ -78,6 +80,7 @@ public:
void onLegendDefinitionChanged();
private:
caf::PdmFieldHandle* userDescriptionField() override;
caf::PdmFieldHandle* objectToggleField();
virtual void defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute) override;
@@ -101,13 +104,15 @@ private:
void updateAllCurves();
std::vector<QString> ensembleParameters() const;
QString createAutoName() const;
private:
caf::PdmField<bool> m_showCurves;
caf::PdmChildArrayField<RimSummaryCurve*> m_curves;
caf::PdmPointer<RimSummaryCurve> m_currentSummaryCurve;
// Y values
caf::PdmPtrField<RimSummaryCaseCollection*> m_yValuesSummaryGroup;
caf::PdmChildField<RimSummaryAddress*> m_yValuesCurveVariable;
caf::PdmField<QString> m_yValuesSelectedVariableDisplayField;
@@ -123,6 +128,11 @@ private:
caf::PdmChildField<RimRegularLegendConfig*> m_legendConfig;
caf::PdmField<bool> m_isUsingAutoName;
caf::PdmField<QString> m_userDefinedName;
caf::PdmProxyValueField<QString> m_autoGeneratedName;
caf::PdmChildField<RimSummaryCurveAutoName*> m_summaryAddressNameTools;
std::set<RifEclipseSummaryAddress> m_allAddressesCache;
};

View File

@@ -27,6 +27,7 @@
#include "SummaryPlotCommands/RicSummaryCurveCreator.h"
#include "cafPdmUiPushButtonEditor.h"
#include "RimEnsembleCurveSet.h"
CAF_PDM_SOURCE_INIT(RimSummaryCurveAutoName, "SummaryCurveAutoName");
@@ -323,6 +324,8 @@ void RimSummaryCurveAutoName::fieldChangedByUi(const caf::PdmFieldHandle* change
{
summaryCurve->updateCurveNameAndUpdatePlotLegend();
summaryCurve->updateConnectedEditors();
return;
}
RicSummaryCurveCreator* curveCreator = dynamic_cast<RicSummaryCurveCreator*>(this->parentField()->ownerObject());
@@ -330,6 +333,18 @@ void RimSummaryCurveAutoName::fieldChangedByUi(const caf::PdmFieldHandle* change
{
curveCreator->updateCurveNames();
curveCreator->updateConnectedEditors();
return;
}
{
auto ensambleCurveSet = dynamic_cast<RimEnsembleCurveSet*>(this->parentField()->ownerObject());
if (ensambleCurveSet)
{
ensambleCurveSet->updateConnectedEditors();
return;
}
}
}