mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#2248 Source Stepping : Compute visible fields once based on visible curves
This commit is contained in:
parent
e35a448dae
commit
530b4d4073
@ -184,6 +184,24 @@ std::vector<RimSummaryCurve*> RimSummaryCurveCollection::curves() const
|
||||
return m_curves.childObjects();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<RimSummaryCurve*> RimSummaryCurveCollection::visibleCurves() const
|
||||
{
|
||||
std::vector<RimSummaryCurve*> visible;
|
||||
|
||||
for (auto c : m_curves)
|
||||
{
|
||||
if (c->isCurveVisible())
|
||||
{
|
||||
visible.push_back(c);
|
||||
}
|
||||
}
|
||||
|
||||
return visible;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -55,6 +55,8 @@ public:
|
||||
void deleteCurve(RimSummaryCurve* curve);
|
||||
|
||||
std::vector<RimSummaryCurve*> curves() const;
|
||||
std::vector<RimSummaryCurve*> visibleCurves() const;
|
||||
|
||||
void deleteCurvesAssosiatedWithCase(RimSummaryCase* summaryCase);
|
||||
void deleteAllCurves();
|
||||
void updateCaseNameHasChanged();
|
||||
|
@ -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<caf::PdmFieldHandle*> RimSummaryPlotSourceStepping::fieldsToShowInToolbar()
|
||||
{
|
||||
std::vector<caf::PdmFieldHandle*> 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<caf::PdmFieldHandle*> 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<RifEclipseSummaryAddress> RimSummaryPlotSourceStepping::allAddressesUsedInCurveCollection() const
|
||||
std::set<RifEclipseSummaryAddress> RimSummaryPlotSourceStepping::visibleAddressesCurveCollection() const
|
||||
{
|
||||
std::set<RifEclipseSummaryAddress> 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<RifEclipseSummaryAddress> RimSummaryPlotSourceStepping::allAddressesUse
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::set<RimSummaryCase*> RimSummaryPlotSourceStepping::allSummaryCasesUsedInCurveCollection() const
|
||||
std::set<RimSummaryCase*> RimSummaryPlotSourceStepping::visibleSummaryCasesCurveCollection() const
|
||||
{
|
||||
std::set<RimSummaryCase*> 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<RimSummaryCase*> RimSummaryPlotSourceStepping::allSummaryCasesUsedInCur
|
||||
return sumCases;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<caf::PdmFieldHandle*> 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<caf::PdmFieldHandle*> 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)
|
||||
{
|
||||
|
@ -79,11 +79,11 @@ private:
|
||||
private:
|
||||
RifSummaryReaderInterface* summaryReader() const;
|
||||
RimSummaryCase* singleSummaryCase() const;
|
||||
void updateUiFromCurves();
|
||||
caf::PdmValueField* fieldToModify();
|
||||
|
||||
std::set<RifEclipseSummaryAddress> allAddressesUsedInCurveCollection() const;
|
||||
std::set<RimSummaryCase*> allSummaryCasesUsedInCurveCollection() const;
|
||||
std::set<RifEclipseSummaryAddress> visibleAddressesCurveCollection() const;
|
||||
std::set<RimSummaryCase*> visibleSummaryCasesCurveCollection() const;
|
||||
std::vector<caf::PdmFieldHandle*> computeVisibleFieldsAndSetFieldVisibility();
|
||||
|
||||
bool isXAxisStepping() const;
|
||||
bool isYAxisStepping() const;
|
||||
|
Loading…
Reference in New Issue
Block a user