#4773 Ensemble RFT: load formation file when loading observed data

This commit is contained in:
Gaute Lindkvist 2019-09-26 15:43:13 +02:00
parent 912e2063df
commit 79da8ba5b5
3 changed files with 58 additions and 31 deletions

View File

@ -40,6 +40,26 @@
CAF_CMD_SOURCE_INIT( RicImportFormationNamesFeature, "RicImportFormationNamesFeature" );
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimFormationNames* RicImportFormationNamesFeature::importFormationFiles( const QStringList& fileNames )
{
RimProject* proj = RiaApplication::instance()->project();
RimFormationNamesCollection* fomNameColl = proj->activeOilField()->formationNamesCollection();
if ( !fomNameColl )
{
fomNameColl = new RimFormationNamesCollection;
proj->activeOilField()->formationNamesCollection = fomNameColl;
}
// For each file, find existing Formation names item, or create new
RimFormationNames* formationNames = fomNameColl->importFiles( fileNames );
fomNameColl->updateConnectedEditors();
return formationNames;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@ -67,20 +87,14 @@ void RicImportFormationNamesFeature::onActionTriggered( bool isChecked )
app->setLastUsedDialogDirectory( "BINARY_GRID", QFileInfo( fileNames.last() ).absolutePath() );
// Find or create the FomationNamesCollection
RimProject* proj = RiaApplication::instance()->project();
RimFormationNamesCollection* fomNameColl = proj->activeOilField()->formationNamesCollection();
if ( !fomNameColl )
{
fomNameColl = new RimFormationNamesCollection;
proj->activeOilField()->formationNamesCollection = fomNameColl;
}
// For each file, find existing Formation names item, or create new
RimFormationNames* formationName = fomNameColl->importFiles( fileNames );
RimFormationNames* formationName = importFormationFiles( fileNames );
if ( fileNames.size() > 1 ) return;
if ( formationName )
{
RimProject* proj = RiaApplication::instance()->project();
std::vector<RimCase*> cases;
proj->allCases( cases );
@ -98,13 +112,12 @@ void RicImportFormationNamesFeature::onActionTriggered( bool isChecked )
}
}
fomNameColl->updateConnectedEditors();
if ( formationName )
{
Riu3DMainWindowTools::selectAsCurrentItem( formationName );
}
}
}
//--------------------------------------------------------------------------------------------------
///

View File

@ -19,6 +19,7 @@
#pragma once
#include "cafCmdFeature.h"
class RimFormationNames;
//==================================================================================================
///
@ -27,6 +28,8 @@ class RicImportFormationNamesFeature : public caf::CmdFeature
{
CAF_CMD_HEADER_INIT;
static RimFormationNames* importFormationFiles( const QStringList& fileNames );
protected:
// Overrides
bool isCommandEnabled() override;

View File

@ -18,6 +18,7 @@
#include "RicImportObservedFmuDataFeature.h"
#include "RiaApplication.h"
#include "RicImportFormationNamesFeature.h"
#include "RifReaderFmuRft.h"
#include "RimObservedDataCollection.h"
@ -32,7 +33,9 @@
#include "cafSelectionManager.h"
#include <QAction>
#include <QDir>
#include <QFileDialog>
#include <QFileInfo>
#include <QMessageBox>
CAF_CMD_SOURCE_INIT( RicImportObservedFmuDataFeature, "RicImportObservedFmuDataFeature" );
@ -62,6 +65,14 @@ void RicImportObservedFmuDataFeature::selectObservedDataPathInDialog()
for ( const QString& subDir : subDirsWithFmuData )
{
importedData = observedDataCollection->createAndAddFmuRftDataFromPath( subDir );
QDir dir( subDir );
QString layerZoneFile = dir.absoluteFilePath( "layer_zone_table.txt" );
if ( QFileInfo::exists( layerZoneFile ) )
{
QStringList fileNames;
fileNames << layerZoneFile;
RicImportFormationNamesFeature::importFormationFiles( fileNames );
}
}
if ( importedData != nullptr )
{