#5326 Phase Distribution : Add Show cumulative phase plot

This commit is contained in:
Magne Sjaastad 2020-01-12 16:51:32 +01:00
parent fc16c1d88e
commit f4725b50df
8 changed files with 134 additions and 5 deletions

View File

@ -10,6 +10,7 @@ ${CMAKE_CURRENT_LIST_DIR}/RicShowContributingWellsFeatureImpl.h
${CMAKE_CURRENT_LIST_DIR}/RicPlotProductionRateFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicSelectViewUI.h
${CMAKE_CURRENT_LIST_DIR}/RicShowTotalAllocationDataFeature.h
${CMAKE_CURRENT_LIST_DIR}/RicShowCumulativePhasePlotFeature.h
)
set (SOURCE_GROUP_SOURCE_FILES
@ -23,6 +24,7 @@ ${CMAKE_CURRENT_LIST_DIR}/RicShowContributingWellsFeatureImpl.cpp
${CMAKE_CURRENT_LIST_DIR}/RicPlotProductionRateFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicSelectViewUI.cpp
${CMAKE_CURRENT_LIST_DIR}/RicShowTotalAllocationDataFeature.cpp
${CMAKE_CURRENT_LIST_DIR}/RicShowCumulativePhasePlotFeature.cpp
)
list(APPEND CODE_HEADER_FILES

View File

@ -0,0 +1,68 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2020 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 "RicShowCumulativePhasePlotFeature.h"
#include "RimFlowPlotCollection.h"
#include "RimWellAllocationPlot.h"
#include "RimWellDistributionPlotCollection.h"
#include "cafSelectionManager.h"
#include <QAction>
CAF_CMD_SOURCE_INIT( RicShowCumulativePhasePlotFeature, "RicShowCumulativePhasePlotFeature" );
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RicShowCumulativePhasePlotFeature::isCommandEnabled()
{
RimWellAllocationPlot* plot = caf::SelectionManager::instance()->selectedItemAncestorOfType<RimWellAllocationPlot>();
return plot != nullptr;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RicShowCumulativePhasePlotFeature::onActionTriggered( bool isChecked )
{
RimWellAllocationPlot* plot = caf::SelectionManager::instance()->selectedItemAncestorOfType<RimWellAllocationPlot>();
if ( !plot ) return;
RimFlowPlotCollection* flowPlotColl = nullptr;
plot->firstAncestorOrThisOfType( flowPlotColl );
if ( !flowPlotColl ) return;
RimWellDistributionPlotCollection* wdp = flowPlotColl->wellDistributionPlotCollection();
wdp->setData( plot->rimCase(), plot->wellName(), plot->timeStep() );
wdp->setShowWindow( true );
wdp->loadDataAndUpdate();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RicShowCumulativePhasePlotFeature::setupActionLook( QAction* actionToSetup )
{
// actionToSetup->setIcon(QIcon(":/new_icon16x16.png"));
actionToSetup->setText( "Show Cumulative Phase Distribution Plot" );
}

View File

@ -0,0 +1,35 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2020 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 RicShowCumulativePhasePlotFeature : public caf::CmdFeature
{
CAF_CMD_HEADER_INIT;
protected:
// Overrides
bool isCommandEnabled() override;
void onActionTriggered( bool isChecked ) override;
void setupActionLook( QAction* actionToSetup ) override;
};

View File

@ -190,6 +190,14 @@ RimFlowCharacteristicsPlot* RimFlowPlotCollection::defaultFlowCharacteristicsPlo
return m_flowCharacteristicsPlot();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimWellDistributionPlotCollection* RimFlowPlotCollection::wellDistributionPlotCollection() const
{
return m_wellDistributionPlotCollection();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -43,11 +43,12 @@ public:
void loadDataAndUpdate();
size_t plotCount() const;
void addWellAllocPlotToStoredPlots( RimWellAllocationPlot* plot );
void addFlowCharacteristicsPlotToStoredPlots( RimFlowCharacteristicsPlot* plot );
RimWellAllocationPlot* defaultWellAllocPlot();
RimFlowCharacteristicsPlot* defaultFlowCharacteristicsPlot();
void ensureDefaultFlowPlotsAreCreated();
void addWellAllocPlotToStoredPlots( RimWellAllocationPlot* plot );
void addFlowCharacteristicsPlotToStoredPlots( RimFlowCharacteristicsPlot* plot );
RimWellAllocationPlot* defaultWellAllocPlot();
RimFlowCharacteristicsPlot* defaultFlowCharacteristicsPlot();
RimWellDistributionPlotCollection* wellDistributionPlotCollection() const;
void ensureDefaultFlowPlotsAreCreated();
private:
caf::PdmChildField<RimFlowCharacteristicsPlot*> m_flowCharacteristicsPlot;

View File

@ -91,6 +91,18 @@ RimWellDistributionPlotCollection::RimWellDistributionPlotCollection()
//--------------------------------------------------------------------------------------------------
RimWellDistributionPlotCollection::~RimWellDistributionPlotCollection() {}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimWellDistributionPlotCollection::setData( RimEclipseResultCase* eclipseCase, QString wellName, int timeStepIndex )
{
m_case = eclipseCase;
m_wellName = wellName;
m_timeStepIndex = timeStepIndex;
applyPlotParametersToContainedPlots();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -47,6 +47,8 @@ public:
RimWellDistributionPlotCollection();
~RimWellDistributionPlotCollection() override;
void setData( RimEclipseResultCase* eclipseCase, QString wellName, int timeStepIndex );
private:
// RimPlotWindow overrides
QList<caf::PdmOptionItemInfo> calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions,

View File

@ -185,6 +185,7 @@ void RiuWellAllocationPlot::contextMenuEvent( QContextMenuEvent* event )
caf::CmdFeatureMenuBuilder menuBuilder;
menuBuilder << "RicShowContributingWellsFromPlotFeature";
menuBuilder << "RicShowCumulativePhasePlotFeature";
menuBuilder.appendToMenu( &menu );