#2610 Cleanup RimEnsambleCurveSet class

This commit is contained in:
Bjørn Erik Jensen
2018-04-19 08:29:58 +02:00
parent fff5ee4ea1
commit 22d3e59570
2 changed files with 34 additions and 328 deletions

View File

@@ -20,25 +20,19 @@
#include "RiaApplication.h" #include "RiaApplication.h"
#include "RiuSummaryCurveDefSelectionDialog.h"
#include "RifReaderEclipseSummary.h" #include "RifReaderEclipseSummary.h"
#include "RimProject.h" #include "RimProject.h"
#include "RimSummaryCase.h" #include "RimSummaryCase.h"
#include "RimSummaryCaseCollection.h" #include "RimSummaryCaseCollection.h"
#include "RimSummaryCrossPlot.h"
#include "RimSummaryCurve.h" #include "RimSummaryCurve.h"
#include "RimSummaryPlot.h" #include "RimSummaryPlot.h"
#include "RimSummaryPlotSourceStepping.h"
#include "RimSummaryFilter.h" #include "RimSummaryFilter.h"
#include "RimSummaryAddress.h" #include "RimSummaryAddress.h"
#include "RimEnsambleCurveSetCollection.h" #include "RimEnsambleCurveSetCollection.h"
#include "RiuLineSegmentQwtPlotCurve.h"
#include "RiuSummaryQwtPlot.h" #include "RiuSummaryQwtPlot.h"
#include "cafPdmUiTreeViewEditor.h"
#include "cafPdmUiTreeOrdering.h" #include "cafPdmUiTreeOrdering.h"
#include "cafPdmUiListEditor.h" #include "cafPdmUiListEditor.h"
#include "cafPdmObject.h" #include "cafPdmObject.h"
@@ -46,9 +40,6 @@
#include "cvfScalarMapperContinuousLinear.h" #include "cvfScalarMapperContinuousLinear.h"
#include <QTextStream>
#include <QKeyEvent>
namespace caf namespace caf
{ {
@@ -78,29 +69,7 @@ RimEnsambleCurveSet::RimEnsambleCurveSet()
CAF_PDM_InitField(&m_showCurves, "IsActive", true, "Show Curves", "", "", ""); CAF_PDM_InitField(&m_showCurves, "IsActive", true, "Show Curves", "", "", "");
m_showCurves.uiCapability()->setUiHidden(true); m_showCurves.uiCapability()->setUiHidden(true);
//CAF_PDM_InitFieldNoDefault(&m_ySourceStepping, "YSourceStepping", "", "", "", "");
//m_ySourceStepping = new RimSummaryPlotSourceStepping;
//m_ySourceStepping->setSourceSteppingType(RimSummaryPlotSourceStepping::Y_AXIS);
//m_ySourceStepping.uiCapability()->setUiHidden(true);
//m_ySourceStepping.uiCapability()->setUiTreeChildrenHidden(true);
//m_ySourceStepping.xmlCapability()->disableIO();
//CAF_PDM_InitFieldNoDefault(&m_xSourceStepping, "XSourceStepping", "", "", "", "");
//m_xSourceStepping = new RimSummaryPlotSourceStepping;
//m_xSourceStepping->setSourceSteppingType(RimSummaryPlotSourceStepping::X_AXIS);
//m_xSourceStepping.uiCapability()->setUiHidden(true);
//m_xSourceStepping.uiCapability()->setUiTreeChildrenHidden(true);
//m_xSourceStepping.xmlCapability()->disableIO();
//CAF_PDM_InitFieldNoDefault(&m_unionSourceStepping, "UnionSourceStepping", "", "", "", "");
//m_unionSourceStepping = new RimSummaryPlotSourceStepping;
//m_unionSourceStepping->setSourceSteppingType(RimSummaryPlotSourceStepping::UNION_X_Y_AXIS);
//m_unionSourceStepping.uiCapability()->setUiHidden(true);
//m_unionSourceStepping.uiCapability()->setUiTreeChildrenHidden(true);
//m_unionSourceStepping.xmlCapability()->disableIO();
// Y Values // Y Values
CAF_PDM_InitFieldNoDefault(&m_yValuesSummaryGroup, "SummaryGroup", "Group", "", "", ""); CAF_PDM_InitFieldNoDefault(&m_yValuesSummaryGroup, "SummaryGroup", "Group", "", "", "");
m_yValuesSummaryGroup.uiCapability()->setUiTreeChildrenHidden(true); m_yValuesSummaryGroup.uiCapability()->setUiTreeChildrenHidden(true);
m_yValuesSummaryGroup.uiCapability()->setAutoAddingOptionFromValue(false); m_yValuesSummaryGroup.uiCapability()->setAutoAddingOptionFromValue(false);
@@ -236,22 +205,6 @@ void RimEnsambleCurveSet::detachQwtCurves()
} }
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimSummaryCurve* RimEnsambleCurveSet::findRimCurveFromQwtCurve(const QwtPlotCurve* qwtCurve) const
{
for (RimSummaryCurve* rimCurve : m_curves)
{
if (rimCurve->qwtPlotCurve() == qwtCurve)
{
return rimCurve;
}
}
return nullptr;
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@@ -306,31 +259,6 @@ std::vector<RimSummaryCurve*> RimEnsambleCurveSet::visibleCurves() const
return visible; return visible;
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimEnsambleCurveSet::deleteCurvesAssosiatedWithCase(RimSummaryCase* summaryCase)
{
std::vector<RimSummaryCurve*> summaryCurvesToDelete;
for (RimSummaryCurve* summaryCurve : m_curves)
{
if (!summaryCurve) continue;
if (!summaryCurve->summaryCaseY()) continue;
if (summaryCurve->summaryCaseY() == summaryCase)
{
summaryCurvesToDelete.push_back(summaryCurve);
}
}
for (RimSummaryCurve* summaryCurve : summaryCurvesToDelete)
{
m_curves.removeChildObject(summaryCurve);
delete summaryCurve;
}
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@@ -339,114 +267,6 @@ void RimEnsambleCurveSet::deleteAllCurves()
m_curves.deleteAllChildObjects(); m_curves.deleteAllChildObjects();
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimEnsambleCurveSet::updateCaseNameHasChanged()
{
for (RimSummaryCurve* curve : m_curves)
{
curve->updateCurveNameNoLegendUpdate();
curve->updateConnectedEditors();
}
RimSummaryPlot* parentPlot;
firstAncestorOrThisOfTypeAsserted(parentPlot);
if (parentPlot->qwtPlot()) parentPlot->qwtPlot()->updateLegend();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimEnsambleCurveSet::setCurrentSummaryCurve(RimSummaryCurve* curve)
{
m_currentSummaryCurve = curve;
updateConnectedEditors();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
//std::vector<caf::PdmFieldHandle*> RimEnsambleCurveSet::fieldsToShowInToolbar()
//{
// RimSummaryCrossPlot* parentCrossPlot;
// firstAncestorOrThisOfType(parentCrossPlot);
//
// if (parentCrossPlot)
// {
// return m_unionSourceStepping->fieldsToShowInToolbar();
// }
//
// return m_ySourceStepping()->fieldsToShowInToolbar();
//}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimEnsambleCurveSet::handleKeyPressEvent(QKeyEvent* keyEvent)
{
//if (!keyEvent) return;
//RimSummaryPlotSourceStepping* sourceStepping = nullptr;
//{
// RimSummaryCrossPlot* summaryCrossPlot = nullptr;
// this->firstAncestorOrThisOfType(summaryCrossPlot);
// if (summaryCrossPlot)
// {
// sourceStepping = m_unionSourceStepping();
// }
// else
// {
// sourceStepping = m_ySourceStepping();
// }
//}
//if (keyEvent->key() == Qt::Key_PageUp)
//{
// if (keyEvent->modifiers() & Qt::ShiftModifier)
// {
// sourceStepping->applyPrevCase();
// keyEvent->accept();
// }
// else if (keyEvent->modifiers() & Qt::ControlModifier)
// {
// sourceStepping->applyPrevOtherIdentifier();
// keyEvent->accept();
// }
// else
// {
// sourceStepping->applyPrevQuantity();
// keyEvent->accept();
// }
//}
//else if (keyEvent->key() == Qt::Key_PageDown)
//{
// if (keyEvent->modifiers() & Qt::ShiftModifier)
// {
// sourceStepping->applyNextCase();
// keyEvent->accept();
// }
// else if (keyEvent->modifiers() & Qt::ControlModifier)
// {
// sourceStepping->applyNextOtherIdentifier();
// keyEvent->accept();
// }
// else
// {
// sourceStepping->applyNextQuantity();
// keyEvent->accept();
// }
//}
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@@ -472,14 +292,11 @@ void RimEnsambleCurveSet::fieldChangedByUi(const caf::PdmFieldHandle* changedFie
{ {
m_yValuesCurveVariable->setAddress(m_yValuesUiFilterResultSelection()); m_yValuesCurveVariable->setAddress(m_yValuesUiFilterResultSelection());
createNewCurves(); updateAllCurves();
//RiuMainPlotWindow* mainPlotWindow = RiaApplication::instance()->mainPlotWindow();
//mainPlotWindow->updateSummaryPlotToolBar();
} }
else if (changedField == &m_yValuesSummaryGroup) else if (changedField == &m_yValuesSummaryGroup)
{ {
createNewCurves(); updateAllCurves();
} }
else if (changedField == &m_ensambleParameter || else if (changedField == &m_ensambleParameter ||
changedField == &m_color || changedField == &m_color ||
@@ -498,38 +315,7 @@ void RimEnsambleCurveSet::fieldChangedByUi(const caf::PdmFieldHandle* changedFie
} }
else if (changedField == &m_yPushButtonSelectSummaryAddress) else if (changedField == &m_yPushButtonSelectSummaryAddress)
{ {
//RiuSummaryCurveDefSelectionDialog dlg(nullptr);
//RimSummaryCase* candidateCase = m_yValuesSummaryCase();
//RifEclipseSummaryAddress candicateAddress = m_yValuesCurveVariable->address();
//if (candidateCase == nullptr)
//{
// candidateCase = m_xValuesSummaryCase();
//}
//if (!candicateAddress.isValid())
//{
// candicateAddress = m_xValuesCurveVariable->address();
//}
//dlg.setCaseAndAddress(candidateCase, candicateAddress);
//if (dlg.exec() == QDialog::Accepted)
//{
// auto curveSelection = dlg.curveSelection();
// if (curveSelection.size() > 0)
// {
// m_yValuesSummaryCase = curveSelection[0].summaryCase();
// m_yValuesCurveVariable->setAddress(curveSelection[0].summaryAddress());
// crossPlotTestForMatchingTimeSteps = true;
// loadAndUpdate = true;
// }
//}
//m_yPushButtonSelectSummaryAddress = false;
} }
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@@ -565,36 +351,6 @@ void RimEnsambleCurveSet::defineUiOrdering(QString uiConfigName, caf::PdmUiOrder
colorsGroup->add(&m_ensambleParameter); colorsGroup->add(&m_ensambleParameter);
} }
uiOrdering.skipRemainingFields(true); uiOrdering.skipRemainingFields(true);
//RimSummaryCrossPlot* parentCrossPlot;
//firstAncestorOrThisOfType(parentCrossPlot);
//if (parentCrossPlot)
//{
// {
// auto group = uiOrdering.addNewGroup("Y Source Stepping");
// m_ySourceStepping()->uiOrdering(uiConfigName, *group);
// }
// {
// auto group = uiOrdering.addNewGroup("X Source Stepping");
// m_xSourceStepping()->uiOrdering(uiConfigName, *group);
// }
// {
// auto group = uiOrdering.addNewGroup("XY Union Source Stepping");
// m_unionSourceStepping()->uiOrdering(uiConfigName, *group);
// }
//}
//else
//{
// auto group = uiOrdering.addNewGroup("Plot Source Stepping");
// m_ySourceStepping()->uiOrdering(uiConfigName, *group);
//}
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@@ -619,12 +375,6 @@ caf::PdmFieldHandle* RimEnsambleCurveSet::objectToggleField()
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RimEnsambleCurveSet::defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute) void RimEnsambleCurveSet::defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute)
{ {
//caf::PdmUiTreeViewEditorAttribute* myAttr = dynamic_cast<caf::PdmUiTreeViewEditorAttribute*>(attribute);
//if (myAttr && m_currentSummaryCurve.notNull())
//{
// myAttr->currentObject = m_currentSummaryCurve.p();
//}
caf::PdmUiPushButtonEditorAttribute* attrib = dynamic_cast<caf::PdmUiPushButtonEditorAttribute*> (attribute); caf::PdmUiPushButtonEditorAttribute* attrib = dynamic_cast<caf::PdmUiPushButtonEditorAttribute*> (attribute);
if (attrib) if (attrib)
{ {
@@ -655,8 +405,6 @@ QList<caf::PdmOptionItemInfo> RimEnsambleCurveSet::calculateValueOptions(const c
{ {
RimSummaryCaseCollection* group = m_yValuesSummaryGroup; RimSummaryCaseCollection* group = m_yValuesSummaryGroup;
//options.push_back(caf::PdmOptionItemInfo("None", ""));
if (group) if (group)
{ {
std::set<QString> paramSet; std::set<QString> paramSet;
@@ -679,32 +427,6 @@ QList<caf::PdmOptionItemInfo> RimEnsambleCurveSet::calculateValueOptions(const c
{ {
appendOptionItemsForSummaryAddresses(&options, m_yValuesSummaryGroup(), m_yValuesSummaryFilter()); appendOptionItemsForSummaryAddresses(&options, m_yValuesSummaryGroup(), m_yValuesSummaryFilter());
} }
else if (fieldNeedingOptions == &m_yValuesSelectedVariableDisplayField)
{
//RimSummaryCaseCollection* group = m_yValuesSummaryGroup;
//std::map<QString, RifEclipseSummaryAddress> allOpts;
//if (group)
//{
// for (auto& sumCase : group->allSummaryCases())
// {
// std::map<QString, RifEclipseSummaryAddress> opts;
// RimSummaryFilter filter;
// getOptionsForSummaryAddresses(&opts, sumCase, &filter);
// for (auto& opt : opts) allOpts.insert(opt);
// }
//}
//for (const auto& opt : allOpts) options.push_back(caf::PdmOptionItemInfo(opt.first, QVariant::fromValue(opt.second)));
//options.push_front(caf::PdmOptionItemInfo(RiaDefines::undefinedResultName(), QVariant::fromValue(RifEclipseSummaryAddress())));
}
//else if (fieldNeedingOptions == &m_yValuesUiFilterResultSelection)
//{
// appendOptionItemsForSummaryAddresses(&options, m_yValuesSummaryCase(), m_yValuesSummaryFilter());
//}
return options; return options;
} }
@@ -736,34 +458,31 @@ void RimEnsambleCurveSet::getOptionsForSummaryAddresses(std::map<QString, RifEcl
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// /// Optimization candidate
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RimEnsambleCurveSet::appendOptionItemsForSummaryAddresses(QList<caf::PdmOptionItemInfo>* options, void RimEnsambleCurveSet::appendOptionItemsForSummaryAddresses(QList<caf::PdmOptionItemInfo>* options,
RimSummaryCaseCollection* summaryCaseGroup, RimSummaryCaseCollection* summaryCaseGroup,
RimSummaryFilter* summaryFilter) RimSummaryFilter* summaryFilter)
{ {
// BEJ std::set<RifEclipseSummaryAddress> allAddresses;
RimSummaryCase* summaryCase = summaryCaseGroup->allSummaryCases().front();
for (RimSummaryCase* summaryCase : summaryCaseGroup->allSummaryCases())
if (summaryCase)
{ {
RifSummaryReaderInterface* reader = summaryCase->summaryReader(); RifSummaryReaderInterface* reader = summaryCase->summaryReader();
if (reader) const std::vector<RifEclipseSummaryAddress> addrs = reader ? reader->allResultAddresses() : std::vector<RifEclipseSummaryAddress>();
{ allAddresses.insert(addrs.begin(), addrs.end());
const std::vector<RifEclipseSummaryAddress> allAddresses = reader->allResultAddresses();
for (auto& address : allAddresses)
{
if (summaryFilter && !summaryFilter->isIncludedByFilter(address)) continue;
std::string name = address.uiText();
QString s = QString::fromStdString(name);
options->push_back(caf::PdmOptionItemInfo(s, QVariant::fromValue(address)));
}
}
options->push_front(caf::PdmOptionItemInfo(RiaDefines::undefinedResultName(), QVariant::fromValue(RifEclipseSummaryAddress())));
} }
for (auto& address : allAddresses)
{
if (summaryFilter && !summaryFilter->isIncludedByFilter(address)) continue;
std::string name = address.uiText();
QString s = QString::fromStdString(name);
options->push_back(caf::PdmOptionItemInfo(s, QVariant::fromValue(address)));
}
options->push_front(caf::PdmOptionItemInfo(RiaDefines::undefinedResultName(), QVariant::fromValue(RifEclipseSummaryAddress())));
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@@ -833,7 +552,7 @@ void RimEnsambleCurveSet::updateQwtPlotAxis()
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RimEnsambleCurveSet::createNewCurves() void RimEnsambleCurveSet::updateAllCurves()
{ {
RimSummaryPlot* plot = nullptr; RimSummaryPlot* plot = nullptr;
firstAncestorOrThisOfType(plot); firstAncestorOrThisOfType(plot);

View File

@@ -64,23 +64,14 @@ public:
void setParentQwtPlotNoReplot(QwtPlot* plot); void setParentQwtPlotNoReplot(QwtPlot* plot);
void detachQwtCurves(); void detachQwtCurves();
RimSummaryCurve* findRimCurveFromQwtCurve(const QwtPlotCurve* qwtCurve) const;
void addCurve(RimSummaryCurve* curve); void addCurve(RimSummaryCurve* curve);
void deleteCurve(RimSummaryCurve* curve); void deleteCurve(RimSummaryCurve* curve);
std::vector<RimSummaryCurve*> curves() const; std::vector<RimSummaryCurve*> curves() const;
std::vector<RimSummaryCurve*> visibleCurves() const; std::vector<RimSummaryCurve*> visibleCurves() const;
void deleteCurvesAssosiatedWithCase(RimSummaryCase* summaryCase);
void deleteAllCurves(); void deleteAllCurves();
void updateCaseNameHasChanged();
void setCurrentSummaryCurve(RimSummaryCurve* curve);
//std::vector<caf::PdmFieldHandle*> fieldsToShowInToolbar();
void handleKeyPressEvent(QKeyEvent* keyEvent);
RimRegularLegendConfig* legendConfig(); RimRegularLegendConfig* legendConfig();
private: private:
@@ -104,32 +95,28 @@ private:
void updateCurveColors(); void updateCurveColors();
void updateQwtPlotAxis(); void updateQwtPlotAxis();
void createNewCurves(); void updateAllCurves();
private: private:
caf::PdmField<bool> m_showCurves; caf::PdmField<bool> m_showCurves;
caf::PdmChildArrayField<RimSummaryCurve*> m_curves; // Convert to PtrField ? caf::PdmChildArrayField<RimSummaryCurve*> m_curves;
//caf::PdmChildField<RimSummaryPlotSourceStepping*> m_ySourceStepping; caf::PdmPointer<RimSummaryCurve> m_currentSummaryCurve;
//caf::PdmChildField<RimSummaryPlotSourceStepping*> m_xSourceStepping;
//caf::PdmChildField<RimSummaryPlotSourceStepping*> m_unionSourceStepping;
caf::PdmPointer<RimSummaryCurve> m_currentSummaryCurve;
// Y values // Y values
caf::PdmPtrField<RimSummaryCaseCollection*> m_yValuesSummaryGroup; caf::PdmPtrField<RimSummaryCaseCollection*> m_yValuesSummaryGroup;
caf::PdmChildField<RimSummaryAddress*> m_yValuesCurveVariable; caf::PdmChildField<RimSummaryAddress*> m_yValuesCurveVariable;
caf::PdmField<QString> m_yValuesSelectedVariableDisplayField; caf::PdmField<QString> m_yValuesSelectedVariableDisplayField;
caf::PdmChildField<RimSummaryFilter*> m_yValuesSummaryFilter; caf::PdmChildField<RimSummaryFilter*> m_yValuesSummaryFilter;
caf::PdmField<RifEclipseSummaryAddress> m_yValuesUiFilterResultSelection; caf::PdmField<RifEclipseSummaryAddress> m_yValuesUiFilterResultSelection;
caf::PdmField<bool> m_yPushButtonSelectSummaryAddress; caf::PdmField<bool> m_yPushButtonSelectSummaryAddress;
caf::PdmField<caf::AppEnum<ColorMode>> m_colorMode; caf::PdmField<caf::AppEnum<ColorMode>> m_colorMode;
caf::PdmField<cvf::Color3f> m_color; caf::PdmField<cvf::Color3f> m_color;
caf::PdmField<QString> m_ensambleParameter; caf::PdmField<QString> m_ensambleParameter;
caf::PdmField<caf::AppEnum< RiaDefines::PlotAxis>> m_plotAxis; caf::PdmField<caf::AppEnum< RiaDefines::PlotAxis>> m_plotAxis;
caf::PdmChildField<RimRegularLegendConfig*> m_legendConfig; caf::PdmChildField<RimRegularLegendConfig*> m_legendConfig;
}; };