#739 Aligned more to the way of the RimPlotCurve

This commit is contained in:
Jacob Støren 2016-05-24 10:33:47 +02:00
parent e469eb1483
commit cb8f2e47f5
3 changed files with 61 additions and 21 deletions

View File

@ -30,6 +30,7 @@
#include "cafPdmUiComboBoxEditor.h" #include "cafPdmUiComboBoxEditor.h"
#include "cafPdmUiListEditor.h" #include "cafPdmUiListEditor.h"
#include "cafPdmUiTreeOrdering.h" #include "cafPdmUiTreeOrdering.h"
#include "RiuLineSegmentQwtPlotCurve.h"
CAF_PDM_SOURCE_INIT(RimSummaryCurve, "SummaryCurve"); CAF_PDM_SOURCE_INIT(RimSummaryCurve, "SummaryCurve");
@ -63,6 +64,8 @@ RimSummaryCurve::~RimSummaryCurve()
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
QList<caf::PdmOptionItemInfo> RimSummaryCurve::calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool* useOptionsOnly) QList<caf::PdmOptionItemInfo> RimSummaryCurve::calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool* useOptionsOnly)
{ {
this->RimPlotCurve::calculateValueOptions(fieldNeedingOptions,useOptionsOnly);
QList<caf::PdmOptionItemInfo> optionList; QList<caf::PdmOptionItemInfo> optionList;
if (fieldNeedingOptions == &m_variableName) if (fieldNeedingOptions == &m_variableName)
{ {
@ -111,19 +114,59 @@ QList<caf::PdmOptionItemInfo> RimSummaryCurve::calculateValueOptions(const caf::
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RimSummaryCurve::createCurveAutoName()
{
return m_variableName();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimSummaryCurve::zoomAllParentPlot()
{
// Todo
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimSummaryCurve::onLoadDataAndUpdate()
{
this->RimPlotCurve::updateCurvePresentation();
if (isCurveVisible())
{
std::vector<QDateTime> dateTimes;
std::vector<double> values;
this->curveData(&dateTimes, &values);
m_qwtPlotCurve->setSamplesFromDateAndValues(dateTimes, values);
zoomAllParentPlot();
if (m_parentQwtPlot) m_parentQwtPlot->replot();
}
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RimSummaryCurve::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) void RimSummaryCurve::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
{ {
this->RimPlotCurve::fieldChangedByUi(changedField,oldValue,newValue);
if (changedField == &m_variableName) if (changedField == &m_variableName)
{ {
RimSummaryPlot* summaryPlot = NULL; this->loadDataAndUpdate();
this->firstAnchestorOrThisOfType(summaryPlot);
if (summaryPlot)
{
//summaryPlot->redrawAllCurves();
} }
else if (changedField = &m_eclipseCase)
{
this->loadDataAndUpdate();
} }
} }

View File

@ -24,6 +24,7 @@
#include "cafPdmPointer.h" #include "cafPdmPointer.h"
#include "cafPdmPtrField.h" #include "cafPdmPtrField.h"
#include "RimPlotCurve.h"
class RimEclipseResultCase; class RimEclipseResultCase;
class RifReaderEclipseSummary; class RifReaderEclipseSummary;
@ -33,7 +34,7 @@ class RiuLineSegmentQwtPlotCurve;
/// ///
/// ///
//================================================================================================== //==================================================================================================
class RimSummaryCurve : public caf::PdmObject class RimSummaryCurve : public RimPlotCurve
{ {
CAF_PDM_HEADER_INIT; CAF_PDM_HEADER_INIT;
public: public:
@ -44,17 +45,20 @@ public:
caf::PdmField<QString> m_variableName; caf::PdmField<QString> m_variableName;
virtual QList<caf::PdmOptionItemInfo> calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool* useOptionsOnly);
void curveData(std::vector<QDateTime>* timeSteps, std::vector<double>* values); void curveData(std::vector<QDateTime>* timeSteps, std::vector<double>* values);
protected:
virtual QString createCurveAutoName() override;
virtual void zoomAllParentPlot() override;
virtual void onLoadDataAndUpdate() override;
private: private:
RifReaderEclipseSummary* summaryReader(); RifReaderEclipseSummary* summaryReader();
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue); virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
virtual void defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName = ""); virtual void defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName = "");
virtual QList<caf::PdmOptionItemInfo> calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool* useOptionsOnly);
private:
RiuLineSegmentQwtPlotCurve* m_qwtPlotCurve;
}; };

View File

@ -101,14 +101,7 @@ void RimSummaryPlot::loadDataAndUpdate()
{ {
RimSummaryCurve* curve = curves[i]; RimSummaryCurve* curve = curves[i];
std::vector<QDateTime> dateTimes; curve->loadDataAndUpdate();
std::vector<double> values;
curve->curveData(&dateTimes, &values);
cvf::Color3f curveColor = RiuSelectionColors::curveColorFromTable();
m_viewer->addCurve(curve->m_variableName(), curveColor, dateTimes, values);
} }
} }
@ -161,6 +154,6 @@ void RimSummaryPlot::detachAllCurves()
{ {
for (size_t cIdx = 0; cIdx < curves.size(); ++cIdx) for (size_t cIdx = 0; cIdx < curves.size(); ++cIdx)
{ {
//curves[cIdx]->detachQwtCurve(); curves[cIdx]->detachQwtCurve();
} }
} }