From 5fd81b19d857278f02d2b918bc8510a54043e321 Mon Sep 17 00:00:00 2001 From: Magne Sjaastad Date: Thu, 27 Aug 2015 22:54:37 +0200 Subject: [PATCH] Added support for geo mech property filters for managed views --- .../Commands/RicDeleteItemExec.cpp | 2 +- .../Commands/RicRangeFilterInsertExec.cpp | 2 +- .../Commands/RicRangeFilterNewExec.cpp | 4 +- .../ProjectDataModel/RimCellRangeFilter.cpp | 2 +- .../RimCellRangeFilterCollection.cpp | 8 +- .../RimCellRangeFilterCollection.h | 2 +- .../RimEclipsePropertyFilter.cpp | 3 +- .../RimEclipsePropertyFilterCollection.cpp | 4 +- .../RimEclipsePropertyFilterCollection.h | 2 +- .../RimGeoMechPropertyFilter.cpp | 4 +- .../RimGeoMechPropertyFilterCollection.cpp | 77 ++++++----------- .../RimGeoMechPropertyFilterCollection.h | 19 +---- .../ProjectDataModel/RimGeoMechView.cpp | 84 ++++++++++++------- .../ProjectDataModel/RimGeoMechView.h | 9 +- .../ProjectDataModel/RimManagedViewConfig.cpp | 50 ++++++++++- .../ProjectDataModel/RimManagedViewConfig.h | 2 + 16 files changed, 155 insertions(+), 119 deletions(-) diff --git a/ApplicationCode/Commands/RicDeleteItemExec.cpp b/ApplicationCode/Commands/RicDeleteItemExec.cpp index 934d332382..ee9527a560 100644 --- a/ApplicationCode/Commands/RicDeleteItemExec.cpp +++ b/ApplicationCode/Commands/RicDeleteItemExec.cpp @@ -82,7 +82,7 @@ void RicDeleteItemExec::redo() if (rangeFilterColl) { - rangeFilterColl->updateUiUpdateDisplayModel(); + rangeFilterColl->updateDisplayModeNotifyManagedViews(); } RimEclipsePropertyFilterCollection* eclipsePropColl; diff --git a/ApplicationCode/Commands/RicRangeFilterInsertExec.cpp b/ApplicationCode/Commands/RicRangeFilterInsertExec.cpp index 34fee3de25..c5edf25695 100644 --- a/ApplicationCode/Commands/RicRangeFilterInsertExec.cpp +++ b/ApplicationCode/Commands/RicRangeFilterInsertExec.cpp @@ -65,7 +65,7 @@ void RicRangeFilterInsertExec::redo() rangeFilter->setDefaultValues(); applyCommandDataOnFilter(rangeFilter); - m_cellRangeFilterCollection->updateUiUpdateDisplayModel(); + m_cellRangeFilterCollection->updateDisplayModeNotifyManagedViews(); m_cellRangeFilterCollection->updateConnectedEditors(); diff --git a/ApplicationCode/Commands/RicRangeFilterNewExec.cpp b/ApplicationCode/Commands/RicRangeFilterNewExec.cpp index 5d6a423bbe..7bcd514564 100644 --- a/ApplicationCode/Commands/RicRangeFilterNewExec.cpp +++ b/ApplicationCode/Commands/RicRangeFilterNewExec.cpp @@ -68,7 +68,7 @@ void RicRangeFilterNewExec::redo() rangeFilter->setDefaultValues(); applyCommandDataOnFilter(rangeFilter); - m_cellRangeFilterCollection->updateUiUpdateDisplayModel(); + m_cellRangeFilterCollection->updateDisplayModeNotifyManagedViews(); m_cellRangeFilterCollection->updateConnectedEditors(); @@ -85,7 +85,7 @@ void RicRangeFilterNewExec::undo() m_cellRangeFilterCollection->rangeFilters.erase(m_cellRangeFilterCollection->rangeFilters.size() - 1); - m_cellRangeFilterCollection->updateUiUpdateDisplayModel(); + m_cellRangeFilterCollection->updateDisplayModeNotifyManagedViews(); m_cellRangeFilterCollection->updateConnectedEditors(); } diff --git a/ApplicationCode/ProjectDataModel/RimCellRangeFilter.cpp b/ApplicationCode/ProjectDataModel/RimCellRangeFilter.cpp index 18d5f67265..c3b8175e8e 100644 --- a/ApplicationCode/ProjectDataModel/RimCellRangeFilter.cpp +++ b/ApplicationCode/ProjectDataModel/RimCellRangeFilter.cpp @@ -82,7 +82,7 @@ void RimCellRangeFilter::fieldChangedByUi(const caf::PdmFieldHandle* changedFiel { computeAndSetValidValues(); - parentContainer()->updateUiUpdateDisplayModel(); + parentContainer()->updateDisplayModeNotifyManagedViews(); } } diff --git a/ApplicationCode/ProjectDataModel/RimCellRangeFilterCollection.cpp b/ApplicationCode/ProjectDataModel/RimCellRangeFilterCollection.cpp index 603006f640..f08072803d 100644 --- a/ApplicationCode/ProjectDataModel/RimCellRangeFilterCollection.cpp +++ b/ApplicationCode/ProjectDataModel/RimCellRangeFilterCollection.cpp @@ -137,16 +137,16 @@ RigActiveCellInfo* RimCellRangeFilterCollection::activeCellInfo() const //-------------------------------------------------------------------------------------------------- void RimCellRangeFilterCollection::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) { - updateUiUpdateDisplayModel(); + this->updateUiIconFromToggleField(); + + updateDisplayModeNotifyManagedViews(); } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -void RimCellRangeFilterCollection::updateUiUpdateDisplayModel() +void RimCellRangeFilterCollection::updateDisplayModeNotifyManagedViews() { - this->updateUiIconFromToggleField(); - RimView* rimView = NULL; firstAnchestorOrThisOfType(rimView); diff --git a/ApplicationCode/ProjectDataModel/RimCellRangeFilterCollection.h b/ApplicationCode/ProjectDataModel/RimCellRangeFilterCollection.h index 24c8ee6236..1f4cff0030 100644 --- a/ApplicationCode/ProjectDataModel/RimCellRangeFilterCollection.h +++ b/ApplicationCode/ProjectDataModel/RimCellRangeFilterCollection.h @@ -53,7 +53,7 @@ public: RigActiveCellInfo* activeCellInfo() const; - void updateUiUpdateDisplayModel(); + void updateDisplayModeNotifyManagedViews(); // Overridden methods virtual void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ); diff --git a/ApplicationCode/ProjectDataModel/RimEclipsePropertyFilter.cpp b/ApplicationCode/ProjectDataModel/RimEclipsePropertyFilter.cpp index b4b6c46b42..be3f929c2d 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipsePropertyFilter.cpp +++ b/ApplicationCode/ProjectDataModel/RimEclipsePropertyFilter.cpp @@ -102,9 +102,10 @@ void RimEclipsePropertyFilter::fieldChangedByUi(const caf::PdmFieldHandle* chang || &isActive == changedField || &filterMode == changedField) { - parentContainer()->fieldChangedByUi(changedField, oldValue, newValue); updateFilterName(); this->updateIconState(); + + parentContainer()->updateDisplayModelNotifyManagedViews(); } } diff --git a/ApplicationCode/ProjectDataModel/RimEclipsePropertyFilterCollection.cpp b/ApplicationCode/ProjectDataModel/RimEclipsePropertyFilterCollection.cpp index c5e7ffe60e..fcdf428d28 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipsePropertyFilterCollection.cpp +++ b/ApplicationCode/ProjectDataModel/RimEclipsePropertyFilterCollection.cpp @@ -70,7 +70,7 @@ void RimEclipsePropertyFilterCollection::fieldChangedByUi(const caf::PdmFieldHan { this->updateUiIconFromToggleField(); - updateDisplayModel(); + updateDisplayModelNotifyManagedViews(); } //-------------------------------------------------------------------------------------------------- @@ -136,7 +136,7 @@ caf::PdmFieldHandle* RimEclipsePropertyFilterCollection::objectToggleField() //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -void RimEclipsePropertyFilterCollection::updateDisplayModel() +void RimEclipsePropertyFilterCollection::updateDisplayModelNotifyManagedViews() { RimEclipseView* view = NULL; this->firstAnchestorOrThisOfType(view); diff --git a/ApplicationCode/ProjectDataModel/RimEclipsePropertyFilterCollection.h b/ApplicationCode/ProjectDataModel/RimEclipsePropertyFilterCollection.h index 3150d0ec66..e89c89a197 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipsePropertyFilterCollection.h +++ b/ApplicationCode/ProjectDataModel/RimEclipsePropertyFilterCollection.h @@ -45,7 +45,7 @@ public: void loadAndInitializePropertyFilters(); - void updateDisplayModel(); + void updateDisplayModelNotifyManagedViews(); // Overridden methods diff --git a/ApplicationCode/ProjectDataModel/RimGeoMechPropertyFilter.cpp b/ApplicationCode/ProjectDataModel/RimGeoMechPropertyFilter.cpp index 52db55f249..5ec3c34ec8 100644 --- a/ApplicationCode/ProjectDataModel/RimGeoMechPropertyFilter.cpp +++ b/ApplicationCode/ProjectDataModel/RimGeoMechPropertyFilter.cpp @@ -81,8 +81,8 @@ void RimGeoMechPropertyFilter::fieldChangedByUi(const caf::PdmFieldHandle* chang { this->updateIconState(); this->updateFilterName(); - ((RimView*)resultDefinition->reservoirView())->scheduleGeometryRegen(PROPERTY_FILTERED); - resultDefinition->reservoirView()->scheduleCreateDisplayModelAndRedraw(); + + parentContainer()->updateDisplayModelNotifyManagedViews(); } } diff --git a/ApplicationCode/ProjectDataModel/RimGeoMechPropertyFilterCollection.cpp b/ApplicationCode/ProjectDataModel/RimGeoMechPropertyFilterCollection.cpp index 15af500f99..82433bddaa 100644 --- a/ApplicationCode/ProjectDataModel/RimGeoMechPropertyFilterCollection.cpp +++ b/ApplicationCode/ProjectDataModel/RimGeoMechPropertyFilterCollection.cpp @@ -18,9 +18,11 @@ ///////////////////////////////////////////////////////////////////////////////// #include "RimGeoMechPropertyFilterCollection.h" + +#include "RimGeoMechCellColors.h" #include "RimGeoMechPropertyFilter.h" #include "RimGeoMechView.h" -#include "RimGeoMechCellColors.h" +#include "RimManagedViewCollection.h" #include "cvfAssert.h" @@ -49,31 +51,17 @@ RimGeoMechPropertyFilterCollection::~RimGeoMechPropertyFilterCollection() } -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -void RimGeoMechPropertyFilterCollection::setReservoirView(RimGeoMechView* reservoirView) -{ - m_reservoirView = reservoirView; - - for (size_t i = 0; i < propertyFilters.size(); i++) - { - RimGeoMechPropertyFilter* propertyFilter = propertyFilters[i]; - propertyFilter->resultDefinition->setReservoirView(m_reservoirView.p()); - - } -} - //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- RimGeoMechView* RimGeoMechPropertyFilterCollection::reservoirView() { - CVF_ASSERT(!m_reservoirView.isNull()); - return m_reservoirView; + RimGeoMechView* geoMechView = NULL; + firstAnchestorOrThisOfType(geoMechView); + + return geoMechView; } - //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- @@ -81,31 +69,9 @@ void RimGeoMechPropertyFilterCollection::fieldChangedByUi(const caf::PdmFieldHan { this->updateUiIconFromToggleField(); - ((RimView*)m_reservoirView)->scheduleGeometryRegen(PROPERTY_FILTERED); - m_reservoirView->scheduleCreateDisplayModelAndRedraw(); + updateDisplayModelNotifyManagedViews(); } -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -RimGeoMechPropertyFilter* RimGeoMechPropertyFilterCollection::createAndAppendPropertyFilter() -{ - RimGeoMechPropertyFilter* propertyFilter = new RimGeoMechPropertyFilter(); - - propertyFilter->resultDefinition->setReservoirView(m_reservoirView.p()); - - propertyFilter->setParentContainer(this); - propertyFilters.push_back(propertyFilter); - - propertyFilter->resultDefinition->setResultAddress(m_reservoirView->cellResult()->resultAddress()); - propertyFilter->resultDefinition->loadResult(); - propertyFilter->setToDefaultValues(); - propertyFilter->updateFilterName(); - - return propertyFilter; -} - - //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- @@ -130,21 +96,13 @@ void RimGeoMechPropertyFilterCollection::initAfterRead() RimGeoMechPropertyFilter* propertyFilter = propertyFilters[i]; propertyFilter->setParentContainer(this); - propertyFilter->resultDefinition->setReservoirView(m_reservoirView.p()); + propertyFilter->resultDefinition->setReservoirView(reservoirView()); propertyFilter->updateIconState(); } this->updateUiIconFromToggleField(); } -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -void RimGeoMechPropertyFilterCollection::remove(RimGeoMechPropertyFilter* propertyFilter) -{ - propertyFilters.removeChildObject(propertyFilter); -} - //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- @@ -169,7 +127,6 @@ bool RimGeoMechPropertyFilterCollection::hasActiveDynamicFilters() const return hasActiveFilters(); } - //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- @@ -177,3 +134,19 @@ caf::PdmFieldHandle* RimGeoMechPropertyFilterCollection::objectToggleField() { return &active; } + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimGeoMechPropertyFilterCollection::updateDisplayModelNotifyManagedViews() +{ + RimGeoMechView* view = NULL; + this->firstAnchestorOrThisOfType(view); + CVF_ASSERT(view); + + view->scheduleGeometryRegen(PROPERTY_FILTERED); + view->scheduleCreateDisplayModelAndRedraw(); + + // Notify managed views of range filter change in master view + view->managedViewCollection()->updatePropertyFilters(); +} diff --git a/ApplicationCode/ProjectDataModel/RimGeoMechPropertyFilterCollection.h b/ApplicationCode/ProjectDataModel/RimGeoMechPropertyFilterCollection.h index a148d44412..9761647329 100644 --- a/ApplicationCode/ProjectDataModel/RimGeoMechPropertyFilterCollection.h +++ b/ApplicationCode/ProjectDataModel/RimGeoMechPropertyFilterCollection.h @@ -38,33 +38,22 @@ public: RimGeoMechPropertyFilterCollection(); virtual ~RimGeoMechPropertyFilterCollection(); - void setReservoirView(RimGeoMechView* reservoirView); RimGeoMechView* reservoirView(); - // Fields: caf::PdmField active; caf::PdmChildArrayField propertyFilters; // Methods - RimGeoMechPropertyFilter* createAndAppendPropertyFilter(); - void remove(RimGeoMechPropertyFilter* propertyFilter); - bool hasActiveFilters() const; bool hasActiveDynamicFilters() const; - void loadAndInitializePropertyFilters(); - - - // Overridden methods - virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue); - virtual caf::PdmFieldHandle* objectToggleField(); + void updateDisplayModelNotifyManagedViews(); protected: // Overridden methods - virtual void initAfterRead(); - -private: - caf::PdmPointer m_reservoirView; + virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue); + virtual caf::PdmFieldHandle* objectToggleField(); + virtual void initAfterRead(); }; diff --git a/ApplicationCode/ProjectDataModel/RimGeoMechView.cpp b/ApplicationCode/ProjectDataModel/RimGeoMechView.cpp index e3b483bf31..b53c97c7a2 100644 --- a/ApplicationCode/ProjectDataModel/RimGeoMechView.cpp +++ b/ApplicationCode/ProjectDataModel/RimGeoMechView.cpp @@ -19,38 +19,41 @@ #include "RimGeoMechView.h" -#include "Rim3dOverlayInfoConfig.h" #include "RiaApplication.h" #include "RiaPreferences.h" -#include "RimGeoMechCellColors.h" -#include "RiuMainWindow.h" -#include "cafCeetronPlusNavigation.h" -#include "cafCadNavigation.h" -#include "RimLegendConfig.h" -#include "cvfOverlayScalarMapperLegend.h" - -#include "RimGeoMechCase.h" -#include "cvfPart.h" -#include "cvfViewport.h" -#include "cvfModelBasicList.h" -#include "cvfScene.h" -#include "RimEclipseView.h" -#include "RiuViewer.h" -#include "RivGeoMechPartMgr.h" -#include "RigGeoMechCaseData.h" -#include "cvfqtUtils.h" #include "RigFemPartCollection.h" -#include "cafFrameAnimationControl.h" -#include -#include "cafProgressInfo.h" -#include "RimCellRangeFilterCollection.h" -#include "RivGeoMechPartMgrCache.h" -#include "RivGeoMechVizLogic.h" #include "RigFemPartGrid.h" #include "RigFemPartResultsCollection.h" -#include "RimGeoMechPropertyFilterCollection.h" +#include "RigGeoMechCaseData.h" +#include "Rim3dOverlayInfoConfig.h" +#include "RimCellRangeFilterCollection.h" +#include "RimEclipseView.h" +#include "RimGeoMechCase.h" +#include "RimGeoMechCellColors.h" +#include "RimGeoMechPropertyFilterCollection.h" +#include "RimLegendConfig.h" + +#include "RiuMainWindow.h" +#include "RiuViewer.h" + +#include "RivGeoMechPartMgr.h" +#include "RivGeoMechPartMgrCache.h" +#include "RivGeoMechVizLogic.h" + +#include "cafCadNavigation.h" +#include "cafCeetronPlusNavigation.h" +#include "cafFrameAnimationControl.h" +#include "cafProgressInfo.h" +#include "cvfModelBasicList.h" +#include "cvfOverlayScalarMapperLegend.h" +#include "cvfPart.h" +#include "cvfScene.h" +#include "cvfViewport.h" +#include "cvfqtUtils.h" + +#include @@ -74,17 +77,15 @@ RimGeoMechView::RimGeoMechView(void) m_rangeFilterCollection = new RimCellRangeFilterCollection(); m_rangeFilterCollection.uiCapability()->setUiHidden(true); - CAF_PDM_InitFieldNoDefault(&propertyFilterCollection, "PropertyFilters", "Property Filters", "", "", ""); - propertyFilterCollection = new RimGeoMechPropertyFilterCollection(); - propertyFilterCollection->setReservoirView(this); - propertyFilterCollection.uiCapability()->setUiHidden(true); + CAF_PDM_InitFieldNoDefault(&m_propertyFilterCollection, "PropertyFilters", "Property Filters", "", "", ""); + m_propertyFilterCollection = new RimGeoMechPropertyFilterCollection(); + m_propertyFilterCollection.uiCapability()->setUiHidden(true); this->cellResult()->setReservoirView(this); this->cellResult()->legendConfig()->setReservoirView(this); m_scaleTransform = new cvf::Transform(); m_vizLogic = new RivGeoMechVizLogic(this); - } //-------------------------------------------------------------------------------------------------- @@ -514,3 +515,26 @@ void RimGeoMechView::scheduleGeometryRegen(RivCellSetEnum geometryType) m_vizLogic->scheduleGeometryRegen(geometryType); } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimGeoMechView::setOverridePropertyFilterCollection(RimGeoMechPropertyFilterCollection* pfc) +{ + m_overridePropertyFilterCollection = pfc; +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +RimGeoMechPropertyFilterCollection* RimGeoMechView::propertyFilterCollection() +{ + if (m_overridePropertyFilterCollection) + { + return m_overridePropertyFilterCollection; + } + else + { + return m_propertyFilterCollection; + } +} + diff --git a/ApplicationCode/ProjectDataModel/RimGeoMechView.h b/ApplicationCode/ProjectDataModel/RimGeoMechView.h index 13f55539a8..09c2ddc9a2 100644 --- a/ApplicationCode/ProjectDataModel/RimGeoMechView.h +++ b/ApplicationCode/ProjectDataModel/RimGeoMechView.h @@ -63,8 +63,10 @@ public: virtual void loadDataAndUpdate(); - caf::PdmChildField cellResult; - caf::PdmChildField propertyFilterCollection; + caf::PdmChildField cellResult; + + RimGeoMechPropertyFilterCollection* propertyFilterCollection(); + void setOverridePropertyFilterCollection(RimGeoMechPropertyFilterCollection* pfc); bool isTimeStepDependentDataVisible(); @@ -91,6 +93,9 @@ private: virtual RimCase* ownerCase(); + caf::PdmChildField m_propertyFilterCollection; + caf::PdmPointer m_overridePropertyFilterCollection; + caf::PdmPointer m_geomechCase; cvf::ref m_vizLogic; cvf::ref m_scaleTransform; diff --git a/ApplicationCode/ProjectDataModel/RimManagedViewConfig.cpp b/ApplicationCode/ProjectDataModel/RimManagedViewConfig.cpp index 59193cd388..cf5c47311e 100644 --- a/ApplicationCode/ProjectDataModel/RimManagedViewConfig.cpp +++ b/ApplicationCode/ProjectDataModel/RimManagedViewConfig.cpp @@ -32,6 +32,8 @@ #include "RiuViewer.h" #include "cafPdmUiTreeOrdering.h" +#include "RimGeoMechView.h" +#include "RimGeoMechPropertyFilterCollection.h" CAF_PDM_SOURCE_INIT(RimManagedViewConfig, "RimManagedViewConfig"); @@ -154,7 +156,7 @@ void RimManagedViewConfig::fieldChangedByUi(const caf::PdmFieldHandle* changedFi if (managedView) { - managedView->rangeFilterCollection()->updateUiUpdateDisplayModel(); + managedView->rangeFilterCollection()->updateDisplayModeNotifyManagedViews(); } } else if (changedField == &syncPropertyFilters) @@ -164,7 +166,14 @@ void RimManagedViewConfig::fieldChangedByUi(const caf::PdmFieldHandle* changedFi RimEclipseView* eclipseView = managedEclipseView(); if (eclipseView) { - eclipseView->propertyFilterCollection()->updateDisplayModel(); + eclipseView->propertyFilterCollection()->updateDisplayModelNotifyManagedViews(); + } + + RimGeoMechView* geoView = managedGeoView(); + if (geoView) + { + geoView->scheduleGeometryRegen(PROPERTY_FILTERED); + geoView->scheduleCreateDisplayModelAndRedraw(); } } else if (changedField == &managedView) @@ -173,7 +182,7 @@ void RimManagedViewConfig::fieldChangedByUi(const caf::PdmFieldHandle* changedFi if (managedView) { - managedView->rangeFilterCollection()->updateUiUpdateDisplayModel(); + managedView->rangeFilterCollection()->updateDisplayModeNotifyManagedViews(); if (syncCellResult()) { @@ -189,13 +198,19 @@ void RimManagedViewConfig::fieldChangedByUi(const caf::PdmFieldHandle* changedFi { RimView* rimView = dynamic_cast(prevValue); rimView->setOverrideRangeFilterCollection(NULL); - rimView->rangeFilterCollection()->updateUiUpdateDisplayModel(); + rimView->rangeFilterCollection()->updateDisplayModeNotifyManagedViews(); RimEclipseView* rimEclipseView = dynamic_cast(rimView); if (rimEclipseView) { rimEclipseView->setOverridePropertyFilterCollection(NULL); } + + RimGeoMechView* geoView = dynamic_cast(rimView); + if (geoView) + { + geoView->setOverridePropertyFilterCollection(NULL); + } } } } @@ -235,6 +250,23 @@ void RimManagedViewConfig::configureOverrides() } } } + + RimGeoMechView* masterGeoView = dynamic_cast(masterView); + if (masterGeoView) + { + RimGeoMechView* geoView = managedGeoView(); + if (geoView) + { + if (syncPropertyFilters) + { + geoView->setOverridePropertyFilterCollection(masterGeoView->propertyFilterCollection()); + } + else + { + geoView->setOverridePropertyFilterCollection(NULL); + } + } + } } } @@ -256,3 +288,13 @@ RimEclipseView* RimManagedViewConfig::managedEclipseView() return dynamic_cast(rimView); } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +RimGeoMechView* RimManagedViewConfig::managedGeoView() +{ + RimView* rimView = managedView; + + return dynamic_cast(rimView); +} + diff --git a/ApplicationCode/ProjectDataModel/RimManagedViewConfig.h b/ApplicationCode/ProjectDataModel/RimManagedViewConfig.h index 9062532877..06f428c0e7 100644 --- a/ApplicationCode/ProjectDataModel/RimManagedViewConfig.h +++ b/ApplicationCode/ProjectDataModel/RimManagedViewConfig.h @@ -25,6 +25,7 @@ class RimView; class RimEclipseView; +class RimGeoMechView; //================================================================================================== /// @@ -57,4 +58,5 @@ private: void configureOverrides(); RimEclipseView* managedEclipseView(); + RimGeoMechView* managedGeoView(); };