Skip to content

Commit 048d3ce

Browse files
committed
RimStatisticsContourMap: Support RimReservoirGridEnsemble as parent
Extend statistics contour map and well target mapping to work with RimReservoirGridEnsemble in addition to RimEclipseCaseEnsemble. - RimStatisticsContourMap: add ensembleCases(), ensembleCasesInViews(), activeFormationNames() and ensembleName() helpers that resolve the parent ensemble type at runtime - RimReservoirGridEnsemble: add formation names support and updateStatisticsVisibility(); refine grid mode fields (m_autoDetectGridType, m_detectedGridMode) - RimReservoirGridEnsembleBase: add virtual activeFormationNames() - RicNewStatisticsContourMapFeature: add overload and menu handling for RimReservoirGridEnsemble - RicNewWellTargetMappingFeature: add handling for RimReservoirGridEnsemble
1 parent bfa8eff commit 048d3ce

12 files changed

+360
-88
lines changed

ApplicationLibCode/Commands/RicNewStatisticsContourMapFeature.cpp

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
#include "ContourMap/RimStatisticsContourMap.h"
2222
#include "RimEclipseCaseEnsemble.h"
23+
#include "RimReservoirGridEnsemble.h"
2324

2425
#include "Riu3DMainWindowTools.h"
2526

@@ -47,21 +48,45 @@ void RicNewStatisticsContourMapFeature::addStatisticsContourMap( RimEclipseCaseE
4748
Riu3DMainWindowTools::selectAsCurrentItem( statisticsContourMap );
4849
}
4950

51+
//--------------------------------------------------------------------------------------------------
52+
///
53+
//--------------------------------------------------------------------------------------------------
54+
void RicNewStatisticsContourMapFeature::addStatisticsContourMap( RimReservoirGridEnsemble* gridEnsemble )
55+
{
56+
if ( !gridEnsemble ) return;
57+
58+
std::vector<RimEclipseCase*> cases = gridEnsemble->cases();
59+
if ( cases.empty() ) return;
60+
61+
auto statisticsContourMap = new RimStatisticsContourMap();
62+
statisticsContourMap->setEclipseCase( cases[0] );
63+
gridEnsemble->addStatisticsContourMap( statisticsContourMap );
64+
gridEnsemble->updateConnectedEditors();
65+
66+
Riu3DMainWindowTools::selectAsCurrentItem( statisticsContourMap );
67+
}
68+
5069
//--------------------------------------------------------------------------------------------------
5170
///
5271
//--------------------------------------------------------------------------------------------------
5372
bool RicNewStatisticsContourMapFeature::isCommandEnabled() const
5473
{
55-
return selectedEclipseCaseEnsemble() != nullptr;
74+
return selectedEclipseCaseEnsemble() != nullptr || selectedGridEnsemble() != nullptr;
5675
}
5776

5877
//--------------------------------------------------------------------------------------------------
5978
///
6079
//--------------------------------------------------------------------------------------------------
6180
void RicNewStatisticsContourMapFeature::onActionTriggered( bool isChecked )
6281
{
63-
RimEclipseCaseEnsemble* eclipseCaseEnsemble = selectedEclipseCaseEnsemble();
64-
addStatisticsContourMap( eclipseCaseEnsemble );
82+
if ( auto* eclipseCaseEnsemble = selectedEclipseCaseEnsemble() )
83+
{
84+
addStatisticsContourMap( eclipseCaseEnsemble );
85+
}
86+
else if ( auto* gridEnsemble = selectedGridEnsemble() )
87+
{
88+
addStatisticsContourMap( gridEnsemble );
89+
}
6590
}
6691

6792
//--------------------------------------------------------------------------------------------------
@@ -80,3 +105,11 @@ RimEclipseCaseEnsemble* RicNewStatisticsContourMapFeature::selectedEclipseCaseEn
80105
{
81106
return caf::SelectionManager::instance()->selectedItemOfType<RimEclipseCaseEnsemble>();
82107
}
108+
109+
//--------------------------------------------------------------------------------------------------
110+
///
111+
//--------------------------------------------------------------------------------------------------
112+
RimReservoirGridEnsemble* RicNewStatisticsContourMapFeature::selectedGridEnsemble()
113+
{
114+
return caf::SelectionManager::instance()->selectedItemOfType<RimReservoirGridEnsemble>();
115+
}

ApplicationLibCode/Commands/RicNewStatisticsContourMapFeature.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
#include "cafCmdFeature.h"
2222

2323
class RimEclipseCaseEnsemble;
24+
class RimReservoirGridEnsemble;
2425

2526
//==================================================================================================
2627
///
@@ -31,11 +32,13 @@ class RicNewStatisticsContourMapFeature : public caf::CmdFeature
3132

3233
public:
3334
static void addStatisticsContourMap( RimEclipseCaseEnsemble* eclipseCaseEnsemble );
35+
static void addStatisticsContourMap( RimReservoirGridEnsemble* gridEnsemble );
3436

3537
protected:
3638
bool isCommandEnabled() const override;
3739
void onActionTriggered( bool isChecked ) override;
3840
void setupActionLook( QAction* actionToSetup ) override;
3941

40-
static RimEclipseCaseEnsemble* selectedEclipseCaseEnsemble();
42+
static RimEclipseCaseEnsemble* selectedEclipseCaseEnsemble();
43+
static RimReservoirGridEnsemble* selectedGridEnsemble();
4144
};

ApplicationLibCode/Commands/RicNewWellTargetMappingFeature.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
#include "RimEclipseCase.h"
2222
#include "RimEclipseCaseEnsemble.h"
23+
#include "RimReservoirGridEnsemble.h"
2324
#include "RimWellTargetMapping.h"
2425

2526
#include "RiuMainWindow.h"
@@ -45,6 +46,16 @@ void RicNewWellTargetMappingFeature::onActionTriggered( bool isChecked )
4546
ensemble->updateConnectedEditors();
4647
RiuMainWindow::instance()->selectAsCurrentItem( wellTargetMapping );
4748
}
49+
else if ( auto gridEnsembles = caf::selectedObjectsByTypeStrict<RimReservoirGridEnsemble*>(); !gridEnsembles.empty() )
50+
{
51+
auto ensemble = gridEnsembles.front();
52+
auto wellTargetMapping = new RimWellTargetMapping();
53+
ensemble->addWellTargetMapping( wellTargetMapping );
54+
wellTargetMapping->setDefaults();
55+
56+
ensemble->updateConnectedEditors();
57+
RiuMainWindow::instance()->selectAsCurrentItem( wellTargetMapping );
58+
}
4859
else if ( auto eclipseCases = caf::selectedObjectsByTypeStrict<RimEclipseCase*>(); !eclipseCases.empty() )
4960
{
5061
auto eclipseCase = eclipseCases.front();

0 commit comments

Comments
 (0)