#2287 Calculate Completion Type : Execute loadAndUpdate only when required

This commit is contained in:
Magne Sjaastad 2017-12-21 18:57:30 +01:00
parent 69ab95dfed
commit 1583923ed1
3 changed files with 52 additions and 1 deletions

View File

@ -268,7 +268,11 @@ void RimEclipseCase::recalculateCompletionTypeAndRedrawAllViews()
for (RimView* view : views()) for (RimView* view : views())
{ {
view->loadDataAndUpdate(); RimEclipseView* eclipseView = dynamic_cast<RimEclipseView*>(view);
if (eclipseView)
{
eclipseView->calculateCompletionTypeAndRedrawIfRequired();
}
} }
} }

View File

@ -39,6 +39,7 @@
#include "RimEclipseCase.h" #include "RimEclipseCase.h"
#include "RimEclipseCellColors.h" #include "RimEclipseCellColors.h"
#include "RimEclipseFaultColors.h" #include "RimEclipseFaultColors.h"
#include "RimEclipsePropertyFilter.h"
#include "RimEclipsePropertyFilterCollection.h" #include "RimEclipsePropertyFilterCollection.h"
#include "RimEclipseResultDefinition.h" #include "RimEclipseResultDefinition.h"
#include "RimFaultInViewCollection.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<RimCellEdgeMetaData> 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();
}
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@ -131,6 +131,8 @@ public:
void scheduleReservoirGridGeometryRegen(); void scheduleReservoirGridGeometryRegen();
void scheduleSimWellGeometryRegen(); void scheduleSimWellGeometryRegen();
void updateDisplayModelForWellResults(); void updateDisplayModelForWellResults();
void calculateCompletionTypeAndRedrawIfRequired();
const std::vector<RivCellSetEnum>& visibleGridParts() const; const std::vector<RivCellSetEnum>& visibleGridParts() const;
const RivReservoirViewPartMgr* reservoirGridPartManager() const; const RivReservoirViewPartMgr* reservoirGridPartManager() const;