mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#1305 Update filter UI fields when address is set on filter
This commit is contained in:
parent
deb62d8198
commit
1309c25058
@ -212,7 +212,7 @@ RimSummaryCase* RimSummaryCurve::summaryCase()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimSummaryCurve::setVariable(QString varName)
|
||||
{
|
||||
m_curveVariable->setAddress(RifEclipseSummaryAddress::fieldVarAddress(varName.toStdString()));
|
||||
setSummaryAddress(RifEclipseSummaryAddress::fieldVarAddress(varName.toStdString()));
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -229,6 +229,8 @@ RifEclipseSummaryAddress RimSummaryCurve::summaryAddress()
|
||||
void RimSummaryCurve::setSummaryAddress(const RifEclipseSummaryAddress& address)
|
||||
{
|
||||
m_curveVariable->setAddress(address);
|
||||
|
||||
m_summaryFilter->updateFromAddress(address);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -78,8 +78,112 @@ RimSummaryFilter::~RimSummaryFilter()
|
||||
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString cellIJKString(int cellI, int cellJ, int cellK)
|
||||
{
|
||||
QString ijkString;
|
||||
if (cellI >= 0 && cellJ >= 0 && cellK >= 0)
|
||||
{
|
||||
ijkString = QString::number(cellI) + ", " + QString::number(cellJ) + ", " + QString::number(cellK);
|
||||
}
|
||||
|
||||
return ijkString;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimSummaryFilter::updateFromAddress(const RifEclipseSummaryAddress& address)
|
||||
{
|
||||
RifEclipseSummaryAddress::SummaryVarCategory category = address.category();
|
||||
|
||||
m_filterQuantityName = QString::fromStdString(address.quantityName());
|
||||
|
||||
switch (category)
|
||||
{
|
||||
case RifEclipseSummaryAddress::SUMMARY_INVALID:
|
||||
m_filterType = SUM_FILTER_VAR_STRING;
|
||||
break;
|
||||
|
||||
case RifEclipseSummaryAddress::SUMMARY_FIELD:
|
||||
m_filterType = SUM_FILTER_FIELD;
|
||||
break;
|
||||
|
||||
case RifEclipseSummaryAddress::SUMMARY_AQUIFER:
|
||||
m_filterType = SUM_FILTER_AQUIFER;
|
||||
break;
|
||||
|
||||
case RifEclipseSummaryAddress::SUMMARY_NETWORK:
|
||||
m_filterType = SUM_FILTER_NETWORK;
|
||||
break;
|
||||
|
||||
case RifEclipseSummaryAddress::SUMMARY_MISC:
|
||||
m_filterType = SUM_FILTER_MISC;
|
||||
break;
|
||||
|
||||
case RifEclipseSummaryAddress::SUMMARY_REGION:
|
||||
m_filterType = SUM_FILTER_REGION;
|
||||
m_regionNumberFilter= QString("%1").arg(address.regionNumber());
|
||||
break;
|
||||
|
||||
case RifEclipseSummaryAddress::SUMMARY_REGION_2_REGION:
|
||||
m_filterType = SUM_FILTER_REGION_2_REGION;
|
||||
m_regionNumberFilter = QString("%1").arg(address.regionNumber());
|
||||
m_regionNumber2Filter = QString("%1").arg(address.regionNumber2());
|
||||
break;
|
||||
|
||||
case RifEclipseSummaryAddress::SUMMARY_WELL_GROUP:
|
||||
m_filterType = SUM_FILTER_WELL_GROUP;
|
||||
m_wellGroupNameFilter = QString::fromStdString(address.wellGroupName());
|
||||
break;
|
||||
|
||||
case RifEclipseSummaryAddress::SUMMARY_WELL:
|
||||
m_filterType = SUM_FILTER_WELL;
|
||||
m_wellNameFilter = QString::fromStdString(address.wellName());
|
||||
break;
|
||||
|
||||
case RifEclipseSummaryAddress::SUMMARY_WELL_COMPLETION:
|
||||
m_filterType = SUM_FILTER_WELL_COMPLETION;
|
||||
m_wellNameFilter = QString::fromStdString(address.wellName());
|
||||
m_cellIJKFilter = cellIJKString(address.cellI(), address.cellJ(), address.cellK());
|
||||
break;
|
||||
|
||||
case RifEclipseSummaryAddress::SUMMARY_WELL_LGR:
|
||||
m_filterType = SUM_FILTER_WELL_LGR;
|
||||
m_wellNameFilter= QString::fromStdString(address.wellName());
|
||||
m_lgrNameFilter = QString::fromStdString(address.lgrName());
|
||||
break;
|
||||
|
||||
case RifEclipseSummaryAddress::SUMMARY_WELL_COMPLETION_LGR:
|
||||
m_filterType = SUM_FILTER_WELL_COMPLETION_LGR;
|
||||
m_wellNameFilter = QString::fromStdString(address.wellName());
|
||||
m_lgrNameFilter = QString::fromStdString(address.lgrName());
|
||||
m_cellIJKFilter = cellIJKString(address.cellI(), address.cellJ(), address.cellK());
|
||||
break;
|
||||
|
||||
case RifEclipseSummaryAddress::SUMMARY_WELL_SEGMENT:
|
||||
m_filterType = SUM_FILTER_WELL_SEGMENT;
|
||||
m_wellNameFilter = QString::fromStdString(address.wellName());
|
||||
m_wellSegmentNumberFilter = QString("%1").arg(address.wellSegmentNumber());
|
||||
break;
|
||||
|
||||
case RifEclipseSummaryAddress::SUMMARY_BLOCK:
|
||||
m_filterType = SUM_FILTER_BLOCK;
|
||||
m_cellIJKFilter = cellIJKString(address.cellI(), address.cellJ(), address.cellK());
|
||||
break;
|
||||
|
||||
case RifEclipseSummaryAddress::SUMMARY_BLOCK_LGR:
|
||||
m_filterType = SUM_FILTER_BLOCK_LGR;
|
||||
m_lgrNameFilter = QString::fromStdString(address.lgrName());
|
||||
m_cellIJKFilter = cellIJKString(address.cellI(), address.cellJ(), address.cellK());
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
bool isNumberMatch(QString numericalFilterString, int number)
|
||||
{
|
||||
@ -119,11 +223,7 @@ bool isIJKMatch(QString filterString, int cellI, int cellJ, int cellK)
|
||||
else return false;
|
||||
}
|
||||
|
||||
QString ijkString;
|
||||
if(cellI >= 0 && cellJ >= 0 && cellK >= 0)
|
||||
{
|
||||
ijkString = QString::number(cellI) + ", " + QString::number(cellJ) + ", " + QString::number(cellK);
|
||||
}
|
||||
QString ijkString = cellIJKString(cellI, cellJ, cellK);
|
||||
|
||||
// Todo: Ranges, and lists
|
||||
QRegExp searcher(filterString, Qt::CaseInsensitive, QRegExp::WildcardUnix);
|
||||
|
@ -17,9 +17,11 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "RifEclipseSummaryAddress.h"
|
||||
|
||||
#include "cafPdmField.h"
|
||||
#include "cafPdmObject.h"
|
||||
#include "RifEclipseSummaryAddress.h"
|
||||
|
||||
class RimSummaryFilter: public caf::PdmObject
|
||||
{
|
||||
@ -49,18 +51,22 @@ public:
|
||||
RimSummaryFilter();
|
||||
virtual ~RimSummaryFilter();
|
||||
|
||||
bool isIncludedByFilter(const RifEclipseSummaryAddress& addr) const;
|
||||
void updateFromAddress(const RifEclipseSummaryAddress& address);
|
||||
void setCompleteVarStringFilter(const QString& stringFilter);
|
||||
|
||||
void setCompleteVarStringFilter(const QString& stringFilter);
|
||||
bool isIncludedByFilter(const RifEclipseSummaryAddress& addr) const;
|
||||
|
||||
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
|
||||
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
|
||||
|
||||
private:
|
||||
friend class RimSummaryCurve;
|
||||
friend class RimSummaryCurveFilter;
|
||||
|
||||
static bool isSumVarTypeMatchingFilterType(SummaryFilterType sumFilterType, RifEclipseSummaryAddress::SummaryVarCategory sumVarType);
|
||||
static bool isSumVarTypeMatchingFilterType(SummaryFilterType sumFilterType, RifEclipseSummaryAddress::SummaryVarCategory sumVarType);
|
||||
|
||||
virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override;
|
||||
|
||||
private:
|
||||
caf::PdmField<caf::AppEnum<SummaryFilterType> >
|
||||
m_filterType;
|
||||
caf::PdmField<QString> m_completeVarStringFilter;
|
||||
@ -73,7 +79,4 @@ private:
|
||||
caf::PdmField<QString> m_wellSegmentNumberFilter;
|
||||
caf::PdmField<QString> m_lgrNameFilter;
|
||||
caf::PdmField<QString> m_cellIJKFilter;
|
||||
|
||||
virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override;
|
||||
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user