mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
(#395) Added sync of Eclipse property filters
This commit is contained in:
parent
eaa5cc90a8
commit
81ce665883
@ -20,9 +20,10 @@
|
||||
|
||||
#include "RimEclipsePropertyFilterCollection.h"
|
||||
|
||||
#include "RimEclipseView.h"
|
||||
#include "RimEclipseResultDefinition.h"
|
||||
#include "RimEclipseCellColors.h"
|
||||
#include "RimEclipseResultDefinition.h"
|
||||
#include "RimEclipseView.h"
|
||||
#include "RimManagedViewCollection.h"
|
||||
|
||||
#include "cafPdmUiEditorHandle.h"
|
||||
|
||||
@ -69,12 +70,7 @@ void RimEclipsePropertyFilterCollection::fieldChangedByUi(const caf::PdmFieldHan
|
||||
{
|
||||
this->updateUiIconFromToggleField();
|
||||
|
||||
RimEclipseView* view = NULL;
|
||||
this->firstAnchestorOrThisOfType(view);
|
||||
CVF_ASSERT(view);
|
||||
|
||||
view->scheduleGeometryRegen(PROPERTY_FILTERED);
|
||||
view->scheduleCreateDisplayModelAndRedraw();
|
||||
updateDisplayModel();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -136,3 +132,19 @@ caf::PdmFieldHandle* RimEclipsePropertyFilterCollection::objectToggleField()
|
||||
{
|
||||
return &active;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimEclipsePropertyFilterCollection::updateDisplayModel()
|
||||
{
|
||||
RimEclipseView* 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();
|
||||
}
|
||||
|
@ -45,6 +45,8 @@ public:
|
||||
|
||||
void loadAndInitializePropertyFilters();
|
||||
|
||||
void updateDisplayModel();
|
||||
|
||||
|
||||
// Overridden methods
|
||||
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
|
||||
|
@ -101,9 +101,9 @@ RimEclipseView::RimEclipseView()
|
||||
m_rangeFilterCollection = new RimCellRangeFilterCollection();
|
||||
m_rangeFilterCollection.uiCapability()->setUiHidden(true);
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&propertyFilterCollection, "PropertyFilters", "Property Filters", "", "", "");
|
||||
propertyFilterCollection = new RimEclipsePropertyFilterCollection();
|
||||
propertyFilterCollection.uiCapability()->setUiHidden(true);
|
||||
CAF_PDM_InitFieldNoDefault(&m_propertyFilterCollection, "PropertyFilters", "Property Filters", "", "", "");
|
||||
m_propertyFilterCollection = new RimEclipsePropertyFilterCollection();
|
||||
m_propertyFilterCollection.uiCapability()->setUiHidden(true);
|
||||
|
||||
// Visualization fields
|
||||
CAF_PDM_InitField(&showMainGrid, "ShowMainGrid", true, "Show Main Grid", "", "", "");
|
||||
@ -134,7 +134,7 @@ RimEclipseView::~RimEclipseView()
|
||||
delete this->cellEdgeResult();
|
||||
|
||||
delete m_rangeFilterCollection;
|
||||
delete propertyFilterCollection();
|
||||
delete m_propertyFilterCollection;
|
||||
delete wellCollection();
|
||||
delete faultCollection();
|
||||
|
||||
@ -237,7 +237,7 @@ void RimEclipseView::fieldChangedByUi(const caf::PdmFieldHandle* changedField, c
|
||||
|
||||
scheduleCreateDisplayModelAndRedraw();
|
||||
}
|
||||
else if (changedField == &propertyFilterCollection)
|
||||
else if (changedField == &m_propertyFilterCollection)
|
||||
{
|
||||
m_reservoirGridPartManager->scheduleGeometryRegen(PROPERTY_FILTERED);
|
||||
|
||||
@ -678,7 +678,7 @@ void RimEclipseView::loadDataAndUpdate()
|
||||
|
||||
updateViewerWidget();
|
||||
|
||||
this->propertyFilterCollection()->loadAndInitializePropertyFilters();
|
||||
this->m_propertyFilterCollection()->loadAndInitializePropertyFilters();
|
||||
|
||||
this->faultCollection()->setReservoirView(this);
|
||||
this->faultCollection()->syncronizeFaults();
|
||||
@ -1496,3 +1496,41 @@ void RimEclipseView::addWellPathsToScene(cvf::Scene* scene,
|
||||
|
||||
scene->addModel(wellPathModelBasicList.p());
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimEclipsePropertyFilterCollection* RimEclipseView::propertyFilterCollection()
|
||||
{
|
||||
if (m_overridePropertyFilterCollection)
|
||||
{
|
||||
return m_overridePropertyFilterCollection;
|
||||
}
|
||||
else
|
||||
{
|
||||
return m_propertyFilterCollection;
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
const RimEclipsePropertyFilterCollection* RimEclipseView::propertyFilterCollection() const
|
||||
{
|
||||
if (m_overridePropertyFilterCollection)
|
||||
{
|
||||
return m_overridePropertyFilterCollection;
|
||||
}
|
||||
else
|
||||
{
|
||||
return m_propertyFilterCollection;
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimEclipseView::setOverridePropertyFilterCollection(RimEclipsePropertyFilterCollection* pfc)
|
||||
{
|
||||
m_overridePropertyFilterCollection = pfc;
|
||||
}
|
||||
|
@ -89,8 +89,6 @@ public:
|
||||
caf::PdmChildField<RimCellEdgeColors*> cellEdgeResult;
|
||||
caf::PdmChildField<RimEclipseFaultColors*> faultResultSettings;
|
||||
|
||||
caf::PdmChildField<RimEclipsePropertyFilterCollection*> propertyFilterCollection;
|
||||
|
||||
caf::PdmChildField<RimEclipseWellCollection*> wellCollection;
|
||||
caf::PdmChildField<RimFaultCollection*> faultCollection;
|
||||
|
||||
@ -102,6 +100,10 @@ public:
|
||||
|
||||
// Access internal objects
|
||||
|
||||
RimEclipsePropertyFilterCollection* propertyFilterCollection();
|
||||
const RimEclipsePropertyFilterCollection* propertyFilterCollection() const;
|
||||
void setOverridePropertyFilterCollection(RimEclipsePropertyFilterCollection* pfc);
|
||||
|
||||
RimReservoirCellResultsStorage* currentGridCellResults();
|
||||
RigActiveCellInfo* currentActiveCellInfo();
|
||||
RimEclipseCellColors* currentFaultResultColors();
|
||||
@ -162,6 +164,9 @@ private:
|
||||
|
||||
virtual RimCase* ownerCase();
|
||||
|
||||
caf::PdmChildField<RimEclipsePropertyFilterCollection*> m_propertyFilterCollection;
|
||||
caf::PdmPointer<RimEclipsePropertyFilterCollection> m_overridePropertyFilterCollection;
|
||||
|
||||
caf::PdmPointer<RimEclipseCase> m_reservoir;
|
||||
|
||||
cvf::ref<RivReservoirViewPartMgr> m_reservoirGridPartManager;
|
||||
|
@ -187,3 +187,38 @@ void RimManagedViewCollection::updateRangeFilters()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimManagedViewCollection::updatePropertyFilters()
|
||||
{
|
||||
for (size_t i = 0; i < managedViews.size(); i++)
|
||||
{
|
||||
RimManagedViewConfig* managedViewConfig = managedViews[i];
|
||||
if (managedViewConfig->managedView())
|
||||
{
|
||||
if (managedViewConfig->syncPropertyFilters())
|
||||
{
|
||||
RimView* rimView = managedViewConfig->managedView();
|
||||
RimEclipseView* eclipeView = dynamic_cast<RimEclipseView*>(rimView);
|
||||
if (eclipeView)
|
||||
{
|
||||
eclipeView->scheduleGeometryRegen(PROPERTY_FILTERED);
|
||||
eclipeView->scheduleCreateDisplayModelAndRedraw();
|
||||
}
|
||||
|
||||
/*
|
||||
RimGeoMechView* geoView = dynamic_cast<RimGeoMechView*>(rimView);
|
||||
if (geoView)
|
||||
{
|
||||
geoView->scheduleGeometryRegen(RANGE_FILTERED);
|
||||
geoView->scheduleGeometryRegen(RANGE_FILTERED_INACTIVE);
|
||||
|
||||
geoView->scheduleCreateDisplayModelAndRedraw();
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -47,4 +47,5 @@ public:
|
||||
void updateCellResult();
|
||||
|
||||
void updateRangeFilters();
|
||||
void updatePropertyFilters();
|
||||
};
|
||||
|
@ -23,6 +23,8 @@
|
||||
|
||||
#include "RimCase.h"
|
||||
#include "RimCellRangeFilterCollection.h"
|
||||
#include "RimEclipsePropertyFilterCollection.h"
|
||||
#include "RimEclipseView.h"
|
||||
#include "RimManagedViewCollection.h"
|
||||
#include "RimProject.h"
|
||||
#include "RimView.h"
|
||||
@ -43,10 +45,11 @@ RimManagedViewConfig::RimManagedViewConfig(void)
|
||||
CAF_PDM_InitFieldNoDefault(&managedView, "ManagedView", "Managed View", "", "", "");
|
||||
managedView.uiCapability()->setUiChildrenHidden(true);
|
||||
|
||||
CAF_PDM_InitField(&syncCamera, "SyncCamera", true, "Sync Camera", "", "", "");
|
||||
CAF_PDM_InitField(&syncCellResult, "SyncCellResult", true, "Sync Cell Result", "", "", "");
|
||||
CAF_PDM_InitField(&syncTimeStep, "SyncTimeStep", true, "Sync Time Step", "", "", "");
|
||||
CAF_PDM_InitField(&syncRangeFilters,"SyncRangeFilters", true, "Sync Range Filters", "", "", "");
|
||||
CAF_PDM_InitField(&syncCamera, "SyncCamera", true, "Sync Camera", "", "", "");
|
||||
CAF_PDM_InitField(&syncCellResult, "SyncCellResult", true, "Sync Cell Result", "", "", "");
|
||||
CAF_PDM_InitField(&syncTimeStep, "SyncTimeStep", true, "Sync Time Step", "", "", "");
|
||||
CAF_PDM_InitField(&syncRangeFilters, "SyncRangeFilters", true, "Sync Range Filters", "", "", "");
|
||||
CAF_PDM_InitField(&syncPropertyFilters, "SyncPropertyFilters", true,"Sync Property Filters", "", "", "");
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -154,6 +157,16 @@ void RimManagedViewConfig::fieldChangedByUi(const caf::PdmFieldHandle* changedFi
|
||||
managedView->rangeFilterCollection()->updateUiUpdateDisplayModel();
|
||||
}
|
||||
}
|
||||
else if (changedField == &syncPropertyFilters)
|
||||
{
|
||||
configureOverrides();
|
||||
|
||||
RimEclipseView* eclipseView = managedEclipseView();
|
||||
if (eclipseView)
|
||||
{
|
||||
eclipseView->propertyFilterCollection()->updateDisplayModel();
|
||||
}
|
||||
}
|
||||
else if (changedField == &managedView)
|
||||
{
|
||||
configureOverrides();
|
||||
@ -177,6 +190,12 @@ void RimManagedViewConfig::fieldChangedByUi(const caf::PdmFieldHandle* changedFi
|
||||
RimView* rimView = dynamic_cast<RimView*>(prevValue);
|
||||
rimView->setOverrideRangeFilterCollection(NULL);
|
||||
rimView->rangeFilterCollection()->updateUiUpdateDisplayModel();
|
||||
|
||||
RimEclipseView* rimEclipseView = dynamic_cast<RimEclipseView*>(rimView);
|
||||
if (rimEclipseView)
|
||||
{
|
||||
rimEclipseView->setOverridePropertyFilterCollection(NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -199,6 +218,23 @@ void RimManagedViewConfig::configureOverrides()
|
||||
{
|
||||
managedView->setOverrideRangeFilterCollection(NULL);
|
||||
}
|
||||
|
||||
RimEclipseView* masterEclipseView = dynamic_cast<RimEclipseView*>(masterView);
|
||||
if (masterEclipseView)
|
||||
{
|
||||
RimEclipseView* eclipseView = managedEclipseView();
|
||||
if (eclipseView)
|
||||
{
|
||||
if (syncPropertyFilters)
|
||||
{
|
||||
eclipseView->setOverridePropertyFilterCollection(masterEclipseView->propertyFilterCollection());
|
||||
}
|
||||
else
|
||||
{
|
||||
eclipseView->setOverridePropertyFilterCollection(NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -210,3 +246,13 @@ void RimManagedViewConfig::initAfterRead()
|
||||
configureOverrides();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimEclipseView* RimManagedViewConfig::managedEclipseView()
|
||||
{
|
||||
RimView* rimView = managedView;
|
||||
|
||||
return dynamic_cast<RimEclipseView*>(rimView);
|
||||
}
|
||||
|
||||
|
@ -24,6 +24,7 @@
|
||||
#include "cafPdmPtrField.h"
|
||||
|
||||
class RimView;
|
||||
class RimEclipseView;
|
||||
|
||||
//==================================================================================================
|
||||
///
|
||||
@ -43,6 +44,7 @@ public:
|
||||
caf::PdmField<bool> syncCellResult;
|
||||
caf::PdmField<bool> syncTimeStep;
|
||||
caf::PdmField<bool> syncRangeFilters;
|
||||
caf::PdmField<bool> syncPropertyFilters;
|
||||
|
||||
protected:
|
||||
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
|
||||
@ -53,4 +55,6 @@ protected:
|
||||
private:
|
||||
void allVisibleViews(std::vector<RimView*>& views);
|
||||
void configureOverrides();
|
||||
|
||||
RimEclipseView* managedEclipseView();
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user