#1921 Curve Creator. Add curve name config

This commit is contained in:
Bjørn Erik Jensen 2017-09-22 09:54:40 +02:00
parent f2d32a5833
commit 1590a2a26e
6 changed files with 66 additions and 21 deletions

View File

@ -50,6 +50,7 @@
#include "RimSummaryCaseMainCollection.h"
#include "RimOilField.h"
#include "RimSummaryCaseCollection.h"
#include "RimSummaryCurveAutoName.h"
CAF_PDM_SOURCE_INIT(RicSummaryCurveCreator, "RicSummaryCurveCreator");
@ -217,6 +218,12 @@ RicSummaryCurveCreator::RicSummaryCurveCreator() : m_identifierFieldsMap(
m_appearanceApplyButton = false;
m_appearanceApplyButton.uiCapability()->setUiEditorTypeName(caf::PdmUiPushButtonEditor::uiEditorTypeName());
m_appearanceApplyButton.uiCapability()->setUiLabelPosition(caf::PdmUiItemInfo::LEFT);
CAF_PDM_InitField(&m_showLegend, "ShowLegend", true, "Contribute To Legend", "", "", "");
CAF_PDM_InitFieldNoDefault(&m_curveNameConfig, "SummaryCurveNameConfig", "SummaryCurveNameConfig", "", "", "");
m_curveNameConfig = new RimSummaryCurveAutoName();
m_curveNameConfig.uiCapability()->setUiHidden(true);
m_curveNameConfig.uiCapability()->setUiTreeChildrenHidden(true);
}
//--------------------------------------------------------------------------------------------------
@ -308,6 +315,13 @@ void RicSummaryCurveCreator::fieldChangedByUi(const caf::PdmFieldHandle* changed
m_previewPlot->loadDataAndUpdate();
m_appearanceApplyButton = false;
}
else if (changedField == &m_showLegend)
{
for (auto curve : m_previewPlot->summaryCurves())
{
curve->showLegend(m_showLegend());
}
}
else
{
// Lookup item type input field
@ -597,6 +611,12 @@ void RicSummaryCurveCreator::defineUiOrdering(QString uiConfigName, caf::PdmUiOr
m_regionAppearanceType.uiCapability()->setUiReadOnly(m_useAutoAppearanceAssignment);
}
// Name config
caf::PdmUiGroup* autoNameGroup = uiOrdering.addNewGroupWithKeyword("Curve Name Configuration", RicSummaryCurveCreatorUiKeywords::nameConfig());
autoNameGroup->setCollapsedByDefault(true);
autoNameGroup->add(&m_showLegend);
m_curveNameConfig->uiOrdering(uiConfigName, *autoNameGroup);
// Fields to be displayed directly in UI
uiOrdering.add(&m_targetPlot);
uiOrdering.add(&m_okButtonField);
@ -914,6 +934,7 @@ void RicSummaryCurveCreator::updatePreviewCurvesFromCurveDefinitions(const std::
RimSummaryCurve* curve = new RimSummaryCurve();
curve->setSummaryCase(currentCase);
curve->setSummaryAddress(curveDef.second);
curve->applyCurveAutoNameSettings(*m_curveNameConfig());
m_previewPlot->addCurve(curve);
curveLookCalc.setupCurveLook(curve);
}
@ -1259,3 +1280,15 @@ void RicSummaryCurveCreator::createNewPlot()
}
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RicSummaryCurveCreator::updateCurveNames()
{
for (RimSummaryCurve* curve : m_previewPlot->summaryCurves())
{
curve->applyCurveAutoNameSettings(*m_curveNameConfig());
curve->updateCurveName();
}
}

View File

@ -34,7 +34,7 @@
#include "RimSummaryCurveAppearanceCalculator.h"
class RimSummaryCase;
class RimSummaryCurveAutoName;
//==================================================================================================
///
@ -79,6 +79,7 @@ public:
bool isCloseButtonPressed() const;
void clearCloseButton();
void updateCurveNames();
private:
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField,
@ -147,6 +148,9 @@ private:
caf::PdmField< AppearanceTypeAppEnum > m_groupAppearanceType;
caf::PdmField< AppearanceTypeAppEnum > m_regionAppearanceType;
caf::PdmField<bool> m_showLegend;
caf::PdmChildField<RimSummaryCurveAutoName*> m_curveNameConfig;
caf::PdmField<bool> m_okButtonField;
caf::PdmField<bool> m_applyButtonField;
caf::PdmField<bool> m_closeButtonField;

View File

