mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Refactor: use new base class WellLog where possible.
This commit is contained in:
@@ -131,7 +131,7 @@ RimWellPath::RimWellPath()
|
||||
CAF_PDM_InitScriptableFieldNoDefault( &m_completionSettings, "CompletionSettings", "Completion Settings" );
|
||||
m_completionSettings = new RimWellPathCompletionSettings;
|
||||
|
||||
CAF_PDM_InitFieldNoDefault( &m_wellLogFiles, "WellLogFiles", "Well Log Files" );
|
||||
CAF_PDM_InitFieldNoDefault( &m_wellLogs, "WellLogFiles", "Well Logs" );
|
||||
|
||||
CAF_PDM_InitFieldNoDefault( &m_3dWellLogCurves, "CollectionOf3dWellLogCurves", "3D Track" );
|
||||
m_3dWellLogCurves = new Rim3dWellLogCurveCollection;
|
||||
@@ -161,9 +161,9 @@ RimWellPath::RimWellPath()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimWellPath::~RimWellPath()
|
||||
{
|
||||
for ( const auto& file : m_wellLogFiles() )
|
||||
for ( const auto& wellLog : m_wellLogs() )
|
||||
{
|
||||
delete file;
|
||||
delete wellLog;
|
||||
}
|
||||
|
||||
RimWellLogPlotCollection* plotCollection = RimMainPlotCollection::current()->wellLogPlotCollection();
|
||||
@@ -577,7 +577,24 @@ void RimWellPath::setNameNoUpdateOfExportName( const QString& name )
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<RimWellLogFile*> RimWellPath::wellLogFiles() const
|
||||
{
|
||||
return std::vector<RimWellLogFile*>( m_wellLogFiles.begin(), m_wellLogFiles.end() );
|
||||
std::vector<RimWellLogFile*> wellLogFiles;
|
||||
for ( RimWellLog* wellLog : m_wellLogs )
|
||||
{
|
||||
if ( auto wellLogFile = dynamic_cast<RimWellLogFile*>( wellLog ) )
|
||||
{
|
||||
wellLogFiles.push_back( wellLogFile );
|
||||
}
|
||||
}
|
||||
|
||||
return wellLogFiles;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<RimWellLog*> RimWellPath::wellLogs() const
|
||||
{
|
||||
return m_wellLogs.childrenByType();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -585,11 +602,9 @@ std::vector<RimWellLogFile*> RimWellPath::wellLogFiles() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimWellLogFile* RimWellPath::firstWellLogFileMatchingChannelName( const QString& channelName ) const
|
||||
{
|
||||
std::vector<RimWellLogFile*> allWellLogFiles = wellLogFiles();
|
||||
for ( RimWellLogFile* logFile : allWellLogFiles )
|
||||
for ( RimWellLogFile* logFile : wellLogFiles() )
|
||||
{
|
||||
std::vector<RimWellLogChannel*> channels = logFile->wellLogChannels();
|
||||
for ( RimWellLogChannel* channel : channels )
|
||||
for ( RimWellLogChannel* channel : logFile->wellLogChannels() )
|
||||
{
|
||||
if ( channel->name() == channelName )
|
||||
{
|
||||
@@ -597,6 +612,7 @@ RimWellLogFile* RimWellPath::firstWellLogFileMatchingChannelName( const QString&
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
@@ -745,7 +761,7 @@ void RimWellPath::defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& ui
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimWellPath::defineUiTreeOrdering( caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName )
|
||||
{
|
||||
uiTreeOrdering.add( &m_wellLogFiles );
|
||||
uiTreeOrdering.add( &m_wellLogs );
|
||||
|
||||
if ( m_wellIASettingsCollection()->isEnabled() && m_wellIASettingsCollection()->hasSettings() )
|
||||
{
|
||||
@@ -892,47 +908,58 @@ double RimWellPath::datumElevation() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimWellPath::addWellLogFile( RimWellLogFile* logFileInfo )
|
||||
void RimWellPath::addWellLog( RimWellLog* wellLog )
|
||||
{
|
||||
// Prevent the same file from being loaded more than once
|
||||
auto itr = std::find_if( m_wellLogFiles.begin(),
|
||||
m_wellLogFiles.end(),
|
||||
[&]( const RimWellLogFile* file )
|
||||
{ return QString::compare( file->fileName(), logFileInfo->fileName(), Qt::CaseInsensitive ) == 0; } );
|
||||
|
||||
// Todo: Verify well name to ensure all well log files having the same well name
|
||||
|
||||
if ( itr == m_wellLogFiles.end() )
|
||||
if ( RimWellLogFile* wellLogFile = dynamic_cast<RimWellLogFile*>( wellLog ) )
|
||||
{
|
||||
m_wellLogFiles.push_back( logFileInfo );
|
||||
// Prevent the same file from being loaded more than once
|
||||
auto itr =
|
||||
std::find_if( m_wellLogs.begin(),
|
||||
m_wellLogs.end(),
|
||||
[&]( const RimWellLog* existingWellLog )
|
||||
{
|
||||
auto existingWellLogFile = dynamic_cast<const RimWellLogFile*>( existingWellLog );
|
||||
return existingWellLogFile &&
|
||||
QString::compare( existingWellLogFile->fileName(), wellLogFile->fileName(), Qt::CaseInsensitive ) == 0;
|
||||
} );
|
||||
|
||||
if ( m_wellLogFiles.size() == 1 && name().isEmpty() )
|
||||
// Todo: Verify well name to ensure all well log files having the same well name
|
||||
if ( itr == m_wellLogs.end() )
|
||||
{
|
||||
setName( m_wellLogFiles[0]->wellName() );
|
||||
m_wellLogs.push_back( wellLog );
|
||||
|
||||
if ( m_wellLogs.size() == 1 && name().isEmpty() )
|
||||
{
|
||||
setName( m_wellLogs[0]->wellName() );
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_wellLogs.push_back( osduWellLog );
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimWellPath::deleteWellLogFile( RimWellLogFile* logFileInfo )
|
||||
void RimWellPath::deleteWellLog( RimWellLog* wellLog )
|
||||
{
|
||||
detachWellLogFile( logFileInfo );
|
||||
delete logFileInfo;
|
||||
detachWellLog( wellLog );
|
||||
delete wellLog;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimWellPath::detachWellLogFile( RimWellLogFile* logFileInfo )
|
||||
void RimWellPath::detachWellLog( RimWellLog* wellLog )
|
||||
{
|
||||
auto pdmObject = dynamic_cast<caf::PdmObjectHandle*>( logFileInfo );
|
||||
for ( size_t i = 0; i < m_wellLogFiles.size(); i++ )
|
||||
auto pdmObject = dynamic_cast<caf::PdmObjectHandle*>( wellLog );
|
||||
for ( size_t i = 0; i < m_wellLogs.size(); i++ )
|
||||
{
|
||||
if ( m_wellLogFiles[i] == pdmObject )
|
||||
if ( m_wellLogs[i] == pdmObject )
|
||||
{
|
||||
m_wellLogFiles.removeChild( pdmObject );
|
||||
m_wellLogs.removeChild( pdmObject );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user