2026-01-23 08:50:46 +01:00
|
|
|
/////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
//
|
|
|
|
|
// Copyright (C) 2025- Equinor ASA
|
|
|
|
|
//
|
|
|
|
|
// ResInsight is free software: you can redistribute it and/or modify
|
|
|
|
|
// it under the terms of the GNU General Public License as published by
|
|
|
|
|
// the Free Software Foundation, either version 3 of the License, or
|
|
|
|
|
// (at your option) any later version.
|
|
|
|
|
//
|
|
|
|
|
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
|
|
|
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
|
|
|
// FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
|
//
|
|
|
|
|
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
|
|
|
|
|
// for more details.
|
|
|
|
|
//
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
#include "RimWellEvent.h"
|
|
|
|
|
|
2026-08-10 14:00:12 +02:00
|
|
|
#include "RimTools.h"
|
2026-01-23 08:50:46 +01:00
|
|
|
#include "RimWellPath.h"
|
|
|
|
|
|
|
|
|
|
#include "cafPdmFieldScriptingCapability.h"
|
|
|
|
|
#include "cafPdmObjectScriptingCapability.h"
|
|
|
|
|
#include "cafPdmUiDateEditor.h"
|
|
|
|
|
|
2026-08-10 14:00:12 +02:00
|
|
|
namespace caf
|
|
|
|
|
{
|
|
|
|
|
template <>
|
|
|
|
|
void AppEnum<RimWellEvent::EventType>::setUp()
|
|
|
|
|
{
|
|
|
|
|
addItem( RimWellEvent::EventType::PERF, "PERF", "Perforation" );
|
|
|
|
|
addItem( RimWellEvent::EventType::VALVE, "VALVE", "Valve" );
|
|
|
|
|
addItem( RimWellEvent::EventType::TUBING, "TUBING", "Tubing" );
|
|
|
|
|
addItem( RimWellEvent::EventType::WSTATE, "WSTATE", "Well State" );
|
|
|
|
|
addItem( RimWellEvent::EventType::WTYPE, "WTYPE", "Well Type" );
|
2026-08-19 15:24:22 +02:00
|
|
|
addItem( RimWellEvent::EventType::WELLSPEC, "WELLSPEC", "Well Specification" );
|
2026-08-10 14:00:12 +02:00
|
|
|
addItem( RimWellEvent::EventType::WCONTROL, "WCONTROL", "Well Control" );
|
|
|
|
|
addItem( RimWellEvent::EventType::KEYWORD, "KEYWORD", "Well Keyword" );
|
|
|
|
|
addItem( RimWellEvent::EventType::SCHEDULE_KEYWORD, "SCHEDULE_KEYWORD", "Schedule Keyword" );
|
2026-08-21 12:00:37 +02:00
|
|
|
addItem( RimWellEvent::EventType::RAW_TEXT, "RAW_TEXT", "Raw Text" );
|
2026-08-10 14:00:12 +02:00
|
|
|
setDefault( RimWellEvent::EventType::PERF );
|
|
|
|
|
}
|
|
|
|
|
} // namespace caf
|
|
|
|
|
|
2026-01-23 08:50:46 +01:00
|
|
|
CAF_PDM_ABSTRACT_SOURCE_INIT( RimWellEvent, "WellEvent" );
|
|
|
|
|
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
|
///
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
|
RimWellEvent::RimWellEvent()
|
|
|
|
|
{
|
|
|
|
|
CAF_PDM_InitScriptableObject( "Well Event", "", "", "WellEvent" );
|
|
|
|
|
|
|
|
|
|
CAF_PDM_InitField( &m_eventDate, "EventDate", QDateTime(), "Event Date" );
|
|
|
|
|
CAF_PDM_InitScriptableFieldNoDefault( &m_wellPath, "WellPath", "Well Path" );
|
2026-08-19 11:39:52 +02:00
|
|
|
CAF_PDM_InitScriptableField( &m_comment, "Comment", QString(), "Comment" );
|
2026-01-23 08:50:46 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
|
///
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
|
RimWellEvent::~RimWellEvent()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
|
///
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
|
QDateTime RimWellEvent::eventDate() const
|
|
|
|
|
{
|
|
|
|
|
return m_eventDate();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
|
///
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
|
void RimWellEvent::setEventDate( const QDateTime& date )
|
|
|
|
|
{
|
|
|
|
|
m_eventDate = date;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
|
///
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
|
RimWellPath* RimWellEvent::wellPath() const
|
|
|
|
|
{
|
|
|
|
|
return m_wellPath();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
|
///
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
|
void RimWellEvent::setWellPath( RimWellPath* wellPath )
|
|
|
|
|
{
|
|
|
|
|
m_wellPath = wellPath;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
|
///
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
|
QString RimWellEvent::wellName() const
|
|
|
|
|
{
|
|
|
|
|
if ( m_wellPath() )
|
|
|
|
|
{
|
|
|
|
|
return m_wellPath()->name();
|
|
|
|
|
}
|
|
|
|
|
return QString();
|
|
|
|
|
}
|
|
|
|
|
|
2026-08-19 11:39:52 +02:00
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
|
///
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
|
QString RimWellEvent::comment() const
|
|
|
|
|
{
|
|
|
|
|
return m_comment();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
|
///
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
|
void RimWellEvent::setComment( const QString& comment )
|
|
|
|
|
{
|
|
|
|
|
m_comment = comment;
|
|
|
|
|
}
|
|
|
|
|
|
2026-01-23 08:50:46 +01:00
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
|
///
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
|
void RimWellEvent::defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering )
|
|
|
|
|
{
|
|
|
|
|
uiOrdering.add( &m_wellPath );
|
|
|
|
|
uiOrdering.add( &m_eventDate );
|
2026-08-19 11:39:52 +02:00
|
|
|
uiOrdering.add( &m_comment );
|
2026-01-23 08:50:46 +01:00
|
|
|
}
|
2026-08-10 14:00:12 +02:00
|
|
|
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
|
///
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
|
QList<caf::PdmOptionItemInfo> RimWellEvent::calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions )
|
|
|
|
|
{
|
|
|
|
|
QList<caf::PdmOptionItemInfo> options;
|
|
|
|
|
|
|
|
|
|
if ( fieldNeedingOptions == &m_wellPath )
|
|
|
|
|
{
|
|
|
|
|
RimTools::wellPathOptionItems( &options );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return options;
|
|
|
|
|
}
|