From 5d9f7b165c4d99e54c510fb99eb88cde937b9e1d Mon Sep 17 00:00:00 2001 From: jonjenssen <69144954+jonjenssen@users.noreply.github.com> Date: Wed, 27 Apr 2022 01:51:55 +0200 Subject: [PATCH] More summary data types in data source tree (#8840) * Add support for block data in data sources tree * Add option to show summary data sub-tree for single realizations inside an ensemble --- .../Summary/RimSummaryAddressCollection.cpp | 10 ++++++++ .../Summary/RimSummaryAddressCollection.h | 4 ++- .../Summary/RimSummaryCase.cpp | 25 ++++++++++++++++++- .../ProjectDataModel/Summary/RimSummaryCase.h | 3 +++ 4 files changed, 40 insertions(+), 2 deletions(-) diff --git a/ApplicationLibCode/ProjectDataModel/Summary/RimSummaryAddressCollection.cpp b/ApplicationLibCode/ProjectDataModel/Summary/RimSummaryAddressCollection.cpp index 4381a1ab55..d699a79e97 100644 --- a/ApplicationLibCode/ProjectDataModel/Summary/RimSummaryAddressCollection.cpp +++ b/ApplicationLibCode/ProjectDataModel/Summary/RimSummaryAddressCollection.cpp @@ -33,6 +33,7 @@ void caf::AppEnum::setUp() addItem( RimSummaryAddressCollection::CollectionContentType::REGION, "REGION", "Region" ); addItem( RimSummaryAddressCollection::CollectionContentType::MISC, "MISC", "Miscellaneous" ); addItem( RimSummaryAddressCollection::CollectionContentType::FIELD, "FIELD", "Field" ); + addItem( RimSummaryAddressCollection::CollectionContentType::BLOCK, "BLOCK", "Block" ); setDefault( RimSummaryAddressCollection::CollectionContentType::NOT_DEFINED ); } @@ -132,6 +133,7 @@ void RimSummaryAddressCollection::updateFolderStructure( const std::setaddToSubfolder( QString::fromStdString( address.blockAsString() ), + CollectionContentType::BLOCK, + address, + caseId, + ensembleId ); + break; + case RifEclipseSummaryAddress::SummaryVarCategory::SUMMARY_WELL: wells->addToSubfolder( QString::fromStdString( address.wellName() ), CollectionContentType::WELL, diff --git a/ApplicationLibCode/ProjectDataModel/Summary/RimSummaryAddressCollection.h b/ApplicationLibCode/ProjectDataModel/Summary/RimSummaryAddressCollection.h index b3b741fe94..5a07bcbfb8 100644 --- a/ApplicationLibCode/ProjectDataModel/Summary/RimSummaryAddressCollection.h +++ b/ApplicationLibCode/ProjectDataModel/Summary/RimSummaryAddressCollection.h @@ -43,7 +43,9 @@ public: MISC, WELL_FOLDER, GROUP_FOLDER, - REGION_FOLDER + REGION_FOLDER, + BLOCK, + BLOCK_FOLDER }; public: diff --git a/ApplicationLibCode/ProjectDataModel/Summary/RimSummaryCase.cpp b/ApplicationLibCode/ProjectDataModel/Summary/RimSummaryCase.cpp index a6a73ef4e0..7436f8a121 100644 --- a/ApplicationLibCode/ProjectDataModel/Summary/RimSummaryCase.cpp +++ b/ApplicationLibCode/ProjectDataModel/Summary/RimSummaryCase.cpp @@ -33,6 +33,7 @@ #include "RimSummaryCaseCollection.h" #include "cafPdmFieldScriptingCapability.h" +#include "cafPdmUiCheckBoxEditor.h" #include "cafPdmUiTreeOrdering.h" #include "cvfAssert.h" @@ -54,6 +55,9 @@ RimSummaryCase::RimSummaryCase() CAF_PDM_InitScriptableFieldNoDefault( &m_displayName, "ShortName", "Display Name" ); CAF_PDM_InitScriptableFieldNoDefault( &m_displayNameOption, "NameSetting", "Name Setting" ); + CAF_PDM_InitScriptableField( &m_showSubNodesInTree, "ShowSubNodesInTree", false, "Show Summary Data Sub-Tree" ); + caf::PdmUiNativeCheckBoxEditor::configureFieldForEditor( &m_showSubNodesInTree ); + CAF_PDM_InitScriptableField( &m_useAutoShortName_OBSOLETE, "AutoShortyName", false, "Use Auto Display Name" ); m_useAutoShortName_OBSOLETE.xmlCapability()->setIOWritable( false ); m_useAutoShortName_OBSOLETE.uiCapability()->setUiHidden( true ); @@ -181,6 +185,10 @@ void RimSummaryCase::fieldChangedByUi( const caf::PdmFieldHandle* changedField, updateTreeItemName(); nameChanged.send(); } + else if ( changedField == &m_showSubNodesInTree ) + { + updateConnectedEditors(); + } updateOptionSensitivity(); } @@ -222,12 +230,27 @@ void RimSummaryCase::buildChildNodes() m_dataVectorFolders->updateFolderStructure( reader->allResultAddresses(), m_caseId ); } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimSummaryCase::defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) +{ + uiOrdering.add( &m_displayName ); + uiOrdering.add( &m_displayNameOption ); + uiOrdering.add( &m_summaryHeaderFilename ); + uiOrdering.add( &m_caseId ); + + if ( ensemble() ) uiOrdering.add( &m_showSubNodesInTree ); + + uiOrdering.skipRemainingFields( true ); +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- void RimSummaryCase::defineUiTreeOrdering( caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName /*= ""*/ ) { - if ( !ensemble() ) + if ( !ensemble() || m_showSubNodesInTree() ) { if ( m_dataVectorFolders->isEmpty() ) buildChildNodes(); m_dataVectorFolders->updateUiTreeOrdering( uiTreeOrdering ); diff --git a/ApplicationLibCode/ProjectDataModel/Summary/RimSummaryCase.h b/ApplicationLibCode/ProjectDataModel/Summary/RimSummaryCase.h index 52545d57d5..dd732f0ced 100644 --- a/ApplicationLibCode/ProjectDataModel/Summary/RimSummaryCase.h +++ b/ApplicationLibCode/ProjectDataModel/Summary/RimSummaryCase.h @@ -86,6 +86,7 @@ public: bool operator<( const RimSummaryCase& rhs ) const; protected: + void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override; void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override; void defineUiTreeOrdering( caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName = "" ) override; void updateTreeItemName(); @@ -102,6 +103,8 @@ protected: caf::PdmField m_displayNameOption; caf::PdmField m_summaryHeaderFilename; + caf::PdmField m_showSubNodesInTree; + caf::PdmChildField m_dataVectorFolders; bool m_isObservedData;