From 70f76aefb0767c1ea119bd7a2601332018030dc7 Mon Sep 17 00:00:00 2001 From: Magne Sjaastad Date: Thu, 4 Dec 2025 13:13:25 +0100 Subject: [PATCH] Add phases display field to Eclipse Result Case Display available simulation phases (Oil, Gas, Water) in the Eclipse Result Case properties panel. The phases are read from the case data and displayed as a read-only field in the UI. --- .../ProjectDataModel/RimEclipseResultCase.cpp | 30 +++++++++++++++++++ .../ProjectDataModel/RimEclipseResultCase.h | 3 ++ 2 files changed, 33 insertions(+) diff --git a/ApplicationLibCode/ProjectDataModel/RimEclipseResultCase.cpp b/ApplicationLibCode/ProjectDataModel/RimEclipseResultCase.cpp index 1abf36b62a..227957b32a 100644 --- a/ApplicationLibCode/ProjectDataModel/RimEclipseResultCase.cpp +++ b/ApplicationLibCode/ProjectDataModel/RimEclipseResultCase.cpp @@ -90,6 +90,10 @@ RimEclipseResultCase::RimEclipseResultCase() m_unitSystem.registerGetMethod( RimProject::current(), &RimProject::commonUnitSystemForAllCases ); m_unitSystem.uiCapability()->setUiReadOnly( true ); + CAF_PDM_InitFieldNoDefault( &m_phases, "Phases", "Phases" ); + m_phases.registerGetMethod( this, &RimEclipseResultCase::phasesAsString ); + m_phases.uiCapability()->setUiReadOnly( true ); + CAF_PDM_InitFieldNoDefault( &m_flowDiagSolutions, "FlowDiagSolutions", "Flow Diagnostics Solutions" ); m_flowDiagSolutions.uiCapability()->setUiTreeChildrenHidden( true ); @@ -129,6 +133,31 @@ void RimEclipseResultCase::initAfterRead() } } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +QString RimEclipseResultCase::phasesAsString() const +{ + if ( auto caseData = eclipseCaseData() ) + { + QStringList phaseNames; + const auto phases = caseData->availablePhases(); + for ( const auto& phase : phases ) + { + phaseNames.append( caf::AppEnum::uiText( phase ) ); + } + + if ( phaseNames.isEmpty() ) + { + return "No phases available"; + } + + return phaseNames.join( ", " ); + } + + return "No data available"; +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- @@ -680,6 +709,7 @@ void RimEclipseResultCase::defineUiOrdering( QString uiConfigName, caf::PdmUiOrd uiOrdering.add( &m_caseId ); uiOrdering.add( &m_caseFileName ); uiOrdering.add( &m_unitSystem ); + uiOrdering.add( &m_phases ); auto group = uiOrdering.addNewGroup( "Case Options" ); group->add( &m_activeFormationNames ); diff --git a/ApplicationLibCode/ProjectDataModel/RimEclipseResultCase.h b/ApplicationLibCode/ProjectDataModel/RimEclipseResultCase.h index 7b13eae8c0..b462eaf5c2 100644 --- a/ApplicationLibCode/ProjectDataModel/RimEclipseResultCase.h +++ b/ApplicationLibCode/ProjectDataModel/RimEclipseResultCase.h @@ -90,6 +90,8 @@ private: void ensureRftDataIsImported(); bool showTimeStepFilterGUI(); + QString phasesAsString() const; + cvf::ref createMockModel( QString modelName ); void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override; @@ -102,6 +104,7 @@ private: caf::PdmProxyValueField> m_unitSystem; caf::PdmChildArrayField m_flowDiagSolutions; caf::PdmField m_sourSimFileName; + caf::PdmProxyValueField m_phases; caf::PdmField> m_mswMergeThreshold;