#773 Summary Curve Filter : Added auto update of plot when selection changes

This commit is contained in:
Magne Sjaastad 2016-10-26 11:50:01 +02:00
parent d3ad0d43bf
commit 4bba0d1337
3 changed files with 50 additions and 14 deletions

View File

@ -102,6 +102,8 @@ RimSummaryCurveFilter::RimSummaryCurveFilter()
m_applyButtonField.uiCapability()->setUiEditorTypeName(caf::PdmUiPushButtonEditor::uiEditorTypeName());
m_applyButtonField.uiCapability()->setUiLabelPosition(caf::PdmUiItemInfo::HIDDEN);
CAF_PDM_InitField(&m_autoApplyFilterChanges, "AutoApplyFilterChanges", false, "Auto Apply Changes", "", "", "");
CAF_PDM_InitField(&m_showCurves, "IsActive", true, "Show Curves", "", "", "");
m_showCurves.uiCapability()->setUiHidden(true);
@ -219,6 +221,7 @@ void RimSummaryCurveFilter::defineUiOrdering(QString uiConfigName, caf::PdmUiOrd
}
uiOrdering.add(&m_plotAxis);
uiOrdering.add(&m_autoApplyFilterChanges);
uiOrdering.add(&m_applyButtonField);
uiOrdering.setForgetRemainingFields(true);
@ -231,17 +234,16 @@ void RimSummaryCurveFilter::fieldChangedByUi(const caf::PdmFieldHandle* changedF
{
if(changedField == &m_uiFilterResultMultiSelection)
{
if (m_autoApplyFilterChanges)
{
loadDataAndUpdatePlot();
}
}
else if (changedField == &m_applyButtonField)
{
syncCurvesFromUiSelection();
loadDataAndUpdate();
m_applyButtonField = false;
RimSummaryPlot* plot = nullptr;
firstAncestorOrThisOfType(plot);
plot->updateAxes();
loadDataAndUpdatePlot();
}
else if (changedField == &m_showCurves)
{
@ -257,6 +259,19 @@ void RimSummaryCurveFilter::fieldChangedByUi(const caf::PdmFieldHandle* changedF
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimSummaryCurveFilter::loadDataAndUpdatePlot()
{
syncCurvesFromUiSelection();
loadDataAndUpdate();
RimSummaryPlot* plot = nullptr;
firstAncestorOrThisOfType(plot);
plot->updateAxes();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@ -296,8 +311,6 @@ RimSummaryCurve* RimSummaryCurveFilter::findRimCurveFromQwtCurve(const QwtPlotCu
return NULL;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@ -500,8 +513,6 @@ void RimSummaryCurveFilter::createCurvesFromCurveDefinitions(const std::set<std:
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@ -514,7 +525,6 @@ void RimSummaryCurveFilter::updateCaseNameHasChanged()
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@ -534,6 +544,17 @@ void RimSummaryCurveFilter::setPlotAxis(RimDefines::PlotAxis plotAxis)
updatePlotAxisForCurves();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimSummaryCurveFilter::updateCompleteVariableStringFilterChanged()
{
if (m_autoApplyFilterChanges)
{
loadDataAndUpdatePlot();
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -74,6 +74,8 @@ public:
RimDefines::PlotAxis associatedPlotAxis() const;
void setPlotAxis(RimDefines::PlotAxis plotAxis);
void updateCompleteVariableStringFilterChanged();
private:
void syncCurvesFromUiSelection();
void createCurvesFromCurveDefinitions(const std::set<std::pair<RimSummaryCase*, RifEclipseSummaryAddress> >& curveDefinitions);
@ -88,10 +90,12 @@ private:
// Overridden PDM methods
virtual caf::PdmFieldHandle* objectToggleField() override;
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
virtual QList<caf::PdmOptionItemInfo> calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool* useOptionsOnly);
virtual QList<caf::PdmOptionItemInfo> calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool* useOptionsOnly);
virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override;
void defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute * attribute) override;
void updatePlotAxisForCurves();
void loadDataAndUpdatePlot();
private:
QPointer<QwtPlot> m_parentQwtPlot;
@ -111,6 +115,7 @@ private:
caf::PdmField<std::vector<RifEclipseSummaryAddress> >
m_uiFilterResultMultiSelection;
caf::PdmField<bool> m_autoApplyFilterChanges;
caf::PdmField<bool> m_applyButtonField;
caf::PdmField<bool> m_useAutoAppearanceAssignment;

View File

@ -17,7 +17,9 @@
/////////////////////////////////////////////////////////////////////////////////
#include "RimSummaryFilter.h"
#include "RimSummaryCurve.h"
#include "RimSummaryCurveFilter.h"
namespace caf
{
@ -351,14 +353,22 @@ void RimSummaryFilter::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering
//--------------------------------------------------------------------------------------------------
void RimSummaryFilter::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
{
caf::PdmObject* parent = dynamic_cast<caf::PdmObject*>( this->parentField()->ownerObject());
caf::PdmObject* parent = dynamic_cast<caf::PdmObject*>(this->parentField()->ownerObject());
if (parent)
{
parent->updateConnectedEditors();
}
if (changedField == &m_completeVarStringFilter)
{
RimSummaryCurveFilter* curveFilter = nullptr;
this->firstAncestorOrThisOfType(curveFilter);
if (curveFilter)
{
curveFilter->updateCompleteVariableStringFilterChanged();
}
}
}
//--------------------------------------------------------------------------------------------------