#13253 Avoid exposing internal completion types

Only show ICD, ICV and AICD as options when adding valve template
This commit is contained in:
Magne Sjaastad committed 2025-12-02 16:01:30 +01:00
1 parent 6cb4907180
commit b723845b0d
2 files changed
+39 -10

No files matched your search

@@ -24,6 +24,17 @@
#include "cafPdmAbstractFieldScriptingCapability.h"
#include "cafPdmFieldScriptingCapability.h"
template <>
void caf::AppEnum<RimcValveTemplateCollection_add_template::ValveTemplateType>::setUp()
{
addItem( RimcValveTemplateCollection_add_template::ValveTemplateType::ICD, "ICD", "Inflow Control Device" );
addItem( RimcValveTemplateCollection_add_template::ValveTemplateType::ICV, "ICV", "Inflow Control Valve" );
addItem( RimcValveTemplateCollection_add_template::ValveTemplateType::AICD, "AICD", "Adaptive Inflow Control Device" );
addItem( RimcValveTemplateCollection_add_template::ValveTemplateType::UNDEFINED, "UNDEFINED", "Undefined Valve Template" );
setDefault( RimcValveTemplateCollection_add_template::ValveTemplateType::UNDEFINED );
}
CAF_PDM_OBJECT_METHOD_SOURCE_INIT( RimValveTemplateCollection, RimcValveTemplateCollection_add_template, "AddTemplate" );
//--------------------------------------------------------------------------------------------------
@@ -36,7 +47,7 @@ RimcValveTemplateCollection_add_template::RimcValveTemplateCollection_add_templa
CAF_PDM_InitScriptableField( &m_completionType,
"CompletionType",
caf::AppEnum<RiaDefines::WellPathComponentType>( RiaDefines::WellPathComponentType::ICD ),
caf::AppEnum<ValveTemplateType>( ValveTemplateType::UNDEFINED ),
"",
"",
"",
@@ -57,12 +68,21 @@ std::expected<caf::PdmObjectHandle*, QString> RimcValveTemplateCollection_add_te
return std::unexpected( QString( "Invalid valve template collection" ) );
}
// Validate completion type
RiaDefines::WellPathComponentType completionType = m_completionType();
if ( completionType != RiaDefines::WellPathComponentType::ICD && completionType != RiaDefines::WellPathComponentType::ICV &&
completionType != RiaDefines::WellPathComponentType::AICD )
// Map ValveTemplateType to WellPathComponentType
RiaDefines::WellPathComponentType completionType;
switch ( m_completionType() )
{
return std::unexpected( QString( "Invalid completion type. Must be ICD, ICV, or AICD" ) );
case ValveTemplateType::ICD:
completionType = RiaDefines::WellPathComponentType::ICD;
break;
case ValveTemplateType::ICV:
completionType = RiaDefines::WellPathComponentType::ICV;
break;
case ValveTemplateType::AICD:
completionType = RiaDefines::WellPathComponentType::AICD;
break;
default:
return std::unexpected( QString( "Unknown completion type" ) );
}
// Create new valve template
@@ -35,6 +35,15 @@ class RimcValveTemplateCollection_add_template : public caf::PdmObjectCreationMe
{
CAF_PDM_HEADER_INIT;
public:
enum class ValveTemplateType
{
ICD,
ICV,
AICD,
UNDEFINED
};
public:
RimcValveTemplateCollection_add_template( caf::PdmObjectHandle* self );
@@ -42,8 +51,8 @@ public:
QString classKeywordReturnedType() const override;
private:
caf::PdmField<caf::AppEnum<RiaDefines::WellPathComponentType>> m_completionType;
caf::PdmField<double> m_orificeDiameter;
caf::PdmField<double> m_flowCoefficient;
caf::PdmField<QString> m_userLabel;
caf::PdmField<caf::AppEnum<ValveTemplateType>> m_completionType;
caf::PdmField<double> m_orificeDiameter;
caf::PdmField<double> m_flowCoefficient;
caf::PdmField<QString> m_userLabel;
};