From 95c396ce7705f053f5b5547704d6f3dc9b6860d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacob=20St=C3=B8ren?= Date: Mon, 2 Jul 2018 16:55:32 +0200 Subject: [PATCH] #2609 Make modeled well path visible when loading project file --- .../Application/RiaApplication.cpp | 2 +- .../ProjectDataModel/RimModeledWellPath.cpp | 8 +++ .../ProjectDataModel/RimModeledWellPath.h | 1 + .../RimWellPathCollection.cpp | 59 +++++++++++-------- .../ProjectDataModel/RimWellPathCollection.h | 2 +- 5 files changed, 44 insertions(+), 28 deletions(-) diff --git a/ApplicationCode/Application/RiaApplication.cpp b/ApplicationCode/Application/RiaApplication.cpp index 0816c16a3a..513ee58084 100644 --- a/ApplicationCode/Application/RiaApplication.cpp +++ b/ApplicationCode/Application/RiaApplication.cpp @@ -467,7 +467,7 @@ bool RiaApplication::loadProject(const QString& projectFileName, ProjectLoadActi if (oilField->wellPathCollection) { - oilField->wellPathCollection->readWellPathFiles(); + oilField->wellPathCollection->loadDataAndUpdate(); oilField->wellPathCollection->readWellPathFormationFiles(); } } diff --git a/ApplicationCode/ProjectDataModel/RimModeledWellPath.cpp b/ApplicationCode/ProjectDataModel/RimModeledWellPath.cpp index 8e065b442e..a7ab02a75b 100644 --- a/ApplicationCode/ProjectDataModel/RimModeledWellPath.cpp +++ b/ApplicationCode/ProjectDataModel/RimModeledWellPath.cpp @@ -33,6 +33,14 @@ RimModeledWellPath::~RimModeledWellPath() } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimModeledWellPath::createWellPathGeometry() +{ + this->setWellPathGeometry(m_geometryDefinition->createWellPathGeometry().p()); +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ProjectDataModel/RimModeledWellPath.h b/ApplicationCode/ProjectDataModel/RimModeledWellPath.h index fbc181cb99..07f20da36c 100644 --- a/ApplicationCode/ProjectDataModel/RimModeledWellPath.h +++ b/ApplicationCode/ProjectDataModel/RimModeledWellPath.h @@ -37,6 +37,7 @@ public: RimModeledWellPath(); ~RimModeledWellPath(); + void createWellPathGeometry(); void updateWellPathVisualization(); private: diff --git a/ApplicationCode/ProjectDataModel/RimWellPathCollection.cpp b/ApplicationCode/ProjectDataModel/RimWellPathCollection.cpp index 5ca1c3d736..ba3133f345 100644 --- a/ApplicationCode/ProjectDataModel/RimWellPathCollection.cpp +++ b/ApplicationCode/ProjectDataModel/RimWellPathCollection.cpp @@ -55,6 +55,7 @@ #include #include #include "RimFileWellPath.h" +#include "RimModeledWellPath.h" namespace caf { @@ -126,50 +127,56 @@ void RimWellPathCollection::fieldChangedByUi(const caf::PdmFieldHandle* changedF //-------------------------------------------------------------------------------------------------- -/// Read JSON files containing well path data +/// Read files containing well path data, or create geometry based on the targets //-------------------------------------------------------------------------------------------------- -void RimWellPathCollection::readWellPathFiles() +void RimWellPathCollection::loadDataAndUpdate() { caf::ProgressInfo progress(wellPaths.size(), "Reading well paths from file"); for (size_t wpIdx = 0; wpIdx < wellPaths.size(); wpIdx++) { RimFileWellPath* fWPath = dynamic_cast(wellPaths[wpIdx]); + RimModeledWellPath* mWPath = dynamic_cast(wellPaths[wpIdx]); if (fWPath) { - if (!fWPath->filepath().isEmpty()) - { - QString errorMessage; - if (!fWPath->readWellPathFile(&errorMessage, m_wellPathImporter)) - { - QMessageBox::warning(Riu3DMainWindowTools::mainWindowWidget(), - "File open error", - errorMessage); - } - } - - for (RimWellLogFile* const wellLogFile : fWPath->wellLogFiles()) - { - if (wellLogFile) + if ( !fWPath->filepath().isEmpty() ) { QString errorMessage; - if (!wellLogFile->readFile(&errorMessage)) + if ( !fWPath->readWellPathFile(&errorMessage, m_wellPathImporter) ) { - QString displayMessage = "Could not open the well log file: \n" + wellLogFile->fileName(); - - if (!errorMessage.isEmpty()) - { - displayMessage += "\n\n"; - displayMessage += errorMessage; - } - QMessageBox::warning(Riu3DMainWindowTools::mainWindowWidget(), "File open error", - displayMessage); + errorMessage); + } + } + + for ( RimWellLogFile* const wellLogFile : fWPath->wellLogFiles() ) + { + if ( wellLogFile ) + { + QString errorMessage; + if ( !wellLogFile->readFile(&errorMessage) ) + { + QString displayMessage = "Could not open the well log file: \n" + wellLogFile->fileName(); + + if ( !errorMessage.isEmpty() ) + { + displayMessage += "\n\n"; + displayMessage += errorMessage; + } + + QMessageBox::warning(Riu3DMainWindowTools::mainWindowWidget(), + "File open error", + displayMessage); + } } } } + else if (mWPath) + { + mWPath->createWellPathGeometry(); } + progress.setProgressDescription(QString("Reading file %1").arg(wellPaths[wpIdx]->name())); progress.incrementProgress(); } diff --git a/ApplicationCode/ProjectDataModel/RimWellPathCollection.h b/ApplicationCode/ProjectDataModel/RimWellPathCollection.h index 9021f0da33..54d4ad682a 100644 --- a/ApplicationCode/ProjectDataModel/RimWellPathCollection.h +++ b/ApplicationCode/ProjectDataModel/RimWellPathCollection.h @@ -88,7 +88,7 @@ public: caf::PdmChildArrayField wellPaths; - void readWellPathFiles(); + void loadDataAndUpdate(); void addWellPaths(QStringList filePaths); void removeWellPath(RimWellPath* wellPath);