mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Added a property filter UI editor handle
A UI editor handle is attache to the "propertyFilters" field used to update 3D view and other UI editors
This commit is contained in:
parent
711cc16da1
commit
f9df484974
@ -24,6 +24,37 @@
|
|||||||
#include "RimEclipseResultDefinition.h"
|
#include "RimEclipseResultDefinition.h"
|
||||||
#include "RimEclipseCellColors.h"
|
#include "RimEclipseCellColors.h"
|
||||||
|
|
||||||
|
#include "cafPdmUiEditorHandle.h"
|
||||||
|
|
||||||
|
|
||||||
|
class ResViewPropertyFilterEditorHandle : public caf::PdmUiEditorHandle
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
ResViewPropertyFilterEditorHandle(caf::PdmFieldHandle* a)
|
||||||
|
{
|
||||||
|
this->bindToPdmItem(a->uiCapability());
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
virtual void configureAndUpdateUi(const QString& uiConfigName)
|
||||||
|
{
|
||||||
|
caf::PdmUiFieldHandle* uiFieldHandle = dynamic_cast<caf::PdmUiFieldHandle*>(this->pdmItem());
|
||||||
|
caf::PdmObjectHandle* objHandle = uiFieldHandle->fieldHandle()->ownerObject();
|
||||||
|
|
||||||
|
RimEclipseView* view = NULL;
|
||||||
|
objHandle->firstAncestorOfType(view);
|
||||||
|
CVF_ASSERT(view);
|
||||||
|
|
||||||
|
view->scheduleGeometryRegen(PROPERTY_FILTERED);
|
||||||
|
view->scheduleCreateDisplayModelAndRedraw();
|
||||||
|
|
||||||
|
// This will update UI editors related to tree view (and others), as there is no tree view entity for editor for
|
||||||
|
// the property filters childarrayfield (this field is hidden)
|
||||||
|
uiObj(objHandle)->updateConnectedEditors();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
CAF_PDM_SOURCE_INIT(RimEclipsePropertyFilterCollection, "CellPropertyFilters");
|
CAF_PDM_SOURCE_INIT(RimEclipsePropertyFilterCollection, "CellPropertyFilters");
|
||||||
|
|
||||||
@ -39,6 +70,8 @@ RimEclipsePropertyFilterCollection::RimEclipsePropertyFilterCollection()
|
|||||||
|
|
||||||
CAF_PDM_InitField(&active, "Active", true, "Active", "", "", "");
|
CAF_PDM_InitField(&active, "Active", true, "Active", "", "", "");
|
||||||
active.uiCapability()->setUiHidden(true);
|
active.uiCapability()->setUiHidden(true);
|
||||||
|
|
||||||
|
propertyFilters.uiCapability()->addFieldEditor(new ResViewPropertyFilterEditorHandle(&propertyFilters));
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -81,7 +114,12 @@ void RimEclipsePropertyFilterCollection::fieldChangedByUi(const caf::PdmFieldHan
|
|||||||
{
|
{
|
||||||
this->updateUiIconFromToggleField();
|
this->updateUiIconFromToggleField();
|
||||||
|
|
||||||
m_reservoirView->fieldChangedByUi(&(m_reservoirView->propertyFilterCollection), oldValue, newValue);
|
RimEclipseView* view = NULL;
|
||||||
|
this->firstAncestorOfType(view);
|
||||||
|
CVF_ASSERT(view);
|
||||||
|
|
||||||
|
view->scheduleGeometryRegen(PROPERTY_FILTERED);
|
||||||
|
view->scheduleCreateDisplayModelAndRedraw();
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -114,11 +152,7 @@ void RimEclipsePropertyFilterCollection::loadAndInitializePropertyFilters()
|
|||||||
for (size_t i = 0; i < propertyFilters.size(); i++)
|
for (size_t i = 0; i < propertyFilters.size(); i++)
|
||||||
{
|
{
|
||||||
RimEclipsePropertyFilter* propertyFilter = propertyFilters[i];
|
RimEclipsePropertyFilter* propertyFilter = propertyFilters[i];
|
||||||
|
propertyFilter->initAfterRead();
|
||||||
propertyFilter->resultDefinition->setReservoirView(m_reservoirView.p());
|
|
||||||
propertyFilter->resultDefinition->loadResult();
|
|
||||||
propertyFilter->updateIconState();
|
|
||||||
propertyFilter->computeResultValueRange();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -127,8 +161,6 @@ void RimEclipsePropertyFilterCollection::loadAndInitializePropertyFilters()
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimEclipsePropertyFilterCollection::initAfterRead()
|
void RimEclipsePropertyFilterCollection::initAfterRead()
|
||||||
{
|
{
|
||||||
loadAndInitializePropertyFilters();
|
|
||||||
|
|
||||||
this->updateUiIconFromToggleField();
|
this->updateUiIconFromToggleField();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user