mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#2734 Perforation Intervals: Add custom start date and custom end date
This commit is contained in:
@@ -87,11 +87,7 @@ void RicWellPathImportPerforationIntervalsFeature::onActionTriggered(bool isChec
|
|||||||
perforationInterval->setStartAndEndMD(interval.startMD, interval.endMD);
|
perforationInterval->setStartAndEndMD(interval.startMD, interval.endMD);
|
||||||
perforationInterval->setDiameter(interval.diameter);
|
perforationInterval->setDiameter(interval.diameter);
|
||||||
perforationInterval->setSkinFactor(interval.skinFactor);
|
perforationInterval->setSkinFactor(interval.skinFactor);
|
||||||
if (interval.startOfHistory)
|
if (!interval.startOfHistory)
|
||||||
{
|
|
||||||
perforationInterval->setStartOfHistory();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
perforationInterval->setStartDate(interval.date);
|
perforationInterval->setStartDate(interval.date);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,8 +40,15 @@ RimPerforationInterval::RimPerforationInterval()
|
|||||||
CAF_PDM_InitField(&m_endMD, "EndMeasuredDepth", 0.0, "End MD", "", "", "");
|
CAF_PDM_InitField(&m_endMD, "EndMeasuredDepth", 0.0, "End MD", "", "", "");
|
||||||
CAF_PDM_InitField(&m_diameter, "Diameter", 0.216, "Diameter", "", "", "");
|
CAF_PDM_InitField(&m_diameter, "Diameter", 0.216, "Diameter", "", "", "");
|
||||||
CAF_PDM_InitField(&m_skinFactor, "SkinFactor", 0.0, "Skin Factor", "", "", "");
|
CAF_PDM_InitField(&m_skinFactor, "SkinFactor", 0.0, "Skin Factor", "", "", "");
|
||||||
CAF_PDM_InitField(&m_startOfHistory, "StartOfHistory", true, "All Timesteps", "", "", "");
|
|
||||||
CAF_PDM_InitField(&m_startDate, "StartDate", QDateTime::currentDateTime(), "Start Date", "", "", "");
|
CAF_PDM_InitField(&m_startOfHistory_OBSOLETE, "StartOfHistory", true, "All Timesteps", "", "", "");
|
||||||
|
m_startOfHistory_OBSOLETE.xmlCapability()->setIOWritable(false);
|
||||||
|
|
||||||
|
CAF_PDM_InitField(&m_useCustomStartDate, "UseCustomStartDate", false, "Custom Start Date", "", "", "");
|
||||||
|
CAF_PDM_InitField(&m_startDate, "StartDate", QDateTime::currentDateTime(), "Start Date", "", "", "");
|
||||||
|
|
||||||
|
CAF_PDM_InitField(&m_useCustomEndDate, "UseCustomEndDate", false, "Custom End Date", "", "", "");
|
||||||
|
CAF_PDM_InitField(&m_endDate, "EndDate", QDateTime::currentDateTime(), "End Date", "", "", "");
|
||||||
|
|
||||||
nameField()->uiCapability()->setUiReadOnly(true);
|
nameField()->uiCapability()->setUiReadOnly(true);
|
||||||
}
|
}
|
||||||
@@ -65,20 +72,25 @@ void RimPerforationInterval::setStartAndEndMD(double startMD, double endMD)
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimPerforationInterval::setStartOfHistory()
|
void RimPerforationInterval::setStartDate(const QDate& date)
|
||||||
{
|
{
|
||||||
m_startOfHistory = true;
|
if (date.isValid())
|
||||||
|
{
|
||||||
m_startDate.uiCapability()->setUiReadOnly(m_startOfHistory());
|
m_useCustomStartDate = true;
|
||||||
|
m_startDate = QDateTime(date);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimPerforationInterval::setStartDate(const QDate& date)
|
void RimPerforationInterval::setEndDate(const QDate& date)
|
||||||
{
|
{
|
||||||
m_startOfHistory = false;
|
if (date.isValid())
|
||||||
m_startDate = QDateTime(date);
|
{
|
||||||
|
m_useCustomEndDate = true;
|
||||||
|
m_endDate = QDateTime(date);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@@ -144,14 +156,11 @@ double RimPerforationInterval::skinFactor() const
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
bool RimPerforationInterval::isActiveOnDate(const QDateTime& date) const
|
bool RimPerforationInterval::isActiveOnDate(const QDateTime& date) const
|
||||||
{
|
{
|
||||||
if (m_startOfHistory())
|
if (m_useCustomStartDate() && date < m_startDate()) return false;
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!date.isValid()) return false;
|
if (m_useCustomEndDate() && date > m_endDate()) return false;
|
||||||
|
|
||||||
return m_startDate() < date;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@@ -199,12 +208,6 @@ void RimPerforationInterval::setUnitSystemSpecificDefaults()
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimPerforationInterval::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
|
void RimPerforationInterval::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (changedField == &m_startOfHistory)
|
|
||||||
{
|
|
||||||
m_startDate.uiCapability()->setUiReadOnly(m_startOfHistory());
|
|
||||||
}
|
|
||||||
|
|
||||||
RimProject* proj;
|
RimProject* proj;
|
||||||
this->firstAncestorOrThisOfTypeAsserted(proj);
|
this->firstAncestorOrThisOfTypeAsserted(proj);
|
||||||
proj->reloadCompletionTypeResultsInAllViews();
|
proj->reloadCompletionTypeResultsInAllViews();
|
||||||
@@ -242,14 +245,23 @@ void RimPerforationInterval::defineUiOrdering(QString uiConfigName, caf::PdmUiOr
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
m_startDate.uiCapability()->setUiReadOnly(m_startOfHistory());
|
|
||||||
|
|
||||||
uiOrdering.add(&m_startMD);
|
uiOrdering.add(&m_startMD);
|
||||||
uiOrdering.add(&m_endMD);
|
uiOrdering.add(&m_endMD);
|
||||||
uiOrdering.add(&m_diameter);
|
uiOrdering.add(&m_diameter);
|
||||||
uiOrdering.add(&m_skinFactor);
|
uiOrdering.add(&m_skinFactor);
|
||||||
uiOrdering.add(&m_startOfHistory);
|
|
||||||
uiOrdering.add(&m_startDate);
|
uiOrdering.add(&m_useCustomStartDate);
|
||||||
|
if (m_useCustomStartDate)
|
||||||
|
{
|
||||||
|
uiOrdering.add(&m_startDate);
|
||||||
|
}
|
||||||
|
|
||||||
|
uiOrdering.add(&m_useCustomEndDate);
|
||||||
|
if (m_useCustomEndDate)
|
||||||
|
{
|
||||||
|
uiOrdering.add(&m_endDate);
|
||||||
|
}
|
||||||
|
|
||||||
uiOrdering.skipRemainingFields();
|
uiOrdering.skipRemainingFields();
|
||||||
}
|
}
|
||||||
@@ -259,7 +271,7 @@ void RimPerforationInterval::defineUiOrdering(QString uiConfigName, caf::PdmUiOr
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimPerforationInterval::defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute)
|
void RimPerforationInterval::defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute)
|
||||||
{
|
{
|
||||||
if (field == &m_startDate)
|
if (field == &m_startDate || field == &m_endDate)
|
||||||
{
|
{
|
||||||
caf::PdmUiDateEditorAttribute* myAttr = static_cast<caf::PdmUiDateEditorAttribute*>(attribute);
|
caf::PdmUiDateEditorAttribute* myAttr = static_cast<caf::PdmUiDateEditorAttribute*>(attribute);
|
||||||
if (myAttr)
|
if (myAttr)
|
||||||
@@ -269,3 +281,14 @@ void RimPerforationInterval::defineEditorAttribute(const caf::PdmFieldHandle* fi
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RimPerforationInterval::initAfterRead()
|
||||||
|
{
|
||||||
|
if (!m_startOfHistory_OBSOLETE)
|
||||||
|
{
|
||||||
|
m_useCustomStartDate = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -41,8 +41,8 @@ public:
|
|||||||
virtual ~RimPerforationInterval();
|
virtual ~RimPerforationInterval();
|
||||||
|
|
||||||
void setStartAndEndMD(double startMD, double endMD);
|
void setStartAndEndMD(double startMD, double endMD);
|
||||||
void setStartOfHistory();
|
|
||||||
void setStartDate(const QDate& date);
|
void setStartDate(const QDate& date);
|
||||||
|
void setEndDate(const QDate& date);
|
||||||
void setDiameter(double diameter);
|
void setDiameter(double diameter);
|
||||||
void setSkinFactor(double skinFactor);
|
void setSkinFactor(double skinFactor);
|
||||||
double startMD() const;
|
double startMD() const;
|
||||||
@@ -61,12 +61,19 @@ protected:
|
|||||||
virtual void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override;
|
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 defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName = "") override;
|
||||||
virtual void defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute) override;
|
virtual void defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute) override;
|
||||||
|
virtual void initAfterRead() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
caf::PdmField< double > m_startMD;
|
caf::PdmField< double > m_startMD;
|
||||||
caf::PdmField< double > m_endMD;
|
caf::PdmField< double > m_endMD;
|
||||||
caf::PdmField< double > m_diameter;
|
caf::PdmField< double > m_diameter;
|
||||||
caf::PdmField< double > m_skinFactor;
|
caf::PdmField< double > m_skinFactor;
|
||||||
caf::PdmField< bool > m_startOfHistory;
|
|
||||||
|
caf::PdmField< bool > m_useCustomStartDate;
|
||||||
caf::PdmField< QDateTime > m_startDate;
|
caf::PdmField< QDateTime > m_startDate;
|
||||||
|
|
||||||
|
caf::PdmField< bool > m_useCustomEndDate;
|
||||||
|
caf::PdmField< QDateTime > m_endDate;
|
||||||
|
|
||||||
|
caf::PdmField< bool > m_startOfHistory_OBSOLETE;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user