(#861) Summary Plot : Add support for autogenerated plot name

This commit is contained in:
Magne Sjaastad 2017-11-23 14:12:05 +01:00
parent 20b3de9f7a
commit 5e3467a5f6
11 changed files with 264 additions and 123 deletions

View File

@ -20,92 +20,99 @@
#include "RiaSummaryCurveDefinition.h"
#include "RimSummaryCurve.h"
#include "RimSummaryCurveCollection.h"
#include <set>
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RiaSummaryCurveDefTools::RiaSummaryCurveDefTools(const std::vector<RiaSummaryCurveDefinition>& curveDefinitions)
: m_curveDefinitions(curveDefinitions), m_isEvaluated(false)
{
}
RiaSummaryCurveDefTools::RiaSummaryCurveDefTools() {}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::vector<std::string> RiaSummaryCurveDefTools::uniqueWellNames() const
void RiaSummaryCurveDefTools::findIdentifiers(RimSummaryCurveCollection* sumCurveCollection)
{
computeUniqueValues();
if (!sumCurveCollection) return;
return std::vector<std::string>(m_wellNames.begin(), m_wellNames.end());
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::vector<std::string> RiaSummaryCurveDefTools::uniqueGroupNames() const
{
computeUniqueValues();
return std::vector<std::string>(m_groupName.begin(), m_groupName.end());
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::vector<int> RiaSummaryCurveDefTools::uniqueRegions() const
{
computeUniqueValues();
return std::vector<int>(m_regionNumbers.begin(), m_regionNumbers.end());
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::vector<RimSummaryCase*> RiaSummaryCurveDefTools::uniqueSummaryCases() const
{
computeUniqueValues();
return std::vector<RimSummaryCase*>(m_summaryCases.begin(), m_summaryCases.end());
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RiaSummaryCurveDefTools::computeUniqueValues() const
{
if (m_isEvaluated)
for (auto curve : sumCurveCollection->curves())
{
return;
}
m_summaryCases.insert(curve->summaryCaseY());
// m_wellNames.clear();
// m_groupName.clear();
// m_summaryCases.clear();
auto adr = curve->summaryAddressY();
for (const auto& curveDef : m_curveDefinitions)
{
if (curveDef.summaryCase() != nullptr)
if (!adr.wellName().empty())
{
m_summaryCases.insert(curveDef.summaryCase());
m_wellNames.insert(adr.wellName());
}
if (!curveDef.summaryAddress().wellName().empty())
if (!adr.quantityName().empty())
{
m_wellNames.insert(curveDef.summaryAddress().wellName());
m_quantities.insert(adr.quantityName());
}
if (!curveDef.summaryAddress().wellGroupName().empty())
if (!adr.wellGroupName().empty())
{
m_groupName.insert(curveDef.summaryAddress().wellGroupName());
m_wellGroupNames.insert(adr.wellGroupName());
}
if (curveDef.summaryAddress().regionNumber() != -1)
if (adr.regionNumber() != -1)
{
m_regionNumbers.insert(curveDef.summaryAddress().regionNumber());
m_regionNumbers.insert(adr.regionNumber());
}
}
m_isEvaluated = true;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::set<std::string> RiaSummaryCurveDefTools::quantities() const
{
return m_quantities;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::set<std::string> RiaSummaryCurveDefTools::wellNames() const
{
return m_wellNames;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::set<std::string> RiaSummaryCurveDefTools::wellGroupNames() const
{
return m_wellGroupNames;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::set<int> RiaSummaryCurveDefTools::regionNumbers() const
{
return m_regionNumbers;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::set<RimSummaryCase*> RiaSummaryCurveDefTools::summaryCases() const
{
return m_summaryCases;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RiaSummaryCurveDefTools::clearAllSets()
{
m_quantities.clear();
m_wellNames.clear();
m_wellGroupNames.clear();
m_regionNumbers.clear();
m_summaryCases.clear();
}

View File

@ -22,7 +22,7 @@
#include <string>
#include <vector>
class RiaSummaryCurveDefinition;
class RimSummaryCurveCollection;
class RimSummaryCase;
//==================================================================================================
@ -31,22 +31,24 @@ class RimSummaryCase;
class RiaSummaryCurveDefTools
{
public:
RiaSummaryCurveDefTools(const std::vector<RiaSummaryCurveDefinition>& curveDefinitions);
RiaSummaryCurveDefTools();
std::vector<std::string> uniqueWellNames() const;
std::vector<std::string> uniqueGroupNames() const;
std::vector<int> uniqueRegions() const;
std::vector<RimSummaryCase*> uniqueSummaryCases() const;
void findIdentifiers(RimSummaryCurveCollection* sumCurveCollection);
std::set<std::string> quantities() const;
std::set<std::string> wellNames() const;
std::set<std::string> wellGroupNames() const;
std::set<int> regionNumbers() const;
std::set<RimSummaryCase*> summaryCases() const;
private:
void computeUniqueValues() const;
void clearAllSets();
private:
const std::vector<RiaSummaryCurveDefinition>& m_curveDefinitions;
mutable bool m_isEvaluated;
mutable std::set<std::string> m_wellNames;
mutable std::set<std::string> m_groupName;
mutable std::set<int> m_regionNumbers;
mutable std::set<RimSummaryCase*> m_summaryCases;
std::set<std::string> m_quantities;
std::set<std::string> m_wellNames;
std::set<std::string> m_wellGroupNames;
std::set<int> m_regionNumbers;
std::set<RimSummaryCase*> m_summaryCases;
};

View File

@ -99,11 +99,8 @@ void RicPlotProductionRateFeature::onActionTriggered(bool isChecked)
description = "Well Injection Rates : ";
}
RimSummaryPlot* plot = new RimSummaryPlot();
summaryPlotColl->summaryPlots().push_back(plot);
description += well->name();
plot->setDescription(description);
RimSummaryPlot* plot = summaryPlotColl->createNamedSummaryPlot(description);
if (isInjector(well))
{

View File

@ -119,10 +119,7 @@ RimSummaryPlot* RicNewGridTimeHistoryCurveFeature::userSelectedSummaryPlot()
RimSummaryPlot* summaryPlot = nullptr;
if (featureUi.isCreateNewPlotChecked())
{
RimSummaryPlot* plot = new RimSummaryPlot();
summaryPlotColl->summaryPlots().push_back(plot);
plot->setDescription(featureUi.newPlotName());
RimSummaryPlot* plot = summaryPlotColl->createNamedSummaryPlot(featureUi.newPlotName());
summaryPlotColl->updateConnectedEditors();

View File

@ -246,10 +246,7 @@ RicPasteAsciiDataToSummaryPlotFeature::CurveType RicPasteAsciiDataToSummaryPlotF
//--------------------------------------------------------------------------------------------------
RimSummaryPlot* RicPasteAsciiDataToSummaryPlotFeature::createSummaryPlotAndAddToPlotCollection(RimSummaryPlotCollection *plotCollection)
{
auto summaryPlot = new RimSummaryPlot();
summaryPlot->setDescription(QString("Summary Plot %1").arg(plotCollection->summaryPlots.size() + 1));
plotCollection->summaryPlots().push_back(summaryPlot);
plotCollection->updateConnectedEditors();
summaryPlot->loadDataAndUpdate();
return summaryPlot;
QString name = QString("Summary Plot %1").arg(plotCollection->summaryPlots.size() + 1);
return plotCollection->createNamedSummaryPlot(name);
}

View File

@ -649,10 +649,7 @@ void RicSummaryCurveCreator::createNewPlot()
summaryPlotName = QInputDialog::getText(NULL, "New Summary Plot Name", "New Summary Plot Name", QLineEdit::Normal, summaryPlotName, &ok);
if (ok)
{
RimSummaryPlot* plot = new RimSummaryPlot();
summaryPlotColl->summaryPlots().push_back(plot);
plot->setDescription(summaryPlotName);
RimSummaryPlot* plot = summaryPlotColl->createNamedSummaryPlot(summaryPlotName);
plot->loadDataAndUpdate();
summaryPlotColl->updateConnectedEditors();

View File

@ -50,6 +50,7 @@ RimSummaryCurvesModifier::RimSummaryCurvesModifier()
m_wellNameProxy.registerGetMethod(this, &RimSummaryCurvesModifier::wellName);
m_wellNameProxy.registerSetMethod(this, &RimSummaryCurvesModifier::setWellName);
m_wellNameProxy.uiCapability()->setUiEditorTypeName(caf::PdmUiListEditor::uiEditorTypeName());
m_wellNameProxy.uiCapability()->setUiHidden(false);
// clang-format on
}
@ -92,20 +93,20 @@ QList<caf::PdmOptionItemInfo> RimSummaryCurvesModifier::calculateValueOptions(co
std::set<QString> identifierTexts;
RifSummaryReaderInterface* reader = summaryReader();
if (reader)
{
const std::vector<RifEclipseSummaryAddress> allAddresses = reader->allResultAddresses();
if (fieldNeedingOptions == &m_wellName || fieldNeedingOptions == &m_wellNameProxy)
{
const std::vector<RifEclipseSummaryAddress> allAddresses = reader->allResultAddresses();
identifierTexts = findAvailableIdentifierTexts(allAddresses, RifEclipseSummaryAddress::SUMMARY_WELL);
}
else if (fieldNeedingOptions == &m_region)
{
const std::vector<RifEclipseSummaryAddress> allAddresses = reader->allResultAddresses();
identifierTexts = findAvailableIdentifierTexts(allAddresses, RifEclipseSummaryAddress::SUMMARY_REGION);
}
else if (fieldNeedingOptions == &m_groupName)
{
const std::vector<RifEclipseSummaryAddress> allAddresses = reader->allResultAddresses();
identifierTexts = findAvailableIdentifierTexts(allAddresses, RifEclipseSummaryAddress::SUMMARY_WELL_GROUP);
}
}
@ -193,9 +194,12 @@ void RimSummaryCurvesModifier::fieldChangedByUi(const caf::PdmFieldHandle* chang
for (auto curve : curveCollection->curves())
{
RifEclipseSummaryAddress adr = curve->summaryAddressY();
adr.setWellName(m_wellName().toStdString());
if (adr.category() == RifEclipseSummaryAddress::SUMMARY_WELL)
{
adr.setWellName(m_wellName().toStdString());
curve->setSummaryAddressY(adr);
curve->setSummaryAddressY(adr);
}
}
triggerLoadDataAndUpdate = true;
@ -205,9 +209,12 @@ void RimSummaryCurvesModifier::fieldChangedByUi(const caf::PdmFieldHandle* chang
for (auto curve : curveCollection->curves())
{
RifEclipseSummaryAddress adr = curve->summaryAddressY();
adr.setRegion(m_region());
if (adr.category() == RifEclipseSummaryAddress::SUMMARY_REGION)
{
adr.setRegion(m_region());
curve->setSummaryAddressY(adr);
curve->setSummaryAddressY(adr);
}
}
triggerLoadDataAndUpdate = true;
@ -217,9 +224,12 @@ void RimSummaryCurvesModifier::fieldChangedByUi(const caf::PdmFieldHandle* chang
for (auto curve : curveCollection->curves())
{
RifEclipseSummaryAddress adr = curve->summaryAddressY();
adr.setWellGroupName(m_groupName().toStdString());
if (adr.category() == RifEclipseSummaryAddress::SUMMARY_WELL_GROUP)
{
adr.setWellGroupName(m_groupName().toStdString());
curve->setSummaryAddressY(adr);
curve->setSummaryAddressY(adr);
}
}
triggerLoadDataAndUpdate = true;
@ -229,6 +239,9 @@ void RimSummaryCurvesModifier::fieldChangedByUi(const caf::PdmFieldHandle* chang
{
RimSummaryPlot* summaryPlot = nullptr;
this->firstAncestorOrThisOfTypeAsserted(summaryPlot);
summaryPlot->updatePlotTitle();
summaryPlot->loadDataAndUpdate();
}
}
@ -247,8 +260,6 @@ void RimSummaryCurvesModifier::defineUiOrdering(QString uiConfigName, caf::PdmUi
curveDefinitions.push_back(RiaSummaryCurveDefinition(curve->summaryCaseY(), curve->summaryAddressY()));
}
RiaSummaryCurveDefTools tools(curveDefinitions);
// m_summaryCase.uiCapability()->setUiReadOnly(true);
// m_wellName.uiCapability()->setUiReadOnly(true);
// m_groupName.uiCapability()->setUiReadOnly(true);

View File

@ -19,6 +19,7 @@
#include "RimSummaryPlot.h"
#include "RiaApplication.h"
#include "RiaSummaryCurveDefTools.h"
#include "RimAsciiDataCurve.h"
#include "RimGridTimeHistoryCurve.h"
@ -40,16 +41,16 @@
#include "cafPdmUiTreeOrdering.h"
#include "cafPdmUiCheckBoxEditor.h"
#include <QDateTime>
#include <QString>
#include <QRectF>
#include "qwt_abstract_legend.h"
#include "qwt_legend.h"
#include "qwt_plot_curve.h"
#include "qwt_plot_renderer.h"
#include "vector"
#include <QDateTime>
#include <QString>
#include <QRectF>
#include <set>
CAF_PDM_SOURCE_INIT(RimSummaryPlot, "SummaryPlot");
@ -61,12 +62,15 @@ RimSummaryPlot::RimSummaryPlot()
{
CAF_PDM_InitObject("Summary Plot", ":/SummaryPlotLight16x16.png", "", "");
CAF_PDM_InitField(&m_userName, "PlotDescription", QString("Summary Plot"), "Name", "", "", "");
CAF_PDM_InitField(&m_userDefinedPlotTitle, "PlotDescription", QString("Summary Plot"), "Name", "", "", "");
CAF_PDM_InitField(&m_showPlotTitle, "ShowPlotTitle", true, "Plot Title", "", "", "");
m_showPlotTitle.uiCapability()->setUiLabelPosition(caf::PdmUiItemInfo::HIDDEN);
CAF_PDM_InitField(&m_showLegend, "ShowLegend", true, "Legend", "", "", "");
m_showLegend.uiCapability()->setUiLabelPosition(caf::PdmUiItemInfo::HIDDEN);
CAF_PDM_InitField(&m_isUsingAutoName, "IsUsingAutoName", false, "Auto Name", "", "", "");
m_isUsingAutoName.uiCapability()->setUiLabelPosition(caf::PdmUiItemInfo::HIDDEN);
CAF_PDM_InitFieldNoDefault(&m_curveFilters_OBSOLETE, "SummaryCurveFilters", "", "", "", "");
m_curveFilters_OBSOLETE.uiCapability()->setUiTreeHidden(true);
@ -497,6 +501,19 @@ RiuSummaryQwtPlot* RimSummaryPlot::qwtPlot() const
return m_qwtPlot;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimSummaryPlot::updatePlotTitle()
{
if (m_isUsingAutoName)
{
m_userDefinedPlotTitle = extractPlotTitleFromCurves();
}
updateMdiWindowTitle();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@ -1045,6 +1062,14 @@ void RimSummaryPlot::addAsciiDataCruve(RimAsciiDataCurve* curve)
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
caf::PdmFieldHandle* RimSummaryPlot::userDescriptionField()
{
return &m_userDefinedPlotTitle;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@ -1052,11 +1077,12 @@ void RimSummaryPlot::fieldChangedByUi(const caf::PdmFieldHandle* changedField, c
{
RimViewWindow::fieldChangedByUi(changedField, oldValue, newValue);
if (changedField == &m_userName ||
if (changedField == &m_userDefinedPlotTitle ||
changedField == &m_showPlotTitle ||
changedField == &m_showLegend)
changedField == &m_showLegend ||
changedField == &m_isUsingAutoName)
{
updateMdiWindowTitle();
updatePlotTitle();
}
}
@ -1115,7 +1141,12 @@ void RimSummaryPlot::defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering
//--------------------------------------------------------------------------------------------------
void RimSummaryPlot::onLoadDataAndUpdate()
{
updateMdiWindowVisibility();
if (m_isUsingAutoName)
{
m_userDefinedPlotTitle = extractPlotTitleFromCurves();
}
updateMdiWindowVisibility();
for (RimSummaryCurveFilter* curveFilter: m_curveFilters_OBSOLETE)
{
@ -1190,6 +1221,42 @@ void RimSummaryPlot::setZoomIntervalsInQwtPlot()
m_qwtPlot->setZoomWindow(left, right, time);
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RimSummaryPlot::extractPlotTitleFromCurves() const
{
RiaSummaryCurveDefTools nameHelper;
nameHelper.findIdentifiers(m_summaryCurveCollection());
auto quantities = nameHelper.quantities();
auto wellNames = nameHelper.wellNames();
auto wellGroupNames = nameHelper.wellGroupNames();
auto regions = nameHelper.regionNumbers();
QString title;
if (wellNames.size() == 1)
{
title = "Well : " + QString::fromStdString(*(wellNames.begin()));
}
else if (wellGroupNames.size() == 1)
{
title = "Well Group : " + QString::fromStdString(*(wellGroupNames.begin()));
}
else if (regions.size() == 1)
{
title = "Region : " + QString::number(*(regions.begin()));
}
else if (quantities.size() == 1)
{
title = "Quantity : " + QString::fromStdString(*(quantities.begin()));
}
return title;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@ -1216,7 +1283,7 @@ void RimSummaryPlot::disableAutoZoom()
//--------------------------------------------------------------------------------------------------
void RimSummaryPlot::setDescription(const QString& description)
{
m_userName = description;
m_userDefinedPlotTitle = description;
}
//--------------------------------------------------------------------------------------------------
@ -1224,7 +1291,7 @@ void RimSummaryPlot::setDescription(const QString& description)
//--------------------------------------------------------------------------------------------------
QString RimSummaryPlot::description() const
{
return m_userName();
return m_userDefinedPlotTitle();
}
//--------------------------------------------------------------------------------------------------
@ -1235,6 +1302,14 @@ void RimSummaryPlot::setShowDescription(bool showDescription)
m_showPlotTitle = showDescription;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimSummaryPlot::enableAutoName(bool enable)
{
m_isUsingAutoName = enable;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@ -1243,6 +1318,24 @@ void RimSummaryPlot::setAsCrossPlot()
m_isCrossPlot = true;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimSummaryPlot::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
{
uiOrdering.add(&m_isUsingAutoName);
uiOrdering.add(&m_userDefinedPlotTitle);
uiOrdering.add(&m_showPlotTitle);
uiOrdering.add(&m_showLegend);
m_userDefinedPlotTitle.uiCapability()->setUiReadOnly(m_isUsingAutoName);
if (m_isUsingAutoName)
{
m_userDefinedPlotTitle = extractPlotTitleFromCurves();
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@ -1327,18 +1420,19 @@ void RimSummaryPlot::updateMdiWindowTitle()
{
if (m_qwtPlot)
{
m_qwtPlot->setWindowTitle(m_userName);
QString plotTitle = description();
m_qwtPlot->setWindowTitle(plotTitle);
if (m_showPlotTitle)
{
m_qwtPlot->setTitle(m_userName);
m_qwtPlot->setTitle(plotTitle);
}
else
{
m_qwtPlot->setTitle("");
}
if (m_showLegend)
{
// Will be released in plot destructor or when a new legend is set
@ -1446,7 +1540,9 @@ size_t RimSummaryPlot::curveCount() const
//--------------------------------------------------------------------------------------------------
void RimSummaryPlot::defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute * attribute)
{
if (field == &m_showLegend || field == &m_showPlotTitle)
if (field == &m_showLegend ||
field == &m_showPlotTitle ||
field == &m_isUsingAutoName)
{
caf::PdmUiCheckBoxEditorAttribute* myAttr = dynamic_cast<caf::PdmUiCheckBoxEditorAttribute*>(attribute);
if (myAttr)

View File

@ -55,6 +55,7 @@ public:
void setDescription(const QString& description);
QString description() const;
void setShowDescription(bool showDescription);
void enableAutoName(bool enable);
void addCurveAndUpdate(RimSummaryCurve* curve);
void addCurveNoUpdate(RimSummaryCurve* curve);
@ -101,6 +102,8 @@ public:
RimSummaryCurveCollection* summaryCurveCollection() const;
RiuSummaryQwtPlot* qwtPlot() const;
void updatePlotTitle();
// RimViewWindow overrides
public:
virtual QWidget* createViewWidget(QWidget* mainWindowParent) override;
@ -112,16 +115,19 @@ private:
protected:
// Overridden PDM methods
virtual caf::PdmFieldHandle* userDescriptionField() { return &m_userName; }
virtual caf::PdmFieldHandle* userDescriptionField();
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
virtual void defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName = "") override;
virtual void defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute);
virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override;
virtual void onLoadDataAndUpdate() override;
virtual QImage snapshotWindowContent() override;
void setAsCrossPlot();
private:
std::vector<RimSummaryCurve*> visibleSummaryCurvesForAxis(RiaDefines::PlotAxis plotAxis) const;
std::vector<RimGridTimeHistoryCurve*> visibleTimeHistoryCurvesForAxis(RiaDefines::PlotAxis plotAxis) const;
@ -136,10 +142,14 @@ private:
void updateBottomXAxis();
void setZoomIntervalsInQwtPlot();
QString extractPlotTitleFromCurves() const;
private:
caf::PdmField<bool> m_showPlotTitle;
caf::PdmField<bool> m_showLegend;
caf::PdmField<QString> m_userName;
caf::PdmField<bool> m_isUsingAutoName;
caf::PdmField<QString> m_userDefinedPlotTitle;
caf::PdmChildArrayField<RimGridTimeHistoryCurve*> m_gridTimeHistoryCurves;
caf::PdmChildField<RimSummaryCurveCollection*> m_summaryCurveCollection;

View File

@ -42,6 +42,30 @@ RimSummaryPlotCollection::~RimSummaryPlotCollection()
summaryPlots.deleteAllChildObjects();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimSummaryPlot* RimSummaryPlotCollection::createSummaryPlotAutoName()
{
RimSummaryPlot* plot = new RimSummaryPlot();
plot->enableAutoName(true);
summaryPlots.push_back(plot);
return plot;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimSummaryPlot* RimSummaryPlotCollection::createNamedSummaryPlot(const QString& name)
{
RimSummaryPlot* plot = new RimSummaryPlot();
summaryPlots.push_back(plot);
plot->setDescription(name);
return plot;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -36,6 +36,9 @@ public:
caf::PdmChildArrayField<RimSummaryPlot*> summaryPlots;
RimSummaryPlot* createSummaryPlotAutoName();
RimSummaryPlot* createNamedSummaryPlot(const QString& name);
void updateSummaryNameHasChanged();
void summaryPlotItemInfos(QList<caf::PdmOptionItemInfo>* optionInfos) const;
};