mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#755 Curve Gui adjusted according to input from CFB. Now working as intended.
This commit is contained in:
parent
7419ad5089
commit
80d7ae7262
@ -41,65 +41,65 @@ std::string RifEclipseSummaryAddress::uiText() const
|
|||||||
{
|
{
|
||||||
case RifEclipseSummaryAddress::SUMMARY_REGION:
|
case RifEclipseSummaryAddress::SUMMARY_REGION:
|
||||||
{
|
{
|
||||||
text += ", R: " + std::to_string(this->regionNumber());
|
text += ":" + std::to_string(this->regionNumber());
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case RifEclipseSummaryAddress::SUMMARY_REGION_2_REGION:
|
case RifEclipseSummaryAddress::SUMMARY_REGION_2_REGION:
|
||||||
{
|
{
|
||||||
text += ", R1: " + std::to_string(this->regionNumber());
|
text += ":" + std::to_string(this->regionNumber());
|
||||||
text += ", R2: " + std::to_string(this->regionNumber2());
|
text += ":" + std::to_string(this->regionNumber2());
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case RifEclipseSummaryAddress::SUMMARY_WELL_GROUP:
|
case RifEclipseSummaryAddress::SUMMARY_WELL_GROUP:
|
||||||
{
|
{
|
||||||
text += ", G:" + this->wellGroupName();
|
text += ":" + this->wellGroupName();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case RifEclipseSummaryAddress::SUMMARY_WELL:
|
case RifEclipseSummaryAddress::SUMMARY_WELL:
|
||||||
{
|
{
|
||||||
text += ", W:" + this->wellName();
|
text += ":" + this->wellName();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case RifEclipseSummaryAddress::SUMMARY_WELL_COMPLETION:
|
case RifEclipseSummaryAddress::SUMMARY_WELL_COMPLETION:
|
||||||
{
|
{
|
||||||
text += ", W:" + this->wellName();
|
text += ":" + this->wellName();
|
||||||
text += ", IJK: " + std::to_string(this->cellI()) + ", "
|
text += ":" + std::to_string(this->cellI()) + ", "
|
||||||
+ std::to_string(this->cellJ()) + ", "
|
+ std::to_string(this->cellJ()) + ", "
|
||||||
+ std::to_string(this->cellK());
|
+ std::to_string(this->cellK());
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case RifEclipseSummaryAddress::SUMMARY_WELL_LGR:
|
case RifEclipseSummaryAddress::SUMMARY_WELL_LGR:
|
||||||
{
|
{
|
||||||
text += ", W:" + this->wellName();
|
text += ":" + this->wellName();
|
||||||
text += ", LGR:" + this->lgrName();
|
text += ":" + this->lgrName();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case RifEclipseSummaryAddress::SUMMARY_WELL_COMPLETION_LGR:
|
case RifEclipseSummaryAddress::SUMMARY_WELL_COMPLETION_LGR:
|
||||||
{
|
{
|
||||||
text += ", W:" + this->wellName();
|
text += ":" + this->wellName();
|
||||||
text += ", LGR:" + this->lgrName();
|
text += ":" + this->lgrName();
|
||||||
text += ", IJK: " + std::to_string(this->cellI()) + ", "
|
text += ":" + std::to_string(this->cellI()) + ", "
|
||||||
+ std::to_string(this->cellJ()) + ", "
|
+ std::to_string(this->cellJ()) + ", "
|
||||||
+ std::to_string(this->cellK());
|
+ std::to_string(this->cellK());
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case RifEclipseSummaryAddress::SUMMARY_WELL_SEGMENT:
|
case RifEclipseSummaryAddress::SUMMARY_WELL_SEGMENT:
|
||||||
{
|
{
|
||||||
text += ", W:" + this->wellName();
|
text += ":" + this->wellName();
|
||||||
text += ", S: " + std::to_string(this->wellSegmentNumber());
|
text += ":" + std::to_string(this->wellSegmentNumber());
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case RifEclipseSummaryAddress::SUMMARY_BLOCK:
|
case RifEclipseSummaryAddress::SUMMARY_BLOCK:
|
||||||
{
|
{
|
||||||
text += ", IJK: " + std::to_string(this->cellI()) + ", "
|
text += ":" + std::to_string(this->cellI()) + ", "
|
||||||
+ std::to_string(this->cellJ()) + ", "
|
+ std::to_string(this->cellJ()) + ", "
|
||||||
+ std::to_string(this->cellK());
|
+ std::to_string(this->cellK());
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case RifEclipseSummaryAddress::SUMMARY_BLOCK_LGR:
|
case RifEclipseSummaryAddress::SUMMARY_BLOCK_LGR:
|
||||||
{
|
{
|
||||||
text += ", LGR:" + this->lgrName();
|
text += ":" + this->lgrName();
|
||||||
text += ", IJK: " + std::to_string(this->cellI()) + ", "
|
text += ":" + std::to_string(this->cellI()) + ", "
|
||||||
+ std::to_string(this->cellJ()) + ", "
|
+ std::to_string(this->cellJ()) + ", "
|
||||||
+ std::to_string(this->cellK());
|
+ std::to_string(this->cellK());
|
||||||
}
|
}
|
||||||
|
@ -252,7 +252,7 @@ bool RifReaderEclipseSummary::values(const RifEclipseSummaryAddress& resultAddre
|
|||||||
values->push_back(value);
|
values->push_back(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
@ -132,23 +132,23 @@ namespace caf
|
|||||||
template<>
|
template<>
|
||||||
void caf::AppEnum<RimSummaryCurve::SummaryFilterType>::setUp()
|
void caf::AppEnum<RimSummaryCurve::SummaryFilterType>::setUp()
|
||||||
{
|
{
|
||||||
addItem(RimSummaryCurve::SUM_FILTER_ANY, "SUM_FILTER_ANY", "Any");
|
addItem(RimSummaryCurve::SUM_FILTER_VAR_STRING, "SUM_FILTER_VAR_STRING", "Concatenated Variable Text");
|
||||||
addItem(RimSummaryCurve::SUM_FILTER_FIELD, "SUM_FILTER_FIELD", "Field");
|
addItem(RimSummaryCurve::SUM_FILTER_FIELD, "SUM_FILTER_FIELD", "Field");
|
||||||
addItem(RimSummaryCurve::SUM_FILTER_AQUIFER, "SUM_FILTER_AQUIFER", "Aquifer");
|
addItem(RimSummaryCurve::SUM_FILTER_WELL, "SUM_FILTER_WELL", "Well");
|
||||||
addItem(RimSummaryCurve::SUM_FILTER_NETWORK, "SUM_FILTER_NETWORK", "Network");
|
addItem(RimSummaryCurve::SUM_FILTER_WELL_GROUP, "SUM_FILTER_WELL_GROUP", "Group");
|
||||||
addItem(RimSummaryCurve::SUM_FILTER_MISC, "SUM_FILTER_MISC", "Misc");
|
addItem(RimSummaryCurve::SUM_FILTER_WELL_COMPLETION, "SUM_FILTER_WELL_COMPLETION", "Completion");
|
||||||
|
addItem(RimSummaryCurve::SUM_FILTER_WELL_SEGMENT, "SUM_FILTER_SEGMENT", "Segment");
|
||||||
|
addItem(RimSummaryCurve::SUM_FILTER_BLOCK, "SUM_FILTER_BLOCK", "Block");
|
||||||
addItem(RimSummaryCurve::SUM_FILTER_REGION, "SUM_FILTER_REGION", "Region");
|
addItem(RimSummaryCurve::SUM_FILTER_REGION, "SUM_FILTER_REGION", "Region");
|
||||||
addItem(RimSummaryCurve::SUM_FILTER_REGION_2_REGION, "SUM_FILTER_REGION_2_REGION", "Region-Region");
|
addItem(RimSummaryCurve::SUM_FILTER_REGION_2_REGION, "SUM_FILTER_REGION_2_REGION", "Region-Region");
|
||||||
addItem(RimSummaryCurve::SUM_FILTER_WELL_GROUP, "SUM_FILTER_WELL_GROUP", "Group");
|
|
||||||
addItem(RimSummaryCurve::SUM_FILTER_WELL, "SUM_FILTER_WELL", "Well");
|
|
||||||
addItem(RimSummaryCurve::SUM_FILTER_WELL_COMPLETION, "SUM_FILTER_WELL_COMPLETION", "Completion");
|
|
||||||
addItem(RimSummaryCurve::SUM_FILTER_WELL_COMPLETION_LGR, "SUM_FILTER_WELL_COMPLETION_LGR", "Lgr-Completion");
|
|
||||||
addItem(RimSummaryCurve::SUM_FILTER_WELL_LGR, "SUM_FILTER_WELL_LGR", "Lgr-Well");
|
addItem(RimSummaryCurve::SUM_FILTER_WELL_LGR, "SUM_FILTER_WELL_LGR", "Lgr-Well");
|
||||||
addItem(RimSummaryCurve::SUM_FILTER_WELL_SEGMENT, "SUM_FILTER_SEGMENT", "Segment");
|
addItem(RimSummaryCurve::SUM_FILTER_WELL_COMPLETION_LGR, "SUM_FILTER_WELL_COMPLETION_LGR", "Lgr-Completion");
|
||||||
addItem(RimSummaryCurve::SUM_FILTER_WELL_SEGMENT_RIVER, "SUM_FILTER_SEGMENT_RIVER", "Segment River");
|
|
||||||
addItem(RimSummaryCurve::SUM_FILTER_BLOCK, "SUM_FILTER_BLOCK", "Block");
|
|
||||||
addItem(RimSummaryCurve::SUM_FILTER_BLOCK_LGR, "SUM_FILTER_BLOCK_LGR", "Lgr-Block");
|
addItem(RimSummaryCurve::SUM_FILTER_BLOCK_LGR, "SUM_FILTER_BLOCK_LGR", "Lgr-Block");
|
||||||
setDefault(RimSummaryCurve::SUM_FILTER_FIELD);
|
addItem(RimSummaryCurve::SUM_FILTER_MISC, "SUM_FILTER_MISC", "Misc");
|
||||||
|
addItem(RimSummaryCurve::SUM_FILTER_AQUIFER, "SUM_FILTER_AQUIFER", "Aquifer");
|
||||||
|
addItem(RimSummaryCurve::SUM_FILTER_NETWORK, "SUM_FILTER_NETWORK", "Network");
|
||||||
|
addItem(RimSummaryCurve::SUM_FILTER_ANY, "SUM_FILTER_ANY", "Any");
|
||||||
|
setDefault(RimSummaryCurve::SUM_FILTER_VAR_STRING);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -162,49 +162,55 @@ RimSummaryCurve::RimSummaryCurve()
|
|||||||
{
|
{
|
||||||
CAF_PDM_InitObject("Summary Curve", ":/WellLogCurve16x16.png", "", "");
|
CAF_PDM_InitObject("Summary Curve", ":/WellLogCurve16x16.png", "", "");
|
||||||
|
|
||||||
CAF_PDM_InitFieldNoDefault(&m_summaryCase, "SummaryCase", "Summary Case", "", "", "");
|
CAF_PDM_InitFieldNoDefault(&m_summaryCase, "SummaryCase", "Case", "", "", "");
|
||||||
m_summaryCase.uiCapability()->setUiChildrenHidden(true);
|
m_summaryCase.uiCapability()->setUiChildrenHidden(true);
|
||||||
|
|
||||||
// TODO: Implement setUiTreeHidden
|
CAF_PDM_InitFieldNoDefault(&m_selectedVariableDisplayField, "SelectedVariableDisplayVar", "Variable", "", "", "");
|
||||||
//m_eclipseCase.uiCapability()->setUiHidden(true);
|
m_selectedVariableDisplayField.xmlCapability()->setIOWritable(false);
|
||||||
|
m_selectedVariableDisplayField.xmlCapability()->setIOReadable(false);
|
||||||
|
m_selectedVariableDisplayField.uiCapability()->setUiReadOnly(true);
|
||||||
|
|
||||||
CAF_PDM_InitFieldNoDefault(&m_filterType,"SummaryVarCategory","Category","","","");
|
CAF_PDM_InitFieldNoDefault(&m_filterType,"SummaryFilterType","Filter Type","","","");
|
||||||
m_filterType.xmlCapability()->setIOWritable(false);
|
m_filterType.xmlCapability()->setIOWritable(false);
|
||||||
m_filterType.xmlCapability()->setIOReadable(false);
|
m_filterType.xmlCapability()->setIOReadable(false);
|
||||||
|
|
||||||
|
CAF_PDM_InitFieldNoDefault(&m_completeVarStringFilter, "SummaryCompleteVarStringFilter", "Filter", "", "", "");
|
||||||
CAF_PDM_InitFieldNoDefault(&m_filterQuantityName,"SummaryVarQuantity","Quantity","","","");
|
m_completeVarStringFilter.xmlCapability()->setIOWritable(false);
|
||||||
|
m_completeVarStringFilter.xmlCapability()->setIOReadable(false);
|
||||||
|
|
||||||
|
CAF_PDM_InitFieldNoDefault(&m_filterQuantityName,"SummaryVarQuantityFilter","Quantity","","","");
|
||||||
m_filterQuantityName.xmlCapability()->setIOWritable(false);
|
m_filterQuantityName.xmlCapability()->setIOWritable(false);
|
||||||
m_filterQuantityName.xmlCapability()->setIOReadable(false);
|
m_filterQuantityName.xmlCapability()->setIOReadable(false);
|
||||||
|
|
||||||
CAF_PDM_InitFieldNoDefault(&m_regionNumberFilter ,"SummaryRegionNumber","Region","","","");
|
CAF_PDM_InitFieldNoDefault(&m_regionNumberFilter ,"SummaryRegionNumberFilter","Region","","","");
|
||||||
m_regionNumberFilter.xmlCapability()->setIOWritable(false);
|
m_regionNumberFilter.xmlCapability()->setIOWritable(false);
|
||||||
m_regionNumberFilter.xmlCapability()->setIOReadable(false);
|
m_regionNumberFilter.xmlCapability()->setIOReadable(false);
|
||||||
CAF_PDM_InitFieldNoDefault(&m_regionNumber2Filter ,"SummaryRegionNumber2","Region 2","","","");
|
CAF_PDM_InitFieldNoDefault(&m_regionNumber2Filter ,"SummaryRegionNumber2Filter","Region 2","","","");
|
||||||
m_regionNumber2Filter.xmlCapability()->setIOWritable(false);
|
m_regionNumber2Filter.xmlCapability()->setIOWritable(false);
|
||||||
m_regionNumber2Filter.xmlCapability()->setIOReadable(false);
|
m_regionNumber2Filter.xmlCapability()->setIOReadable(false);
|
||||||
CAF_PDM_InitFieldNoDefault(&m_wellGroupNameFilter, "SummaryWellGroupName", "Well Group", "", "", "");
|
CAF_PDM_InitFieldNoDefault(&m_wellGroupNameFilter, "SummaryWellGroupNameFilter", "Well Group", "", "", "");
|
||||||
m_wellGroupNameFilter.xmlCapability()->setIOWritable(false);
|
m_wellGroupNameFilter.xmlCapability()->setIOWritable(false);
|
||||||
m_wellGroupNameFilter.xmlCapability()->setIOReadable(false);
|
m_wellGroupNameFilter.xmlCapability()->setIOReadable(false);
|
||||||
CAF_PDM_InitFieldNoDefault(&m_wellNameFilter ,"SummaryWellName","Well","","","");
|
CAF_PDM_InitFieldNoDefault(&m_wellNameFilter ,"SummaryWellNameFilter","Well","","","");
|
||||||
m_wellNameFilter.xmlCapability()->setIOWritable(false);
|
m_wellNameFilter.xmlCapability()->setIOWritable(false);
|
||||||
m_wellNameFilter.xmlCapability()->setIOReadable(false);
|
m_wellNameFilter.xmlCapability()->setIOReadable(false);
|
||||||
CAF_PDM_InitFieldNoDefault(&m_wellSegmentNumberFilter ,"SummaryWellSegmentNumber","Segment","","","");
|
CAF_PDM_InitFieldNoDefault(&m_wellSegmentNumberFilter ,"SummaryWellSegmentNumberFilter","Segment","","","");
|
||||||
m_wellSegmentNumberFilter.xmlCapability()->setIOWritable(false);
|
m_wellSegmentNumberFilter.xmlCapability()->setIOWritable(false);
|
||||||
m_wellSegmentNumberFilter.xmlCapability()->setIOReadable(false);
|
m_wellSegmentNumberFilter.xmlCapability()->setIOReadable(false);
|
||||||
CAF_PDM_InitFieldNoDefault(&m_lgrNameFilter ,"SummaryLgrName","Lgr","","","");
|
CAF_PDM_InitFieldNoDefault(&m_lgrNameFilter ,"SummaryLgrNameFilter","Lgr","","","");
|
||||||
m_lgrNameFilter.xmlCapability()->setIOWritable(false);
|
m_lgrNameFilter.xmlCapability()->setIOWritable(false);
|
||||||
m_lgrNameFilter.xmlCapability()->setIOReadable(false);
|
m_lgrNameFilter.xmlCapability()->setIOReadable(false);
|
||||||
CAF_PDM_InitFieldNoDefault(&m_cellIJKFilter ,"SummaryCellIJK","I, J, K","","","");
|
CAF_PDM_InitFieldNoDefault(&m_cellIJKFilter ,"SummaryCellIJKFilter","I, J, K","","","");
|
||||||
m_cellIJKFilter.xmlCapability()->setIOWritable(false);
|
m_cellIJKFilter.xmlCapability()->setIOWritable(false);
|
||||||
m_cellIJKFilter.xmlCapability()->setIOReadable(false);
|
m_cellIJKFilter.xmlCapability()->setIOReadable(false);
|
||||||
|
|
||||||
CAF_PDM_InitFieldNoDefault(&m_uiFilterResultSelection, "FilterResultSelection", "Vectors", "", "", "");
|
CAF_PDM_InitFieldNoDefault(&m_uiFilterResultSelection, "FilterResultSelection", "Filter Result", "", "", "");
|
||||||
m_cellIJKFilter.xmlCapability()->setIOWritable(false);
|
m_cellIJKFilter.xmlCapability()->setIOWritable(false);
|
||||||
m_cellIJKFilter.xmlCapability()->setIOReadable(false);
|
m_cellIJKFilter.xmlCapability()->setIOReadable(false);
|
||||||
m_uiFilterResultSelection.uiCapability()->setUiEditorTypeName(caf::PdmUiListEditor::uiEditorTypeName());
|
m_uiFilterResultSelection.uiCapability()->setUiEditorTypeName(caf::PdmUiListEditor::uiEditorTypeName());
|
||||||
m_uiFilterResultSelection.uiCapability()->setUiLabelPosition(caf::PdmUiItemInfo::TOP);
|
m_uiFilterResultSelection.uiCapability()->setUiLabelPosition(caf::PdmUiItemInfo::HIDDEN);
|
||||||
m_uiFilterResultSelection.uiCapability()->setAutoAddingOptionFromValue(false);
|
m_uiFilterResultSelection.uiCapability()->setAutoAddingOptionFromValue(false);
|
||||||
|
|
||||||
|
|
||||||
CAF_PDM_InitFieldNoDefault(&m_curveVariable, "SummaryAddress", "SummaryAddress", "", "", "");
|
CAF_PDM_InitFieldNoDefault(&m_curveVariable, "SummaryAddress", "SummaryAddress", "", "", "");
|
||||||
m_curveVariable.uiCapability()->setUiHidden(true);
|
m_curveVariable.uiCapability()->setUiHidden(true);
|
||||||
@ -325,14 +331,21 @@ void RimSummaryCurve::onLoadDataAndUpdate()
|
|||||||
{
|
{
|
||||||
this->RimPlotCurve::updateCurvePresentation();
|
this->RimPlotCurve::updateCurvePresentation();
|
||||||
|
|
||||||
|
m_selectedVariableDisplayField = QString::fromStdString(m_curveVariable->address().uiText());
|
||||||
|
|
||||||
if (isCurveVisible())
|
if (isCurveVisible())
|
||||||
{
|
{
|
||||||
std::vector<QDateTime> dateTimes;
|
std::vector<QDateTime> dateTimes;
|
||||||
std::vector<double> values;
|
std::vector<double> values;
|
||||||
|
|
||||||
this->curveData(&dateTimes, &values);
|
if(this->curveData(&dateTimes, &values))
|
||||||
|
{
|
||||||
m_qwtPlotCurve->setSamplesFromDateAndValues(dateTimes, values);
|
m_qwtPlotCurve->setSamplesFromDateAndValues(dateTimes, values);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_qwtPlotCurve->setSamplesFromDateAndValues(std::vector<QDateTime>(), std::vector<double>());
|
||||||
|
}
|
||||||
|
|
||||||
zoomAllParentPlot();
|
zoomAllParentPlot();
|
||||||
|
|
||||||
@ -345,21 +358,33 @@ void RimSummaryCurve::onLoadDataAndUpdate()
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimSummaryCurve::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
|
void RimSummaryCurve::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
|
||||||
{
|
{
|
||||||
caf::PdmUiGroup* curveDataGroup = uiOrdering.addNewGroup("Curve Data");
|
caf::PdmUiGroup* curveDataGroup = uiOrdering.addNewGroup("Summary Variable");
|
||||||
curveDataGroup->add(&m_summaryCase);
|
curveDataGroup->add(&m_summaryCase);
|
||||||
//curveDataGroup->add(&m_variableName);
|
curveDataGroup->add(&m_selectedVariableDisplayField);
|
||||||
caf::PdmUiGroup* curveVarFilterGroup = curveDataGroup->addNewGroup("Filter");
|
|
||||||
|
|
||||||
curveVarFilterGroup->add(&m_filterType);
|
caf::PdmUiGroup* curveVarSelectionGroup = curveDataGroup->addNewGroup("Variable Selection");
|
||||||
curveVarFilterGroup->add(&m_filterQuantityName);
|
curveVarSelectionGroup->add(&m_filterType);
|
||||||
|
|
||||||
|
caf::PdmUiGroup* curveVarFilterGroup = nullptr;
|
||||||
|
|
||||||
|
if (m_filterType() == SUM_FILTER_VAR_STRING)
|
||||||
|
{
|
||||||
|
curveVarSelectionGroup->add(&m_completeVarStringFilter);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
caf::PdmUiGroup* curveVarFilterGroup = curveVarSelectionGroup->addNewGroup("Filter Settings");
|
||||||
|
|
||||||
|
curveVarFilterGroup->add(&m_filterQuantityName);
|
||||||
|
|
||||||
switch (m_filterType())
|
switch (m_filterType())
|
||||||
{
|
{
|
||||||
case SUM_FILTER_ANY:
|
case SUM_FILTER_ANY:
|
||||||
{
|
{
|
||||||
|
curveVarFilterGroup->add(&m_wellNameFilter);
|
||||||
|
curveVarFilterGroup->add(&m_wellGroupNameFilter);
|
||||||
curveVarFilterGroup->add(&m_regionNumberFilter);
|
curveVarFilterGroup->add(&m_regionNumberFilter);
|
||||||
curveVarFilterGroup->add(&m_regionNumber2Filter);
|
curveVarFilterGroup->add(&m_regionNumber2Filter);
|
||||||
curveVarFilterGroup->add(&m_wellGroupNameFilter);
|
|
||||||
curveVarFilterGroup->add(&m_wellNameFilter);
|
|
||||||
curveVarFilterGroup->add(&m_wellSegmentNumberFilter);
|
curveVarFilterGroup->add(&m_wellSegmentNumberFilter);
|
||||||
curveVarFilterGroup->add(&m_lgrNameFilter);
|
curveVarFilterGroup->add(&m_lgrNameFilter);
|
||||||
curveVarFilterGroup->add(&m_cellIJKFilter);
|
curveVarFilterGroup->add(&m_cellIJKFilter);
|
||||||
@ -428,7 +453,8 @@ void RimSummaryCurve::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering&
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
curveDataGroup->add(&m_uiFilterResultSelection);
|
}
|
||||||
|
curveVarSelectionGroup->add(&m_uiFilterResultSelection);
|
||||||
|
|
||||||
caf::PdmUiGroup* appearanceGroup = uiOrdering.addNewGroup("Appearance");
|
caf::PdmUiGroup* appearanceGroup = uiOrdering.addNewGroup("Appearance");
|
||||||
appearanceGroup->add(&m_curveColor);
|
appearanceGroup->add(&m_curveColor);
|
||||||
@ -441,18 +467,120 @@ void RimSummaryCurve::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering&
|
|||||||
uiOrdering.setForgetRemainingFields(true); // For now.
|
uiOrdering.setForgetRemainingFields(true); // For now.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool isNumberMatch(QString numericalFilterString, int number)
|
||||||
|
{
|
||||||
|
if(numericalFilterString.isEmpty()) return true;
|
||||||
|
|
||||||
|
// Todo: Ranges, and lists
|
||||||
|
int filterNumber = numericalFilterString.toInt();
|
||||||
|
return number == filterNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool isStringMatch(QString filterString, std::string value)
|
||||||
|
{
|
||||||
|
if(filterString.isEmpty()) return true;
|
||||||
|
|
||||||
|
QRegExp searcher(filterString, Qt::CaseInsensitive, QRegExp::WildcardUnix);
|
||||||
|
QString qstrValue = QString::fromStdString(value);
|
||||||
|
return searcher.exactMatch(qstrValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool isIJKMatch(QString filterString, int cellI, int cellJ, int cellK)
|
||||||
|
{
|
||||||
|
if(filterString.isEmpty()) return true;
|
||||||
|
|
||||||
|
// Todo: Ranges, and lists
|
||||||
|
int filterNumber = filterString.toInt();
|
||||||
|
return cellI == filterNumber;
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
bool RimSummaryCurve::isIncludedByFilter(const RifEclipseSummaryAddress& addr)
|
bool RimSummaryCurve::isIncludedByFilter(const RifEclipseSummaryAddress& addr)
|
||||||
{
|
{
|
||||||
if (!isSumVarTypeMatchingFilterType(m_filterType(), addr.category())) return false;
|
if (!isSumVarTypeMatchingFilterType(m_filterType(), addr.category())) return false;
|
||||||
if (!m_filterQuantityName().isEmpty())
|
|
||||||
{
|
if(m_filterType() == SUM_FILTER_VAR_STRING)
|
||||||
QRegExp searcher(m_filterQuantityName(), Qt::CaseInsensitive, QRegExp::WildcardUnix);
|
{
|
||||||
QString addrQuant = QString::fromStdString(addr.quantityName());
|
return isStringMatch(m_completeVarStringFilter(), addr.uiText());
|
||||||
if (!searcher.exactMatch(addrQuant)) return false ;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!isStringMatch(m_filterQuantityName(), addr.quantityName())) return false;
|
||||||
|
|
||||||
|
if(m_filterType() == SUM_FILTER_ANY)
|
||||||
|
{
|
||||||
|
return (isNumberMatch(m_regionNumberFilter(), addr.regionNumber())
|
||||||
|
&& isNumberMatch(m_regionNumber2Filter(), addr.regionNumber2())
|
||||||
|
&& isStringMatch(m_wellGroupNameFilter(), addr.wellGroupName())
|
||||||
|
&& isStringMatch(m_wellNameFilter(), addr.wellName())
|
||||||
|
&& isStringMatch(m_lgrNameFilter(), addr.lgrName())
|
||||||
|
&& isNumberMatch(m_wellSegmentNumberFilter(), addr.wellSegmentNumber())
|
||||||
|
&& isIJKMatch(m_cellIJKFilter(), addr.cellI(), addr.cellJ(), addr.cellK()));
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (addr.category())
|
||||||
|
{
|
||||||
|
case RifEclipseSummaryAddress::SUMMARY_REGION:
|
||||||
|
{
|
||||||
|
return isNumberMatch(m_regionNumberFilter(), addr.regionNumber());
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case RifEclipseSummaryAddress::SUMMARY_REGION_2_REGION:
|
||||||
|
{
|
||||||
|
return isNumberMatch(m_regionNumberFilter(), addr.regionNumber())
|
||||||
|
&& isNumberMatch(m_regionNumber2Filter(), addr.regionNumber2());
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case RifEclipseSummaryAddress::SUMMARY_WELL_GROUP:
|
||||||
|
{
|
||||||
|
return isStringMatch(m_wellGroupNameFilter(), addr.wellGroupName());
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case RifEclipseSummaryAddress::SUMMARY_WELL:
|
||||||
|
{
|
||||||
|
return isStringMatch(m_wellNameFilter(), addr.wellName());
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case RifEclipseSummaryAddress::SUMMARY_WELL_COMPLETION:
|
||||||
|
{
|
||||||
|
return isStringMatch(m_wellNameFilter(), addr.wellName())
|
||||||
|
&& isIJKMatch(m_cellIJKFilter(), addr.cellI(), addr.cellJ(), addr.cellK());
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case RifEclipseSummaryAddress::SUMMARY_WELL_LGR:
|
||||||
|
{
|
||||||
|
return isStringMatch(m_wellNameFilter(), addr.wellName())
|
||||||
|
&& isStringMatch(m_lgrNameFilter(), addr.lgrName());
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case RifEclipseSummaryAddress::SUMMARY_WELL_COMPLETION_LGR:
|
||||||
|
{
|
||||||
|
return isStringMatch(m_wellNameFilter(), addr.wellName())
|
||||||
|
&& isStringMatch(m_lgrNameFilter(), addr.lgrName())
|
||||||
|
&& isIJKMatch(m_cellIJKFilter(), addr.cellI(), addr.cellJ(), addr.cellK());
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case RifEclipseSummaryAddress::SUMMARY_WELL_SEGMENT:
|
||||||
|
{
|
||||||
|
return isStringMatch(m_wellNameFilter(), addr.wellName())
|
||||||
|
&& isNumberMatch(m_wellSegmentNumberFilter(), addr.wellSegmentNumber());
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case RifEclipseSummaryAddress::SUMMARY_BLOCK:
|
||||||
|
{
|
||||||
|
return isIJKMatch(m_cellIJKFilter(), addr.cellI(), addr.cellJ(), addr.cellK());
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case RifEclipseSummaryAddress::SUMMARY_BLOCK_LGR:
|
||||||
|
{
|
||||||
|
return isStringMatch(m_lgrNameFilter(), addr.lgrName())
|
||||||
|
&& isIJKMatch(m_cellIJKFilter(), addr.cellI(), addr.cellJ(),addr.cellK());
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -462,7 +590,7 @@ bool RimSummaryCurve::isIncludedByFilter(const RifEclipseSummaryAddress& addr)
|
|||||||
bool RimSummaryCurve::isSumVarTypeMatchingFilterType(SummaryFilterType sumFilterType, RifEclipseSummaryAddress::SummaryVarCategory sumVarType)
|
bool RimSummaryCurve::isSumVarTypeMatchingFilterType(SummaryFilterType sumFilterType, RifEclipseSummaryAddress::SummaryVarCategory sumVarType)
|
||||||
{
|
{
|
||||||
if (sumVarType == RifEclipseSummaryAddress::SUMMARY_INVALID) return false;
|
if (sumVarType == RifEclipseSummaryAddress::SUMMARY_INVALID) return false;
|
||||||
if (sumFilterType == SUM_FILTER_ANY) return true;
|
if (sumFilterType == SUM_FILTER_ANY || sumFilterType == SUM_FILTER_VAR_STRING) return true;
|
||||||
|
|
||||||
switch(sumVarType)
|
switch(sumVarType)
|
||||||
{
|
{
|
||||||
@ -531,22 +659,19 @@ void RimSummaryCurve::defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrderin
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimSummaryCurve::curveData(std::vector<QDateTime>* timeSteps, std::vector<double>* values)
|
bool RimSummaryCurve::curveData(std::vector<QDateTime>* timeSteps, std::vector<double>* values)
|
||||||
{
|
{
|
||||||
|
CVF_ASSERT(timeSteps && values);
|
||||||
|
|
||||||
RifReaderEclipseSummary* reader = summaryReader();
|
RifReaderEclipseSummary* reader = summaryReader();
|
||||||
|
|
||||||
if (!reader) return;
|
if (!reader) return false;
|
||||||
|
|
||||||
if (timeSteps)
|
std::vector<time_t> times = reader->timeSteps();
|
||||||
{
|
*timeSteps = RifReaderEclipseSummary::fromTimeT(times);
|
||||||
std::vector<time_t> times = reader->timeSteps();
|
|
||||||
*timeSteps = RifReaderEclipseSummary::fromTimeT(times);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (values)
|
if (!times.size()) return false;
|
||||||
{
|
|
||||||
RifEclipseSummaryAddress addr = m_curveVariable()->address();
|
|
||||||
reader->values(addr, values);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
RifEclipseSummaryAddress addr = m_curveVariable()->address();
|
||||||
|
return reader->values(addr, values);
|
||||||
}
|
}
|
||||||
|
@ -46,7 +46,7 @@ public:
|
|||||||
private:
|
private:
|
||||||
|
|
||||||
caf::PdmField<caf::AppEnum<RifEclipseSummaryAddress::SummaryVarCategory> >
|
caf::PdmField<caf::AppEnum<RifEclipseSummaryAddress::SummaryVarCategory> >
|
||||||
m_category;
|
m_category;
|
||||||
caf::PdmField<QString> m_quantityName;
|
caf::PdmField<QString> m_quantityName;
|
||||||
caf::PdmField<int> m_regionNumber;
|
caf::PdmField<int> m_regionNumber;
|
||||||
caf::PdmField<int> m_regionNumber2;
|
caf::PdmField<int> m_regionNumber2;
|
||||||
@ -76,6 +76,7 @@ public:
|
|||||||
|
|
||||||
enum SummaryFilterType
|
enum SummaryFilterType
|
||||||
{
|
{
|
||||||
|
SUM_FILTER_VAR_STRING,
|
||||||
SUM_FILTER_ANY,
|
SUM_FILTER_ANY,
|
||||||
SUM_FILTER_FIELD,
|
SUM_FILTER_FIELD,
|
||||||
SUM_FILTER_AQUIFER,
|
SUM_FILTER_AQUIFER,
|
||||||
@ -89,7 +90,6 @@ public:
|
|||||||
SUM_FILTER_WELL_COMPLETION_LGR,
|
SUM_FILTER_WELL_COMPLETION_LGR,
|
||||||
SUM_FILTER_WELL_LGR,
|
SUM_FILTER_WELL_LGR,
|
||||||
SUM_FILTER_WELL_SEGMENT,
|
SUM_FILTER_WELL_SEGMENT,
|
||||||
SUM_FILTER_WELL_SEGMENT_RIVER,
|
|
||||||
SUM_FILTER_BLOCK,
|
SUM_FILTER_BLOCK,
|
||||||
SUM_FILTER_BLOCK_LGR,
|
SUM_FILTER_BLOCK_LGR,
|
||||||
};
|
};
|
||||||
@ -103,7 +103,7 @@ protected:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
RifReaderEclipseSummary* summaryReader();
|
RifReaderEclipseSummary* summaryReader();
|
||||||
void curveData(std::vector<QDateTime>* timeSteps, std::vector<double>* values);
|
bool curveData(std::vector<QDateTime>* timeSteps, std::vector<double>* values);
|
||||||
|
|
||||||
// Overridden PDM methods
|
// Overridden PDM methods
|
||||||
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
|
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
|
||||||
@ -114,6 +114,7 @@ private:
|
|||||||
// Fields
|
// Fields
|
||||||
caf::PdmPtrField<RimSummaryCase*> m_summaryCase;
|
caf::PdmPtrField<RimSummaryCase*> m_summaryCase;
|
||||||
caf::PdmChildField<RimSummaryAddress*> m_curveVariable;
|
caf::PdmChildField<RimSummaryAddress*> m_curveVariable;
|
||||||
|
caf::PdmField<QString> m_selectedVariableDisplayField;
|
||||||
|
|
||||||
// Filter fields
|
// Filter fields
|
||||||
bool isIncludedByFilter(const RifEclipseSummaryAddress& addr);
|
bool isIncludedByFilter(const RifEclipseSummaryAddress& addr);
|
||||||
@ -121,6 +122,8 @@ private:
|
|||||||
|
|
||||||
caf::PdmField<caf::AppEnum<SummaryFilterType> >
|
caf::PdmField<caf::AppEnum<SummaryFilterType> >
|
||||||
m_filterType;
|
m_filterType;
|
||||||
|
caf::PdmField<QString> m_completeVarStringFilter;
|
||||||
|
|
||||||
caf::PdmField<QString> m_filterQuantityName;
|
caf::PdmField<QString> m_filterQuantityName;
|
||||||
caf::PdmField<QString> m_regionNumberFilter;
|
caf::PdmField<QString> m_regionNumberFilter;
|
||||||
caf::PdmField<QString> m_regionNumber2Filter;
|
caf::PdmField<QString> m_regionNumber2Filter;
|
||||||
@ -131,4 +134,5 @@ private:
|
|||||||
caf::PdmField<QString> m_cellIJKFilter;
|
caf::PdmField<QString> m_cellIJKFilter;
|
||||||
|
|
||||||
caf::PdmField<int> m_uiFilterResultSelection;
|
caf::PdmField<int> m_uiFilterResultSelection;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user