From 336828e48d9559809d25409aee83c5e025b924a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacob=20St=C3=B8ren?= Date: Tue, 7 Jun 2016 15:12:14 +0200 Subject: [PATCH] #755 WIP: Started to adapt to using the smspec node from eclipse. Established Rim prototype of "filter" concept for summary variables --- .../RifEclipseSummaryAddress.cpp | 24 +- .../FileInterface/RifEclipseSummaryAddress.h | 40 ++- .../FileInterface/RifEclipseSummaryTools.cpp | 2 +- .../ProjectDataModel/RimSummaryCurve.cpp | 249 +++++++++++++++--- .../ProjectDataModel/RimSummaryCurve.h | 72 ++++- 5 files changed, 326 insertions(+), 61 deletions(-) diff --git a/ApplicationCode/FileInterface/RifEclipseSummaryAddress.cpp b/ApplicationCode/FileInterface/RifEclipseSummaryAddress.cpp index 9e983e0a5c..fd3dc92c11 100644 --- a/ApplicationCode/FileInterface/RifEclipseSummaryAddress.cpp +++ b/ApplicationCode/FileInterface/RifEclipseSummaryAddress.cpp @@ -88,7 +88,7 @@ std::string RifEclipseSummaryAddress::categoryName(SummaryVarCategory category) case RifEclipseSummaryAddress::SUMMARY_WELL_COMPLETION: name = "Completion"; break; - case RifEclipseSummaryAddress::SUMMARY_GROUP: + case RifEclipseSummaryAddress::SUMMARY_WELL_GROUP: name = "Group"; break; case RifEclipseSummaryAddress::SUMMARY_FIELD: @@ -106,13 +106,13 @@ std::string RifEclipseSummaryAddress::categoryName(SummaryVarCategory category) case RifEclipseSummaryAddress::SUMMARY_BLOCK_LGR: name = "LGR Block"; break; - case RifEclipseSummaryAddress::SUMMARY_AQUIFIER: + case RifEclipseSummaryAddress::SUMMARY_AQUIFER: name = "Aquifier"; break; - case RifEclipseSummaryAddress::SUMMARY_SEGMENT: + case RifEclipseSummaryAddress::SUMMARY_WELL_SEGMENT: name = "Segment"; break; - case RifEclipseSummaryAddress::SUMMARY_SEGMENT_RIVER: + case RifEclipseSummaryAddress::SUMMARY_WELL_SEGMENT_RIVER: name = "Segment River"; break; default: @@ -194,7 +194,7 @@ std::string RifEclipseSummaryAddress::prefixForCategory(SummaryVarCategory categ case RifEclipseSummaryAddress::SUMMARY_WELL_COMPLETION: prefix = "C"; break; - case RifEclipseSummaryAddress::SUMMARY_GROUP: + case RifEclipseSummaryAddress::SUMMARY_WELL_GROUP: prefix = "G"; break; case RifEclipseSummaryAddress::SUMMARY_FIELD: @@ -211,13 +211,13 @@ std::string RifEclipseSummaryAddress::prefixForCategory(SummaryVarCategory categ case RifEclipseSummaryAddress::SUMMARY_BLOCK_LGR: prefix = "LB"; break; - case RifEclipseSummaryAddress::SUMMARY_AQUIFIER: + case RifEclipseSummaryAddress::SUMMARY_AQUIFER: prefix = "A"; break; - case RifEclipseSummaryAddress::SUMMARY_SEGMENT: + case RifEclipseSummaryAddress::SUMMARY_WELL_SEGMENT: prefix = "S"; break; - case RifEclipseSummaryAddress::SUMMARY_SEGMENT_RIVER: + case RifEclipseSummaryAddress::SUMMARY_WELL_SEGMENT_RIVER: prefix = "SR"; break; default: @@ -240,7 +240,7 @@ RifEclipseSummaryAddress::SummaryVarCategory RifEclipseSummaryAddress::categoryF if (twoFirstChars == "SR") { - category = RifEclipseSummaryAddress::SUMMARY_SEGMENT_RIVER; + category = RifEclipseSummaryAddress::SUMMARY_WELL_SEGMENT_RIVER; } else if (twoFirstChars == "LB") { @@ -258,7 +258,7 @@ RifEclipseSummaryAddress::SummaryVarCategory RifEclipseSummaryAddress::categoryF category = RifEclipseSummaryAddress::SUMMARY_WELL_COMPLETION; break; case 'G': - category = RifEclipseSummaryAddress::SUMMARY_GROUP; + category = RifEclipseSummaryAddress::SUMMARY_WELL_GROUP; break; case 'F': category = RifEclipseSummaryAddress::SUMMARY_FIELD; @@ -270,10 +270,10 @@ RifEclipseSummaryAddress::SummaryVarCategory RifEclipseSummaryAddress::categoryF category = RifEclipseSummaryAddress::SUMMARY_BLOCK; break; case 'A': - category = RifEclipseSummaryAddress::SUMMARY_AQUIFIER; + category = RifEclipseSummaryAddress::SUMMARY_AQUIFER; break; case 'S': - category = RifEclipseSummaryAddress::SUMMARY_SEGMENT; + category = RifEclipseSummaryAddress::SUMMARY_WELL_SEGMENT; break; default: break; diff --git a/ApplicationCode/FileInterface/RifEclipseSummaryAddress.h b/ApplicationCode/FileInterface/RifEclipseSummaryAddress.h index ff3cf8bafe..2b12155083 100644 --- a/ApplicationCode/FileInterface/RifEclipseSummaryAddress.h +++ b/ApplicationCode/FileInterface/RifEclipseSummaryAddress.h @@ -32,22 +32,28 @@ public: // Based on list in ecl_smspec.c and list of types taken from Eclipse Reference Manual ecl_rm_2011.1.pdf enum SummaryVarCategory { - SUMMARY_WELL, // W - SUMMARY_WELL_COMPLETION, // C - SUMMARY_GROUP, // G - SUMMARY_FIELD, // F - SUMMARY_REGION, // R - SUMMARY_MISC, // - SUMMARY_BLOCK, // B - SUMMARY_BLOCK_LGR, // LB - SUMMARY_AQUIFIER, // A - SUMMARY_SEGMENT, // S - SUMMARY_SEGMENT_RIVER // SR + SUMMARY_FIELD, + SUMMARY_AQUIFER, + SUMMARY_NETWORK, + SUMMARY_MISC, + SUMMARY_REGION, + SUMMARY_REGION_2_REGION, + SUMMARY_WELL_GROUP, + SUMMARY_WELL, + SUMMARY_WELL_COMPLETION, + SUMMARY_WELL_LGR, + SUMMARY_WELL_COMPLETION_LGR, + SUMMARY_WELL_SEGMENT, + SUMMARY_WELL_SEGMENT_RIVER, + SUMMARY_BLOCK, + SUMMARY_BLOCK_LGR, }; public: RifEclipseSummaryAddress(const std::string& ertSummaryVarId); RifEclipseSummaryAddress(SummaryVarCategory category, const std::string& simulationItemName, const std::string& quantityName); + + SummaryVarCategory category() const; std::string simulationItemName() const; @@ -67,7 +73,17 @@ private: private: std::string m_ertSummaryVarId; - SummaryVarCategory m_variableCategory; std::string m_simulationItemName; + + SummaryVarCategory m_variableCategory; std::string m_quantityName; + int m_regionNumber; + int m_regionNumber2; + std::string m_wellGroupName; + std::string m_wellName; + int m_wellSegmentNumber; + std::string m_lgrName; + int m_cellI; + int m_cellJ; + int m_cellK; }; diff --git a/ApplicationCode/FileInterface/RifEclipseSummaryTools.cpp b/ApplicationCode/FileInterface/RifEclipseSummaryTools.cpp index 2da05522ae..a56d6af0be 100644 --- a/ApplicationCode/FileInterface/RifEclipseSummaryTools.cpp +++ b/ApplicationCode/FileInterface/RifEclipseSummaryTools.cpp @@ -128,7 +128,7 @@ void RifEclipseSummaryTools::dumpMetaData(RifReaderEclipseSummary* readerEclipse { std::vector addresses = readerEclipseSummary->allResultAddresses(); - for (int category = 0; category < RifEclipseSummaryAddress::SUMMARY_SEGMENT_RIVER; category++) + for (int category = 0; category < RifEclipseSummaryAddress::SUMMARY_WELL_SEGMENT_RIVER; category++) { RifEclipseSummaryAddress::SummaryVarCategory categoryEnum = RifEclipseSummaryAddress::SummaryVarCategory(category); diff --git a/ApplicationCode/ProjectDataModel/RimSummaryCurve.cpp b/ApplicationCode/ProjectDataModel/RimSummaryCurve.cpp index 64b6a05be6..1a45c21020 100644 --- a/ApplicationCode/ProjectDataModel/RimSummaryCurve.cpp +++ b/ApplicationCode/ProjectDataModel/RimSummaryCurve.cpp @@ -35,28 +35,94 @@ #include "RimSummaryCase.h" #include "RigSummaryCaseData.h" +CAF_PDM_SOURCE_INIT(RimSummaryAddress, "SummaryAddress"); + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +RimSummaryAddress::RimSummaryAddress() +{ + +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +RimSummaryAddress::~RimSummaryAddress() +{ + +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimSummaryAddress::setAddress(const RifEclipseSummaryAddress& addr) +{ + +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +RifEclipseSummaryAddress RimSummaryAddress::address() +{ + return RifEclipseSummaryAddress(""); +} + namespace caf { template<> void caf::AppEnum::setUp() { - addItem(RifEclipseSummaryAddress::SUMMARY_WELL, "SUMMARY_WELL", "Well"); - addItem(RifEclipseSummaryAddress::SUMMARY_WELL_COMPLETION, "SUMMARY_WELL_COMPLETION","Completion"); - addItem(RifEclipseSummaryAddress::SUMMARY_GROUP, "SUMMARY_GROUP", "Group"); - addItem(RifEclipseSummaryAddress::SUMMARY_FIELD, "SUMMARY_FIELD", "Field"); - addItem(RifEclipseSummaryAddress::SUMMARY_REGION, "SUMMARY_REGION", "Region"); - addItem(RifEclipseSummaryAddress::SUMMARY_MISC, "SUMMARY_MISC", "Misc"); - addItem(RifEclipseSummaryAddress::SUMMARY_BLOCK, "SUMMARY_BLOCK", "Block"); - addItem(RifEclipseSummaryAddress::SUMMARY_BLOCK_LGR, "SUMMARY_BLOCK_LGR", "LGR Block"); - addItem(RifEclipseSummaryAddress::SUMMARY_AQUIFIER, "SUMMARY_AQUIFIER", "Aquifier"); - addItem(RifEclipseSummaryAddress::SUMMARY_SEGMENT, "SUMMARY_SEGMENT", "Segment"); - addItem(RifEclipseSummaryAddress::SUMMARY_SEGMENT_RIVER, "SUMMARY_SEGMENT_RIVER", "Segment River"); + addItem(RifEclipseSummaryAddress::SUMMARY_FIELD, "SUMMARY_FIELD", "Field"); + addItem(RifEclipseSummaryAddress::SUMMARY_AQUIFER, "SUMMARY_AQUIFER", "Aquifer"); + addItem(RifEclipseSummaryAddress::SUMMARY_NETWORK, "SUMMARY_NETWORK", "Network"); + addItem(RifEclipseSummaryAddress::SUMMARY_MISC, "SUMMARY_MISC", "Misc"); + addItem(RifEclipseSummaryAddress::SUMMARY_REGION, "SUMMARY_REGION", "Region"); + addItem(RifEclipseSummaryAddress::SUMMARY_REGION_2_REGION, "SUMMARY_REGION_2_REGION", "Region-Region"); + addItem(RifEclipseSummaryAddress::SUMMARY_WELL_GROUP, "SUMMARY_WELL_GROUP", "Group"); + addItem(RifEclipseSummaryAddress::SUMMARY_WELL, "SUMMARY_WELL", "Well"); + addItem(RifEclipseSummaryAddress::SUMMARY_WELL_COMPLETION, "SUMMARY_WELL_COMPLETION", "Completion"); + addItem(RifEclipseSummaryAddress::SUMMARY_WELL_COMPLETION_LGR, "SUMMARY_WELL_COMPLETION_LGR", "Lgr-Completion"); + addItem(RifEclipseSummaryAddress::SUMMARY_WELL_LGR, "SUMMARY_WELL_LGR", "Lgr-Well"); + addItem(RifEclipseSummaryAddress::SUMMARY_WELL_SEGMENT, "SUMMARY_SEGMENT", "Segment"); + addItem(RifEclipseSummaryAddress::SUMMARY_WELL_SEGMENT_RIVER, "SUMMARY_SEGMENT_RIVER", "Segment River"); + addItem(RifEclipseSummaryAddress::SUMMARY_BLOCK, "SUMMARY_BLOCK", "Block"); + addItem(RifEclipseSummaryAddress::SUMMARY_BLOCK_LGR, "SUMMARY_BLOCK_LGR", "Lgr-Block"); setDefault(RifEclipseSummaryAddress::SUMMARY_FIELD); } } + +namespace caf +{ + +template<> +void caf::AppEnum::setUp() +{ + addItem(RimSummaryCurve::SUM_FILTER_ANY, "SUM_FILTER_ANY", "Any"); + addItem(RimSummaryCurve::SUM_FILTER_FIELD, "SUM_FILTER_FIELD", "Field"); + addItem(RimSummaryCurve::SUM_FILTER_AQUIFER, "SUM_FILTER_AQUIFER", "Aquifer"); + addItem(RimSummaryCurve::SUM_FILTER_NETWORK, "SUM_FILTER_NETWORK", "Network"); + addItem(RimSummaryCurve::SUM_FILTER_MISC, "SUM_FILTER_MISC", "Misc"); + 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_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_SEGMENT, "SUM_FILTER_SEGMENT", "Segment"); + 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"); + setDefault(RimSummaryCurve::SUM_FILTER_FIELD); +} + +} + CAF_PDM_SOURCE_INIT(RimSummaryCurve, "SummaryCurve"); //-------------------------------------------------------------------------------------------------- @@ -75,17 +141,46 @@ RimSummaryCurve::RimSummaryCurve() CAF_PDM_InitFieldNoDefault(&m_variableName, "SummaryVariableName", "Variable Name", "", "", ""); m_variableName.uiCapability()->setUiEditorTypeName(caf::PdmUiComboBoxEditor::uiEditorTypeName()); - CAF_PDM_InitFieldNoDefault(&m_category,"SummaryVarCategory","Category","","",""); - m_category.xmlCapability()->setIOWritable(false); - m_category.xmlCapability()->setIOReadable(false); + CAF_PDM_InitFieldNoDefault(&m_filterType,"SummaryVarCategory","Category","","",""); + m_filterType.xmlCapability()->setIOWritable(false); + m_filterType.xmlCapability()->setIOReadable(false); - CAF_PDM_InitFieldNoDefault(&m_simulationItemName,"SummaryVarItem","Item","","",""); - m_simulationItemName.xmlCapability()->setIOWritable(false); - m_simulationItemName.xmlCapability()->setIOReadable(false); - - CAF_PDM_InitFieldNoDefault(&m_quantityName,"SummaryVarQuantity","Quantity","","",""); - m_quantityName.xmlCapability()->setIOWritable(false); - m_quantityName.xmlCapability()->setIOReadable(false); + + CAF_PDM_InitFieldNoDefault(&m_filterQuantityName,"SummaryVarQuantity","Quantity","","",""); + m_filterQuantityName.xmlCapability()->setIOWritable(false); + m_filterQuantityName.xmlCapability()->setIOReadable(false); + + CAF_PDM_InitFieldNoDefault(&m_regionNumberFilter ,"SummaryRegionNumber","Region","","",""); + m_regionNumberFilter.xmlCapability()->setIOWritable(false); + m_regionNumberFilter.xmlCapability()->setIOReadable(false); + CAF_PDM_InitFieldNoDefault(&m_regionNumber2Filter ,"SummaryRegionNumber2","Region 2","","",""); + m_regionNumber2Filter.xmlCapability()->setIOWritable(false); + m_regionNumber2Filter.xmlCapability()->setIOReadable(false); + CAF_PDM_InitFieldNoDefault(&m_wellGroupNameFilter, "SummaryWellGroupName", "Well Group", "", "", ""); + m_wellGroupNameFilter.xmlCapability()->setIOWritable(false); + m_wellGroupNameFilter.xmlCapability()->setIOReadable(false); + CAF_PDM_InitFieldNoDefault(&m_wellNameFilter ,"SummaryWellName","Well","","",""); + m_wellNameFilter.xmlCapability()->setIOWritable(false); + m_wellNameFilter.xmlCapability()->setIOReadable(false); + CAF_PDM_InitFieldNoDefault(&m_wellSegmentNumberFilter ,"SummaryWellSegmentNumber","Segment","","",""); + m_wellSegmentNumberFilter.xmlCapability()->setIOWritable(false); + m_wellSegmentNumberFilter.xmlCapability()->setIOReadable(false); + CAF_PDM_InitFieldNoDefault(&m_lgrNameFilter ,"SummaryLgrName","Lgr","","",""); + m_lgrNameFilter.xmlCapability()->setIOWritable(false); + m_lgrNameFilter.xmlCapability()->setIOReadable(false); + CAF_PDM_InitFieldNoDefault(&m_cellIJKFilter ,"SummaryCellIJK","I, J, K","","",""); + m_cellIJKFilter.xmlCapability()->setIOWritable(false); + m_cellIJKFilter.xmlCapability()->setIOReadable(false); + + CAF_PDM_InitFieldNoDefault(&m_uiFilterResultSelection, "FilterResultSelection", "Vectors", "", "", ""); + m_cellIJKFilter.xmlCapability()->setIOWritable(false); + m_cellIJKFilter.xmlCapability()->setIOReadable(false); + m_uiFilterResultSelection.uiCapability()->setUiEditorTypeName(caf::PdmUiListEditor::uiEditorTypeName()); + m_uiFilterResultSelection.uiCapability()->setUiLabelPosition(caf::PdmUiItemInfo::TOP); + + CAF_PDM_InitFieldNoDefault(&m_curveVariable, "SummaryAddress", "SummaryAddress", "", "", ""); + m_curveVariable.uiCapability()->setUiHidden(true); + m_curveVariable = new RimSummaryAddress; updateOptionSensitivity(); } @@ -95,6 +190,7 @@ RimSummaryCurve::RimSummaryCurve() //-------------------------------------------------------------------------------------------------- RimSummaryCurve::~RimSummaryCurve() { + delete m_curveVariable(); } //-------------------------------------------------------------------------------------------------- @@ -163,15 +259,29 @@ QList RimSummaryCurve::calculateValueOptions(const caf:: optionList.push_front(caf::PdmOptionItemInfo("None", QVariant::fromValue(caf::PdmPointer(NULL)))); } } - else if (fieldNeedingOptions == &m_simulationItemName) + else if(fieldNeedingOptions == &m_uiFilterResultSelection) { - RifReaderEclipseSummary* reader = summaryReader(); - if(reader) + if(m_summaryCase) { - const std::vector& addrs = reader->allResultAddresses(); + RifReaderEclipseSummary* reader = summaryReader(); + if(reader) + { + std::vector varNames = reader->variableNames(); + + for(size_t i = 0; i < varNames.size(); i++) + { + std::string name = varNames[i]; + + QString s = QString::fromStdString(name); + optionList.push_back(caf::PdmOptionItemInfo(s, i)); + } + } + + optionList.push_front(caf::PdmOptionItemInfo(RimDefines::undefinedResultName(), -1)); + + if(useOptionsOnly) *useOptionsOnly = true; } } - return optionList; } @@ -222,10 +332,88 @@ void RimSummaryCurve::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& { caf::PdmUiGroup* curveDataGroup = uiOrdering.addNewGroup("Curve Data"); curveDataGroup->add(&m_summaryCase); - curveDataGroup->add(&m_variableName); - //curveDataGroup->add(&m_category); - //curveDataGroup->add(&m_simulationItemName); - //curveDataGroup->add(&m_quantityName); + //curveDataGroup->add(&m_variableName); + caf::PdmUiGroup* curveVarFilterGroup = curveDataGroup->addNewGroup("Filter"); + + curveVarFilterGroup->add(&m_filterType); + curveVarFilterGroup->add(&m_filterQuantityName); + switch (m_filterType()) + { + case SUM_FILTER_ANY: + { + curveVarFilterGroup->add(&m_regionNumberFilter); + curveVarFilterGroup->add(&m_regionNumber2Filter); + curveVarFilterGroup->add(&m_wellGroupNameFilter); + curveVarFilterGroup->add(&m_wellNameFilter); + curveVarFilterGroup->add(&m_wellSegmentNumberFilter); + curveVarFilterGroup->add(&m_lgrNameFilter); + curveVarFilterGroup->add(&m_cellIJKFilter); + } + break; + case SUM_FILTER_REGION: + { + curveVarFilterGroup->add(&m_regionNumberFilter); + } + break; + case SUM_FILTER_REGION_2_REGION: + { + curveVarFilterGroup->add(&m_regionNumberFilter); + curveVarFilterGroup->add(&m_regionNumber2Filter); + + } + break; + case SUM_FILTER_WELL_GROUP: + { + curveVarFilterGroup->add(&m_wellGroupNameFilter); + + } + break; + case SUM_FILTER_WELL: + { + curveVarFilterGroup->add(&m_wellNameFilter); + + } + break; + case SUM_FILTER_WELL_COMPLETION: + { + curveVarFilterGroup->add(&m_wellNameFilter); + curveVarFilterGroup->add(&m_cellIJKFilter); + + } + break; + case SUM_FILTER_WELL_LGR: + { + curveVarFilterGroup->add(&m_wellNameFilter); + curveVarFilterGroup->add(&m_lgrNameFilter); + } + break; + case SUM_FILTER_WELL_COMPLETION_LGR: + { + curveVarFilterGroup->add(&m_wellNameFilter); + curveVarFilterGroup->add(&m_lgrNameFilter); + curveVarFilterGroup->add(&m_cellIJKFilter); + } + break; + case SUM_FILTER_WELL_SEGMENT: + { + curveVarFilterGroup->add(&m_wellNameFilter); + curveVarFilterGroup->add(&m_wellSegmentNumberFilter); + } + break; + case SUM_FILTER_BLOCK: + { + curveVarFilterGroup->add(&m_cellIJKFilter); + } + break; + case SUM_FILTER_BLOCK_LGR: + { + curveVarFilterGroup->add(&m_lgrNameFilter); + curveVarFilterGroup->add(&m_cellIJKFilter); + } + break; + + } + curveDataGroup->add(&m_uiFilterResultSelection); caf::PdmUiGroup* appearanceGroup = uiOrdering.addNewGroup("Appearance"); appearanceGroup->add(&m_curveColor); @@ -295,4 +483,5 @@ void RimSummaryCurve::curveData(std::vector* timeSteps, std::vectorvalues(keyword, values); } + } diff --git a/ApplicationCode/ProjectDataModel/RimSummaryCurve.h b/ApplicationCode/ProjectDataModel/RimSummaryCurve.h index 6b4134c80c..d05cba0bbd 100644 --- a/ApplicationCode/ProjectDataModel/RimSummaryCurve.h +++ b/ApplicationCode/ProjectDataModel/RimSummaryCurve.h @@ -23,6 +23,7 @@ #include "cafPdmObject.h" #include "cafPdmPointer.h" #include "cafPdmPtrField.h" +#include "cafPdmChildField.h" #include "RimPlotCurve.h" #include "RifEclipseSummaryAddress.h" @@ -32,6 +33,33 @@ class RimSummaryCase; class RifReaderEclipseSummary; class RiuLineSegmentQwtPlotCurve; +class RimSummaryAddress: public caf::PdmObject +{ + CAF_PDM_HEADER_INIT; +public: + RimSummaryAddress();; + virtual ~RimSummaryAddress(); + + void setAddress(const RifEclipseSummaryAddress& addr); + RifEclipseSummaryAddress address(); + +private: + + caf::PdmField > + m_category; + caf::PdmField m_quantityName; + caf::PdmField m_regionNumber; + caf::PdmField m_regionNumber2; + caf::PdmField m_wellGroupName; + caf::PdmField m_wellName; + caf::PdmField m_wellSegmentNumber; + caf::PdmField m_lgrName; + caf::PdmField m_cellI; + caf::PdmField m_cellJ; + caf::PdmField m_cellK; + +}; + //================================================================================================== /// /// @@ -46,6 +74,26 @@ public: void setSummaryCase(RimSummaryCase* sumCase); void setVariable(QString varName); + enum SummaryFilterType + { + SUM_FILTER_ANY, + SUM_FILTER_FIELD, + SUM_FILTER_AQUIFER, + SUM_FILTER_NETWORK, + SUM_FILTER_MISC, + SUM_FILTER_REGION, + SUM_FILTER_REGION_2_REGION, + SUM_FILTER_WELL_GROUP, + SUM_FILTER_WELL, + SUM_FILTER_WELL_COMPLETION, + SUM_FILTER_WELL_COMPLETION_LGR, + SUM_FILTER_WELL_LGR, + SUM_FILTER_WELL_SEGMENT, + SUM_FILTER_WELL_SEGMENT_RIVER, + SUM_FILTER_BLOCK, + SUM_FILTER_BLOCK_LGR, + }; + protected: // RimPlotCurve overrides @@ -65,12 +113,24 @@ private: // Fields caf::PdmPtrField m_summaryCase; - caf::PdmField m_variableName; + caf::PdmField m_variableName; // Obsolete + + + // Filter fields + caf::PdmField > + m_filterType; + caf::PdmField m_filterQuantityName; + caf::PdmField m_regionNumberFilter; + caf::PdmField m_regionNumber2Filter; + caf::PdmField m_wellGroupNameFilter; + caf::PdmField m_wellNameFilter; + caf::PdmField m_wellSegmentNumberFilter; + caf::PdmField m_lgrNameFilter; + caf::PdmField m_cellIJKFilter; + + caf::PdmField m_uiFilterResultSelection; + caf::PdmChildField m_curveVariable; + - // Ui Fields - caf::PdmField > - m_category; - caf::PdmField m_simulationItemName; - caf::PdmField m_quantityName; };