This commit is contained in:
Magne Sjaastad 2018-05-23 15:08:55 +02:00
parent 4c6a56bb52
commit 28278c47ec
2 changed files with 20 additions and 19 deletions

View File

@ -31,6 +31,7 @@
#include "RimEclipseStatisticsCaseEvaluator.h"
#include "RimEclipseView.h"
#include "RimIdenticalGridCaseGroup.h"
#include "RimIntersectionCollection.h"
#include "RimReservoirCellResultsStorage.h"
#include "RimSimWellInViewCollection.h"
@ -39,7 +40,6 @@
#include "cafPdmUiPushButtonEditor.h"
#include "cafPdmUiTextEditor.h"
#include "cafProgressInfo.h"
#include "RimIntersectionCollection.h"
namespace caf {
template<>
@ -183,7 +183,7 @@ void RimEclipseStatisticsCase::reloadEclipseGridFile()
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimCaseCollection* RimEclipseStatisticsCase::parentStatisticsCaseCollection()
RimCaseCollection* RimEclipseStatisticsCase::parentStatisticsCaseCollection() const
{
return dynamic_cast<RimCaseCollection*>(this->parentField()->ownerObject());
}
@ -210,9 +210,7 @@ void RimEclipseStatisticsCase::computeStatistics()
CVF_ASSERT(gridCaseGroup);
gridCaseGroup->computeUnionOfActiveCells();
std::vector<RimEclipseCase*> sourceCases;
getSourceCases(sourceCases);
std::vector<RimEclipseCase*> sourceCases = getSourceCases();
if (sourceCases.size() == 0
|| !sourceCases.at(0)->results(RiaDefines::MATRIX_MODEL))
@ -308,8 +306,10 @@ void RimEclipseStatisticsCase::scheduleACTIVEGeometryRegenOnReservoirViews()
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimEclipseStatisticsCase::getSourceCases(std::vector<RimEclipseCase*>& sourceCases)
std::vector<RimEclipseCase*> RimEclipseStatisticsCase::getSourceCases() const
{
std::vector<RimEclipseCase*> sourceCases;
RimIdenticalGridCaseGroup* gridCaseGroup = caseGroup();
if (gridCaseGroup)
{
@ -323,12 +323,14 @@ void RimEclipseStatisticsCase::getSourceCases(std::vector<RimEclipseCase*>& sour
sourceCases.push_back(sourceCase);
}
}
return sourceCases;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimIdenticalGridCaseGroup* RimEclipseStatisticsCase::caseGroup()
RimIdenticalGridCaseGroup* RimEclipseStatisticsCase::caseGroup() const
{
RimCaseCollection* parentCollection = parentStatisticsCaseCollection();
if (parentCollection)
@ -722,6 +724,8 @@ void RimEclipseStatisticsCase::clearComputedStatistics()
//--------------------------------------------------------------------------------------------------
void RimEclipseStatisticsCase::computeStatisticsAndUpdateViews()
{
if (getSourceCases().empty()) return;
computeStatistics();
scheduleACTIVEGeometryRegenOnReservoirViews();
updateConnectedEditorsAndReservoirViews();

View File

@ -20,9 +20,10 @@
#pragma once
#include "RimEclipseCase.h"
#include "RiaDefines.h"
#include "RimEclipseCase.h"
#include "cvfBase.h"
#include "cvfObject.h"
#include "cafPdmField.h"
@ -30,12 +31,11 @@
#include "cafAppEnum.h"
#include "cvfCollection.h"
class RimIdenticalGridCaseGroup;
class RimEclipseResultDefinition;
class RimEclipseStatisticsCaseCollection;
class RigMainGrid;
class RigSimWellData;
class RimEclipseResultDefinition;
class RimEclipseStatisticsCaseCollection;
class RimIdenticalGridCaseGroup;
//==================================================================================================
@ -63,7 +63,7 @@ public:
virtual bool openEclipseGridFile();
virtual void reloadEclipseGridFile();
RimCaseCollection* parentStatisticsCaseCollection();
RimCaseCollection* parentStatisticsCaseCollection() const;
enum PercentileCalcType
{
@ -80,9 +80,8 @@ public:
private:
void scheduleACTIVEGeometryRegenOnReservoirViews();
RimIdenticalGridCaseGroup* caseGroup();
void getSourceCases(std::vector<RimEclipseCase*>& sourceCases);
RimIdenticalGridCaseGroup* caseGroup() const;
std::vector<RimEclipseCase*> getSourceCases() const;
void populateResultSelection();
@ -90,17 +89,15 @@ private:
void updateSelectionSummaryLabel();
void updatePercentileUiVisibility();
void setWellResultsAndUpdateViews(const cvf::Collection<RigSimWellData>& sourceCaseSimWellData);
// Pdm system overrides
virtual void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) ;
virtual QList<caf::PdmOptionItemInfo> calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions, bool * useOptionsOnly );
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
virtual void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute * attribute );
// Fields
private:
caf::PdmField< caf::AppEnum< RiaDefines::ResultCatType > > m_resultType;
caf::PdmField< caf::AppEnum< RiaDefines::PorosityModelType > > m_porosityModel;