mirror of
https://github.com/OPM/ResInsight.git
synced 2025-01-24 07:16:53 -06:00
#739 Splitted RimWellLogCurve into a RimPlotCurve base class for use with summary plot curves
This commit is contained in:
parent
24edb0501e
commit
a2ed19c687
@ -33,35 +33,36 @@
|
||||
#include "qwt_symbol.h"
|
||||
|
||||
// NB! Special macro for pure virtual class
|
||||
CAF_PDM_XML_ABSTRACT_SOURCE_INIT(RimPlotCurve, "PlotCurve");
|
||||
CAF_PDM_XML_ABSTRACT_SOURCE_INIT(RimWellLogCurve, "WellLogPlotCurve");
|
||||
|
||||
namespace caf
|
||||
{
|
||||
template<>
|
||||
void caf::AppEnum< RimWellLogCurve::LineStyleEnum >::setUp()
|
||||
void caf::AppEnum< RimPlotCurve::LineStyleEnum >::setUp()
|
||||
{
|
||||
addItem(RimWellLogCurve::STYLE_NONE, "STYLE_NONE", "None");
|
||||
addItem(RimWellLogCurve::STYLE_SOLID, "STYLE_SOLID", "Solid");
|
||||
addItem(RimWellLogCurve::STYLE_DASH, "STYLE_DASH", "Dashes");
|
||||
addItem(RimWellLogCurve::STYLE_DOT, "STYLE_DOT", "Dots");
|
||||
addItem(RimWellLogCurve::STYLE_DASH_DOT,"STYLE_DASH_DOT", "Dashes and Dots");
|
||||
addItem(RimPlotCurve::STYLE_NONE, "STYLE_NONE", "None");
|
||||
addItem(RimPlotCurve::STYLE_SOLID, "STYLE_SOLID", "Solid");
|
||||
addItem(RimPlotCurve::STYLE_DASH, "STYLE_DASH", "Dashes");
|
||||
addItem(RimPlotCurve::STYLE_DOT, "STYLE_DOT", "Dots");
|
||||
addItem(RimPlotCurve::STYLE_DASH_DOT,"STYLE_DASH_DOT", "Dashes and Dots");
|
||||
|
||||
setDefault(RimWellLogCurve::STYLE_SOLID);
|
||||
setDefault(RimPlotCurve::STYLE_SOLID);
|
||||
}
|
||||
|
||||
|
||||
template<>
|
||||
void caf::AppEnum< RimWellLogCurve::PointSymbolEnum >::setUp()
|
||||
void caf::AppEnum< RimPlotCurve::PointSymbolEnum >::setUp()
|
||||
{
|
||||
addItem(RimWellLogCurve::SYMBOL_NONE, "SYMBOL_NONE", "None");
|
||||
addItem(RimWellLogCurve::SYMBOL_ELLIPSE, "SYMBOL_ELLIPSE", "Ellipse");
|
||||
addItem(RimWellLogCurve::SYMBOL_RECT, "SYMBOL_RECT", "Rect");
|
||||
addItem(RimWellLogCurve::SYMBOL_DIAMOND, "SYMBOL_DIAMOND", "Diamond");
|
||||
addItem(RimWellLogCurve::SYMBOL_TRIANGLE, "SYMBOL_TRIANGLE", "Triangle");
|
||||
addItem(RimWellLogCurve::SYMBOL_CROSS, "SYMBOL_CROSS", "Cross");
|
||||
addItem(RimWellLogCurve::SYMBOL_XCROSS, "SYMBOL_XCROSS", "X Cross");
|
||||
addItem(RimPlotCurve::SYMBOL_NONE, "SYMBOL_NONE", "None");
|
||||
addItem(RimPlotCurve::SYMBOL_ELLIPSE, "SYMBOL_ELLIPSE", "Ellipse");
|
||||
addItem(RimPlotCurve::SYMBOL_RECT, "SYMBOL_RECT", "Rect");
|
||||
addItem(RimPlotCurve::SYMBOL_DIAMOND, "SYMBOL_DIAMOND", "Diamond");
|
||||
addItem(RimPlotCurve::SYMBOL_TRIANGLE, "SYMBOL_TRIANGLE", "Triangle");
|
||||
addItem(RimPlotCurve::SYMBOL_CROSS, "SYMBOL_CROSS", "Cross");
|
||||
addItem(RimPlotCurve::SYMBOL_XCROSS, "SYMBOL_XCROSS", "X Cross");
|
||||
|
||||
setDefault(RimWellLogCurve::SYMBOL_NONE);
|
||||
setDefault(RimPlotCurve::SYMBOL_NONE);
|
||||
}
|
||||
}
|
||||
|
||||
@ -69,14 +70,42 @@ namespace caf
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimWellLogCurve::RimWellLogCurve()
|
||||
{
|
||||
CAF_PDM_InitObject("WellLogCurve", ":/WellLogCurve16x16.png", "", "");
|
||||
|
||||
m_qwtPlotCurve->setXAxis(QwtPlot::xTop);
|
||||
m_qwtPlotCurve->setYAxis(QwtPlot::yLeft);
|
||||
|
||||
m_ownerQwtTrack = NULL;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimWellLogCurve::~RimWellLogCurve()
|
||||
{
|
||||
m_qwtPlotCurve->detach();
|
||||
delete m_qwtPlotCurve;
|
||||
m_qwtPlotCurve = NULL;
|
||||
|
||||
if (m_ownerQwtTrack)
|
||||
{
|
||||
m_ownerQwtTrack->replot();
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimPlotCurve::RimPlotCurve()
|
||||
{
|
||||
CAF_PDM_InitObject("Curve", ":/WellLogCurve16x16.png", "", "");
|
||||
|
||||
CAF_PDM_InitField(&m_showCurve, "Show", true, "Show curve", "", "", "");
|
||||
m_showCurve.uiCapability()->setUiHidden(true);
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&m_curveName, "CurveName", "Curve Name", "", "", "");
|
||||
CAF_PDM_InitFieldNoDefault(&m_customCurveName, "CurveDescription", "Custom Name", "", "", "");
|
||||
CAF_PDM_InitFieldNoDefault(&m_curveName, "CurveName", "Curve Name", "", "", "");
|
||||
CAF_PDM_InitFieldNoDefault(&m_customCurveName, "CurveDescription", "Custom Name", "", "", "");
|
||||
m_customCurveName.uiCapability()->setUiHidden(true);
|
||||
|
||||
CAF_PDM_InitField(&m_autoName, "AutoName", true, "Auto Name", "", "", "");
|
||||
@ -93,30 +122,25 @@ RimWellLogCurve::RimWellLogCurve()
|
||||
CAF_PDM_InitField(&m_pointSymbol, "PointSymbol", pointSymbol, "Point style", "", "", "");
|
||||
|
||||
m_qwtPlotCurve = new RiuLineSegmentQwtPlotCurve;
|
||||
m_qwtPlotCurve->setXAxis(QwtPlot::xTop);
|
||||
m_qwtPlotCurve->setYAxis(QwtPlot::yLeft);
|
||||
|
||||
m_ownerQwtTrack = NULL;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimWellLogCurve::~RimWellLogCurve()
|
||||
RimPlotCurve::~RimPlotCurve()
|
||||
{
|
||||
m_qwtPlotCurve->detach();
|
||||
delete m_qwtPlotCurve;
|
||||
|
||||
if (m_ownerQwtTrack)
|
||||
if (m_qwtPlotCurve)
|
||||
{
|
||||
m_ownerQwtTrack->replot();
|
||||
m_qwtPlotCurve->detach();
|
||||
delete m_qwtPlotCurve;
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimWellLogCurve::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
|
||||
void RimPlotCurve::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
|
||||
{
|
||||
if (changedField == &m_showCurve)
|
||||
{
|
||||
@ -152,7 +176,7 @@ void RimWellLogCurve::fieldChangedByUi(const caf::PdmFieldHandle* changedField,
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
caf::PdmFieldHandle* RimWellLogCurve::objectToggleField()
|
||||
caf::PdmFieldHandle* RimPlotCurve::objectToggleField()
|
||||
{
|
||||
return &m_showCurve;
|
||||
}
|
||||
@ -160,7 +184,7 @@ caf::PdmFieldHandle* RimWellLogCurve::objectToggleField()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimWellLogCurve::updateCurveVisibility()
|
||||
void RimPlotCurve::updateCurveVisibility()
|
||||
{
|
||||
if (m_showCurve() && m_ownerQwtTrack)
|
||||
{
|
||||
@ -171,26 +195,13 @@ void RimWellLogCurve::updateCurveVisibility()
|
||||
m_qwtPlotCurve->detach();
|
||||
}
|
||||
|
||||
RimWellLogPlot* wellLogPlot;
|
||||
this->firstAnchestorOrThisOfType(wellLogPlot);
|
||||
if (wellLogPlot)
|
||||
{
|
||||
wellLogPlot->calculateAvailableDepthRange();
|
||||
}
|
||||
|
||||
RimWellLogTrack* wellLogPlotTrack;
|
||||
this->firstAnchestorOrThisOfType(wellLogPlotTrack);
|
||||
if (wellLogPlotTrack)
|
||||
{
|
||||
wellLogPlotTrack->zoomAllXAndZoomAllDepthOnOwnerPlot();
|
||||
}
|
||||
|
||||
zoomAllOwnerTrackAndPlot();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimWellLogCurve::updatePlotConfiguration()
|
||||
void RimPlotCurve::updatePlotConfiguration()
|
||||
{
|
||||
this->updateCurveVisibility();
|
||||
this->updateCurveName();
|
||||
@ -203,7 +214,7 @@ void RimWellLogCurve::updatePlotConfiguration()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimWellLogCurve::setQwtTrack(RiuWellLogTrack* plot)
|
||||
void RimPlotCurve::setQwtTrack(QwtPlot* plot)
|
||||
{
|
||||
m_ownerQwtTrack = plot;
|
||||
if (m_showCurve)
|
||||
@ -216,7 +227,7 @@ void RimWellLogCurve::setQwtTrack(RiuWellLogTrack* plot)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
caf::PdmFieldHandle* RimWellLogCurve::userDescriptionField()
|
||||
caf::PdmFieldHandle* RimPlotCurve::userDescriptionField()
|
||||
{
|
||||
return &m_curveName;
|
||||
}
|
||||
@ -262,7 +273,7 @@ bool RimWellLogCurve::valueRange(double* minimumValue, double* maximumValue) con
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimWellLogCurve::setColor(const cvf::Color3f& color)
|
||||
void RimPlotCurve::setColor(const cvf::Color3f& color)
|
||||
{
|
||||
m_curveColor = color;
|
||||
}
|
||||
@ -270,7 +281,7 @@ void RimWellLogCurve::setColor(const cvf::Color3f& color)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimWellLogCurve::detachQwtCurve()
|
||||
void RimPlotCurve::detachQwtCurve()
|
||||
{
|
||||
m_qwtPlotCurve->detach();
|
||||
}
|
||||
@ -278,7 +289,7 @@ void RimWellLogCurve::detachQwtCurve()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QwtPlotCurve* RimWellLogCurve::plotCurve() const
|
||||
QwtPlotCurve* RimPlotCurve::plotCurve() const
|
||||
{
|
||||
return m_qwtPlotCurve;
|
||||
}
|
||||
@ -286,7 +297,7 @@ QwtPlotCurve* RimWellLogCurve::plotCurve() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimWellLogCurve::updatePlotTitle()
|
||||
void RimPlotCurve::updatePlotTitle()
|
||||
{
|
||||
m_qwtPlotCurve->setTitle(m_curveName);
|
||||
}
|
||||
@ -294,7 +305,7 @@ void RimWellLogCurve::updatePlotTitle()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RimWellLogCurve::isCurveVisible() const
|
||||
bool RimPlotCurve::isCurveVisible() const
|
||||
{
|
||||
return m_showCurve;
|
||||
}
|
||||
@ -302,7 +313,7 @@ bool RimWellLogCurve::isCurveVisible() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimWellLogCurve::initAfterRead()
|
||||
void RimPlotCurve::initAfterRead()
|
||||
{
|
||||
updateOptionSensitivity();
|
||||
}
|
||||
@ -328,10 +339,11 @@ void RimWellLogCurve::zoomAllOwnerTrackAndPlot()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimWellLogCurve::updateCurveName()
|
||||
void RimPlotCurve::updateCurveName()
|
||||
{
|
||||
if (m_autoName)
|
||||
{
|
||||
@ -346,7 +358,7 @@ void RimWellLogCurve::updateCurveName()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimWellLogCurve::updateOptionSensitivity()
|
||||
void RimPlotCurve::updateOptionSensitivity()
|
||||
{
|
||||
m_curveName.uiCapability()->setUiReadOnly(m_autoName);
|
||||
}
|
||||
@ -362,7 +374,7 @@ const RigWellLogCurveData* RimWellLogCurve::curveData() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimWellLogCurve::updateCurveAppearance()
|
||||
void RimPlotCurve::updateCurveAppearance()
|
||||
{
|
||||
CVF_ASSERT(m_qwtPlotCurve);
|
||||
|
||||
@ -441,7 +453,7 @@ void RimWellLogCurve::updateCurveAppearance()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QList<caf::PdmOptionItemInfo> RimWellLogCurve::calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool* useOptionsOnly)
|
||||
QList<caf::PdmOptionItemInfo> RimPlotCurve::calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool* useOptionsOnly)
|
||||
{
|
||||
QList<caf::PdmOptionItemInfo> options;
|
||||
|
||||
|
@ -33,6 +33,7 @@ class RigWellLogCurveData;
|
||||
class RiuWellLogTrack;
|
||||
class RiuLineSegmentQwtPlotCurve;
|
||||
|
||||
class QwtPlot;
|
||||
class QwtPlotCurve;
|
||||
|
||||
class QString;
|
||||
@ -105,7 +106,7 @@ protected:
|
||||
///
|
||||
///
|
||||
//==================================================================================================
|
||||
class RimWellLogCurve : public caf::PdmObject
|
||||
class RimPlotCurve : public caf::PdmObject
|
||||
{
|
||||
CAF_PDM_HEADER_INIT;
|
||||
public:
|
||||
@ -128,42 +129,38 @@ public:
|
||||
SYMBOL_CROSS,
|
||||
SYMBOL_XCROSS
|
||||
};
|
||||
|
||||
public:
|
||||
RimWellLogCurve();
|
||||
virtual ~RimWellLogCurve();
|
||||
RimPlotCurve();
|
||||
virtual ~RimPlotCurve();
|
||||
|
||||
void setColor(const cvf::Color3f& color);
|
||||
|
||||
bool depthRange(double* minimumDepth, double* maximumDepth) const;
|
||||
bool valueRange(double* minimumValue, double* maximumValue) const;
|
||||
|
||||
void setQwtTrack(RiuWellLogTrack* plot);
|
||||
|
||||
void setQwtTrack(QwtPlot* plot);
|
||||
void detachQwtCurve();
|
||||
|
||||
bool isCurveVisible() const;
|
||||
|
||||
QwtPlotCurve* plotCurve() const;
|
||||
const RigWellLogCurveData* curveData() const;
|
||||
|
||||
|
||||
QString name() const { return m_curveName; }
|
||||
void updateCurveName();
|
||||
void updatePlotTitle();
|
||||
|
||||
virtual QString wellName() const = 0;
|
||||
virtual QString wellLogChannelName() const = 0;
|
||||
virtual QString wellDate() const { return ""; };
|
||||
virtual void updatePlotData() = 0;
|
||||
|
||||
protected:
|
||||
|
||||
virtual QString createCurveName() = 0;
|
||||
|
||||
void updatePlotConfiguration();
|
||||
void updateCurveVisibility();
|
||||
void zoomAllOwnerTrackAndPlot();
|
||||
virtual void zoomAllOwnerTrackAndPlot() = 0;
|
||||
void updateOptionSensitivity();
|
||||
void updateCurveAppearance();
|
||||
|
||||
protected:
|
||||
|
||||
// Overridden PDM methods
|
||||
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
|
||||
virtual caf::PdmFieldHandle* objectToggleField();
|
||||
@ -171,10 +168,9 @@ protected:
|
||||
virtual void initAfterRead();
|
||||
virtual QList<caf::PdmOptionItemInfo> calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool* useOptionsOnly);
|
||||
|
||||
|
||||
QPointer<RiuWellLogTrack> m_ownerQwtTrack;
|
||||
protected:
|
||||
QPointer<QwtPlot> m_ownerQwtTrack;
|
||||
RiuLineSegmentQwtPlotCurve* m_qwtPlotCurve;
|
||||
cvf::ref<RigWellLogCurveData> m_curveData;
|
||||
|
||||
caf::PdmField<bool> m_showCurve;
|
||||
caf::PdmField<QString> m_curveName;
|
||||
@ -187,3 +183,31 @@ protected:
|
||||
caf::PdmField< caf::AppEnum< PointSymbolEnum > > m_pointSymbol;
|
||||
caf::PdmField< caf::AppEnum< LineStyleEnum > > m_lineStyle;
|
||||
};
|
||||
|
||||
//==================================================================================================
|
||||
///
|
||||
///
|
||||
//==================================================================================================
|
||||
class RimWellLogCurve : public RimPlotCurve
|
||||
{
|
||||
CAF_PDM_HEADER_INIT;
|
||||
public:
|
||||
|
||||
public:
|
||||
RimWellLogCurve();
|
||||
virtual ~RimWellLogCurve();
|
||||
|
||||
bool depthRange(double* minimumDepth, double* maximumDepth) const;
|
||||
bool valueRange(double* minimumValue, double* maximumValue) const;
|
||||
|
||||
const RigWellLogCurveData* curveData() const;
|
||||
|
||||
virtual QString wellName() const = 0;
|
||||
virtual QString wellLogChannelName() const = 0;
|
||||
virtual QString wellDate() const { return ""; };
|
||||
|
||||
protected:
|
||||
void zoomAllOwnerTrackAndPlot() override;
|
||||
|
||||
cvf::ref<RigWellLogCurveData> m_curveData;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user