From 516fd9a929d59fcd0572973811e3628842f01903 Mon Sep 17 00:00:00 2001 From: Magne Sjaastad Date: Tue, 19 Mar 2019 12:06:05 +0100 Subject: [PATCH] more text in UI --- .../RimPlotCellFilterCollection.cpp | 4 +- .../CellFilters/RimPlotCellPropertyFilter.cpp | 66 +++++++++++++++++++ .../CellFilters/RimPlotCellPropertyFilter.h | 9 ++- .../RimGridCrossPlotCurveSet.cpp | 1 + 4 files changed, 77 insertions(+), 3 deletions(-) diff --git a/ApplicationCode/ProjectDataModel/GridCrossPlots/CellFilters/RimPlotCellFilterCollection.cpp b/ApplicationCode/ProjectDataModel/GridCrossPlots/CellFilters/RimPlotCellFilterCollection.cpp index 4ae825fc10..76e0940d98 100644 --- a/ApplicationCode/ProjectDataModel/GridCrossPlots/CellFilters/RimPlotCellFilterCollection.cpp +++ b/ApplicationCode/ProjectDataModel/GridCrossPlots/CellFilters/RimPlotCellFilterCollection.cpp @@ -31,7 +31,9 @@ RimPlotCellFilterCollection::RimPlotCellFilterCollection() CAF_PDM_InitObject("Plot Cell Filters", "", "", ""); CAF_PDM_InitFieldNoDefault(&m_cellFilters, "CellFilters", "Cell Filters", "", "", ""); - // m_crossPlotCurveSets.uiCapability()->setUiHidden(true); + m_cellFilters.uiCapability()->setUiHidden(true); + + setName("Filter Collection"); } //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ProjectDataModel/GridCrossPlots/CellFilters/RimPlotCellPropertyFilter.cpp b/ApplicationCode/ProjectDataModel/GridCrossPlots/CellFilters/RimPlotCellPropertyFilter.cpp index fe3c135817..bea67ce12d 100644 --- a/ApplicationCode/ProjectDataModel/GridCrossPlots/CellFilters/RimPlotCellPropertyFilter.cpp +++ b/ApplicationCode/ProjectDataModel/GridCrossPlots/CellFilters/RimPlotCellPropertyFilter.cpp @@ -59,6 +59,8 @@ RimPlotCellPropertyFilter::RimPlotCellPropertyFilter() void RimPlotCellPropertyFilter::setResultDefinition(caf::PdmObject* resultDefinition) { m_resultDefinition = resultDefinition; + + updateName(); } //-------------------------------------------------------------------------------------------------- @@ -80,6 +82,45 @@ RimEclipseResultDefinition* RimPlotCellPropertyFilter::eclipseResultDefinition() return dynamic_cast(pdmObj); } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimPlotCellPropertyFilter::findOrComputeMinMaxResultValues(double& minimumValue, double& maximumValue) +{ + RimEclipseResultDefinition* resDef = eclipseResultDefinition(); + if (resDef) + { + RimEclipseCase* eclCase = resDef->eclipseCase(); + if (!eclCase) return; + + RigEclipseCaseData* eclipseCaseData = eclCase->eclipseCaseData(); + if (!eclipseCaseData) return; + + resDef->loadResult(); + + RigCaseCellResultsData* cellResultsData = resDef->currentGridCellResults(); + if (!cellResultsData) return; + + cellResultsData->minMaxCellScalarValues(resDef->eclipseResultAddress(), minimumValue, maximumValue); + } +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimPlotCellPropertyFilter::updateName() +{ + QString name = "Property filter - "; + + RimEclipseResultDefinition* resDef = eclipseResultDefinition(); + if (resDef) + { + name += resDef->resultVariableUiName(); + } + + setName(name); +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- @@ -160,3 +201,28 @@ void RimPlotCellPropertyFilter::updateCellVisibilityFromFilter(size_t timeStepIn } } } + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimPlotCellPropertyFilter::defineEditorAttribute(const caf::PdmFieldHandle* field, + QString uiConfigName, + caf::PdmUiEditorAttribute* attribute) +{ + if (field == &m_lowerBound || field == &m_upperBound) + { + caf::PdmUiDoubleSliderEditorAttribute* myAttr = dynamic_cast(attribute); + if (!myAttr) + { + return; + } + + double minimumValue = 0.0; + double maximumValue = 0.0; + + findOrComputeMinMaxResultValues(minimumValue, maximumValue); + + myAttr->m_minimum = minimumValue; + myAttr->m_maximum = maximumValue; + } +} diff --git a/ApplicationCode/ProjectDataModel/GridCrossPlots/CellFilters/RimPlotCellPropertyFilter.h b/ApplicationCode/ProjectDataModel/GridCrossPlots/CellFilters/RimPlotCellPropertyFilter.h index 68d57b728e..237f5a91d0 100644 --- a/ApplicationCode/ProjectDataModel/GridCrossPlots/CellFilters/RimPlotCellPropertyFilter.h +++ b/ApplicationCode/ProjectDataModel/GridCrossPlots/CellFilters/RimPlotCellPropertyFilter.h @@ -38,20 +38,25 @@ class RimPlotCellPropertyFilter : public RimPlotCellFilter public: RimPlotCellPropertyFilter(); + // Currently supported result definition is RimEclipseResultDefinition, but the interface is designed to also support + // RimGeoMechResultDefinition void setResultDefinition(caf::PdmObject* resultDefinition); void setValueRange(double lowerBound, double upperBound); protected: void updateCellVisibilityFromFilter(size_t timeStepIndex, cvf::UByteArray* visibleCells) override; + void defineEditorAttribute(const caf::PdmFieldHandle* field, + QString uiConfigName, + caf::PdmUiEditorAttribute* attribute) override; private: RimEclipseResultDefinition* eclipseResultDefinition(); + void findOrComputeMinMaxResultValues(double& minimumValue, double& maximumValue); + void updateName(); private: caf::PdmChildField m_resultDefinition; caf::PdmField m_lowerBound; caf::PdmField m_upperBound; - - cvf::ref m_visibleCells; }; diff --git a/ApplicationCode/ProjectDataModel/GridCrossPlots/RimGridCrossPlotCurveSet.cpp b/ApplicationCode/ProjectDataModel/GridCrossPlots/RimGridCrossPlotCurveSet.cpp index 8a1e982341..8528bc46b2 100644 --- a/ApplicationCode/ProjectDataModel/GridCrossPlots/RimGridCrossPlotCurveSet.cpp +++ b/ApplicationCode/ProjectDataModel/GridCrossPlots/RimGridCrossPlotCurveSet.cpp @@ -121,6 +121,7 @@ RimGridCrossPlotCurveSet::RimGridCrossPlotCurveSet() CAF_PDM_InitField(&m_customColor, "CustomColor", cvf::Color3f(cvf::Color3f::BLACK), "Custom Color", "", "", ""); CAF_PDM_InitFieldNoDefault(&m_plotCellFilterCollection, "PlotCellFilterCollection", "Cell Filters", "", "", ""); + m_plotCellFilterCollection.uiCapability()->setUiTreeHidden(true); m_plotCellFilterCollection = new RimPlotCellFilterCollection; setDefaults();