diff --git a/ApplicationCode/ProjectDataModel/RimEclipseCase.cpp b/ApplicationCode/ProjectDataModel/RimEclipseCase.cpp index f201ffa5b0..d5a68c1d81 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipseCase.cpp +++ b/ApplicationCode/ProjectDataModel/RimEclipseCase.cpp @@ -268,7 +268,11 @@ void RimEclipseCase::recalculateCompletionTypeAndRedrawAllViews() for (RimView* view : views()) { - view->loadDataAndUpdate(); + RimEclipseView* eclipseView = dynamic_cast(view); + if (eclipseView) + { + eclipseView->calculateCompletionTypeAndRedrawIfRequired(); + } } } diff --git a/ApplicationCode/ProjectDataModel/RimEclipseView.cpp b/ApplicationCode/ProjectDataModel/RimEclipseView.cpp index c18b3ba5a0..ab822ec312 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipseView.cpp +++ b/ApplicationCode/ProjectDataModel/RimEclipseView.cpp @@ -39,6 +39,7 @@ #include "RimEclipseCase.h" #include "RimEclipseCellColors.h" #include "RimEclipseFaultColors.h" +#include "RimEclipsePropertyFilter.h" #include "RimEclipsePropertyFilterCollection.h" #include "RimEclipseResultDefinition.h" #include "RimFaultInViewCollection.h" @@ -1401,6 +1402,50 @@ void RimEclipseView::updateDisplayModelForWellResults() } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimEclipseView::calculateCompletionTypeAndRedrawIfRequired() +{ + bool isDependingOnCompletionType = false; + + if (cellResult->isCompletionTypeSelected()) + { + isDependingOnCompletionType = true; + } + + if (cellEdgeResult()->hasResult()) + { + std::vector metaData; + cellEdgeResult()->cellEdgeMetaData(&metaData); + for (const auto cellEdgeMeta : metaData) + { + if (cellEdgeMeta.m_resultVariable == RiaDefines::completionTypeResultName()) + { + isDependingOnCompletionType = true; + } + } + } + + if (currentFaultResultColors() && currentFaultResultColors()->isCompletionTypeSelected()) + { + isDependingOnCompletionType = true; + } + + for (auto propFilter : m_propertyFilterCollection()->propertyFilters) + { + if (propFilter->isActive() && propFilter->resultDefinition->resultVariable() == RiaDefines::completionTypeResultName()) + { + isDependingOnCompletionType = true; + } + } + + if (isDependingOnCompletionType) + { + this->loadDataAndUpdate(); + } +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ProjectDataModel/RimEclipseView.h b/ApplicationCode/ProjectDataModel/RimEclipseView.h index 034294056c..ddc07daabd 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipseView.h +++ b/ApplicationCode/ProjectDataModel/RimEclipseView.h @@ -131,6 +131,8 @@ public: void scheduleReservoirGridGeometryRegen(); void scheduleSimWellGeometryRegen(); void updateDisplayModelForWellResults(); + + void calculateCompletionTypeAndRedrawIfRequired(); const std::vector& visibleGridParts() const; const RivReservoirViewPartMgr* reservoirGridPartManager() const;