diff --git a/ApplicationCode/FileInterface/CMakeLists_files.cmake b/ApplicationCode/FileInterface/CMakeLists_files.cmake index 28d912a9d2..6dff8aae33 100644 --- a/ApplicationCode/FileInterface/CMakeLists_files.cmake +++ b/ApplicationCode/FileInterface/CMakeLists_files.cmake @@ -34,6 +34,8 @@ ${CEE_CURRENT_LIST_DIR}RifWellPathImporter.h ${CEE_CURRENT_LIST_DIR}RifHdf5ReaderInterface.h ${CEE_CURRENT_LIST_DIR}RifColumnBasedUserData.h ${CEE_CURRENT_LIST_DIR}RifKeywordVectorUserData.h +${CEE_CURRENT_LIST_DIR}RifWellRftAddress.h +${CEE_CURRENT_LIST_DIR}RifWellRftAddressQMetaType.h # HDF5 file reader is directly included in ResInsight main CmakeList.txt #${CEE_CURRENT_LIST_DIR}RifHdf5Reader.h @@ -74,6 +76,7 @@ ${CEE_CURRENT_LIST_DIR}RifWellPathImporter.cpp ${CEE_CURRENT_LIST_DIR}RifHdf5ReaderInterface.cpp ${CEE_CURRENT_LIST_DIR}RifColumnBasedUserData.cpp ${CEE_CURRENT_LIST_DIR}RifKeywordVectorUserData.cpp +${CEE_CURRENT_LIST_DIR}RifWellRftAddress.cpp # HDF5 file reader is directly included in ResInsight main CmakeList.txt diff --git a/ApplicationCode/ProjectDataModel/Flow/RimWellRftAddress.cpp b/ApplicationCode/FileInterface/RifWellRftAddress.cpp similarity index 75% rename from ApplicationCode/ProjectDataModel/Flow/RimWellRftAddress.cpp rename to ApplicationCode/FileInterface/RifWellRftAddress.cpp index 771692b505..dc87dff12a 100644 --- a/ApplicationCode/ProjectDataModel/Flow/RimWellRftAddress.cpp +++ b/ApplicationCode/FileInterface/RifWellRftAddress.cpp @@ -16,7 +16,7 @@ // ///////////////////////////////////////////////////////////////////////////////// -#include "RimWellRftAddress.h" +#include "RifWellRftAddress.h" #include "RimEclipseCase.h" #include "RimWellLogFile.h" @@ -25,32 +25,20 @@ #include #include -namespace caf -{ - - template<> - void caf::AppEnum::setUp() - { - addItem(RftSourceType::RFT, "RFT", "RFT Cases"); - addItem(RftSourceType::GRID, "GRID", "Grid Cases"); - addItem(RftSourceType::OBSERVED, "OBSERVED", "Observed Data"); - setDefault(RftSourceType::NONE); - } -} //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -RimWellRftAddress::RimWellRftAddress() : m_sourceType(RftSourceType::NONE) +RifWellRftAddress::RifWellRftAddress() : m_sourceType(SourceType::NONE) { } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -RimWellRftAddress::RimWellRftAddress(RftSourceType sourceType, RimEclipseCase* eclCase) +RifWellRftAddress::RifWellRftAddress(SourceType sourceType, RimEclipseCase* eclCase) { - CVF_ASSERT(sourceType == RftSourceType::RFT || sourceType == RftSourceType::GRID); + CVF_ASSERT(sourceType == SourceType::RFT || sourceType == SourceType::GRID); CVF_ASSERT(eclCase != nullptr); m_sourceType = sourceType; @@ -60,9 +48,9 @@ RimWellRftAddress::RimWellRftAddress(RftSourceType sourceType, RimEclipseCase* e //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -RimWellRftAddress::RimWellRftAddress(RftSourceType sourceType, RimWellLogFile* wellLogFile) +RifWellRftAddress::RifWellRftAddress(SourceType sourceType, RimWellLogFile* wellLogFile) { - CVF_ASSERT(sourceType == RftSourceType::OBSERVED); + CVF_ASSERT(sourceType == SourceType::OBSERVED); m_sourceType = sourceType; m_wellLogFile = wellLogFile; @@ -71,7 +59,7 @@ RimWellRftAddress::RimWellRftAddress(RftSourceType sourceType, RimWellLogFile* w //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -RftSourceType RimWellRftAddress::sourceType() const +RifWellRftAddress::SourceType RifWellRftAddress::sourceType() const { return m_sourceType; } @@ -79,7 +67,7 @@ RftSourceType RimWellRftAddress::sourceType() const //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -RimEclipseCase* RimWellRftAddress::eclCase() const +RimEclipseCase* RifWellRftAddress::eclCase() const { return m_eclCase; } @@ -87,7 +75,7 @@ RimEclipseCase* RimWellRftAddress::eclCase() const //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -RimWellLogFile* RimWellRftAddress::wellLogFile() const +RimWellLogFile* RifWellRftAddress::wellLogFile() const { return m_wellLogFile; } @@ -95,13 +83,13 @@ RimWellLogFile* RimWellRftAddress::wellLogFile() const //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -QString RimWellRftAddress::sourceTypeUiText(RftSourceType sourceType) +QString RifWellRftAddress::sourceTypeUiText(SourceType sourceType) { switch (sourceType) { - case RftSourceType::RFT: return QString("RFT Cases"); - case RftSourceType::GRID: return QString("Grid Cases"); - case RftSourceType::OBSERVED: return QString("Observed Data"); + case SourceType::RFT: return QString("RFT Cases"); + case SourceType::GRID: return QString("Grid Cases"); + case SourceType::OBSERVED: return QString("Observed Data"); } return QString(); } @@ -109,7 +97,7 @@ QString RimWellRftAddress::sourceTypeUiText(RftSourceType sourceType) //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -bool operator==(const RimWellRftAddress& addr1, const RimWellRftAddress& addr2) +bool operator==(const RifWellRftAddress& addr1, const RifWellRftAddress& addr2) { return addr1.sourceType() == addr2.sourceType() && addr1.eclCase() == addr2.eclCase() @@ -119,7 +107,7 @@ bool operator==(const RimWellRftAddress& addr1, const RimWellRftAddress& addr2) //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -QTextStream& operator << (QTextStream& str, const RimWellRftAddress& addr) +QTextStream& operator << (QTextStream& str, const RifWellRftAddress& addr) { // Not implemented CVF_ASSERT(false); @@ -129,7 +117,7 @@ QTextStream& operator << (QTextStream& str, const RimWellRftAddress& addr) //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -QTextStream& operator >> (QTextStream& str, RimWellRftAddress& source) +QTextStream& operator >> (QTextStream& str, RifWellRftAddress& source) { // Not implemented CVF_ASSERT(false); @@ -139,7 +127,7 @@ QTextStream& operator >> (QTextStream& str, RimWellRftAddress& source) //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -bool operator<(const RimWellRftAddress& addr1, const RimWellRftAddress& addr2) +bool operator<(const RifWellRftAddress& addr1, const RifWellRftAddress& addr2) { return (addr1.m_sourceType < addr2.m_sourceType) || (addr1.m_sourceType == addr2.m_sourceType && diff --git a/ApplicationCode/ProjectDataModel/Flow/RimWellRftAddress.h b/ApplicationCode/FileInterface/RifWellRftAddress.h similarity index 62% rename from ApplicationCode/ProjectDataModel/Flow/RimWellRftAddress.h rename to ApplicationCode/FileInterface/RifWellRftAddress.h index 6737364ab4..a14baad97d 100644 --- a/ApplicationCode/ProjectDataModel/Flow/RimWellRftAddress.h +++ b/ApplicationCode/FileInterface/RifWellRftAddress.h @@ -38,40 +38,39 @@ class RimEclipseCase; /// /// //================================================================================================== -enum class RftSourceType +class RifWellRftAddress { - NONE, - RFT, - GRID, - OBSERVED -}; - -class RimWellRftAddress -{ - public: - RimWellRftAddress(); - RimWellRftAddress(RftSourceType sourceType, RimEclipseCase* eclCase); - RimWellRftAddress(RftSourceType sourceType, RimWellLogFile* wellLogFile = nullptr); + enum SourceType + { + NONE, + RFT, + GRID, + OBSERVED + }; - RftSourceType sourceType() const; + RifWellRftAddress(); + RifWellRftAddress(SourceType sourceType, RimEclipseCase* eclCase); + RifWellRftAddress(SourceType sourceType, RimWellLogFile* wellLogFile = nullptr); + + SourceType sourceType() const; RimEclipseCase* eclCase() const; RimWellLogFile* wellLogFile() const; - static QString sourceTypeUiText(RftSourceType sourceType); + static QString sourceTypeUiText(SourceType sourceType); - friend QTextStream& operator >> (QTextStream& str, RimWellRftAddress& addr); - friend bool operator<(const RimWellRftAddress& addr1, const RimWellRftAddress& addr2); + friend QTextStream& operator >> (QTextStream& str, RifWellRftAddress& addr); + friend bool operator<(const RifWellRftAddress& addr1, const RifWellRftAddress& addr2); private: - RftSourceType m_sourceType; + SourceType m_sourceType; caf::PdmPointer m_eclCase; caf::PdmPointer m_wellLogFile; }; -Q_DECLARE_METATYPE(RimWellRftAddress); +//Q_DECLARE_METATYPE(RifWellRftAddress); -bool operator==(const RimWellRftAddress& addr1, const RimWellRftAddress& addr2); -QTextStream& operator <<(QTextStream& str, const RimWellRftAddress& addr); -QTextStream& operator >> (QTextStream& str, RimWellRftAddress& addr); -bool operator<(const RimWellRftAddress& addr1, const RimWellRftAddress& addr2); \ No newline at end of file +bool operator==(const RifWellRftAddress& addr1, const RifWellRftAddress& addr2); +QTextStream& operator <<(QTextStream& str, const RifWellRftAddress& addr); +QTextStream& operator >> (QTextStream& str, RifWellRftAddress& addr); +bool operator<(const RifWellRftAddress& addr1, const RifWellRftAddress& addr2); \ No newline at end of file diff --git a/ApplicationCode/FileInterface/RifWellRftAddressQMetaType.h b/ApplicationCode/FileInterface/RifWellRftAddressQMetaType.h new file mode 100644 index 0000000000..b342b65921 --- /dev/null +++ b/ApplicationCode/FileInterface/RifWellRftAddressQMetaType.h @@ -0,0 +1,24 @@ +///////////////////////////////////////////////////////////////////////////////// +// +// Copyright (C) Statoil ASA +// +// ResInsight is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY +// WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. +// +// See the GNU General Public License at +// for more details. +// +///////////////////////////////////////////////////////////////////////////////// +#pragma once + +#include +#include "RifWellRftAddress.h" + +Q_DECLARE_METATYPE(RifWellRftAddress); + diff --git a/ApplicationCode/ProjectDataModel/Flow/CMakeLists_files.cmake b/ApplicationCode/ProjectDataModel/Flow/CMakeLists_files.cmake index 5c86380848..b7327e5b9a 100644 --- a/ApplicationCode/ProjectDataModel/Flow/CMakeLists_files.cmake +++ b/ApplicationCode/ProjectDataModel/Flow/CMakeLists_files.cmake @@ -15,7 +15,7 @@ ${CEE_CURRENT_LIST_DIR}RimWellAllocationPlotLegend.h ${CEE_CURRENT_LIST_DIR}RimFlowCharacteristicsPlot.h ${CEE_CURRENT_LIST_DIR}RimWellRftPlot.h ${CEE_CURRENT_LIST_DIR}RimWellPltPlot.h -${CEE_CURRENT_LIST_DIR}RimWellRftAddress.h +${CEE_CURRENT_LIST_DIR}RimRftAddress.h ) set (SOURCE_GROUP_SOURCE_FILES @@ -29,7 +29,7 @@ ${CEE_CURRENT_LIST_DIR}RimWellAllocationPlotLegend.cpp ${CEE_CURRENT_LIST_DIR}RimFlowCharacteristicsPlot.cpp ${CEE_CURRENT_LIST_DIR}RimWellRftPlot.cpp ${CEE_CURRENT_LIST_DIR}RimWellPltPlot.cpp -${CEE_CURRENT_LIST_DIR}RimWellRftAddress.cpp +${CEE_CURRENT_LIST_DIR}RimRftAddress.cpp ) list(APPEND CODE_HEADER_FILES diff --git a/ApplicationCode/ProjectDataModel/Flow/RimRftAddress.cpp b/ApplicationCode/ProjectDataModel/Flow/RimRftAddress.cpp new file mode 100644 index 0000000000..41bc37f4f8 --- /dev/null +++ b/ApplicationCode/ProjectDataModel/Flow/RimRftAddress.cpp @@ -0,0 +1,74 @@ +///////////////////////////////////////////////////////////////////////////////// +// +// Copyright (C) 2017 Statoil ASA +// +// ResInsight is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY +// WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. +// +// See the GNU General Public License at +// for more details. +// +///////////////////////////////////////////////////////////////////////////////// + +#include "RimRftAddress.h" +#include "RimEclipseCase.h" +#include "RimWellLogFile.h" + +#include "cafAppEnum.h" +#include "cvfAssert.h" +#include +#include + +namespace caf +{ + + template<> + void caf::AppEnum::setUp() + { + addItem(RifWellRftAddress::SourceType::RFT, "RFT", "RFT Cases"); + addItem(RifWellRftAddress::SourceType::GRID, "GRID", "Grid Cases"); + addItem(RifWellRftAddress::SourceType::OBSERVED, "OBSERVED", "Observed Data"); + setDefault(RifWellRftAddress::SourceType::NONE); + } +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +CAF_PDM_SOURCE_INIT(RimRftAddress, "RftAddress"); + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +RimRftAddress::RimRftAddress() +{ + CAF_PDM_InitFieldNoDefault(&m_sourceType, "SourceType", "SourceType", "", "", ""); + CAF_PDM_InitFieldNoDefault(&m_eclCase, "EclipseCase", "EclipseCase", "", "", ""); + CAF_PDM_InitFieldNoDefault(&m_wellLogFile, "WellLogFile", "WellLogFile", "", "", ""); +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimRftAddress::setAddress(const RifWellRftAddress& address) +{ + m_sourceType = address.sourceType(); + m_eclCase = address.eclCase(); + m_wellLogFile = address.wellLogFile(); +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +RifWellRftAddress RimRftAddress::address() const +{ + return m_eclCase() != nullptr ? + RifWellRftAddress(m_sourceType(), m_eclCase()) : + RifWellRftAddress(m_sourceType(), m_wellLogFile()); +} diff --git a/ApplicationCode/ProjectDataModel/Flow/RimRftAddress.h b/ApplicationCode/ProjectDataModel/Flow/RimRftAddress.h new file mode 100644 index 0000000000..316e5c4b7a --- /dev/null +++ b/ApplicationCode/ProjectDataModel/Flow/RimRftAddress.h @@ -0,0 +1,60 @@ +///////////////////////////////////////////////////////////////////////////////// +// +// Copyright (C) 2017 Statoil ASA +// +// ResInsight is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY +// WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. +// +// See the GNU General Public License at +// for more details. +// +///////////////////////////////////////////////////////////////////////////////// + +#pragma once + + +#include "RimViewWindow.h" + +#include "cafPdmField.h" +#include "cafPdmObject.h" +#include "cafPdmPtrField.h" +#include "cafPdmPointer.h" + +#include "RifWellRftAddressQMetaType.h" + +#include "cafAppEnum.h" + +#include +#include +#include + +class RimWellLogFile; +class RimEclipseCase; + + +//================================================================================================== +/// +/// +//================================================================================================== +class RimRftAddress : public caf::PdmObject +{ + CAF_PDM_HEADER_INIT; + +public: + + RimRftAddress(); + + void setAddress(const RifWellRftAddress& address); + RifWellRftAddress address() const; + +private: + caf::PdmField > m_sourceType; + caf::PdmPtrField m_eclCase; + caf::PdmPtrField m_wellLogFile; +}; diff --git a/ApplicationCode/ProjectDataModel/Flow/RimWellPltPlot.cpp b/ApplicationCode/ProjectDataModel/Flow/RimWellPltPlot.cpp index fdd2a5deed..66b0f9ebc6 100644 --- a/ApplicationCode/ProjectDataModel/Flow/RimWellPltPlot.cpp +++ b/ApplicationCode/ProjectDataModel/Flow/RimWellPltPlot.cpp @@ -149,7 +149,7 @@ void RimWellPltPlot::deleteViewWidget() //-------------------------------------------------------------------------------------------------- //void RimWellPltPlot::applyCurveAppearance(RimWellLogCurve* newCurve) //{ -// const std::pair& newCurveDef = curveDefFromCurve(newCurve); +// const std::pair& newCurveDef = curveDefFromCurve(newCurve); // // std::vector colorTable; // RiaColorTables::summaryCurveDefaultPaletteColors().color3fArray().toStdVector(&colorTable); @@ -182,7 +182,7 @@ void RimWellPltPlot::deleteViewWidget() // { // if (curve == newCurve) continue; // -// std::pair cDef = curveDefFromCurve(curve); +// std::pair cDef = curveDefFromCurve(curve); // if (cDef.first == newCurveDef.first) // { // currentColor = curve->color(); @@ -253,15 +253,15 @@ void RimWellPltPlot::deleteViewWidget() void RimWellPltPlot::updateSelectedTimeStepsFromSelectedSources() { std::vector newTimeStepsSelections; - std::vector selectedSourcesVector = selectedSources(); - auto selectedSources = std::set(selectedSourcesVector.begin(), selectedSourcesVector.end()); + std::vector selectedSourcesVector = selectedSources(); + auto selectedSources = std::set(selectedSourcesVector.begin(), selectedSourcesVector.end()); for (const QDateTime& timeStep : m_selectedTimeSteps()) { if(m_timeStepsToAddresses.count(timeStep) > 0) { - std::vector intersectVector; - const std::set& addresses = m_timeStepsToAddresses[timeStep]; + std::vector intersectVector; + const std::set& addresses = m_timeStepsToAddresses[timeStep]; std::set_intersection(selectedSources.begin(), selectedSources.end(), addresses.begin(), addresses.end(), std::inserter(intersectVector, intersectVector.end())); if(intersectVector.size() > 0) @@ -340,27 +340,27 @@ std::vector RimWellPltPlot::eclipseCases() const //{ // std::vector> eclCaseTuples = eclipseCasesForWell(m_wellName); // -// std::vector sourcesToSelect; -// std::map> rftTimeStepsMap; -// std::map> observedTimeStepsMap; -// std::map> gridTimeStepsMap; +// std::vector sourcesToSelect; +// std::map> rftTimeStepsMap; +// std::map> observedTimeStepsMap; +// std::map> gridTimeStepsMap; // // for(RimEclipseResultCase* const rftCase : rftCasesFromEclipseCases(eclCaseTuples)) // { -// sourcesToSelect.push_back(RimWellRftAddress(RftSourceType::RFT, rftCase)); +// sourcesToSelect.push_back(RifWellRftAddress(RftSourceType::RFT, rftCase)); // addTimeStepsToMap(rftTimeStepsMap, timeStepsFromRftCase(rftCase)); // } // // for (RimEclipseResultCase* const gridCase : gridCasesFromEclipseCases(eclCaseTuples)) // { -// sourcesToSelect.push_back(RimWellRftAddress(RftSourceType::GRID, gridCase)); +// sourcesToSelect.push_back(RifWellRftAddress(RftSourceType::GRID, gridCase)); // addTimeStepsToMap(gridTimeStepsMap, timeStepsFromGridCase(gridCase)); // } // // std::vector wellLogFiles = wellLogFilesContainingFlow(m_wellName); // if(wellLogFiles.size() > 0) // { -// sourcesToSelect.push_back(RimWellRftAddress(RftSourceType::OBSERVED)); +// sourcesToSelect.push_back(RifWellRftAddress(RftSourceType::OBSERVED)); // for (RimWellLogFile* const wellLogFile : wellLogFiles) // { // addTimeStepsToMap(observedTimeStepsMap, timeStepsFromWellLogFile(wellLogFile)); @@ -370,11 +370,11 @@ std::vector RimWellPltPlot::eclipseCases() const // m_selectedSources = sourcesToSelect; // // std::set timeStepsToSelect; -// for (const std::pair>& dateTimePair : rftTimeStepsMap) +// for (const std::pair>& dateTimePair : rftTimeStepsMap) // { // timeStepsToSelect.insert(dateTimePair.first); // } -// for (const std::pair>& dateTimePair : observedTimeStepsMap) +// for (const std::pair>& dateTimePair : observedTimeStepsMap) // { // timeStepsToSelect.insert(dateTimePair.first); // } @@ -391,26 +391,26 @@ std::vector RimWellPltPlot::eclipseCases() const //-------------------------------------------------------------------------------------------------- void RimWellPltPlot::updateEditorsFromCurves() { -// std::set selectedSources; +// std::set selectedSources; // std::set selectedTimeSteps; -// std::map> selectedTimeStepsMap; +// std::map> selectedTimeStepsMap; // -// for (const std::pair& curveDef : curveDefsFromCurves()) +// for (const std::pair& curveDef : curveDefsFromCurves()) // { // if (curveDef.first.sourceType() == RftSourceType::OBSERVED) -// selectedSources.insert(RimWellRftAddress(RftSourceType::OBSERVED)); +// selectedSources.insert(RifWellRftAddress(RftSourceType::OBSERVED)); // else // selectedSources.insert(curveDef.first); // -// auto newTimeStepMap = std::map> +// auto newTimeStepMap = std::map> // { -// { curveDef.second, std::set { curveDef.first} } +// { curveDef.second, std::set { curveDef.first} } // }; // addTimeStepsToMap(selectedTimeStepsMap, newTimeStepMap); // selectedTimeSteps.insert(curveDef.second); // } // -// m_selectedSources = std::vector(selectedSources.begin(), selectedSources.end()); +// m_selectedSources = std::vector(selectedSources.begin(), selectedSources.end()); // m_selectedTimeSteps = std::vector(selectedTimeSteps.begin(), selectedTimeSteps.end()); // addTimeStepsToMap(m_timeStepsToAddresses, selectedTimeStepsMap); } @@ -441,7 +441,7 @@ void RimWellPltPlot::updateWidgetTitleWindowTitle() void RimWellPltPlot::syncCurvesFromUiSelection() { RimWellLogTrack* plotTrack = m_wellLogPlot->trackByIndex(0); - const std::set>& curveDefs = selectedCurveDefs(); + const std::set>& curveDefs = selectedCurveDefs(); updateCurvesInPlot(curveDefs); } @@ -598,9 +598,9 @@ RimWellPath* RimWellPltPlot::wellPathFromWellLogFile(const RimWellLogFile* wellL //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -//std::map> RimWellPltPlot::timeStepsFromRftCase(RimEclipseResultCase* rftCase) const +//std::map> RimWellPltPlot::timeStepsFromRftCase(RimEclipseResultCase* rftCase) const //{ -// std::map> timeStepsMap; +// std::map> timeStepsMap; // RifReaderEclipseRft* const reader = rftCase->rftReader(); // if (reader != nullptr) // { @@ -608,9 +608,9 @@ RimWellPath* RimWellPltPlot::wellPathFromWellLogFile(const RimWellLogFile* wellL // { // if (timeStepsMap.count(timeStep) == 0) // { -// timeStepsMap.insert(std::make_pair(timeStep, std::set())); +// timeStepsMap.insert(std::make_pair(timeStep, std::set())); // } -// timeStepsMap[timeStep].insert(RimWellRftAddress(RftSourceType::RFT, rftCase)); +// timeStepsMap[timeStep].insert(RifWellRftAddress(RftSourceType::RFT, rftCase)); // } // } // return timeStepsMap; @@ -619,23 +619,23 @@ RimWellPath* RimWellPltPlot::wellPathFromWellLogFile(const RimWellLogFile* wellL //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -//std::map> RimWellPltPlot::timeStepsFromGridCase(RimEclipseCase* gridCase) const +//std::map> RimWellPltPlot::timeStepsFromGridCase(RimEclipseCase* gridCase) const //{ // const RigEclipseCaseData* const eclipseCaseData = gridCase->eclipseCaseData(); // size_t resultIndex = eclipseCaseData != nullptr ? // eclipseCaseData->results(RiaDefines::MATRIX_MODEL)->findScalarResultIndex(RiaDefines::DYNAMIC_NATIVE, PRESSURE_DATA_NAME) : // cvf::UNDEFINED_SIZE_T; // -// std::map> timeStepsMap; +// std::map> timeStepsMap; // if (resultIndex != cvf::UNDEFINED_SIZE_T) // { // for (const QDateTime& timeStep : eclipseCaseData->results(RiaDefines::MATRIX_MODEL)->timeStepDates(resultIndex)) // { // if (timeStepsMap.count(timeStep) == 0) // { -// timeStepsMap.insert(std::make_pair(timeStep, std::set())); +// timeStepsMap.insert(std::make_pair(timeStep, std::set())); // } -// timeStepsMap[timeStep].insert(RimWellRftAddress(RftSourceType::GRID, gridCase)); +// timeStepsMap[timeStep].insert(RifWellRftAddress(RftSourceType::GRID, gridCase)); // } // } // return timeStepsMap; @@ -644,17 +644,17 @@ RimWellPath* RimWellPltPlot::wellPathFromWellLogFile(const RimWellLogFile* wellL //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -std::map > RimWellPltPlot::timeStepsFromWellLogFile(RimWellLogFile* wellLogFile) const +std::map > RimWellPltPlot::timeStepsFromWellLogFile(RimWellLogFile* wellLogFile) const { - std::map > timeStepsMap; + std::map > timeStepsMap; QDateTime timeStep = RiaDateStringParser::parseDateString(wellLogFile->date()); if (timeStepsMap.count(timeStep) == 0) { - timeStepsMap.insert(std::make_pair(timeStep, std::set())); + timeStepsMap.insert(std::make_pair(timeStep, std::set())); } - timeStepsMap[timeStep].insert(RimWellRftAddress(RftSourceType::OBSERVED, wellLogFile)); + timeStepsMap[timeStep].insert(RifWellRftAddress(RifWellRftAddress::OBSERVED, wellLogFile)); return timeStepsMap; } @@ -662,16 +662,16 @@ std::map > RimWellPltPlot::timeStepsFromW //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -std::map> -RimWellPltPlot::adjacentTimeSteps(const std::vector>>& allTimeSteps, - const std::pair>& searchTimeStepPair) +std::map> +RimWellPltPlot::adjacentTimeSteps(const std::vector>>& allTimeSteps, + const std::pair>& searchTimeStepPair) { - std::map> timeStepsMap; + std::map> timeStepsMap; if (allTimeSteps.size() > 0) { auto itr = std::find_if(allTimeSteps.begin(), allTimeSteps.end(), - [searchTimeStepPair](const std::pair>& dt) + [searchTimeStepPair](const std::pair>& dt) { return dt.first > searchTimeStepPair.first; }); @@ -693,9 +693,9 @@ RimWellPltPlot::adjacentTimeSteps(const std::vector>& map, const QDateTime& timeStep) +bool RimWellPltPlot::mapContainsTimeStep(const std::map>& map, const QDateTime& timeStep) { - return std::find_if(map.begin(), map.end(), [timeStep](const std::pair>& pair) + return std::find_if(map.begin(), map.end(), [timeStep](const std::pair>& pair) { return pair.first == timeStep; }) != map.end(); @@ -704,22 +704,22 @@ bool RimWellPltPlot::mapContainsTimeStep(const std::map> RimWellPltPlot::selectedCurveDefs() const +std::set < std::pair> RimWellPltPlot::selectedCurveDefs() const { - std::set> curveDefs; + std::set> curveDefs; //const std::vector>& eclipseCases = eclipseCasesForWell(m_wellName); //const std::vector rftCases = rftCasesFromEclipseCases(eclipseCases); //const std::vector gridCases = gridCasesFromEclipseCases(eclipseCases); for (const QDateTime& timeStep : m_selectedTimeSteps()) { - for (const RimWellRftAddress& addr : selectedSources()) + for (const RifWellRftAddress& addr : selectedSources()) { //if (addr.sourceType() == RftSourceType::RFT) //{ // for (RimEclipseResultCase* const rftCase : rftCases) // { - // const std::map>& timeStepsMap = timeStepsFromRftCase(rftCase); + // const std::map>& timeStepsMap = timeStepsFromRftCase(rftCase); // if (mapContainsTimeStep(timeStepsMap , timeStep)) // { // curveDefs.insert(std::make_pair(addr, timeStep)); @@ -730,7 +730,7 @@ std::set < std::pair> RimWellPltPlot::selectedCurv //{ // for (RimEclipseResultCase* const gridCase : gridCases) // { - // const std::map>& timeStepsMap = timeStepsFromGridCase(gridCase); + // const std::map>& timeStepsMap = timeStepsFromGridCase(gridCase); // if (mapContainsTimeStep(timeStepsMap, timeStep)) // { // curveDefs.insert(std::make_pair(addr, timeStep)); @@ -738,14 +738,14 @@ std::set < std::pair> RimWellPltPlot::selectedCurv // } //} //else - if (addr.sourceType() == RftSourceType::OBSERVED) + if (addr.sourceType() == RifWellRftAddress::OBSERVED) { if (addr.wellLogFile() != nullptr) { - const std::map>& timeStepsMap = timeStepsFromWellLogFile(addr.wellLogFile()); + const std::map>& timeStepsMap = timeStepsFromWellLogFile(addr.wellLogFile()); if (mapContainsTimeStep(timeStepsMap, timeStep)) { - curveDefs.insert(std::make_pair(RimWellRftAddress(RftSourceType::OBSERVED, addr.wellLogFile()), timeStep)); + curveDefs.insert(std::make_pair(RifWellRftAddress(RifWellRftAddress::OBSERVED, addr.wellLogFile()), timeStep)); } } } @@ -757,9 +757,9 @@ std::set < std::pair> RimWellPltPlot::selectedCurv //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -std::set> RimWellPltPlot::curveDefsFromCurves() const +std::set> RimWellPltPlot::curveDefsFromCurves() const { - std::set> curveDefs; + std::set> curveDefs; RimWellLogTrack* const plotTrack = m_wellLogPlot->trackByIndex(0); for (RimWellLogCurve* const curve : plotTrack->curvesVector()) @@ -772,7 +772,7 @@ std::set> RimWellPltPlot::curveDefsFromC //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -std::pair RimWellPltPlot::curveDefFromCurve(const RimWellLogCurve* curve) const +std::pair RimWellPltPlot::curveDefFromCurve(const RimWellLogCurve* curve) const { const RimWellLogRftCurve* rftCurve = dynamic_cast(curve); const RimWellLogExtractionCurve* gridCurve = dynamic_cast(curve); @@ -785,7 +785,7 @@ std::pair RimWellPltPlot::curveDefFromCurve(const // { // const RifEclipseRftAddress rftAddress = rftCurve->rftAddress(); // const QDateTime timeStep = rftAddress.timeStep(); - // return std::make_pair(RimWellRftAddress(RftSourceType::RFT, rftCase), timeStep); + // return std::make_pair(RifWellRftAddress(RftSourceType::RFT, rftCase), timeStep); // } //} //else if (gridCurve != nullptr) @@ -794,12 +794,12 @@ std::pair RimWellPltPlot::curveDefFromCurve(const // if (gridCase != nullptr) // { // size_t timeStepIndex = gridCurve->currentTimeStep(); - // const std::map>& timeStepsMap = timeStepsFromGridCase(gridCase); - // auto timeStepsVector = std::vector>>( + // const std::map>& timeStepsMap = timeStepsFromGridCase(gridCase); + // auto timeStepsVector = std::vector>>( // timeStepsMap.begin(), timeStepsMap.end()); // if (timeStepIndex < timeStepsMap.size()) // { - // return std::make_pair(RimWellRftAddress(RftSourceType::GRID, gridCase), + // return std::make_pair(RifWellRftAddress(RftSourceType::GRID, gridCase), // timeStepsVector[timeStepIndex].first); // } // } @@ -816,17 +816,17 @@ std::pair RimWellPltPlot::curveDefFromCurve(const if (date.isValid()) { - return std::make_pair(RimWellRftAddress(RftSourceType::OBSERVED, wellLogFile), date); + return std::make_pair(RifWellRftAddress(RifWellRftAddress::OBSERVED, wellLogFile), date); } } } - return std::make_pair(RimWellRftAddress(), QDateTime()); + return std::make_pair(RifWellRftAddress(), QDateTime()); } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -void RimWellPltPlot::updateCurvesInPlot(const std::set>& curveDefs) +void RimWellPltPlot::updateCurvesInPlot(const std::set>& curveDefs) { RimWellLogTrack* const plotTrack = m_wellLogPlot->trackByIndex(0); @@ -840,7 +840,7 @@ void RimWellPltPlot::updateCurvesInPlot(const std::set& curveDefToAdd : curveDefs) + for (const std::pair& curveDefToAdd : curveDefs) { //if (curveDefToAdd.first.sourceType() == RftSourceType::RFT) //{ @@ -879,9 +879,9 @@ void RimWellPltPlot::updateCurvesInPlot(const std::setsetEclipseResultDefinition(resultDef); // // Time step - // const std::map>& timeSteps = timeStepsFromGridCase(gridCase); + // const std::map>& timeSteps = timeStepsFromGridCase(gridCase); // auto currentTimeStepItr = std::find_if(timeSteps.begin(), timeSteps.end(), - // [curveDefToAdd](std::pair> pair) {return pair.first == curveDefToAdd.second; }); + // [curveDefToAdd](std::pair> pair) {return pair.first == curveDefToAdd.second; }); // auto currentTimeStepIndex = std::distance(timeSteps.begin(), currentTimeStepItr); // curve->setCurrentTimeStep(currentTimeStepIndex); // curve->setZOrder(0); @@ -891,7 +891,7 @@ void RimWellPltPlot::updateCurvesInPlot(const std::set& selSources = m_selectedSources(); - return std::find_if(selSources.begin(), selSources.end(), [](const RimWellRftAddress& addr) + const std::vector& selSources = m_selectedSources(); + return std::find_if(selSources.begin(), selSources.end(), [](const RifWellRftAddress& addr) { - return addr.sourceType() == RftSourceType::RFT || addr.sourceType() == RftSourceType::OBSERVED; + return addr.sourceType() == RifWellRftAddress::RFT || addr.sourceType() == RifWellRftAddress::OBSERVED; }) == selSources.end(); } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -bool RimWellPltPlot::isAnySourceAddressSelected(const std::set& addresses) const +bool RimWellPltPlot::isAnySourceAddressSelected(const std::set& addresses) const { - const std::vector& selectedSourcesVector = m_selectedSources(); - const auto selectedSources = std::set(selectedSourcesVector.begin(), selectedSourcesVector.end()); - std::vector intersectVector; + const std::vector& selectedSourcesVector = m_selectedSources(); + const auto selectedSources = std::set(selectedSourcesVector.begin(), selectedSourcesVector.end()); + std::vector intersectVector; std::set_intersection(selectedSources.begin(), selectedSources.end(), addresses.begin(), addresses.end(), std::inserter(intersectVector, intersectVector.end())); @@ -971,16 +971,16 @@ bool RimWellPltPlot::isAnySourceAddressSelected(const std::set RimWellPltPlot::selectedSources() const +std::vector RimWellPltPlot::selectedSources() const { - std::vector sources; - for (const RimWellRftAddress& addr : m_selectedSources()) + std::vector sources; + for (const RifWellRftAddress& addr : m_selectedSources()) { - if (addr.sourceType() == RftSourceType::OBSERVED) + if (addr.sourceType() == RifWellRftAddress::OBSERVED) { for (RimWellLogFile* const wellLogFile : wellLogFilesContainingFlow(m_wellName)) { - sources.push_back(RimWellRftAddress(RftSourceType::OBSERVED, wellLogFile)); + sources.push_back(RifWellRftAddress(RifWellRftAddress::OBSERVED, wellLogFile)); } } else @@ -1107,11 +1107,11 @@ QList RimWellPltPlot::calculateValueOptions(const caf::P //const std::vector rftCases = rftCasesFromEclipseCases(eclipseCases); //if (rftCases.size() > 0) //{ - // options.push_back(caf::PdmOptionItemInfo::createHeader(RimWellRftAddress::sourceTypeUiText(RftSourceType::RFT), true)); + // options.push_back(caf::PdmOptionItemInfo::createHeader(RifWellRftAddress::sourceTypeUiText(RftSourceType::RFT), true)); //} //for (const auto& rftCase : rftCases) //{ - // auto addr = RimWellRftAddress(RftSourceType::RFT, rftCase); + // auto addr = RifWellRftAddress(RftSourceType::RFT, rftCase); // auto item = caf::PdmOptionItemInfo(rftCase->caseUserDescription(), QVariant::fromValue(addr)); // item.setLevel(1); // options.push_back(item); @@ -1120,11 +1120,11 @@ QList RimWellPltPlot::calculateValueOptions(const caf::P //const std::vector gridCases = gridCasesFromEclipseCases(eclipseCases); //if (gridCases.size() > 0) //{ - // options.push_back(caf::PdmOptionItemInfo::createHeader(RimWellRftAddress::sourceTypeUiText(RftSourceType::GRID), true)); + // options.push_back(caf::PdmOptionItemInfo::createHeader(RifWellRftAddress::sourceTypeUiText(RftSourceType::GRID), true)); //} //for (const auto& gridCase : gridCases) //{ - // auto addr = RimWellRftAddress(RftSourceType::GRID, gridCase); + // auto addr = RifWellRftAddress(RftSourceType::GRID, gridCase); // auto item = caf::PdmOptionItemInfo(gridCase->caseUserDescription(), QVariant::fromValue(addr)); // item.setLevel(1); // options.push_back(item); @@ -1132,9 +1132,9 @@ QList RimWellPltPlot::calculateValueOptions(const caf::P if (wellLogFilesContainingFlow(m_wellName).size() > 0) { - options.push_back(caf::PdmOptionItemInfo::createHeader(RimWellRftAddress::sourceTypeUiText(RftSourceType::OBSERVED), true)); + options.push_back(caf::PdmOptionItemInfo::createHeader(RifWellRftAddress::sourceTypeUiText(RifWellRftAddress::OBSERVED), true)); - auto addr = RimWellRftAddress(RftSourceType::OBSERVED); + auto addr = RifWellRftAddress(RifWellRftAddress::OBSERVED); auto item = caf::PdmOptionItemInfo("Observed Data", QVariant::fromValue(addr)); item.setLevel(1); options.push_back(item); @@ -1290,18 +1290,18 @@ void RimWellPltPlot::defineEditorAttribute(const caf::PdmFieldHandle* field, QSt //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -void RimWellPltPlot::addTimeStepToMap(std::map>& destMap, - const std::pair>& timeStepToAdd) +void RimWellPltPlot::addTimeStepToMap(std::map>& destMap, + const std::pair>& timeStepToAdd) { - auto timeStepMapToAdd = std::map> { timeStepToAdd }; + auto timeStepMapToAdd = std::map> { timeStepToAdd }; addTimeStepsToMap(destMap, timeStepMapToAdd); } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -void RimWellPltPlot::addTimeStepsToMap(std::map>& destMap, - const std::map>& timeStepsToAdd) +void RimWellPltPlot::addTimeStepsToMap(std::map>& destMap, + const std::map>& timeStepsToAdd) { for (const auto& timeStepPair : timeStepsToAdd) { @@ -1309,7 +1309,7 @@ void RimWellPltPlot::addTimeStepsToMap(std::map())); + destMap.insert(std::make_pair(timeStepPair.first, std::set())); } auto addresses = timeStepPair.second; destMap[timeStepPair.first].insert(addresses.begin(), addresses.end()); @@ -1352,12 +1352,12 @@ void RimWellPltPlot::calculateValueOptionsForWells(QList //-------------------------------------------------------------------------------------------------- void RimWellPltPlot::calculateValueOptionsForTimeSteps(const QString& wellName, QList& options) { - std::map> displayTimeStepsMap, obsAndRftTimeStepsMap, gridTimeStepsMap; + std::map> displayTimeStepsMap, obsAndRftTimeStepsMap, gridTimeStepsMap; //const std::vector>& eclipseCases = eclipseCasesForWell(wellName); //const std::vector rftCases = rftCasesFromEclipseCases(eclipseCases); //const std::vector gridCases = gridCasesFromEclipseCases(eclipseCases); - for (const RimWellRftAddress& selection : selectedSources()) + for (const RifWellRftAddress& selection : selectedSources()) { //if (selection.sourceType() == RftSourceType::RFT) //{ @@ -1374,7 +1374,7 @@ void RimWellPltPlot::calculateValueOptionsForTimeSteps(const QString& wellName, // } //} //else - if (selection.sourceType() == RftSourceType::OBSERVED) + if (selection.sourceType() == RifWellRftAddress::OBSERVED) { if (selection.wellLogFile() != nullptr) { @@ -1389,11 +1389,11 @@ void RimWellPltPlot::calculateValueOptionsForTimeSteps(const QString& wellName, } else { - const auto gridTimeStepsVector = std::vector>>(gridTimeStepsMap.begin(), gridTimeStepsMap.end()); + const auto gridTimeStepsVector = std::vector>>(gridTimeStepsMap.begin(), gridTimeStepsMap.end()); - for (const std::pair>& timeStepPair : obsAndRftTimeStepsMap) + for (const std::pair>& timeStepPair : obsAndRftTimeStepsMap) { - const std::map>& adjTimeSteps = adjacentTimeSteps(gridTimeStepsVector, timeStepPair); + const std::map>& adjTimeSteps = adjacentTimeSteps(gridTimeStepsVector, timeStepPair); addTimeStepsToMap(displayTimeStepsMap, adjTimeSteps); } @@ -1408,7 +1408,7 @@ void RimWellPltPlot::calculateValueOptionsForTimeSteps(const QString& wellName, { if (m_timeStepsToAddresses.count(timeStep) > 0) { - const std::set sourceAddresses = m_timeStepsToAddresses[timeStep]; + const std::set sourceAddresses = m_timeStepsToAddresses[timeStep]; if (isAnySourceAddressSelected(sourceAddresses)) { addTimeStepToMap(displayTimeStepsMap, std::make_pair(timeStep, m_timeStepsToAddresses[timeStep])); @@ -1421,13 +1421,13 @@ void RimWellPltPlot::calculateValueOptionsForTimeSteps(const QString& wellName, // Create vector of all time steps std::vector allTimeSteps; - for (const std::pair>& timeStepPair : m_timeStepsToAddresses) + for (const std::pair>& timeStepPair : m_timeStepsToAddresses) { allTimeSteps.push_back(timeStepPair.first); } const QString dateFormatString = RimTools::createTimeFormatStringFromDates(allTimeSteps); - for (const std::pair>& timeStepPair : displayTimeStepsMap) + for (const std::pair>& timeStepPair : displayTimeStepsMap) { options.push_back(caf::PdmOptionItemInfo(timeStepPair.first.toString(dateFormatString), timeStepPair.first)); } diff --git a/ApplicationCode/ProjectDataModel/Flow/RimWellPltPlot.h b/ApplicationCode/ProjectDataModel/Flow/RimWellPltPlot.h index ebdfe0f82d..ee753c898c 100644 --- a/ApplicationCode/ProjectDataModel/Flow/RimWellPltPlot.h +++ b/ApplicationCode/ProjectDataModel/Flow/RimWellPltPlot.h @@ -26,8 +26,11 @@ #include "cafPdmObject.h" #include "cafPdmPtrField.h" #include "cvfCollection.h" -#include "RimWellRftAddress.h" #include "RimPlotCurve.h" + +#include "RifWellRftAddress.h" +#include "RifWellRftAddressQMetaType.h" + #include #include #include @@ -112,10 +115,10 @@ protected: virtual void defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute); private: - void addTimeStepToMap(std::map>& destMap, - const std::pair>& timeStepToAdd); - void addTimeStepsToMap(std::map>& destMap, - const std::map>& timeStepsToAdd); + void addTimeStepToMap(std::map>& destMap, + const std::pair>& timeStepToAdd); + void addTimeStepsToMap(std::map>& destMap, + const std::map>& timeStepsToAdd); void calculateValueOptionsForWells(QList& options); void calculateValueOptionsForTimeSteps(const QString& wellName, QList& options); @@ -132,25 +135,25 @@ private: //std::vector> eclipseCasesForWell(const QString& wellName) const; //std::vector gridCasesFromEclipseCases(const std::vector>& eclipseCasesTuple) const; //std::vector rftCasesFromEclipseCases(const std::vector>& eclipseCasesTuple) const; - //std::map> timeStepsFromRftCase(RimEclipseResultCase* gridCase) const; - //std::map> timeStepsFromGridCase(RimEclipseCase* gridCase) const; - std::map> timeStepsFromWellLogFile(RimWellLogFile* wellLogFile) const; - std::map> adjacentTimeSteps(const std::vector>>& allTimeSteps, - const std::pair>& searchTimeStepPair); - static bool mapContainsTimeStep(const std::map>& map, const QDateTime& timeStep); + //std::map> timeStepsFromRftCase(RimEclipseResultCase* gridCase) const; + //std::map> timeStepsFromGridCase(RimEclipseCase* gridCase) const; + std::map> timeStepsFromWellLogFile(RimWellLogFile* wellLogFile) const; + std::map> adjacentTimeSteps(const std::vector>>& allTimeSteps, + const std::pair>& searchTimeStepPair); + static bool mapContainsTimeStep(const std::map>& map, const QDateTime& timeStep); - std::set> selectedCurveDefs() const; - std::set> curveDefsFromCurves() const; - std::pair curveDefFromCurve(const RimWellLogCurve* curve) const; - void updateCurvesInPlot(const std::set>& curveDefs); + std::set> selectedCurveDefs() const; + std::set> curveDefsFromCurves() const; + std::pair curveDefFromCurve(const RimWellLogCurve* curve) const; + void updateCurvesInPlot(const std::set>& curveDefs); void addStackedCurve(const QString& tracerName, const std::vector& depthValues, const std::vector& accFlow, RimWellLogTrack* plotTrack); bool isOnlyGridSourcesSelected() const; - bool isAnySourceAddressSelected(const std::set& addresses) const; - std::vector selectedSources() const; + bool isAnySourceAddressSelected(const std::set& addresses) const; + std::vector selectedSources() const; // RimViewWindow overrides @@ -169,7 +172,7 @@ private: caf::PdmField m_wellName; caf::PdmField m_branchIndex; - caf::PdmField> m_selectedSources; + caf::PdmField> m_selectedSources; caf::PdmField> m_selectedTimeSteps; @@ -177,7 +180,7 @@ private: caf::PdmChildField m_wellLogPlot; - std::map> m_timeStepsToAddresses; + std::map> m_timeStepsToAddresses; caf::PdmField> m_phaseSelectionMode; caf::PdmField>> m_phases; diff --git a/ApplicationCode/ProjectDataModel/Flow/RimWellRftPlot.cpp b/ApplicationCode/ProjectDataModel/Flow/RimWellRftPlot.cpp index 25e6d6ae43..c2de2337ce 100644 --- a/ApplicationCode/ProjectDataModel/Flow/RimWellRftPlot.cpp +++ b/ApplicationCode/ProjectDataModel/Flow/RimWellRftPlot.cpp @@ -119,7 +119,7 @@ void RimWellRftPlot::deleteViewWidget() //-------------------------------------------------------------------------------------------------- void RimWellRftPlot::applyCurveAppearance(RimWellLogCurve* newCurve) { - const std::pair& newCurveDef = curveDefFromCurve(newCurve); + const std::pair& newCurveDef = curveDefFromCurve(newCurve); std::vector colorTable; RiaColorTables::summaryCurveDefaultPaletteColors().color3fArray().toStdVector(&colorTable); @@ -152,7 +152,7 @@ void RimWellRftPlot::applyCurveAppearance(RimWellLogCurve* newCurve) { if (curve == newCurve) continue; - std::pair cDef = curveDefFromCurve(curve); + std::pair cDef = curveDefFromCurve(curve); if (cDef.first == newCurveDef.first) { currentColor = curve->color(); @@ -209,7 +209,7 @@ void RimWellRftPlot::applyCurveAppearance(RimWellLogCurve* newCurve) } // Observed data - currentLineStyle = newCurveDef.first.sourceType() == RftSourceType::OBSERVED + currentLineStyle = newCurveDef.first.sourceType() == RifWellRftAddress::OBSERVED ? RimPlotCurve::STYLE_NONE : RimPlotCurve::STYLE_SOLID; newCurve->setColor(currentColor); @@ -223,15 +223,15 @@ void RimWellRftPlot::applyCurveAppearance(RimWellLogCurve* newCurve) void RimWellRftPlot::updateSelectedTimeStepsFromSelectedSources() { std::vector newTimeStepsSelections; - std::vector selectedSourcesVector = selectedSources(); - auto selectedSources = std::set(selectedSourcesVector.begin(), selectedSourcesVector.end()); + std::vector selectedSourcesVector = selectedSources(); + auto selectedSources = std::set(selectedSourcesVector.begin(), selectedSourcesVector.end()); for (const QDateTime& timeStep : m_selectedTimeSteps()) { if(m_timeStepsToAddresses.count(timeStep) > 0) { - std::vector intersectVector; - const std::set& addresses = m_timeStepsToAddresses[timeStep]; + std::vector intersectVector; + const std::set& addresses = m_timeStepsToAddresses[timeStep]; std::set_intersection(selectedSources.begin(), selectedSources.end(), addresses.begin(), addresses.end(), std::inserter(intersectVector, intersectVector.end())); if(intersectVector.size() > 0) @@ -250,27 +250,27 @@ void RimWellRftPlot::applyInitialSelections() { std::vector> eclCaseTuples = eclipseCasesForWell(m_wellName); - std::vector sourcesToSelect; - std::map> rftTimeStepsMap; - std::map> observedTimeStepsMap; - std::map> gridTimeStepsMap; + std::vector sourcesToSelect; + std::map> rftTimeStepsMap; + std::map> observedTimeStepsMap; + std::map> gridTimeStepsMap; for(RimEclipseResultCase* const rftCase : rftCasesFromEclipseCases(eclCaseTuples)) { - sourcesToSelect.push_back(RimWellRftAddress(RftSourceType::RFT, rftCase)); + sourcesToSelect.push_back(RifWellRftAddress(RifWellRftAddress::RFT, rftCase)); addTimeStepsToMap(rftTimeStepsMap, timeStepsFromRftCase(rftCase)); } for (RimEclipseResultCase* const gridCase : gridCasesFromEclipseCases(eclCaseTuples)) { - sourcesToSelect.push_back(RimWellRftAddress(RftSourceType::GRID, gridCase)); + sourcesToSelect.push_back(RifWellRftAddress(RifWellRftAddress::GRID, gridCase)); addTimeStepsToMap(gridTimeStepsMap, timeStepsFromGridCase(gridCase)); } std::vector wellLogFiles = wellLogFilesContainingPressure(m_wellName); if(wellLogFiles.size() > 0) { - sourcesToSelect.push_back(RimWellRftAddress(RftSourceType::OBSERVED)); + sourcesToSelect.push_back(RifWellRftAddress(RifWellRftAddress::OBSERVED)); for (RimWellLogFile* const wellLogFile : wellLogFiles) { addTimeStepsToMap(observedTimeStepsMap, timeStepsFromWellLogFile(wellLogFile)); @@ -280,11 +280,11 @@ void RimWellRftPlot::applyInitialSelections() m_selectedSources = sourcesToSelect; std::set timeStepsToSelect; - for (const std::pair>& dateTimePair : rftTimeStepsMap) + for (const std::pair>& dateTimePair : rftTimeStepsMap) { timeStepsToSelect.insert(dateTimePair.first); } - for (const std::pair>& dateTimePair : observedTimeStepsMap) + for (const std::pair>& dateTimePair : observedTimeStepsMap) { timeStepsToSelect.insert(dateTimePair.first); } @@ -301,26 +301,26 @@ void RimWellRftPlot::applyInitialSelections() //-------------------------------------------------------------------------------------------------- void RimWellRftPlot::updateEditorsFromCurves() { - std::set selectedSources; + std::set selectedSources; std::set selectedTimeSteps; - std::map> selectedTimeStepsMap; + std::map> selectedTimeStepsMap; - for (const std::pair& curveDef : curveDefsFromCurves()) + for (const std::pair& curveDef : curveDefsFromCurves()) { - if (curveDef.first.sourceType() == RftSourceType::OBSERVED) - selectedSources.insert(RimWellRftAddress(RftSourceType::OBSERVED)); + if (curveDef.first.sourceType() == RifWellRftAddress::OBSERVED) + selectedSources.insert(RifWellRftAddress(RifWellRftAddress::OBSERVED)); else selectedSources.insert(curveDef.first); - auto newTimeStepMap = std::map> + auto newTimeStepMap = std::map> { - { curveDef.second, std::set { curveDef.first} } + { curveDef.second, std::set { curveDef.first} } }; addTimeStepsToMap(selectedTimeStepsMap, newTimeStepMap); selectedTimeSteps.insert(curveDef.second); } - m_selectedSources = std::vector(selectedSources.begin(), selectedSources.end()); + m_selectedSources = std::vector(selectedSources.begin(), selectedSources.end()); m_selectedTimeSteps = std::vector(selectedTimeSteps.begin(), selectedTimeSteps.end()); addTimeStepsToMap(m_timeStepsToAddresses, selectedTimeStepsMap); } @@ -351,22 +351,22 @@ void RimWellRftPlot::updateWidgetTitleWindowTitle() void RimWellRftPlot::syncCurvesFromUiSelection() { RimWellLogTrack* plotTrack = m_wellLogPlot->trackByIndex(0); - const std::set>& allCurveDefs = selectedCurveDefs(); - const std::set>& curveDefsInPlot = curveDefsFromCurves(); + const std::set>& allCurveDefs = selectedCurveDefs(); + const std::set>& curveDefsInPlot = curveDefsFromCurves(); std::set curvesToDelete; - std::set> newCurveDefs; + std::set> newCurveDefs; if (allCurveDefs.size() < curveDefsInPlot.size()) { // Determine which curves to delete from plot - std::set> deleteCurveDefs; + std::set> deleteCurveDefs; std::set_difference(curveDefsInPlot.begin(), curveDefsInPlot.end(), allCurveDefs.begin(), allCurveDefs.end(), std::inserter(deleteCurveDefs, deleteCurveDefs.end())); for (RimWellLogCurve* const curve : plotTrack->curvesVector()) { - std::pair curveDef = curveDefFromCurve(curve); + std::pair curveDef = curveDefFromCurve(curve); if (deleteCurveDefs.count(curveDef) > 0) curvesToDelete.insert(curve); } @@ -533,9 +533,9 @@ RimWellRftPlot::rftCasesFromEclipseCases(const std::vector> RimWellRftPlot::timeStepsFromRftCase(RimEclipseResultCase* rftCase) const +std::map> RimWellRftPlot::timeStepsFromRftCase(RimEclipseResultCase* rftCase) const { - std::map> timeStepsMap; + std::map> timeStepsMap; RifReaderEclipseRft* const reader = rftCase->rftReader(); if (reader != nullptr) { @@ -543,9 +543,9 @@ std::map> RimWellRftPlot::timeStepsFromRf { if (timeStepsMap.count(timeStep) == 0) { - timeStepsMap.insert(std::make_pair(timeStep, std::set())); + timeStepsMap.insert(std::make_pair(timeStep, std::set())); } - timeStepsMap[timeStep].insert(RimWellRftAddress(RftSourceType::RFT, rftCase)); + timeStepsMap[timeStep].insert(RifWellRftAddress(RifWellRftAddress::RFT, rftCase)); } } return timeStepsMap; @@ -554,23 +554,23 @@ std::map> RimWellRftPlot::timeStepsFromRf //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -std::map> RimWellRftPlot::timeStepsFromGridCase(RimEclipseCase* gridCase) const +std::map> RimWellRftPlot::timeStepsFromGridCase(RimEclipseCase* gridCase) const { const RigEclipseCaseData* const eclipseCaseData = gridCase->eclipseCaseData(); size_t resultIndex = eclipseCaseData != nullptr ? eclipseCaseData->results(RiaDefines::MATRIX_MODEL)->findScalarResultIndex(RiaDefines::DYNAMIC_NATIVE, PRESSURE_DATA_NAME) : cvf::UNDEFINED_SIZE_T; - std::map> timeStepsMap; + std::map> timeStepsMap; if (resultIndex != cvf::UNDEFINED_SIZE_T) { for (const QDateTime& timeStep : eclipseCaseData->results(RiaDefines::MATRIX_MODEL)->timeStepDates(resultIndex)) { if (timeStepsMap.count(timeStep) == 0) { - timeStepsMap.insert(std::make_pair(timeStep, std::set())); + timeStepsMap.insert(std::make_pair(timeStep, std::set())); } - timeStepsMap[timeStep].insert(RimWellRftAddress(RftSourceType::GRID, gridCase)); + timeStepsMap[timeStep].insert(RifWellRftAddress(RifWellRftAddress::GRID, gridCase)); } } return timeStepsMap; @@ -579,17 +579,17 @@ std::map> RimWellRftPlot::timeStepsFromGr //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -std::map > RimWellRftPlot::timeStepsFromWellLogFile(RimWellLogFile* wellLogFile) const +std::map > RimWellRftPlot::timeStepsFromWellLogFile(RimWellLogFile* wellLogFile) const { - std::map > timeStepsMap; + std::map > timeStepsMap; QDateTime timeStep = RiaDateStringParser::parseDateString(wellLogFile->date()); if (timeStepsMap.count(timeStep) == 0) { - timeStepsMap.insert(std::make_pair(timeStep, std::set())); + timeStepsMap.insert(std::make_pair(timeStep, std::set())); } - timeStepsMap[timeStep].insert(RimWellRftAddress(RftSourceType::OBSERVED, wellLogFile)); + timeStepsMap[timeStep].insert(RifWellRftAddress(RifWellRftAddress::OBSERVED, wellLogFile)); return timeStepsMap; } @@ -597,16 +597,16 @@ std::map > RimWellRftPlot::timeStepsFromW //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -std::map> -RimWellRftPlot::adjacentTimeSteps(const std::vector>>& allTimeSteps, - const std::pair>& searchTimeStepPair) +std::map> +RimWellRftPlot::adjacentTimeSteps(const std::vector>>& allTimeSteps, + const std::pair>& searchTimeStepPair) { - std::map> timeStepsMap; + std::map> timeStepsMap; if (allTimeSteps.size() > 0) { auto itr = std::find_if(allTimeSteps.begin(), allTimeSteps.end(), - [searchTimeStepPair](const std::pair>& dt) + [searchTimeStepPair](const std::pair>& dt) { return dt.first > searchTimeStepPair.first; }); @@ -628,9 +628,9 @@ RimWellRftPlot::adjacentTimeSteps(const std::vector>& map, const QDateTime& timeStep) +bool RimWellRftPlot::mapContainsTimeStep(const std::map>& map, const QDateTime& timeStep) { - return std::find_if(map.begin(), map.end(), [timeStep](const std::pair>& pair) + return std::find_if(map.begin(), map.end(), [timeStep](const std::pair>& pair) { return pair.first == timeStep; }) != map.end(); @@ -639,47 +639,47 @@ bool RimWellRftPlot::mapContainsTimeStep(const std::map> RimWellRftPlot::selectedCurveDefs() const +std::set < std::pair> RimWellRftPlot::selectedCurveDefs() const { - std::set> curveDefs; + std::set> curveDefs; const std::vector>& eclipseCases = eclipseCasesForWell(m_wellName); const std::vector rftCases = rftCasesFromEclipseCases(eclipseCases); const std::vector gridCases = gridCasesFromEclipseCases(eclipseCases); for (const QDateTime& timeStep : m_selectedTimeSteps()) { - for (const RimWellRftAddress& addr : selectedSources()) + for (const RifWellRftAddress& addr : selectedSources()) { - if (addr.sourceType() == RftSourceType::RFT) + if (addr.sourceType() == RifWellRftAddress::RFT) { for (RimEclipseResultCase* const rftCase : rftCases) { - const std::map>& timeStepsMap = timeStepsFromRftCase(rftCase); + const std::map>& timeStepsMap = timeStepsFromRftCase(rftCase); if (mapContainsTimeStep(timeStepsMap , timeStep)) { curveDefs.insert(std::make_pair(addr, timeStep)); } } } - else if (addr.sourceType() == RftSourceType::GRID) + else if (addr.sourceType() == RifWellRftAddress::GRID) { for (RimEclipseResultCase* const gridCase : gridCases) { - const std::map>& timeStepsMap = timeStepsFromGridCase(gridCase); + const std::map>& timeStepsMap = timeStepsFromGridCase(gridCase); if (mapContainsTimeStep(timeStepsMap, timeStep)) { curveDefs.insert(std::make_pair(addr, timeStep)); } } } - else if (addr.sourceType() == RftSourceType::OBSERVED) + else if (addr.sourceType() == RifWellRftAddress::OBSERVED) { if (addr.wellLogFile() != nullptr) { - const std::map>& timeStepsMap = timeStepsFromWellLogFile(addr.wellLogFile()); + const std::map>& timeStepsMap = timeStepsFromWellLogFile(addr.wellLogFile()); if (mapContainsTimeStep(timeStepsMap, timeStep)) { - curveDefs.insert(std::make_pair(RimWellRftAddress(RftSourceType::OBSERVED, addr.wellLogFile()), timeStep)); + curveDefs.insert(std::make_pair(RifWellRftAddress(RifWellRftAddress::OBSERVED, addr.wellLogFile()), timeStep)); } } } @@ -691,9 +691,9 @@ std::set < std::pair> RimWellRftPlot::selectedCurv //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -std::set> RimWellRftPlot::curveDefsFromCurves() const +std::set> RimWellRftPlot::curveDefsFromCurves() const { - std::set> curveDefs; + std::set> curveDefs; RimWellLogTrack* const plotTrack = m_wellLogPlot->trackByIndex(0); for (RimWellLogCurve* const curve : plotTrack->curvesVector()) @@ -706,7 +706,7 @@ std::set> RimWellRftPlot::curveDefsFromC //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -std::pair RimWellRftPlot::curveDefFromCurve(const RimWellLogCurve* curve) const +std::pair RimWellRftPlot::curveDefFromCurve(const RimWellLogCurve* curve) const { const RimWellLogRftCurve* rftCurve = dynamic_cast(curve); const RimWellLogExtractionCurve* gridCurve = dynamic_cast(curve); @@ -719,7 +719,7 @@ std::pair RimWellRftPlot::curveDefFromCurve(const { const RifEclipseRftAddress rftAddress = rftCurve->rftAddress(); const QDateTime timeStep = rftAddress.timeStep(); - return std::make_pair(RimWellRftAddress(RftSourceType::RFT, rftCase), timeStep); + return std::make_pair(RifWellRftAddress(RifWellRftAddress::RFT, rftCase), timeStep); } } else if (gridCurve != nullptr) @@ -728,12 +728,12 @@ std::pair RimWellRftPlot::curveDefFromCurve(const if (gridCase != nullptr) { size_t timeStepIndex = gridCurve->currentTimeStep(); - const std::map>& timeStepsMap = timeStepsFromGridCase(gridCase); - auto timeStepsVector = std::vector>>( + const std::map>& timeStepsMap = timeStepsFromGridCase(gridCase); + auto timeStepsVector = std::vector>>( timeStepsMap.begin(), timeStepsMap.end()); if (timeStepIndex < timeStepsMap.size()) { - return std::make_pair(RimWellRftAddress(RftSourceType::GRID, gridCase), + return std::make_pair(RifWellRftAddress(RifWellRftAddress::GRID, gridCase), timeStepsVector[timeStepIndex].first); } } @@ -749,18 +749,18 @@ std::pair RimWellRftPlot::curveDefFromCurve(const if (date.isValid()) { - return std::make_pair(RimWellRftAddress(RftSourceType::OBSERVED, wellLogFile), date); + return std::make_pair(RifWellRftAddress(RifWellRftAddress::OBSERVED, wellLogFile), date); } } } - return std::make_pair(RimWellRftAddress(), QDateTime()); + return std::make_pair(RifWellRftAddress(), QDateTime()); } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -void RimWellRftPlot::updateCurvesInPlot(const std::set>& allCurveDefs, - const std::set>& curveDefsToAdd, +void RimWellRftPlot::updateCurvesInPlot(const std::set>& allCurveDefs, + const std::set>& curveDefsToAdd, const std::set& curvesToDelete) { RimWellLogTrack* const plotTrack = m_wellLogPlot->trackByIndex(0); @@ -772,9 +772,9 @@ void RimWellRftPlot::updateCurvesInPlot(const std::set& curveDefToAdd : curveDefsToAdd) + for (const std::pair& curveDefToAdd : curveDefsToAdd) { - if (curveDefToAdd.first.sourceType() == RftSourceType::RFT) + if (curveDefToAdd.first.sourceType() == RifWellRftAddress::RFT) { auto curve = new RimWellLogRftCurve(); plotTrack->addCurve(curve); @@ -789,7 +789,7 @@ void RimWellRftPlot::updateCurvesInPlot(const std::setloadDataAndUpdate(true); } - else if (curveDefToAdd.first.sourceType() == RftSourceType::GRID) + else if (curveDefToAdd.first.sourceType() == RifWellRftAddress::GRID) { auto curve = new RimWellLogExtractionCurve(); plotTrack->addCurve(curve); @@ -811,9 +811,9 @@ void RimWellRftPlot::updateCurvesInPlot(const std::setsetEclipseResultDefinition(resultDef); // Time step - const std::map>& timeSteps = timeStepsFromGridCase(gridCase); + const std::map>& timeSteps = timeStepsFromGridCase(gridCase); auto currentTimeStepItr = std::find_if(timeSteps.begin(), timeSteps.end(), - [curveDefToAdd](std::pair> pair) {return pair.first == curveDefToAdd.second; }); + [curveDefToAdd](std::pair> pair) {return pair.first == curveDefToAdd.second; }); auto currentTimeStepIndex = std::distance(timeSteps.begin(), currentTimeStepItr); curve->setCurrentTimeStep(currentTimeStepIndex); curve->setZOrder(0); @@ -822,7 +822,7 @@ void RimWellRftPlot::updateCurvesInPlot(const std::setloadDataAndUpdate(false); } } - else if (curveDefToAdd.first.sourceType() == RftSourceType::OBSERVED) + else if (curveDefToAdd.first.sourceType() == RifWellRftAddress::OBSERVED) { RimWellLogFile* const wellLogFile = curveDefToAdd.first.wellLogFile(); RimWellPath* const wellPath = wellPathFromWellLogFile(wellLogFile); @@ -848,21 +848,21 @@ void RimWellRftPlot::updateCurvesInPlot(const std::set& selSources = m_selectedSources(); - return std::find_if(selSources.begin(), selSources.end(), [](const RimWellRftAddress& addr) + const std::vector& selSources = m_selectedSources(); + return std::find_if(selSources.begin(), selSources.end(), [](const RifWellRftAddress& addr) { - return addr.sourceType() == RftSourceType::RFT || addr.sourceType() == RftSourceType::OBSERVED; + return addr.sourceType() == RifWellRftAddress::RFT || addr.sourceType() == RifWellRftAddress::OBSERVED; }) == selSources.end(); } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -bool RimWellRftPlot::isAnySourceAddressSelected(const std::set& addresses) const +bool RimWellRftPlot::isAnySourceAddressSelected(const std::set& addresses) const { - const std::vector& selectedSourcesVector = m_selectedSources(); - const auto selectedSources = std::set(selectedSourcesVector.begin(), selectedSourcesVector.end()); - std::vector intersectVector; + const std::vector& selectedSourcesVector = m_selectedSources(); + const auto selectedSources = std::set(selectedSourcesVector.begin(), selectedSourcesVector.end()); + std::vector intersectVector; std::set_intersection(selectedSources.begin(), selectedSources.end(), addresses.begin(), addresses.end(), std::inserter(intersectVector, intersectVector.end())); @@ -872,16 +872,16 @@ bool RimWellRftPlot::isAnySourceAddressSelected(const std::set RimWellRftPlot::selectedSources() const +std::vector RimWellRftPlot::selectedSources() const { - std::vector sources; - for (const RimWellRftAddress& addr : m_selectedSources()) + std::vector sources; + for (const RifWellRftAddress& addr : m_selectedSources()) { - if (addr.sourceType() == RftSourceType::OBSERVED) + if (addr.sourceType() == RifWellRftAddress::OBSERVED) { for (RimWellLogFile* const wellLogFile : wellLogFilesContainingPressure(m_wellName)) { - sources.push_back(RimWellRftAddress(RftSourceType::OBSERVED, wellLogFile)); + sources.push_back(RifWellRftAddress(RifWellRftAddress::OBSERVED, wellLogFile)); } } else @@ -1003,11 +1003,11 @@ QList RimWellRftPlot::calculateValueOptions(const caf::P const std::vector rftCases = rftCasesFromEclipseCases(eclipseCases); if (rftCases.size() > 0) { - options.push_back(caf::PdmOptionItemInfo::createHeader(RimWellRftAddress::sourceTypeUiText(RftSourceType::RFT), true)); + options.push_back(caf::PdmOptionItemInfo::createHeader(RifWellRftAddress::sourceTypeUiText(RifWellRftAddress::RFT), true)); } for (const auto& rftCase : rftCases) { - auto addr = RimWellRftAddress(RftSourceType::RFT, rftCase); + auto addr = RifWellRftAddress(RifWellRftAddress::RFT, rftCase); auto item = caf::PdmOptionItemInfo(rftCase->caseUserDescription(), QVariant::fromValue(addr)); item.setLevel(1); options.push_back(item); @@ -1016,11 +1016,11 @@ QList RimWellRftPlot::calculateValueOptions(const caf::P const std::vector gridCases = gridCasesFromEclipseCases(eclipseCases); if (gridCases.size() > 0) { - options.push_back(caf::PdmOptionItemInfo::createHeader(RimWellRftAddress::sourceTypeUiText(RftSourceType::GRID), true)); + options.push_back(caf::PdmOptionItemInfo::createHeader(RifWellRftAddress::sourceTypeUiText(RifWellRftAddress::GRID), true)); } for (const auto& gridCase : gridCases) { - auto addr = RimWellRftAddress(RftSourceType::GRID, gridCase); + auto addr = RifWellRftAddress(RifWellRftAddress::GRID, gridCase); auto item = caf::PdmOptionItemInfo(gridCase->caseUserDescription(), QVariant::fromValue(addr)); item.setLevel(1); options.push_back(item); @@ -1028,9 +1028,9 @@ QList RimWellRftPlot::calculateValueOptions(const caf::P if (wellLogFilesContainingPressure(m_wellName).size() > 0) { - options.push_back(caf::PdmOptionItemInfo::createHeader(RimWellRftAddress::sourceTypeUiText(RftSourceType::OBSERVED), true)); + options.push_back(caf::PdmOptionItemInfo::createHeader(RifWellRftAddress::sourceTypeUiText(RifWellRftAddress::OBSERVED), true)); - auto addr = RimWellRftAddress(RftSourceType::OBSERVED); + auto addr = RifWellRftAddress(RifWellRftAddress::OBSERVED); auto item = caf::PdmOptionItemInfo("Observed Data", QVariant::fromValue(addr)); item.setLevel(1); options.push_back(item); @@ -1150,18 +1150,18 @@ void RimWellRftPlot::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -void RimWellRftPlot::addTimeStepToMap(std::map>& destMap, - const std::pair>& timeStepToAdd) +void RimWellRftPlot::addTimeStepToMap(std::map>& destMap, + const std::pair>& timeStepToAdd) { - auto timeStepMapToAdd = std::map> { timeStepToAdd }; + auto timeStepMapToAdd = std::map> { timeStepToAdd }; addTimeStepsToMap(destMap, timeStepMapToAdd); } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -void RimWellRftPlot::addTimeStepsToMap(std::map>& destMap, - const std::map>& timeStepsToAdd) +void RimWellRftPlot::addTimeStepsToMap(std::map>& destMap, + const std::map>& timeStepsToAdd) { for (const auto& timeStepPair : timeStepsToAdd) { @@ -1169,7 +1169,7 @@ void RimWellRftPlot::addTimeStepsToMap(std::map())); + destMap.insert(std::make_pair(timeStepPair.first, std::set())); } auto addresses = timeStepPair.second; destMap[timeStepPair.first].insert(addresses.begin(), addresses.end()); @@ -1212,28 +1212,28 @@ void RimWellRftPlot::calculateValueOptionsForWells(QList //-------------------------------------------------------------------------------------------------- void RimWellRftPlot::calculateValueOptionsForTimeSteps(const QString& wellName, QList& options) { - std::map> displayTimeStepsMap, obsAndRftTimeStepsMap, gridTimeStepsMap; + std::map> displayTimeStepsMap, obsAndRftTimeStepsMap, gridTimeStepsMap; const std::vector>& eclipseCases = eclipseCasesForWell(wellName); const std::vector rftCases = rftCasesFromEclipseCases(eclipseCases); const std::vector gridCases = gridCasesFromEclipseCases(eclipseCases); - for (const RimWellRftAddress& selection : selectedSources()) + for (const RifWellRftAddress& selection : selectedSources()) { - if (selection.sourceType() == RftSourceType::RFT) + if (selection.sourceType() == RifWellRftAddress::RFT) { for (RimEclipseResultCase* const rftCase : rftCases) { addTimeStepsToMap(obsAndRftTimeStepsMap, timeStepsFromRftCase(rftCase)); } } - else if (selection.sourceType() == RftSourceType::GRID) + else if (selection.sourceType() == RifWellRftAddress::GRID) { for (RimEclipseResultCase* const gridCase : gridCases) { addTimeStepsToMap(gridTimeStepsMap, timeStepsFromGridCase(gridCase)); } } - else if (selection.sourceType() == RftSourceType::OBSERVED) + else if (selection.sourceType() == RifWellRftAddress::OBSERVED) { if (selection.wellLogFile() != nullptr) { @@ -1248,11 +1248,11 @@ void RimWellRftPlot::calculateValueOptionsForTimeSteps(const QString& wellName, } else { - const auto gridTimeStepsVector = std::vector>>(gridTimeStepsMap.begin(), gridTimeStepsMap.end()); + const auto gridTimeStepsVector = std::vector>>(gridTimeStepsMap.begin(), gridTimeStepsMap.end()); - for (const std::pair>& timeStepPair : obsAndRftTimeStepsMap) + for (const std::pair>& timeStepPair : obsAndRftTimeStepsMap) { - const std::map>& adjTimeSteps = adjacentTimeSteps(gridTimeStepsVector, timeStepPair); + const std::map>& adjTimeSteps = adjacentTimeSteps(gridTimeStepsVector, timeStepPair); addTimeStepsToMap(displayTimeStepsMap, adjTimeSteps); } @@ -1267,7 +1267,7 @@ void RimWellRftPlot::calculateValueOptionsForTimeSteps(const QString& wellName, { if (m_timeStepsToAddresses.count(timeStep) > 0) { - const std::set sourceAddresses = m_timeStepsToAddresses[timeStep]; + const std::set sourceAddresses = m_timeStepsToAddresses[timeStep]; if (isAnySourceAddressSelected(sourceAddresses)) { addTimeStepToMap(displayTimeStepsMap, std::make_pair(timeStep, m_timeStepsToAddresses[timeStep])); @@ -1280,13 +1280,13 @@ void RimWellRftPlot::calculateValueOptionsForTimeSteps(const QString& wellName, // Create vector of all time steps std::vector allTimeSteps; - for (const std::pair>& timeStepPair : m_timeStepsToAddresses) + for (const std::pair>& timeStepPair : m_timeStepsToAddresses) { allTimeSteps.push_back(timeStepPair.first); } const QString dateFormatString = RimTools::createTimeFormatStringFromDates(allTimeSteps); - for (const std::pair>& timeStepPair : displayTimeStepsMap) + for (const std::pair>& timeStepPair : displayTimeStepsMap) { options.push_back(caf::PdmOptionItemInfo(timeStepPair.first.toString(dateFormatString), timeStepPair.first)); } diff --git a/ApplicationCode/ProjectDataModel/Flow/RimWellRftPlot.h b/ApplicationCode/ProjectDataModel/Flow/RimWellRftPlot.h index 695e88d82a..fc74dd73b3 100644 --- a/ApplicationCode/ProjectDataModel/Flow/RimWellRftPlot.h +++ b/ApplicationCode/ProjectDataModel/Flow/RimWellRftPlot.h @@ -25,8 +25,10 @@ #include "cafPdmObject.h" #include "cafPdmPtrField.h" #include "cvfCollection.h" -#include "RimWellRftAddress.h" #include "RimPlotCurve.h" + +#include "RifWellRftAddressQMetaType.h" + #include #include #include @@ -100,10 +102,10 @@ protected: virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override; private: - void addTimeStepToMap(std::map>& destMap, - const std::pair>& timeStepToAdd); - void addTimeStepsToMap(std::map>& destMap, - const std::map>& timeStepsToAdd); + void addTimeStepToMap(std::map>& destMap, + const std::pair>& timeStepToAdd); + void addTimeStepsToMap(std::map>& destMap, + const std::map>& timeStepsToAdd); void calculateValueOptionsForWells(QList& options); void calculateValueOptionsForTimeSteps(const QString& wellName, QList& options); @@ -120,22 +122,22 @@ private: std::vector> eclipseCasesForWell(const QString& wellName) const; std::vector gridCasesFromEclipseCases(const std::vector>& eclipseCasesTuple) const; std::vector rftCasesFromEclipseCases(const std::vector>& eclipseCasesTuple) const; - std::map> timeStepsFromRftCase(RimEclipseResultCase* gridCase) const; - std::map> timeStepsFromGridCase(RimEclipseCase* gridCase) const; - std::map> timeStepsFromWellLogFile(RimWellLogFile* wellLogFile) const; - std::map> adjacentTimeSteps(const std::vector>>& allTimeSteps, - const std::pair>& searchTimeStepPair); - static bool mapContainsTimeStep(const std::map>& map, const QDateTime& timeStep); + std::map> timeStepsFromRftCase(RimEclipseResultCase* gridCase) const; + std::map> timeStepsFromGridCase(RimEclipseCase* gridCase) const; + std::map> timeStepsFromWellLogFile(RimWellLogFile* wellLogFile) const; + std::map> adjacentTimeSteps(const std::vector>>& allTimeSteps, + const std::pair>& searchTimeStepPair); + static bool mapContainsTimeStep(const std::map>& map, const QDateTime& timeStep); - std::set> selectedCurveDefs() const; - std::set> curveDefsFromCurves() const; - std::pair curveDefFromCurve(const RimWellLogCurve* curve) const; - void updateCurvesInPlot(const std::set>& allCurveDefs, - const std::set>& curveDefsToAdd, + std::set> selectedCurveDefs() const; + std::set> curveDefsFromCurves() const; + std::pair curveDefFromCurve(const RimWellLogCurve* curve) const; + void updateCurvesInPlot(const std::set>& allCurveDefs, + const std::set>& curveDefsToAdd, const std::set& curvesToDelete); bool isOnlyGridSourcesSelected() const; - bool isAnySourceAddressSelected(const std::set& addresses) const; - std::vector selectedSources() const; + bool isAnySourceAddressSelected(const std::set& addresses) const; + std::vector selectedSources() const; // RimViewWindow overrides @@ -151,7 +153,7 @@ private: caf::PdmField m_wellName; caf::PdmField m_branchIndex; - caf::PdmField> m_selectedSources; + caf::PdmField> m_selectedSources; caf::PdmField> m_selectedTimeSteps; @@ -159,7 +161,7 @@ private: caf::PdmChildField m_wellLogPlot; - std::map> m_timeStepsToAddresses; + std::map> m_timeStepsToAddresses; bool m_selectedSourcesOrTimeStepsFieldsChanged; };