diff --git a/ApplicationLibCode/ProjectDataModel/Faults/RimFaultInViewCollection.cpp b/ApplicationLibCode/ProjectDataModel/Faults/RimFaultInViewCollection.cpp index 0afa5d92e9..40b8e35b71 100644 --- a/ApplicationLibCode/ProjectDataModel/Faults/RimFaultInViewCollection.cpp +++ b/ApplicationLibCode/ProjectDataModel/Faults/RimFaultInViewCollection.cpp @@ -27,6 +27,7 @@ #include "RigMainGrid.h" #include "RimEclipseCase.h" +#include "RimEclipseFaultColors.h" #include "RimEclipseInputCase.h" #include "RimEclipseView.h" #include "RimFaultInView.h" @@ -317,6 +318,14 @@ void RimFaultInViewCollection::defineUiTreeOrdering( caf::PdmUiTreeOrdering& uiT { uiTreeOrdering.add( &m_faultRASettings ); } + + RimEclipseView* eclipseView = nullptr; + this->firstAncestorOfType( eclipseView ); + if ( eclipseView ) + { + auto uiTree = eclipseView->faultResultSettings()->uiTreeOrdering(); + uiTreeOrdering.appendChild( uiTree ); + } } //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationLibCode/ProjectDataModel/RimEclipseView.cpp b/ApplicationLibCode/ProjectDataModel/RimEclipseView.cpp index a3c105e466..df0a926d51 100644 --- a/ApplicationLibCode/ProjectDataModel/RimEclipseView.cpp +++ b/ApplicationLibCode/ProjectDataModel/RimEclipseView.cpp @@ -1934,7 +1934,6 @@ void RimEclipseView::defineUiTreeOrdering( caf::PdmUiTreeOrdering& uiTreeOrderin uiTreeOrdering.add( cellResult() ); uiTreeOrdering.add( cellEdgeResult() ); uiTreeOrdering.add( elementVectorResult() ); - uiTreeOrdering.add( faultResultSettings() ); if ( m_streamlineCollection->shouldBeAvailable() ) uiTreeOrdering.add( &m_streamlineCollection ); diff --git a/ApplicationLibCode/ProjectDataModel/RimGridView.cpp b/ApplicationLibCode/ProjectDataModel/RimGridView.cpp index 33494918bd..848a100d8a 100644 --- a/ApplicationLibCode/ProjectDataModel/RimGridView.cpp +++ b/ApplicationLibCode/ProjectDataModel/RimGridView.cpp @@ -520,26 +520,6 @@ void RimGridView::clearReservoirCellVisibilities() //-------------------------------------------------------------------------------------------------- void RimGridView::addRequiredUiTreeObjects( caf::PdmUiTreeOrdering& uiTreeOrdering ) { - { - std::vector intersections; - - this->descendantsIncludingThisOfType( intersections ); - if ( !intersections.empty() ) - { - uiTreeOrdering.add( &m_intersectionResultDefCollection ); - } - } - - { - std::vector surfaces; - - this->descendantsIncludingThisOfType( surfaces ); - if ( !surfaces.empty() ) - { - uiTreeOrdering.add( &m_surfaceResultDefCollection ); - } - } - { RimWellPathCollection* wellPathCollection = RimTools::wellPathCollection(); if ( wellPathCollection ) diff --git a/ApplicationLibCode/ProjectDataModel/RimIntersectionCollection.cpp b/ApplicationLibCode/ProjectDataModel/RimIntersectionCollection.cpp index 6188eeab79..ff949bc7f6 100644 --- a/ApplicationLibCode/ProjectDataModel/RimIntersectionCollection.cpp +++ b/ApplicationLibCode/ProjectDataModel/RimIntersectionCollection.cpp @@ -25,6 +25,9 @@ #include "RimBoxIntersection.h" #include "RimCase.h" #include "RimExtrudedCurveIntersection.h" +#include "RimGridView.h" +#include "RimIntersectionResultDefinition.h" +#include "RimIntersectionResultsDefinitionCollection.h" #include "RimSimWellInView.h" #include "Riu3DMainWindowTools.h" @@ -32,7 +35,7 @@ #include "RivBoxIntersectionPartMgr.h" #include "RivExtrudedCurveIntersectionPartMgr.h" -#include "RimIntersectionResultDefinition.h" +#include "cafPdmUiTreeOrdering.h" #include "cvfModelBasicList.h" CAF_PDM_SOURCE_INIT( RimIntersectionCollection, "CrossSectionCollection" ); @@ -71,6 +74,22 @@ caf::PdmFieldHandle* RimIntersectionCollection::objectToggleField() return &isActive; } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimIntersectionCollection::defineUiTreeOrdering( caf::PdmUiTreeOrdering& uiTreeOrdering, + QString uiConfigName /*= "" */ ) +{ + RimGridView* gridView = nullptr; + this->firstAncestorOfType( gridView ); + if ( gridView ) + { + auto uiTree = gridView->separateIntersectionResultsCollection()->uiTreeOrdering(); + + uiTreeOrdering.appendChild( uiTree ); + } +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationLibCode/ProjectDataModel/RimIntersectionCollection.h b/ApplicationLibCode/ProjectDataModel/RimIntersectionCollection.h index e35b291a55..7aa4e5f53e 100644 --- a/ApplicationLibCode/ProjectDataModel/RimIntersectionCollection.h +++ b/ApplicationLibCode/ProjectDataModel/RimIntersectionCollection.h @@ -83,6 +83,7 @@ public: protected: void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override; caf::PdmFieldHandle* objectToggleField() override; + void defineUiTreeOrdering( caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName = "" ) override; private: caf::PdmChildArrayField m_intersections; diff --git a/ApplicationLibCode/ProjectDataModel/Surfaces/RimSurfaceInViewCollection.cpp b/ApplicationLibCode/ProjectDataModel/Surfaces/RimSurfaceInViewCollection.cpp index 5db210563e..56ebe03085 100644 --- a/ApplicationLibCode/ProjectDataModel/Surfaces/RimSurfaceInViewCollection.cpp +++ b/ApplicationLibCode/ProjectDataModel/Surfaces/RimSurfaceInViewCollection.cpp @@ -21,6 +21,7 @@ #include "RimEnsembleSurface.h" #include "RimGridView.h" #include "RimIntersectionResultDefinition.h" +#include "RimIntersectionResultsDefinitionCollection.h" #include "RimOilField.h" #include "RimProject.h" #include "RimSurface.h" @@ -30,6 +31,7 @@ #include "RivSurfacePartMgr.h" +#include "cafPdmUiTreeOrdering.h" #include "cvfModelBasicList.h" CAF_PDM_SOURCE_INIT( RimSurfaceInViewCollection, "SurfaceInViewCollection" ); @@ -78,6 +80,26 @@ caf::PdmFieldHandle* RimSurfaceInViewCollection::userDescriptionField() return &m_collectionName; } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimSurfaceInViewCollection::defineUiTreeOrdering( caf::PdmUiTreeOrdering& uiTreeOrdering, + QString uiConfigName /*= ""*/ ) +{ + RimGridView* gridView = nullptr; + this->firstAncestorOfType( gridView ); + + RimSurfaceInViewCollection* surfViewColl = nullptr; + this->firstAncestorOfType( surfViewColl ); + + if ( gridView && !surfViewColl ) + { + auto uiTree = gridView->separateSurfaceResultsCollection()->uiTreeOrdering(); + + uiTreeOrdering.appendChild( uiTree ); + } +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationLibCode/ProjectDataModel/Surfaces/RimSurfaceInViewCollection.h b/ApplicationLibCode/ProjectDataModel/Surfaces/RimSurfaceInViewCollection.h index 093b3e0179..817b6c5476 100644 --- a/ApplicationLibCode/ProjectDataModel/Surfaces/RimSurfaceInViewCollection.h +++ b/ApplicationLibCode/ProjectDataModel/Surfaces/RimSurfaceInViewCollection.h @@ -72,6 +72,9 @@ protected: void initAfterRead() override; caf::PdmFieldHandle* userDescriptionField() override; + + void defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName = "") override; + private: void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override;