@ -76,14 +76,10 @@ void RicSummaryCurveCreatorSplitterUi::recursivelyConfigureAndUpdateTopLevelUiIt
if (topLevelUiItems[i]->isUiGroup())
{
caf::PdmUiGroup* group = static_cast<caf::PdmUiGroup*>(topLevelUiItems[i]);
QMinimizePanel* groupBox = findOrCreateGroupBox(this->widget(), group, uiConfigName);
auto groupBox = createGroupBoxWithContent(group, uiConfigName);
m_firstRowLayout->addWidget(groupBox);
const std::vector<caf::PdmUiItem*>& groupChildren = group->uiItems();
recursivelyConfigureAndUpdateUiItemsInGridLayoutColumn(groupChildren, groupBox->contentFrame(), uiConfigName);
// Add group boxes until summaries are detected
if (group->keyword() == RicSummaryCurveCreatorUiKeywords::summaries())
@ -94,17 +90,13 @@ void RicSummaryCurveCreatorSplitterUi::recursivelyConfigureAndUpdateTopLevelUiIt
m_lowerLeftLayout->insertWidget(0, getOrCreateCurveTreeWidget(), 1);
{
caf::PdmUiGroup* group = findGroupByKeyword(topLevelUiItems, RicSummaryCurveCreatorUiKeywords::appearance(), uiConfigName);
QMinimizePanel* groupBox = findOrCreateGroupBox(this->widget(), group, uiConfigName);
m_lowerLeftLayout->insertWidget(1, groupBox);
const std::vector<caf::PdmUiItem*>& groupChildren = group->uiItems();
recursivelyConfigureAndUpdateUiItemsInGridLayoutColumn(groupChildren, groupBox->contentFrame(), uiConfigName);
}
caf::PdmUiGroup* appearanceGroup = findGroupByKeyword(topLevelUiItems, RicSummaryCurveCreatorUiKeywords::nameConfig(), uiConfigName);
auto appearanceGroupBox = createGroupBoxWithContent(appearanceGroup, uiConfigName);
m_lowerLeftLayout->insertWidget(1, appearanceGroupBox);
caf::PdmUiGroup* nameConfigGroup = findGroupByKeyword(topLevelUiItems, RicSummaryCurveCreatorUiKeywords::nameConfig(), uiConfigName);
auto nameConfigGroupBox = createGroupBoxWithContent(nameConfigGroup, uiConfigName);
m_lowerLeftLayout->insertWidget(2, nameConfigGroupBox);
m_secondRowLayout->insertWidget(1, getOrCreatePlotWidget());
@ -283,3 +275,16 @@ void RicSummaryCurveCreatorSplitterUi::configureAndUpdateFields(int widgetStartI
}
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QMinimizePanel* RicSummaryCurveCreatorSplitterUi::createGroupBoxWithContent(caf::PdmUiGroup* group,
const QString& uiConfigName)
{
QMinimizePanel* groupBox = findOrCreateGroupBox(this->widget(), group, uiConfigName);
const std::vector<caf::PdmUiItem*>& groupChildren = group->uiItems();
recursivelyConfigureAndUpdateUiItemsInGridLayoutColumn(groupChildren, groupBox->contentFrame(), uiConfigName);
return groupBox;
}

View File

@ -66,6 +66,8 @@ private:
const std::vector<caf::PdmUiItem *>& topLevelUiItems,
const QString& uiConfigName);
QMinimizePanel* createGroupBoxWithContent(caf::PdmUiGroup* group,
const QString& uiConfigName);
signals:
void signalCloseButtonPressed();

View File

@ -40,4 +40,5 @@ public:
static QString lgrWells() { return "LgrWellsKeyword"; };
static QString wellSegments() { return "WellSegmentsKeyword"; };
static QString appearance() { return "AppearanceKeyword"; };
static QString nameConfig() { return "NameConfigKeyword"; };
};

View File

@ -22,9 +22,9 @@
#include "RimSummaryCurve.h"
#include "RimSummaryCase.h"
#include "RimSummaryCurveFilter.h"
#include "cafPdmUiPushButtonEditor.h"
#include "SummaryPlotCommands/RicSummaryCurveCreator.h"
@ -245,11 +245,11 @@ void RimSummaryCurveAutoName::fieldChangedByUi(const caf::PdmFieldHandle* change
summaryCurve->updateConnectedEditors();
}
RimSummaryCurveFilter* summaryCurveFilter = dynamic_cast<RimSummaryCurveFilter*>(this->parentField()->ownerObject());
if (summaryCurveFilter)
RicSummaryCurveCreator* curveCreator = dynamic_cast<RicSummaryCurveCreator*>(this->parentField()->ownerObject());
if (curveCreator)
{
summaryCurveFilter->updateCurveNames();
summaryCurveFilter->updateConnectedEditors();
curveCreator->updateCurveNames();
curveCreator->updateConnectedEditors();
}
}