diff --git a/ApplicationCode/ProjectDataModel/Summary/RimSummaryCurveCollection.cpp b/ApplicationCode/ProjectDataModel/Summary/RimSummaryCurveCollection.cpp index a1376bee25..28c4af2a5c 100644 --- a/ApplicationCode/ProjectDataModel/Summary/RimSummaryCurveCollection.cpp +++ b/ApplicationCode/ProjectDataModel/Summary/RimSummaryCurveCollection.cpp @@ -184,6 +184,24 @@ std::vector RimSummaryCurveCollection::curves() const return m_curves.childObjects(); } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +std::vector RimSummaryCurveCollection::visibleCurves() const +{ + std::vector visible; + + for (auto c : m_curves) + { + if (c->isCurveVisible()) + { + visible.push_back(c); + } + } + + return visible; +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ProjectDataModel/Summary/RimSummaryCurveCollection.h b/ApplicationCode/ProjectDataModel/Summary/RimSummaryCurveCollection.h index c8f1359139..d53c1c9682 100644 --- a/ApplicationCode/ProjectDataModel/Summary/RimSummaryCurveCollection.h +++ b/ApplicationCode/ProjectDataModel/Summary/RimSummaryCurveCollection.h @@ -55,6 +55,8 @@ public: void deleteCurve(RimSummaryCurve* curve); std::vector curves() const; + std::vector visibleCurves() const; + void deleteCurvesAssosiatedWithCase(RimSummaryCase* summaryCase); void deleteAllCurves(); void updateCaseNameHasChanged(); diff --git a/ApplicationCode/ProjectDataModel/Summary/RimSummaryPlotSourceStepping.cpp b/ApplicationCode/ProjectDataModel/Summary/RimSummaryPlotSourceStepping.cpp index d70b519b85..f0923161e7 100644 --- a/ApplicationCode/ProjectDataModel/Summary/RimSummaryPlotSourceStepping.cpp +++ b/ApplicationCode/ProjectDataModel/Summary/RimSummaryPlotSourceStepping.cpp @@ -78,8 +78,7 @@ void RimSummaryPlotSourceStepping::applyNextCase() RimProject* proj = RiaApplication::instance()->project(); auto summaryCases = proj->allSummaryCases(); - if (summaryCases.size() < 1) - return; + if (summaryCases.size() < 1) return; auto currentCase = std::find(summaryCases.begin(), summaryCases.end(), m_summaryCase()); @@ -113,8 +112,7 @@ void RimSummaryPlotSourceStepping::applyPrevCase() RimProject* proj = RiaApplication::instance()->project(); auto summaryCases = proj->allSummaryCases(); - if (summaryCases.size() < 1) - return; + if (summaryCases.size() < 1) return; auto currentCase = std::find(summaryCases.begin(), summaryCases.end(), m_summaryCase()); @@ -165,8 +163,7 @@ void RimSummaryPlotSourceStepping::applyPrevQuantity() void RimSummaryPlotSourceStepping::applyNextOtherIdentifier() { caf::PdmValueField* valueField = fieldToModify(); - if (!valueField) - return; + if (!valueField) return; modifyCurrentIndex(valueField, 1); } @@ -177,8 +174,7 @@ void RimSummaryPlotSourceStepping::applyNextOtherIdentifier() void RimSummaryPlotSourceStepping::applyPrevOtherIdentifier() { caf::PdmValueField* valueField = fieldToModify(); - if (!valueField) - return; + if (!valueField) return; modifyCurrentIndex(valueField, -1); } @@ -188,42 +184,7 @@ void RimSummaryPlotSourceStepping::applyPrevOtherIdentifier() //-------------------------------------------------------------------------------------------------- std::vector RimSummaryPlotSourceStepping::fieldsToShowInToolbar() { - std::vector fields; - - auto sumCases = allSummaryCasesUsedInCurveCollection(); - if (sumCases.size() == 1) - { - RimProject* proj = RiaApplication::instance()->project(); - if (proj->allSummaryCases().size() > 1) - { - fields.push_back(&m_summaryCase); - } - } - - RiaSummaryCurveAnalyzer analyzer; - analyzer.appendAdresses(allAddressesUsedInCurveCollection()); - - if (analyzer.wellNames().size() == 1) - { - fields.push_back(&m_wellName); - } - - if (analyzer.wellGroupNames().size() == 1) - { - fields.push_back(&m_wellGroupName); - } - - if (analyzer.regionNumbers().size() == 1) - { - fields.push_back(&m_region); - } - - if (analyzer.quantities().size() == 1) - { - fields.push_back(&m_quantity); - } - - return fields; + return computeVisibleFieldsAndSetFieldVisibility(); } //-------------------------------------------------------------------------------------------------- @@ -231,7 +192,15 @@ std::vector RimSummaryPlotSourceStepping::fieldsToShowInTo //-------------------------------------------------------------------------------------------------- void RimSummaryPlotSourceStepping::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) { - updateUiFromCurves(); + auto visible = computeVisibleFieldsAndSetFieldVisibility(); + if (visible.size() == 0) + { + m_placeholderForLabel.uiCapability()->setUiHidden(false); + } + else + { + m_placeholderForLabel.uiCapability()->setUiHidden(true); + } } //-------------------------------------------------------------------------------------------------- @@ -332,7 +301,7 @@ void RimSummaryPlotSourceStepping::fieldChangedByUi(const caf::PdmFieldHandle* c { if (m_summaryCase()) { - for (auto curve : curveCollection->curves()) + for (auto curve : curveCollection->visibleCurves()) { if (isYAxisStepping()) { @@ -350,7 +319,7 @@ void RimSummaryPlotSourceStepping::fieldChangedByUi(const caf::PdmFieldHandle* c } else if (changedField == &m_wellName) { - for (auto curve : curveCollection->curves()) + for (auto curve : curveCollection->visibleCurves()) { if (isYAxisStepping()) { @@ -379,7 +348,7 @@ void RimSummaryPlotSourceStepping::fieldChangedByUi(const caf::PdmFieldHandle* c } else if (changedField == &m_region) { - for (auto curve : curveCollection->curves()) + for (auto curve : curveCollection->visibleCurves()) { if (isYAxisStepping()) { @@ -408,7 +377,7 @@ void RimSummaryPlotSourceStepping::fieldChangedByUi(const caf::PdmFieldHandle* c } else if (changedField == &m_quantity) { - for (auto curve : curveCollection->curves()) + for (auto curve : curveCollection->visibleCurves()) { if (isYAxisStepping()) { @@ -431,7 +400,7 @@ void RimSummaryPlotSourceStepping::fieldChangedByUi(const caf::PdmFieldHandle* c } else if (changedField == &m_wellGroupName) { - for (auto curve : curveCollection->curves()) + for (auto curve : curveCollection->visibleCurves()) { if (isYAxisStepping()) { @@ -524,99 +493,13 @@ RimSummaryCase* RimSummaryPlotSourceStepping::singleSummaryCase() const return nullptr; } -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -void RimSummaryPlotSourceStepping::updateUiFromCurves() -{ - m_summaryCase.uiCapability()->setUiHidden(true); - m_wellName.uiCapability()->setUiHidden(true); - m_wellGroupName.uiCapability()->setUiHidden(true); - m_region.uiCapability()->setUiHidden(true); - m_quantity.uiCapability()->setUiHidden(true); - m_placeholderForLabel.uiCapability()->setUiHidden(true); - - bool commonIdentifierFound = false; - - auto sumCases = allSummaryCasesUsedInCurveCollection(); - if (sumCases.size() == 1) - { - if (sumCases.find(m_summaryCase) == sumCases.end()) - { - m_summaryCase = *(sumCases.begin()); - } - - RimProject* proj = RiaApplication::instance()->project(); - if (proj->allSummaryCases().size() > 1) - { - m_summaryCase.uiCapability()->setUiHidden(false); - - commonIdentifierFound = true; - } - } - - RiaSummaryCurveAnalyzer analyzer; - analyzer.appendAdresses(allAddressesUsedInCurveCollection()); - - RifEclipseSummaryAddress::SummaryVarCategory category = RifEclipseSummaryAddress::SUMMARY_INVALID; - { - if (analyzer.categories().size() == 1) - { - category = *(analyzer.categories().begin()); - } - } - - if (category != RifEclipseSummaryAddress::SUMMARY_INVALID) - { - if (analyzer.wellNames().size() == 1) - { - QString txt = QString::fromStdString(*(analyzer.wellNames().begin())); - m_wellName = txt; - m_wellName.uiCapability()->setUiHidden(false); - - commonIdentifierFound = true; - } - - if (analyzer.wellGroupNames().size() == 1) - { - QString txt = QString::fromStdString(*(analyzer.wellGroupNames().begin())); - m_wellGroupName = txt; - m_wellGroupName.uiCapability()->setUiHidden(false); - - commonIdentifierFound = true; - } - - if (analyzer.regionNumbers().size() == 1) - { - m_region = *(analyzer.regionNumbers().begin()); - m_region.uiCapability()->setUiHidden(false); - - commonIdentifierFound = true; - } - - if (analyzer.quantities().size() == 1) - { - QString txt = QString::fromStdString(*(analyzer.quantities().begin())); - m_quantity = txt; - m_quantity.uiCapability()->setUiHidden(false); - - commonIdentifierFound = true; - } - } - - if (!commonIdentifierFound) - { - m_placeholderForLabel.uiCapability()->setUiHidden(false); - } -} - //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- caf::PdmValueField* RimSummaryPlotSourceStepping::fieldToModify() { RiaSummaryCurveAnalyzer analyzer; - analyzer.appendAdresses(allAddressesUsedInCurveCollection()); + analyzer.appendAdresses(visibleAddressesCurveCollection()); if (analyzer.wellNames().size() == 1) { @@ -639,14 +522,14 @@ caf::PdmValueField* RimSummaryPlotSourceStepping::fieldToModify() //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -std::set RimSummaryPlotSourceStepping::allAddressesUsedInCurveCollection() const +std::set RimSummaryPlotSourceStepping::visibleAddressesCurveCollection() const { std::set addresses; RimSummaryCurveCollection* curveCollection = nullptr; this->firstAncestorOrThisOfTypeAsserted(curveCollection); - auto curves = curveCollection->curves(); + auto curves = curveCollection->visibleCurves(); for (auto c : curves) { if (isYAxisStepping()) @@ -666,14 +549,14 @@ std::set RimSummaryPlotSourceStepping::allAddressesUse //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -std::set RimSummaryPlotSourceStepping::allSummaryCasesUsedInCurveCollection() const +std::set RimSummaryPlotSourceStepping::visibleSummaryCasesCurveCollection() const { std::set sumCases; RimSummaryCurveCollection* curveCollection = nullptr; this->firstAncestorOrThisOfTypeAsserted(curveCollection); - auto curves = curveCollection->curves(); + auto curves = curveCollection->visibleCurves(); for (auto c : curves) { if (isYAxisStepping()) @@ -690,16 +573,93 @@ std::set RimSummaryPlotSourceStepping::allSummaryCasesUsedInCur return sumCases; } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +std::vector RimSummaryPlotSourceStepping::computeVisibleFieldsAndSetFieldVisibility() +{ + m_summaryCase.uiCapability()->setUiHidden(true); + m_wellName.uiCapability()->setUiHidden(true); + m_wellGroupName.uiCapability()->setUiHidden(true); + m_region.uiCapability()->setUiHidden(true); + m_quantity.uiCapability()->setUiHidden(true); + + std::vector fields; + + auto sumCases = visibleSummaryCasesCurveCollection(); + if (sumCases.size() == 1) + { + RimProject* proj = RiaApplication::instance()->project(); + if (proj->allSummaryCases().size() > 1) + { + m_summaryCase = *(sumCases.begin()); + + m_summaryCase.uiCapability()->setUiHidden(false); + + fields.push_back(&m_summaryCase); + } + } + + RiaSummaryCurveAnalyzer analyzer; + analyzer.appendAdresses(visibleAddressesCurveCollection()); + + RifEclipseSummaryAddress::SummaryVarCategory category = RifEclipseSummaryAddress::SUMMARY_INVALID; + { + if (analyzer.categories().size() == 1) + { + category = *(analyzer.categories().begin()); + } + } + + if (category != RifEclipseSummaryAddress::SUMMARY_INVALID) + { + if (analyzer.wellNames().size() == 1) + { + QString txt = QString::fromStdString(*(analyzer.wellNames().begin())); + m_wellName = txt; + m_wellName.uiCapability()->setUiHidden(false); + + fields.push_back(&m_wellName); + } + + if (analyzer.wellGroupNames().size() == 1) + { + QString txt = QString::fromStdString(*(analyzer.wellGroupNames().begin())); + m_wellGroupName = txt; + m_wellGroupName.uiCapability()->setUiHidden(false); + + fields.push_back(&m_wellGroupName); + } + + if (analyzer.regionNumbers().size() == 1) + { + m_region = *(analyzer.regionNumbers().begin()); + m_region.uiCapability()->setUiHidden(false); + + fields.push_back(&m_region); + } + + if (analyzer.quantities().size() == 1) + { + QString txt = QString::fromStdString(*(analyzer.quantities().begin())); + m_quantity = txt; + m_quantity.uiCapability()->setUiHidden(false); + + fields.push_back(&m_quantity); + } + } + + return fields; +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- bool RimSummaryPlotSourceStepping::isXAxisStepping() const { - if (m_sourceSteppingType == UNION_X_Y_AXIS) - return true; + if (m_sourceSteppingType == UNION_X_Y_AXIS) return true; - if (m_sourceSteppingType == X_AXIS) - return true; + if (m_sourceSteppingType == X_AXIS) return true; return false; } @@ -709,11 +669,9 @@ bool RimSummaryPlotSourceStepping::isXAxisStepping() const //-------------------------------------------------------------------------------------------------- bool RimSummaryPlotSourceStepping::isYAxisStepping() const { - if (m_sourceSteppingType == UNION_X_Y_AXIS) - return true; + if (m_sourceSteppingType == UNION_X_Y_AXIS) return true; - if (m_sourceSteppingType == Y_AXIS) - return true; + if (m_sourceSteppingType == Y_AXIS) return true; return false; } @@ -723,8 +681,7 @@ bool RimSummaryPlotSourceStepping::isYAxisStepping() const //-------------------------------------------------------------------------------------------------- RiaSummaryCurveAnalyzer* RimSummaryPlotSourceStepping::analyzerForReader(RifSummaryReaderInterface* reader) { - if (!reader) - return nullptr; + if (!reader) return nullptr; if (m_curveAnalyzerForReader.first != reader) { diff --git a/ApplicationCode/ProjectDataModel/Summary/RimSummaryPlotSourceStepping.h b/ApplicationCode/ProjectDataModel/Summary/RimSummaryPlotSourceStepping.h index 3b30e091de..cfd86bb406 100644 --- a/ApplicationCode/ProjectDataModel/Summary/RimSummaryPlotSourceStepping.h +++ b/ApplicationCode/ProjectDataModel/Summary/RimSummaryPlotSourceStepping.h @@ -79,11 +79,11 @@ private: private: RifSummaryReaderInterface* summaryReader() const; RimSummaryCase* singleSummaryCase() const; - void updateUiFromCurves(); caf::PdmValueField* fieldToModify(); - std::set allAddressesUsedInCurveCollection() const; - std::set allSummaryCasesUsedInCurveCollection() const; + std::set visibleAddressesCurveCollection() const; + std::set visibleSummaryCasesCurveCollection() const; + std::vector computeVisibleFieldsAndSetFieldVisibility(); bool isXAxisStepping() const; bool isYAxisStepping() const;