mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Grid Ensemble: add methods to add view
This commit is contained in:
parent
b84362dfc0
commit
ade044adbf
@ -94,6 +94,7 @@ set(SOURCE_GROUP_HEADER_FILES
|
||||
${CMAKE_CURRENT_LIST_DIR}/RicExportSummaryCalculationExpressionsFeature.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RicImportSummaryCalculationExpressionsFeature.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RicImportWellLogCsvFileFeature.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RicNewViewForGridEnsembleFeature.h
|
||||
)
|
||||
|
||||
set(SOURCE_GROUP_SOURCE_FILES
|
||||
@ -191,6 +192,7 @@ set(SOURCE_GROUP_SOURCE_FILES
|
||||
${CMAKE_CURRENT_LIST_DIR}/RicExportSummaryCalculationExpressionsFeature.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RicImportSummaryCalculationExpressionsFeature.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RicImportWellLogCsvFileFeature.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RicNewViewForGridEnsembleFeature.cpp
|
||||
)
|
||||
|
||||
if(RESINSIGHT_USE_QT_CHARTS)
|
||||
|
@ -23,6 +23,7 @@
|
||||
|
||||
#include "Rim3dView.h"
|
||||
#include "RimEclipseCase.h"
|
||||
#include "RimEclipseCaseEnsemble.h"
|
||||
#include "RimEclipseCaseTools.h"
|
||||
#include "RimEclipseContourMapView.h"
|
||||
#include "RimEclipseView.h"
|
||||
@ -41,9 +42,9 @@ CAF_CMD_SOURCE_INIT( RicNewViewFeature, "RicNewViewFeature" );
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RicNewViewFeature::addReservoirView( RimEclipseCase* eclipseCase, RimGeoMechCase* geomCase, bool useGlobalViewCollection )
|
||||
void RicNewViewFeature::addReservoirView( RimEclipseCase* eclipseCase, RimGeoMechCase* geomCase, RimEclipseViewCollection* viewColl )
|
||||
{
|
||||
Rim3dView* newView = createReservoirView( eclipseCase, geomCase, useGlobalViewCollection );
|
||||
Rim3dView* newView = createReservoirView( eclipseCase, geomCase, viewColl );
|
||||
|
||||
if ( newView )
|
||||
{
|
||||
@ -69,30 +70,45 @@ bool RicNewViewFeature::isCommandEnabled() const
|
||||
void RicNewViewFeature::onActionTriggered( bool isChecked )
|
||||
{
|
||||
// Establish type of selected object
|
||||
RimEclipseCase* eclipseCase = selectedEclipseCase();
|
||||
RimGeoMechCase* geomCase = selectedGeoMechCase();
|
||||
RimGeoMechView* geoMechView = selectedGeoMechView();
|
||||
RimEclipseView* reservoirView = selectedEclipseView();
|
||||
RimEclipseCase* eclipseCase = selectedEclipseCase();
|
||||
RimGeoMechCase* geomCase = selectedGeoMechCase();
|
||||
RimGeoMechView* geoMechView = selectedGeoMechView();
|
||||
RimEclipseView* reservoirView = selectedEclipseView();
|
||||
RimEclipseViewCollection* viewCollection = selectedEclipseViewCollection();
|
||||
RimEclipseCaseEnsemble* eclipseEnsemble = selectedEclipseCaseEnsemble();
|
||||
|
||||
// Find case to insert into
|
||||
if ( geoMechView ) geomCase = geoMechView->geoMechCase();
|
||||
if ( reservoirView ) eclipseCase = reservoirView->eclipseCase();
|
||||
|
||||
bool useGlobalViewCollection = false;
|
||||
if ( selectedEclipseViewCollection() )
|
||||
if ( eclipseCase )
|
||||
{
|
||||
viewCollection = eclipseCase->viewCollection();
|
||||
}
|
||||
else if ( eclipseEnsemble )
|
||||
{
|
||||
viewCollection = eclipseEnsemble->viewCollection();
|
||||
auto eclipseCases = eclipseEnsemble->cases();
|
||||
eclipseCase = !eclipseCases.empty() ? eclipseCases[0] : nullptr;
|
||||
}
|
||||
else if ( viewCollection )
|
||||
{
|
||||
// Use global view collection if view collection is not descendant of Eclipse case.
|
||||
useGlobalViewCollection = selectedEclipseViewCollection()->firstAncestorOrThisOfType<RimEclipseCase>() == nullptr;
|
||||
eclipseCase = viewCollection->firstAncestorOrThisOfType<RimEclipseCase>();
|
||||
if ( !eclipseCase )
|
||||
{
|
||||
auto eclipseCases = RimEclipseCaseTools::allEclipseGridCases();
|
||||
// Use cases from grid ensemble if applicable
|
||||
auto gridEnsemble = viewCollection->firstAncestorOfType<RimEclipseCaseEnsemble>();
|
||||
auto eclipseCases = gridEnsemble ? gridEnsemble->cases() : RimEclipseCaseTools::allEclipseGridCases();
|
||||
|
||||
if ( !eclipseCases.empty() )
|
||||
{
|
||||
eclipseCase = eclipseCases[0];
|
||||
}
|
||||
}
|
||||
}
|
||||
addReservoirView( eclipseCase, geomCase, useGlobalViewCollection );
|
||||
|
||||
addReservoirView( eclipseCase, geomCase, viewCollection );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -107,13 +123,13 @@ void RicNewViewFeature::setupActionLook( QAction* actionToSetup )
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
Rim3dView* RicNewViewFeature::createReservoirView( RimEclipseCase* eclipseCase, RimGeoMechCase* geomCase, bool useGlobalViewCollection )
|
||||
Rim3dView* RicNewViewFeature::createReservoirView( RimEclipseCase* eclipseCase, RimGeoMechCase* geomCase, RimEclipseViewCollection* viewColl )
|
||||
{
|
||||
RimGridView* insertedView = nullptr;
|
||||
|
||||
if ( eclipseCase )
|
||||
{
|
||||
insertedView = eclipseCase->createAndAddReservoirView( useGlobalViewCollection );
|
||||
insertedView = eclipseCase->createAndAddReservoirView( viewColl );
|
||||
}
|
||||
else if ( geomCase )
|
||||
{
|
||||
@ -198,6 +214,17 @@ RimEclipseViewCollection* RicNewViewFeature::selectedEclipseViewCollection()
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimEclipseCaseEnsemble* RicNewViewFeature::selectedEclipseCaseEnsemble()
|
||||
{
|
||||
std::vector<RimEclipseCaseEnsemble*> selection;
|
||||
caf::SelectionManager::instance()->objectsByType( &selection );
|
||||
if ( !selection.empty() ) return selection[0];
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -27,6 +27,7 @@ class RimGeoMechCase;
|
||||
class RimGeoMechView;
|
||||
class Rim3dView;
|
||||
class RimEclipseViewCollection;
|
||||
class RimEclipseCaseEnsemble;
|
||||
|
||||
//==================================================================================================
|
||||
///
|
||||
@ -36,7 +37,7 @@ class RicNewViewFeature : public caf::CmdFeature
|
||||
CAF_CMD_HEADER_INIT;
|
||||
|
||||
public:
|
||||
static void addReservoirView( RimEclipseCase* eclipseCase, RimGeoMechCase* geomCase, bool useGlobalViewCollection = false );
|
||||
static void addReservoirView( RimEclipseCase* eclipseCase, RimGeoMechCase* geomCase, RimEclipseViewCollection* viewColl );
|
||||
|
||||
protected:
|
||||
bool isCommandEnabled() const override;
|
||||
@ -44,11 +45,12 @@ protected:
|
||||
void setupActionLook( QAction* actionToSetup ) override;
|
||||
|
||||
private:
|
||||
static Rim3dView* createReservoirView( RimEclipseCase* eclipseCase, RimGeoMechCase* geomCase, bool useGlobalViewCollectin );
|
||||
static Rim3dView* createReservoirView( RimEclipseCase* eclipseCase, RimGeoMechCase* geomCase, RimEclipseViewCollection* viewColl );
|
||||
|
||||
static RimEclipseCase* selectedEclipseCase();
|
||||
static RimGeoMechCase* selectedGeoMechCase();
|
||||
static RimEclipseView* selectedEclipseView();
|
||||
static RimGeoMechView* selectedGeoMechView();
|
||||
static RimEclipseViewCollection* selectedEclipseViewCollection();
|
||||
static RimEclipseCaseEnsemble* selectedEclipseCaseEnsemble();
|
||||
};
|
||||
|
@ -0,0 +1,96 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2024- Equinor 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 <http://www.gnu.org/licenses/gpl.html>
|
||||
// for more details.
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "RicNewViewForGridEnsembleFeature.h"
|
||||
|
||||
#include "RiaLogging.h"
|
||||
|
||||
#include "Rim3dView.h"
|
||||
#include "RimEclipseCase.h"
|
||||
#include "RimEclipseCaseEnsemble.h"
|
||||
#include "RimEclipseContourMapView.h"
|
||||
#include "RimEclipseView.h"
|
||||
#include "RimGeoMechCase.h"
|
||||
#include "RimGeoMechView.h"
|
||||
|
||||
#include "Riu3DMainWindowTools.h"
|
||||
|
||||
#include "cafSelectionManager.h"
|
||||
|
||||
#include <QAction>
|
||||
|
||||
CAF_CMD_SOURCE_INIT( RicNewViewForGridEnsembleFeature, "RicNewViewForGridEnsembleFeature" );
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RicNewViewForGridEnsembleFeature::addView( RimEclipseCaseEnsemble* eclipseCaseEnsemble )
|
||||
{
|
||||
std::vector<RimEclipseCase*> cases = eclipseCaseEnsemble->cases();
|
||||
if ( cases.empty() ) return;
|
||||
|
||||
auto newView = eclipseCaseEnsemble->addViewForCase( cases[0] );
|
||||
eclipseCaseEnsemble->updateConnectedEditors();
|
||||
|
||||
Riu3DMainWindowTools::setExpanded( newView );
|
||||
|
||||
// Select the new view to make sure RiaApplication::setActiveReservoirView() is called
|
||||
Riu3DMainWindowTools::selectAsCurrentItem( newView );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RicNewViewForGridEnsembleFeature::isCommandEnabled() const
|
||||
{
|
||||
return selectedEclipseCaseEnsemble() != nullptr;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RicNewViewForGridEnsembleFeature::onActionTriggered( bool isChecked )
|
||||
{
|
||||
RimEclipseCaseEnsemble* eclipseCaseEnsemble = selectedEclipseCaseEnsemble();
|
||||
addView( eclipseCaseEnsemble );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RicNewViewForGridEnsembleFeature::setupActionLook( QAction* actionToSetup )
|
||||
{
|
||||
actionToSetup->setText( "New View" );
|
||||
actionToSetup->setIcon( QIcon( ":/3DView16x16.png" ) );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimEclipseCaseEnsemble* RicNewViewForGridEnsembleFeature::selectedEclipseCaseEnsemble()
|
||||
{
|
||||
std::vector<RimEclipseCaseEnsemble*> selection;
|
||||
caf::SelectionManager::instance()->objectsByType( &selection );
|
||||
|
||||
if ( !selection.empty() )
|
||||
{
|
||||
return selection[0];
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
@ -0,0 +1,42 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2024- Equinor 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 <http://www.gnu.org/licenses/gpl.html>
|
||||
// for more details.
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "cafCmdFeature.h"
|
||||
|
||||
class RimEclipseCaseEnsemble;
|
||||
class RimEclipseView;
|
||||
|
||||
//==================================================================================================
|
||||
///
|
||||
//==================================================================================================
|
||||
class RicNewViewForGridEnsembleFeature : public caf::CmdFeature
|
||||
{
|
||||
CAF_CMD_HEADER_INIT;
|
||||
|
||||
public:
|
||||
static void addView( RimEclipseCaseEnsemble* eclipseCaseEnsemble );
|
||||
|
||||
protected:
|
||||
bool isCommandEnabled() const override;
|
||||
void onActionTriggered( bool isChecked ) override;
|
||||
void setupActionLook( QAction* actionToSetup ) override;
|
||||
|
||||
static RimEclipseCaseEnsemble* selectedEclipseCaseEnsemble();
|
||||
};
|
@ -49,6 +49,7 @@
|
||||
#include "RimCustomObjectiveFunctionCollection.h"
|
||||
#include "RimEclipseCase.h"
|
||||
#include "RimEclipseCaseCollection.h"
|
||||
#include "RimEclipseCaseEnsemble.h"
|
||||
#include "RimEclipseCellColors.h"
|
||||
#include "RimEclipseContourMapView.h"
|
||||
#include "RimEclipseContourMapViewCollection.h"
|
||||
@ -273,6 +274,10 @@ caf::CmdFeatureMenuBuilder RimContextCommandBuilder::commandsFromSelection()
|
||||
menuBuilder << "Separator";
|
||||
menuBuilder << "RicNewStatisticsCaseFeature";
|
||||
}
|
||||
else if ( dynamic_cast<RimEclipseCaseEnsemble*>( firstUiItem ) )
|
||||
{
|
||||
menuBuilder << "RicNewViewForGridEnsembleFeature";
|
||||
}
|
||||
else if ( dynamic_cast<RimGeoMechModels*>( firstUiItem ) )
|
||||
{
|
||||
menuBuilder << "RicImportGeoMechCaseFeature";
|
||||
|
@ -312,6 +312,14 @@ void RimEclipseCase::initAfterRead()
|
||||
RimEclipseView* RimEclipseCase::createAndAddReservoirView( bool useGlobalViewCollection )
|
||||
{
|
||||
RimEclipseViewCollection* viewColl = useGlobalViewCollection ? globalViewCollection() : viewCollection();
|
||||
return createAndAddReservoirView( viewColl );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimEclipseView* RimEclipseCase::createAndAddReservoirView( RimEclipseViewCollection* viewColl )
|
||||
{
|
||||
if ( !viewColl ) return nullptr;
|
||||
|
||||
return viewColl->addView( this );
|
||||
|
@ -68,6 +68,7 @@ public:
|
||||
~RimEclipseCase() override;
|
||||
|
||||
std::vector<RimEclipseView*> reservoirViews() const;
|
||||
RimEclipseViewCollection* viewCollection() const;
|
||||
|
||||
std::vector<QString> filesContainingFaults() const;
|
||||
void setFilesContainingFaults( const std::vector<QString>& val );
|
||||
@ -92,6 +93,7 @@ public:
|
||||
const RimReservoirCellResultsStorage* resultsStorage( RiaDefines::PorosityModelType porosityModel ) const;
|
||||
|
||||
RimEclipseView* createAndAddReservoirView( bool useGlobalViewCollection = false );
|
||||
RimEclipseView* createAndAddReservoirView( RimEclipseViewCollection* viewColl );
|
||||
RimEclipseView* createCopyAndAddView( const RimEclipseView* sourceView );
|
||||
|
||||
const RigVirtualPerforationTransmissibilities* computeAndGetVirtualPerforationTransmissibilities();
|
||||
@ -140,7 +142,6 @@ protected:
|
||||
void computeCachedData();
|
||||
void setReservoirData( RigEclipseCaseData* eclipseCase );
|
||||
std::vector<QString> additionalFiles() const;
|
||||
RimEclipseViewCollection* viewCollection() const;
|
||||
RimEclipseViewCollection* globalViewCollection() const;
|
||||
RimEclipseContourMapViewCollection* contourMapViewCollection() const;
|
||||
void addViewsFromViewCollection( std::vector<RimEclipseView*>& views, const RimEclipseViewCollection* viewColl ) const;
|
||||
|
@ -20,8 +20,8 @@
|
||||
|
||||
#include "RimCaseCollection.h"
|
||||
#include "RimEclipseCase.h"
|
||||
#include "RimEclipseCellColors.h"
|
||||
#include "RimEclipseResultCase.h"
|
||||
#include "RimEclipseView.h"
|
||||
#include "RimEclipseViewCollection.h"
|
||||
|
||||
#include "cafPdmFieldScriptingCapability.h"
|
||||
#include "cafPdmObjectScriptingCapability.h"
|
||||
@ -40,11 +40,15 @@ RimEclipseCaseEnsemble::RimEclipseCaseEnsemble()
|
||||
m_groupId.capability<caf::PdmAbstractFieldScriptingCapability>()->setIOWriteable( false );
|
||||
|
||||
CAF_PDM_InitFieldNoDefault( &m_caseCollection, "CaseCollection", "Ensemble Cases" );
|
||||
|
||||
m_caseCollection = new RimCaseCollection;
|
||||
m_caseCollection->uiCapability()->setUiName( "Cases" );
|
||||
m_caseCollection->uiCapability()->setUiIconFromResourceString( ":/Cases16x16.png" );
|
||||
|
||||
CAF_PDM_InitFieldNoDefault( &m_selectedCase, "SelectedCase", "Selected Case" );
|
||||
|
||||
CAF_PDM_InitFieldNoDefault( &m_viewCollection, "ViewCollection", "Views" );
|
||||
m_viewCollection = new RimEclipseViewCollection;
|
||||
|
||||
setDeletable( true );
|
||||
}
|
||||
|
||||
@ -55,6 +59,9 @@ RimEclipseCaseEnsemble::~RimEclipseCaseEnsemble()
|
||||
{
|
||||
delete m_caseCollection;
|
||||
m_caseCollection = nullptr;
|
||||
|
||||
delete m_viewCollection;
|
||||
m_viewCollection = nullptr;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -91,3 +98,72 @@ bool RimEclipseCaseEnsemble::contains( RimEclipseCase* reservoir ) const
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<RimEclipseCase*> RimEclipseCaseEnsemble::cases() const
|
||||
{
|
||||
return m_caseCollection->reservoirs.childrenByType();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimEclipseCaseEnsemble::addView( RimEclipseView* view )
|
||||
{
|
||||
m_viewCollection->addView( view );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimEclipseView* RimEclipseCaseEnsemble::addViewForCase( RimEclipseCase* eclipseCase )
|
||||
{
|
||||
return m_viewCollection->addView( eclipseCase );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QList<caf::PdmOptionItemInfo> RimEclipseCaseEnsemble::calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions )
|
||||
{
|
||||
QList<caf::PdmOptionItemInfo> options;
|
||||
|
||||
if ( fieldNeedingOptions == &m_selectedCase )
|
||||
{
|
||||
for ( auto eclCase : cases() )
|
||||
{
|
||||
options.push_back( caf::PdmOptionItemInfo( eclCase->caseUserDescription(), eclCase, false, eclCase->uiIconProvider() ) );
|
||||
}
|
||||
|
||||
return options;
|
||||
}
|
||||
|
||||
return options;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimEclipseCaseEnsemble::fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue )
|
||||
{
|
||||
if ( changedField == &m_selectedCase )
|
||||
{
|
||||
for ( auto view : m_viewCollection->views() )
|
||||
{
|
||||
view->setEclipseCase( m_selectedCase() );
|
||||
view->loadDataAndUpdate();
|
||||
view->updateGridBoxData();
|
||||
view->updateAnnotationItems();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimEclipseViewCollection* RimEclipseCaseEnsemble::viewCollection() const
|
||||
{
|
||||
return m_viewCollection;
|
||||
}
|
||||
|
@ -20,11 +20,15 @@
|
||||
|
||||
#include "RimNamedObject.h"
|
||||
|
||||
#include "cafPdmChildArrayField.h"
|
||||
#include "cafPdmChildField.h"
|
||||
#include "cafPdmField.h"
|
||||
#include "cafPdmPtrField.h"
|
||||
|
||||
class RimCaseCollection;
|
||||
class RimEclipseCase;
|
||||
class RimEclipseView;
|
||||
class RimEclipseViewCollection;
|
||||
|
||||
//==================================================================================================
|
||||
//
|
||||
@ -43,7 +47,20 @@ public:
|
||||
void removeCase( RimEclipseCase* reservoir );
|
||||
bool contains( RimEclipseCase* reservoir ) const;
|
||||
|
||||
std::vector<RimEclipseCase*> cases() const;
|
||||
|
||||
void addView( RimEclipseView* view );
|
||||
RimEclipseView* addViewForCase( RimEclipseCase* eclipseCase );
|
||||
|
||||
RimEclipseViewCollection* viewCollection() const;
|
||||
|
||||
protected:
|
||||
QList<caf::PdmOptionItemInfo> calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions ) override;
|
||||
void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override;
|
||||
|
||||
private:
|
||||
caf::PdmField<int> m_groupId;
|
||||
caf::PdmChildField<RimCaseCollection*> m_caseCollection;
|
||||
caf::PdmField<int> m_groupId;
|
||||
caf::PdmChildField<RimCaseCollection*> m_caseCollection;
|
||||
caf::PdmChildField<RimEclipseViewCollection*> m_viewCollection;
|
||||
caf::PdmPtrField<RimEclipseCase*> m_selectedCase;
|
||||
};
|
||||
|
@ -1004,7 +1004,7 @@ void RimEclipseStatisticsCase::computeStatisticsAndUpdateViews()
|
||||
|
||||
if ( reservoirViews().empty() )
|
||||
{
|
||||
RicNewViewFeature::addReservoirView( this, nullptr );
|
||||
RicNewViewFeature::addReservoirView( this, nullptr, viewCollection() );
|
||||
}
|
||||
|
||||
if ( reservoirViews().size() == 1 )
|
||||
|
@ -1270,10 +1270,9 @@ QString RimEclipseView::createAutoName() const
|
||||
}
|
||||
|
||||
QStringList generatedAutoTags;
|
||||
|
||||
if ( m_eclipseCase && nameConfig()->addCaseName() )
|
||||
if ( nameConfig()->addCaseName() && ownerCase() )
|
||||
{
|
||||
generatedAutoTags.push_back( m_eclipseCase->caseUserDescription() );
|
||||
generatedAutoTags.push_back( ownerCase()->caseUserDescription() );
|
||||
}
|
||||
|
||||
if ( nameConfig()->addProperty() )
|
||||
|
Loading…
Reference in New Issue
Block a user