From 3f617c93d277cc1368102222acaf797e0f5cb9fa Mon Sep 17 00:00:00 2001 From: Magne Sjaastad Date: Fri, 18 Oct 2019 14:35:33 +0200 Subject: [PATCH 1/2] #4893 Import Observed FMU data : Add error message --- .../RicImportObservedFmuDataFeature.cpp | 24 ++++++++++++++++++- .../FileInterface/RifReaderFmuRft.cpp | 14 ++++++++--- .../FileInterface/RifReaderFmuRft.h | 1 + 3 files changed, 35 insertions(+), 4 deletions(-) diff --git a/ApplicationCode/Commands/RicImportObservedFmuDataFeature.cpp b/ApplicationCode/Commands/RicImportObservedFmuDataFeature.cpp index 5b2e25f46a..f6ad5f87ad 100644 --- a/ApplicationCode/Commands/RicImportObservedFmuDataFeature.cpp +++ b/ApplicationCode/Commands/RicImportObservedFmuDataFeature.cpp @@ -15,10 +15,15 @@ // for more details. // ///////////////////////////////////////////////////////////////////////////////// + #include "RicImportObservedFmuDataFeature.h" #include "RiaApplication.h" +#include "RiaGuiApplication.h" +#include "RiaLogging.h" + #include "RicImportFormationNamesFeature.h" + #include "RifReaderFmuRft.h" #include "RimObservedDataCollection.h" @@ -53,7 +58,24 @@ void RicImportObservedFmuDataFeature::selectObservedDataPathInDialog() QFileDialog::ShowDirsOnly ); QStringList subDirsWithFmuData = RifReaderFmuRft::findSubDirectoriesWithFmuRftData( directory ); - if ( subDirsWithFmuData.empty() ) return; + if ( subDirsWithFmuData.empty() ) + { + QString message = + QString( + "Could not find the file %1 in any sub-folder of %2.\nThis file is required for import of FMU data." ) + .arg( RifReaderFmuRft::wellPathFileName() ) + .arg( directory ); + + RiaGuiApplication* guiApp = RiaGuiApplication::instance(); + if ( guiApp ) + { + QMessageBox::warning( nullptr, "Import of Observed FMU Data", message ); + } + + RiaLogging::warning( message ); + + return; + } RimProject* proj = app->project(); RimObservedDataCollection* observedDataCollection = proj->activeOilField() diff --git a/ApplicationCode/FileInterface/RifReaderFmuRft.cpp b/ApplicationCode/FileInterface/RifReaderFmuRft.cpp index 1178affcba..cc9ccac30b 100644 --- a/ApplicationCode/FileInterface/RifReaderFmuRft.cpp +++ b/ApplicationCode/FileInterface/RifReaderFmuRft.cpp @@ -112,7 +112,7 @@ bool RifReaderFmuRft::directoryContainsFmuRftData( const QString& filePath ) } QDir dir( filePath ); - if ( !dir.exists( "well_date_rft.txt" ) ) + if ( !dir.exists( RifReaderFmuRft::wellPathFileName() ) ) { return false; } @@ -138,6 +138,14 @@ bool RifReaderFmuRft::directoryContainsFmuRftData( const QString& filePath ) return false; } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +QString RifReaderFmuRft::wellPathFileName() +{ + return "well_date_rft.txt"; +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- @@ -386,10 +394,10 @@ RifReaderFmuRft::WellObservationMap RifReaderFmuRft::loadWellDates( QDir& dir, Q WellObservationMap validObservations; - QFileInfo wellDateFileInfo( dir.absoluteFilePath( "well_date_rft.txt" ) ); + QFileInfo wellDateFileInfo( dir.absoluteFilePath( RifReaderFmuRft::wellPathFileName() ) ); if ( !( wellDateFileInfo.exists() && wellDateFileInfo.isFile() && wellDateFileInfo.isReadable() ) ) { - *errorMsg = QString( "well_date_rft.txt cannot be found at '%s'" ).arg( m_filePath ); + *errorMsg = QString( "%1 cannot be found at '%s'" ).arg( RifReaderFmuRft::wellPathFileName() ).arg( m_filePath ); return WellObservationMap(); } diff --git a/ApplicationCode/FileInterface/RifReaderFmuRft.h b/ApplicationCode/FileInterface/RifReaderFmuRft.h index f0b7cc9dbb..1c4b8ed68c 100644 --- a/ApplicationCode/FileInterface/RifReaderFmuRft.h +++ b/ApplicationCode/FileInterface/RifReaderFmuRft.h @@ -67,6 +67,7 @@ public: static QStringList findSubDirectoriesWithFmuRftData( const QString& filePath ); static bool directoryContainsFmuRftData( const QString& filePath ); + static QString wellPathFileName(); std::vector labels( const RifEclipseRftAddress& rftAddress ); From 6d7b29bb29864d99f32fd977f31c8bcce40b5a48 Mon Sep 17 00:00:00 2001 From: Magne Sjaastad Date: Fri, 18 Oct 2019 14:45:12 +0200 Subject: [PATCH 2/2] #4893 Formations : Make sure "layer_zone_table.txt" is defined once --- .../Commands/RicImportFormationNamesFeature.cpp | 10 +++++++--- .../Commands/RicImportObservedFmuDataFeature.cpp | 3 ++- ApplicationCode/ProjectDataModel/RimFormationNames.cpp | 10 +++++++++- ApplicationCode/ProjectDataModel/RimFormationNames.h | 2 ++ 4 files changed, 20 insertions(+), 5 deletions(-) diff --git a/ApplicationCode/Commands/RicImportFormationNamesFeature.cpp b/ApplicationCode/Commands/RicImportFormationNamesFeature.cpp index 6621afd80b..a37e79316c 100644 --- a/ApplicationCode/Commands/RicImportFormationNamesFeature.cpp +++ b/ApplicationCode/Commands/RicImportFormationNamesFeature.cpp @@ -75,11 +75,15 @@ void RicImportFormationNamesFeature::onActionTriggered( bool isChecked ) { RiaApplication* app = RiaApplication::instance(); QString defaultDir = app->lastUsedDialogDirectory( "BINARY_GRID" ); - QStringList fileNames = QFileDialog::getOpenFileNames( Riu3DMainWindowTools::mainWindowWidget(), + + QString filterText = QString( + "Formation Names description File (*.lyr);;FMU Layer Zone Table(%1);;All Files (*.*)" ) + .arg( RimFormationNames::layerZoneTableFileName() ); + + QStringList fileNames = QFileDialog::getOpenFileNames( Riu3DMainWindowTools::mainWindowWidget(), "Import Formation Names", defaultDir, - "Formation Names description File (*.lyr);;FMU Layer Zone " - "Table(layer_zone_table.txt);;All Files (*.*)" ); + filterText ); if ( fileNames.isEmpty() ) return; diff --git a/ApplicationCode/Commands/RicImportObservedFmuDataFeature.cpp b/ApplicationCode/Commands/RicImportObservedFmuDataFeature.cpp index f6ad5f87ad..f6bf21fb08 100644 --- a/ApplicationCode/Commands/RicImportObservedFmuDataFeature.cpp +++ b/ApplicationCode/Commands/RicImportObservedFmuDataFeature.cpp @@ -26,6 +26,7 @@ #include "RifReaderFmuRft.h" +#include "RimFormationNames.h" #include "RimObservedDataCollection.h" #include "RimObservedFmuRftData.h" #include "RimObservedSummaryData.h" @@ -88,7 +89,7 @@ void RicImportObservedFmuDataFeature::selectObservedDataPathInDialog() { importedData = observedDataCollection->createAndAddFmuRftDataFromPath( subDir ); QDir dir( subDir ); - QString layerZoneFile = dir.absoluteFilePath( "layer_zone_table.txt" ); + QString layerZoneFile = dir.absoluteFilePath( RimFormationNames::layerZoneTableFileName() ); if ( QFileInfo::exists( layerZoneFile ) ) { QStringList fileNames; diff --git a/ApplicationCode/ProjectDataModel/RimFormationNames.cpp b/ApplicationCode/ProjectDataModel/RimFormationNames.cpp index de1a37ddab..6491f3188d 100644 --- a/ApplicationCode/ProjectDataModel/RimFormationNames.cpp +++ b/ApplicationCode/ProjectDataModel/RimFormationNames.cpp @@ -151,7 +151,7 @@ void RimFormationNames::readFormationNamesFile( QString* errorMessage ) QFileInfo fileInfo( m_formationNamesFileName() ); - if ( fileInfo.fileName() == "layer_zone_table.txt" ) + if ( fileInfo.fileName() == RimFormationNames::layerZoneTableFileName() ) { readFmuFormationNameFile( stream, errorMessage ); } @@ -174,6 +174,14 @@ void RimFormationNames::updateFilePathsFromProjectPath( const QString& newProjec nullptr ); } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +QString RimFormationNames::layerZoneTableFileName() +{ + return "layer_zone_table.txt"; +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ProjectDataModel/RimFormationNames.h b/ApplicationCode/ProjectDataModel/RimFormationNames.h index 9f1a5a51bc..a46b697cdd 100644 --- a/ApplicationCode/ProjectDataModel/RimFormationNames.h +++ b/ApplicationCode/ProjectDataModel/RimFormationNames.h @@ -49,6 +49,8 @@ public: void readFormationNamesFile( QString* errorMessage ); void updateFilePathsFromProjectPath( const QString& newProjectPath, const QString& oldProjectPath ); + static QString layerZoneTableFileName(); + protected: void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue,