(#396) Disconnected EclipseResultDefiniton from EclipseView

So that it can be used in WellLogCurves
This commit is contained in:
Jacob Støren 2015-09-01 13:56:35 +02:00
parent c9887c26c6
commit 9df1e48543
7 changed files with 52 additions and 42 deletions

View File

@ -96,7 +96,7 @@ void RicEclipsePropertyFilterFeatureImpl::setDefaults(RimEclipsePropertyFilter*
RimEclipseView* reservoirView = propertyFilterCollection->reservoirView();
CVF_ASSERT(reservoirView);
propertyFilter->resultDefinition->setReservoirView(reservoirView);
propertyFilter->resultDefinition->setEclipseCase(reservoirView->eclipseCase());
propertyFilter->resultDefinition->setResultVariable(reservoirView->cellResult->resultVariable());
propertyFilter->resultDefinition->setPorosityModel(reservoirView->cellResult->porosityModel());
propertyFilter->resultDefinition->setResultType(reservoirView->cellResult->resultType());

View File

@ -181,7 +181,7 @@ void RimEclipseCellColors::initAfterRead()
//--------------------------------------------------------------------------------------------------
void RimEclipseCellColors::setReservoirView(RimEclipseView* ownerReservoirView)
{
RimEclipseResultDefinition::setReservoirView(ownerReservoirView);
this->setEclipseCase(ownerReservoirView->eclipseCase());
m_reservoirView = ownerReservoirView;
@ -192,6 +192,14 @@ void RimEclipseCellColors::setReservoirView(RimEclipseView* ownerReservoirView)
this->ternaryLegendConfig()->setReservoirView(ownerReservoirView);
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimEclipseView* RimEclipseCellColors::reservoirView()
{
return m_reservoirView;
}
//--------------------------------------------------------------------------------------------------
///

View File

@ -41,26 +41,29 @@ public:
RimEclipseCellColors();
virtual ~RimEclipseCellColors();
virtual void setReservoirView(RimEclipseView* ownerReservoirView);
RimLegendConfig* legendConfig();
void setReservoirView(RimEclipseView* ownerReservoirView);
RimEclipseView* reservoirView();
RimLegendConfig* legendConfig();
caf::PdmChildField<RimTernaryLegendConfig*> ternaryLegendConfig;
// Overridden methods
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
virtual void setResultVariable(const QString& resultName);
virtual void setResultVariable(const QString& resultName);
protected:
// Overridden methods
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
friend class RimEclipseFaultColors;
virtual void initAfterRead();
virtual void initAfterRead();
private:
void changeLegendConfig(QString resultVarNameOfNewLegend);
void changeLegendConfig(QString resultVarNameOfNewLegend);
caf::PdmChildArrayField<RimLegendConfig*> m_legendConfigData;
caf::PdmPtrField<RimLegendConfig*> m_legendConfigPtrField;
caf::PdmPtrField<RimLegendConfig*> m_legendConfigPtrField;
caf::PdmPointer<RimEclipseView> m_reservoirView;
// Obsolete
caf::PdmChildField<RimLegendConfig*> obsoleteField_legendConfig;
};

View File

@ -249,7 +249,7 @@ void RimEclipsePropertyFilter::initAfterRead()
{
resultDefinition->initAfterRead();
resultDefinition->setReservoirView(parentContainer()->reservoirView());
resultDefinition->setEclipseCase(parentContainer()->reservoirView()->eclipseCase());
resultDefinition->loadResult();
updateIconState();
computeResultValueRange();

View File

@ -40,7 +40,6 @@ CAF_PDM_SOURCE_INIT(RimEclipseResultDefinition, "ResultDefinition");
///
//--------------------------------------------------------------------------------------------------
RimEclipseResultDefinition::RimEclipseResultDefinition()
//: m_gridScalarResultIndex(cvf::UNDEFINED_SIZE_T)
{
CAF_PDM_InitObject("Result Definition", "", "", "");
@ -76,30 +75,29 @@ RimEclipseResultDefinition::~RimEclipseResultDefinition()
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimEclipseResultDefinition::setReservoirView(RimEclipseView* ownerReservoirView)
void RimEclipseResultDefinition::setEclipseCase(RimEclipseCase* eclipseCase)
{
m_reservoirView = ownerReservoirView;
updateFieldVisibility();
m_eclipseCase = eclipseCase;
updateFieldVisibility();
}
QStringList RimEclipseResultDefinition::getResultVariableListForCurrentUIFieldSettings()
{
if (!m_reservoirView || !m_reservoirView->eclipseCase() ) return QStringList();
if (!m_eclipseCase ) return QStringList();
RifReaderInterface::PorosityModelResultType porosityModel = RigCaseCellResultsData::convertFromProjectModelPorosityModel(m_porosityModelUiField());
return m_reservoirView->eclipseCase()->results(porosityModel)->cellResults()->resultNames(m_resultTypeUiField());
return m_eclipseCase->results(porosityModel)->cellResults()->resultNames(m_resultTypeUiField());
}
RimReservoirCellResultsStorage* RimEclipseResultDefinition::currentGridCellResults() const
{
if (!m_reservoirView || !m_reservoirView->eclipseCase()) return NULL;
if (!m_eclipseCase ) return NULL;
RifReaderInterface::PorosityModelResultType porosityModel = RigCaseCellResultsData::convertFromProjectModelPorosityModel(m_porosityModel());
return m_reservoirView->eclipseCase()->results(porosityModel);
return m_eclipseCase->results(porosityModel);
}
//--------------------------------------------------------------------------------------------------
@ -128,8 +126,8 @@ void RimEclipseResultDefinition::fieldChangedByUi(const caf::PdmFieldHandle* cha
if (&m_resultVariableUiField == changedField)
{
m_porosityModel = m_porosityModelUiField;
m_resultType = m_resultTypeUiField;
m_porosityModel = m_porosityModelUiField;
m_resultType = m_resultTypeUiField;
m_resultVariable = m_resultVariableUiField;
loadResult();
@ -139,8 +137,14 @@ void RimEclipseResultDefinition::fieldChangedByUi(const caf::PdmFieldHandle* cha
{
propFilter->setToDefaultValues();
propFilter->updateFilterName();
m_reservoirView->scheduleGeometryRegen(PROPERTY_FILTERED);
m_reservoirView->scheduleCreateDisplayModelAndRedraw();
RimView* view = NULL;
this->firstAnchestorOrThisOfType(view);
if (view)
{
view->scheduleGeometryRegen(PROPERTY_FILTERED);
view->scheduleCreateDisplayModelAndRedraw();
}
}
if (dynamic_cast<RimEclipseCellColors*>(this))
@ -334,13 +338,6 @@ bool RimEclipseResultDefinition::hasDynamicResult() const
return false;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimEclipseView* RimEclipseResultDefinition::reservoirView()
{
return m_reservoirView;
}
//--------------------------------------------------------------------------------------------------
///
@ -397,12 +394,11 @@ bool RimEclipseResultDefinition::isTernarySaturationSelected() const
//--------------------------------------------------------------------------------------------------
void RimEclipseResultDefinition::updateFieldVisibility()
{
if (m_reservoirView &&
m_reservoirView->eclipseCase() &&
m_reservoirView->eclipseCase()->reservoirData() &&
m_reservoirView->eclipseCase()->reservoirData()->activeCellInfo(RifReaderInterface::FRACTURE_RESULTS) )
if (m_eclipseCase &&
m_eclipseCase->reservoirData() &&
m_eclipseCase->reservoirData()->activeCellInfo(RifReaderInterface::FRACTURE_RESULTS) )
{
if (m_reservoirView->eclipseCase()->reservoirData()->activeCellInfo(RifReaderInterface::FRACTURE_RESULTS)->reservoirActiveCellCount() == 0)
if (m_eclipseCase->reservoirData()->activeCellInfo(RifReaderInterface::FRACTURE_RESULTS)->reservoirActiveCellCount() == 0)
{
m_porosityModelUiField.uiCapability()->setUiHidden(true);
}

View File

@ -31,6 +31,7 @@
class RimEclipseView;
class RigCaseCellResultsData;
class RimReservoirCellResultsStorage;
class RimEclipseCase;
//==================================================================================================
///
///
@ -42,8 +43,7 @@ public:
RimEclipseResultDefinition();
virtual ~RimEclipseResultDefinition();
virtual void setReservoirView(RimEclipseView* ownerReservoirView);
RimEclipseView* reservoirView();
void setEclipseCase(RimEclipseCase* eclipseCase);
RimDefines::ResultCatType resultType() const { return m_resultType(); }
void setResultType(RimDefines::ResultCatType val);
@ -78,7 +78,7 @@ protected:
caf::PdmField< caf::AppEnum< RimDefines::PorosityModelType > > m_porosityModelUiField;
caf::PdmField<QString> m_resultVariableUiField;
caf::PdmPointer<RimEclipseView> m_reservoirView;
caf::PdmPointer<RimEclipseCase> m_eclipseCase;
protected:

View File

@ -662,7 +662,7 @@ void RimEclipseView::loadDataAndUpdate()
QMessageBox::warning(RiuMainWindow::instance(),
"Error when opening project file",
"Could not open the Eclipse Grid file: \n"+ m_reservoir->gridFileName());
m_reservoir = NULL;
this->setEclipseCase( NULL);
return;
}
}
@ -1031,6 +1031,9 @@ void RimEclipseView::updateMinMaxValuesAndAddLegendToView(QString legendLabel, R
void RimEclipseView::setEclipseCase(RimEclipseCase* reservoir)
{
m_reservoir = reservoir;
cellResult()->setEclipseCase(reservoir);
faultResultSettings()->customFaultResult()->setEclipseCase(reservoir);
}
//--------------------------------------------------------------------------------------------------