diff --git a/ApplicationCode/ProjectDataModel/RimEclipseCase.cpp b/ApplicationCode/ProjectDataModel/RimEclipseCase.cpp index 2d624f0932..9a1c32b072 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipseCase.cpp +++ b/ApplicationCode/ProjectDataModel/RimEclipseCase.cpp @@ -310,8 +310,33 @@ void RimEclipseCase::updateFormationNamesData() std::vector views = this->views(); for(RimView* view : views) { - if(view && view->isUsingFormationNames()) + RimEclipseView* eclView = dynamic_cast(view); + + if(eclView && eclView->isUsingFormationNames()) { + if (!activeFormationNames()) + { + if (eclView->cellResult()->resultType() == RimDefines::FORMATION_NAMES) + { + eclView->cellResult()->setResultVariable(RimDefines::undefinedResultName()); + } + + RimEclipsePropertyFilterCollection* eclFilColl = eclView->eclipsePropertyFilterCollection(); + for ( RimEclipsePropertyFilter* propFilter : eclFilColl->propertyFilters ) + { + if ( propFilter->resultDefinition->resultType() == RimDefines::FORMATION_NAMES ) + { + propFilter->resultDefinition()->setResultVariable(RimDefines::undefinedResultName()); + } + } + } + + RimEclipsePropertyFilterCollection* eclFilColl = eclView->eclipsePropertyFilterCollection(); + for ( RimEclipsePropertyFilter* propFilter : eclFilColl->propertyFilters ) + { + if ( propFilter->resultDefinition->resultType() == RimDefines::FORMATION_NAMES ) propFilter->setToDefaultValues(); + } + view->scheduleCreateDisplayModelAndRedraw(); } } @@ -342,7 +367,15 @@ void RimEclipseCase::computeCachedData() pInf.incrementProgress(); pInf.setProgressDescription("Calculating Formation Names Result"); - this->updateFormationNamesData(); + if ( activeFormationNames() ) + { + rigEclipseCase->setActiveFormationNames(activeFormationNames()->formationNamesData()); + } + else + { + rigEclipseCase->setActiveFormationNames(nullptr); + } + pInf.incrementProgress(); } } diff --git a/ApplicationCode/ProjectDataModel/RimEclipsePropertyFilterCollection.cpp b/ApplicationCode/ProjectDataModel/RimEclipsePropertyFilterCollection.cpp index 3fdd30253f..116026cd20 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipsePropertyFilterCollection.cpp +++ b/ApplicationCode/ProjectDataModel/RimEclipsePropertyFilterCollection.cpp @@ -114,6 +114,24 @@ bool RimEclipsePropertyFilterCollection::hasActiveDynamicFilters() const } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +bool RimEclipsePropertyFilterCollection::isUsingFormationNames() const +{ + if ( !isActive ) return false; + + for ( size_t i = 0; i < propertyFilters.size(); i++ ) + { + RimEclipsePropertyFilter* propertyFilter = propertyFilters[i]; + if ( propertyFilter->isActive() + && propertyFilter->resultDefinition->resultType() == RimDefines::FORMATION_NAMES + && propertyFilter->resultDefinition->resultVariable() != RimDefines::undefinedResultName()) return true; + } + + return false; +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ProjectDataModel/RimEclipsePropertyFilterCollection.h b/ApplicationCode/ProjectDataModel/RimEclipsePropertyFilterCollection.h index 3a36e7b028..11a0aff033 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipsePropertyFilterCollection.h +++ b/ApplicationCode/ProjectDataModel/RimEclipsePropertyFilterCollection.h @@ -45,6 +45,7 @@ public: // Methods bool hasActiveFilters() const; bool hasActiveDynamicFilters() const; + bool isUsingFormationNames() const; void loadAndInitializePropertyFilters(); diff --git a/ApplicationCode/ProjectDataModel/RimEclipseView.cpp b/ApplicationCode/ProjectDataModel/RimEclipseView.cpp index 4dbcfcd783..1f5df9ad8b 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipseView.cpp +++ b/ApplicationCode/ProjectDataModel/RimEclipseView.cpp @@ -1700,7 +1700,9 @@ void RimEclipseView::axisLabels(cvf::String* xLabel, cvf::String* yLabel, cvf::S //-------------------------------------------------------------------------------------------------- bool RimEclipseView::isUsingFormationNames() const { - return (cellResult()->resultType() == RimDefines::FORMATION_NAMES) ; + if ((cellResult()->resultType() == RimDefines::FORMATION_NAMES)) return true; + + return eclipsePropertyFilterCollection()->isUsingFormationNames(); } //--------------------------------------------------------------------------------------------------