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:
parent
24920e2d12
commit
fb7d24e99d
@ -87,11 +87,7 @@ void RicWellPathImportPerforationIntervalsFeature::onActionTriggered(bool isChec
|
||||
perforationInterval->setStartAndEndMD(interval.startMD, interval.endMD);
|
||||
perforationInterval->setDiameter(interval.diameter);
|
||||
perforationInterval->setSkinFactor(interval.skinFactor);
|
||||
if (interval.startOfHistory)
|
||||
{
|
||||
perforationInterval->setStartOfHistory();
|
||||
}
|
||||
else
|
||||
if (!interval.startOfHistory)
|
||||
{
|
||||
perforationInterval->setStartDate(interval.date);
|
||||
}
|
||||
|
@ -40,8 +40,15 @@ RimPerforationInterval::RimPerforationInterval()
|
||||
CAF_PDM_InitField(&m_endMD, "EndMeasuredDepth", 0.0, "End MD", "", "", "");
|
||||
CAF_PDM_InitField(&m_diameter, "Diameter", 0.216, "Diameter", "", "", "");
|
||||
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);
|
||||
}
|
||||
@ -65,20 +72,25 @@ void RimPerforationInterval::setStartAndEndMD(double startMD, double endMD)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimPerforationInterval::setStartOfHistory()
|
||||
void RimPerforationInterval::setStartDate(const QDate& date)
|
||||
{
|
||||
m_startOfHistory = true;
|
||||
|
||||
m_startDate.uiCapability()->setUiReadOnly(m_startOfHistory());
|
||||
if (date.isValid())
|
||||
{
|
||||
m_useCustomStartDate = true;
|
||||
m_startDate = QDateTime(date);
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimPerforationInterval::setStartDate(const QDate& date)
|
||||
void RimPerforationInterval::setEndDate(const QDate& date)
|
||||
{
|
||||
m_startOfHistory = false;
|
||||
m_startDate = QDateTime(date);
|
||||
if (date.isValid())
|
||||
{
|
||||
m_useCustomEndDate = true;
|
||||
m_endDate = QDateTime(date);
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -144,14 +156,11 @@ double RimPerforationInterval::skinFactor() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RimPerforationInterval::isActiveOnDate(const QDateTime& date) const
|
||||
{
|
||||
if (m_startOfHistory())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (m_useCustomStartDate() && date < m_startDate()) return false;
|
||||
|
||||
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)
|
||||
{
|
||||
|
||||
if (changedField == &m_startOfHistory)
|
||||
{
|
||||
m_startDate.uiCapability()->setUiReadOnly(m_startOfHistory());
|
||||
}
|
||||
|
||||
RimProject* proj;
|
||||
this->firstAncestorOrThisOfTypeAsserted(proj);
|
||||
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_endMD);
|
||||
uiOrdering.add(&m_diameter);
|
||||
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();
|
||||
}
|
||||
@ -259,7 +271,7 @@ void RimPerforationInterval::defineUiOrdering(QString uiConfigName, caf::PdmUiOr
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
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);
|
||||
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();
|
||||
|
||||
void setStartAndEndMD(double startMD, double endMD);
|
||||
void setStartOfHistory();
|
||||
void setStartDate(const QDate& date);
|
||||
void setEndDate(const QDate& date);
|
||||
void setDiameter(double diameter);
|
||||
void setSkinFactor(double skinFactor);
|
||||
double startMD() const;
|
||||
@ -61,12 +61,19 @@ protected:
|
||||
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 defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute) override;
|
||||
virtual void initAfterRead() override;
|
||||
|
||||
private:
|
||||
caf::PdmField< double > m_startMD;
|
||||
caf::PdmField< double > m_endMD;
|
||||
caf::PdmField< double > m_diameter;
|
||||
caf::PdmField< double > m_skinFactor;
|
||||
caf::PdmField< bool > m_startOfHistory;
|
||||
|
||||
caf::PdmField< bool > m_useCustomStartDate;
|
||||
caf::PdmField< QDateTime > m_startDate;
|
||||
|
||||
caf::PdmField< bool > m_useCustomEndDate;
|
||||
caf::PdmField< QDateTime > m_endDate;
|
||||
|
||||
caf::PdmField< bool > m_startOfHistory_OBSOLETE;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user