diff --git a/ApplicationCode/Application/RiaApplication.cpp b/ApplicationCode/Application/RiaApplication.cpp index 472a2b9a23..d95d7d6f02 100644 --- a/ApplicationCode/Application/RiaApplication.cpp +++ b/ApplicationCode/Application/RiaApplication.cpp @@ -40,6 +40,7 @@ #include "RimOilField.h" #include "RimAnalysisModels.h" #include "RimFaultCollection.h" +#include "RimFaultResultSlot.h" #include "cafCeetronNavigation.h" #include "cafCadNavigation.h" @@ -649,6 +650,9 @@ bool RiaApplication::openEclipseCase(const QString& caseName, const QString& cas riv->cellResult()->setResultVariable(RimDefines::undefinedResultName()); } + riv->cellFaultResult()->customResultSlot()->setResultVariable(RimDefines::undefinedResultName()); + + RimUiTreeModelPdm* uiModel = RiuMainWindow::instance()->uiPdmModel(); uiModel->updateUiSubTree(analysisModels); diff --git a/ApplicationCode/ProjectDataModel/RimFaultResultSlot.cpp b/ApplicationCode/ProjectDataModel/RimFaultResultSlot.cpp index dbfebd4a46..d78a3534d9 100644 --- a/ApplicationCode/ProjectDataModel/RimFaultResultSlot.cpp +++ b/ApplicationCode/ProjectDataModel/RimFaultResultSlot.cpp @@ -18,6 +18,11 @@ #include "RimFaultResultSlot.h" +#include "RimReservoirView.h" +#include "RimResultSlot.h" +#include "RiuMainWindow.h" +#include "RimUiTreeModelPdm.h" + namespace caf { @@ -42,6 +47,10 @@ RimFaultResultSlot::RimFaultResultSlot() CAF_PDM_InitField(&visualizationMode, "VisualizationMode", caf::AppEnum(RimFaultResultSlot::CELL_RESULT_MAPPING), "Fault Color Mapping", "", "", ""); + CAF_PDM_InitFieldNoDefault(&customResultSlot, "CustomResultSlot", "Custom Cell Result", ":/CellResult.png", "", ""); + customResultSlot = new RimResultSlot(); + + updateVisibility(); } //-------------------------------------------------------------------------------------------------- @@ -51,3 +60,49 @@ RimFaultResultSlot::~RimFaultResultSlot() { } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimFaultResultSlot::setReservoirView(RimReservoirView* ownerReservoirView) +{ + customResultSlot->setReservoirView(ownerReservoirView); +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimFaultResultSlot::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) +{ + if (changedField == &visualizationMode) + { + updateVisibility(); + + RiuMainWindow::instance()->uiPdmModel()->updateUiSubTree(this); + } +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimFaultResultSlot::initAfterRead() +{ + updateVisibility(); +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimFaultResultSlot::updateVisibility() +{ + if (this->visualizationMode() == FAULT_COLOR || this->visualizationMode() == CELL_RESULT_MAPPING) + { + this->customResultSlot.setUiHidden(true); + this->customResultSlot.setUiChildrenHidden(true); + } + else + { + this->customResultSlot.setUiHidden(false); + this->customResultSlot.setUiChildrenHidden(false); + } +} + diff --git a/ApplicationCode/ProjectDataModel/RimFaultResultSlot.h b/ApplicationCode/ProjectDataModel/RimFaultResultSlot.h index 010ce4d474..2fa532d58a 100644 --- a/ApplicationCode/ProjectDataModel/RimFaultResultSlot.h +++ b/ApplicationCode/ProjectDataModel/RimFaultResultSlot.h @@ -22,6 +22,9 @@ #include "cafPdmField.h" #include "cafPdmObject.h" +class RimResultSlot; +class RimReservoirView; + //================================================================================================== /// /// @@ -41,6 +44,17 @@ public: RimFaultResultSlot(); virtual ~RimFaultResultSlot(); + void setReservoirView(RimReservoirView* ownerReservoirView); + + caf::PdmField customResultSlot; + +protected: + virtual void initAfterRead(); + virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue); + +private: + void updateVisibility(); + private: caf::PdmField< caf::AppEnum< FaultVisualizationMode > > visualizationMode; }; diff --git a/ApplicationCode/ProjectDataModel/RimReservoirView.cpp b/ApplicationCode/ProjectDataModel/RimReservoirView.cpp index c4175aa2b5..bba2901cc8 100644 --- a/ApplicationCode/ProjectDataModel/RimReservoirView.cpp +++ b/ApplicationCode/ProjectDataModel/RimReservoirView.cpp @@ -167,6 +167,8 @@ RimReservoirView::RimReservoirView() this->cellEdgeResult()->legendConfig()->setPosition(cvf::Vec2ui(10, 320)); this->cellEdgeResult()->legendConfig()->setColorRangeMode(RimLegendConfig::PINK_WHITE); + this->cellFaultResult()->setReservoirView(this); + m_reservoirGridPartManager = new RivReservoirViewPartMgr(this); m_pipesPartManager = new RivReservoirPipesPartMgr(this); @@ -180,6 +182,7 @@ RimReservoirView::RimReservoirView() //-------------------------------------------------------------------------------------------------- RimReservoirView::~RimReservoirView() { + delete this->cellFaultResult(); delete this->cellResult(); delete this->cellEdgeResult(); delete this->overlayInfoConfig(); @@ -969,11 +972,11 @@ void RimReservoirView::loadDataAndUpdate() //-------------------------------------------------------------------------------------------------- void RimReservoirView::initAfterRead() { + this->cellFaultResult()->setReservoirView(this); this->cellResult()->setReservoirView(this); this->cellEdgeResult()->setReservoirView(this); this->rangeFilterCollection()->setReservoirView(this); this->propertyFilterCollection()->setReservoirView(this); - } //--------------------------------------------------------------------------------------------------