diff --git a/ApplicationCode/ProjectDataModel/AnalysisPlots/RimAnalysisPlot.cpp b/ApplicationCode/ProjectDataModel/AnalysisPlots/RimAnalysisPlot.cpp index df71981f16..fe1c1b9c8f 100644 --- a/ApplicationCode/ProjectDataModel/AnalysisPlots/RimAnalysisPlot.cpp +++ b/ApplicationCode/ProjectDataModel/AnalysisPlots/RimAnalysisPlot.cpp @@ -1097,7 +1097,7 @@ void RimAnalysisPlot::applyFilter( const RimPlotDataFilterItem* filter, { const std::vector curveDefsToFilter; - if ( !filter->isActive() ) return; + if ( !filter->isActive() || !filter->isValid() ) return; std::vector filteredCurveDefs; @@ -1166,6 +1166,10 @@ void RimAnalysisPlot::applyFilter( const RimPlotDataFilterItem* filter, } } } + else + { + casesToKeep = ( *filteredSumCases ); + } } else { diff --git a/ApplicationCode/ProjectDataModel/AnalysisPlots/RimPlotDataFilterItem.cpp b/ApplicationCode/ProjectDataModel/AnalysisPlots/RimPlotDataFilterItem.cpp index 065f6ca7df..5a764816df 100644 --- a/ApplicationCode/ProjectDataModel/AnalysisPlots/RimPlotDataFilterItem.cpp +++ b/ApplicationCode/ProjectDataModel/AnalysisPlots/RimPlotDataFilterItem.cpp @@ -127,6 +127,23 @@ RimPlotDataFilterItem::~RimPlotDataFilterItem() { } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +bool RimPlotDataFilterItem::isValid() const +{ + if ( m_filterTarget() == ENSEMBLE_CASE && ensembleParameterName().isEmpty() ) + { + return false; + } + else if ( ( m_filterTarget() == SUMMARY_CASE || m_filterTarget() == SUMMARY_ITEM ) && !summaryAddress().isValid() ) + { + return false; + } + + return true; +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ProjectDataModel/AnalysisPlots/RimPlotDataFilterItem.h b/ApplicationCode/ProjectDataModel/AnalysisPlots/RimPlotDataFilterItem.h index 0c724ad6f3..457b43b41e 100644 --- a/ApplicationCode/ProjectDataModel/AnalysisPlots/RimPlotDataFilterItem.h +++ b/ApplicationCode/ProjectDataModel/AnalysisPlots/RimPlotDataFilterItem.h @@ -90,6 +90,7 @@ public: bool isActive() const { return m_isActive(); } FilterTarget filterTarget() const { return m_filterTarget(); } + bool isValid() const; RifEclipseSummaryAddress summaryAddress() const;