diff --git a/ApplicationCode/ProjectDataModel/GridCrossPlots/CellFilters/RimPlotCellFilter.cpp b/ApplicationCode/ProjectDataModel/GridCrossPlots/CellFilters/RimPlotCellFilter.cpp index 1abd85e180..6f08e60927 100644 --- a/ApplicationCode/ProjectDataModel/GridCrossPlots/CellFilters/RimPlotCellFilter.cpp +++ b/ApplicationCode/ProjectDataModel/GridCrossPlots/CellFilters/RimPlotCellFilter.cpp @@ -44,7 +44,10 @@ RimPlotCellFilter::RimPlotCellFilter() //-------------------------------------------------------------------------------------------------- void RimPlotCellFilter::updateCellVisibility(size_t timeStepIndex, cvf::UByteArray* cellVisibility) { - updateCellVisibilityFromFilter(timeStepIndex, cellVisibility); + if (isChecked()) + { + updateCellVisibilityFromFilter(timeStepIndex, cellVisibility); + } } //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ProjectDataModel/GridCrossPlots/CellFilters/RimPlotCellFilterCollection.cpp b/ApplicationCode/ProjectDataModel/GridCrossPlots/CellFilters/RimPlotCellFilterCollection.cpp index 6b945b5864..4ae825fc10 100644 --- a/ApplicationCode/ProjectDataModel/GridCrossPlots/CellFilters/RimPlotCellFilterCollection.cpp +++ b/ApplicationCode/ProjectDataModel/GridCrossPlots/CellFilters/RimPlotCellFilterCollection.cpp @@ -18,6 +18,9 @@ #include "RimPlotCellFilterCollection.h" +#include "RimEclipseResultCase.h" +#include "RimEclipseResultDefinition.h" + CAF_PDM_SOURCE_INIT(RimPlotCellFilterCollection, "RimPlotCellFilterCollection"); //-------------------------------------------------------------------------------------------------- @@ -40,7 +43,7 @@ void RimPlotCellFilterCollection::addCellFilter(RimPlotCellFilter* cellFilter) } //-------------------------------------------------------------------------------------------------- -/// +/// //-------------------------------------------------------------------------------------------------- size_t RimPlotCellFilterCollection::cellFilterCount() const { @@ -48,11 +51,32 @@ size_t RimPlotCellFilterCollection::cellFilterCount() const } //-------------------------------------------------------------------------------------------------- -/// +/// //-------------------------------------------------------------------------------------------------- void RimPlotCellFilterCollection::computeCellVisibilityFromFilter(size_t timeStepIndex, cvf::UByteArray* cellVisibility) { - updateCellVisibilityFromFilter(timeStepIndex, cellVisibility); + if (isChecked()) + { + updateCellVisibilityFromFilter(timeStepIndex, cellVisibility); + } +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimPlotCellFilterCollection::setCase(RimCase* gridCase) +{ + RimEclipseResultCase* eclipseResultCase = dynamic_cast(gridCase); + if (eclipseResultCase) + { + std::vector resultDefinitions; + + this->descendantsIncludingThisOfType(resultDefinitions); + for (auto r : resultDefinitions) + { + r->setEclipseCase(eclipseResultCase); + } + } } //-------------------------------------------------------------------------------------------------- @@ -62,7 +86,9 @@ void RimPlotCellFilterCollection::updateCellVisibilityFromFilter(size_t timeStep { for (RimPlotCellFilter* f : m_cellFilters()) { - f->updateCellVisibility(timeStepIndex, cellVisibility); + if (f->isChecked()) + { + f->updateCellVisibility(timeStepIndex, cellVisibility); + } } } - diff --git a/ApplicationCode/ProjectDataModel/GridCrossPlots/CellFilters/RimPlotCellFilterCollection.h b/ApplicationCode/ProjectDataModel/GridCrossPlots/CellFilters/RimPlotCellFilterCollection.h index bdf5561d74..eddec02982 100644 --- a/ApplicationCode/ProjectDataModel/GridCrossPlots/CellFilters/RimPlotCellFilterCollection.h +++ b/ApplicationCode/ProjectDataModel/GridCrossPlots/CellFilters/RimPlotCellFilterCollection.h @@ -22,6 +22,8 @@ #include "cafPdmChildArrayField.h" +class RimCase; + //================================================================================================== /// //================================================================================================== @@ -37,6 +39,8 @@ public: void computeCellVisibilityFromFilter(size_t timeStepIndex, cvf::UByteArray* cellVisibility); + void setCase(RimCase* gridCase); + protected: void updateCellVisibilityFromFilter(size_t timeStepIndex, cvf::UByteArray* cellVisibility) override; diff --git a/ApplicationCode/ProjectDataModel/GridCrossPlots/RimGridCrossPlotCurveSet.cpp b/ApplicationCode/ProjectDataModel/GridCrossPlots/RimGridCrossPlotCurveSet.cpp index 90bdc7f8f1..8a1e982341 100644 --- a/ApplicationCode/ProjectDataModel/GridCrossPlots/RimGridCrossPlotCurveSet.cpp +++ b/ApplicationCode/ProjectDataModel/GridCrossPlots/RimGridCrossPlotCurveSet.cpp @@ -368,6 +368,7 @@ void RimGridCrossPlotCurveSet::initAfterRead() m_xAxisProperty->setEclipseCase(eclipseCase); m_yAxisProperty->setEclipseCase(eclipseCase); m_groupingProperty->setEclipseCase(eclipseCase); + m_plotCellFilterCollection->setCase(eclipseCase); } }