#5019 Use same code for separate intersection legend setup in eclipse and geomech

This commit is contained in:
Jacob Støren
2019-11-22 13:31:35 +01:00
parent b5e39519c5
commit 1ab815e673
5 changed files with 73 additions and 86 deletions

View File

@@ -1204,7 +1204,7 @@ void RimEclipseView::onUpdateLegends()
RigCaseCellResultsData* results = eclipseCase->results( cellResult()->porosityModel() );
CVF_ASSERT( results );
updateLegendTextAndRanges( this->cellResult()->legendConfig(),
updateLegendRangesTextAndVisibility( this->cellResult()->legendConfig(),
this->cellResult()->ternaryLegendConfig(),
QString( "Cell Results: \n" ),
this->cellResult(),
@@ -1212,7 +1212,7 @@ void RimEclipseView::onUpdateLegends()
if ( this->faultResultSettings()->showCustomFaultResult() && this->faultResultSettings()->hasValidCustomResult() )
{
updateLegendTextAndRanges( currentFaultResultColors()->legendConfig(),
updateLegendRangesTextAndVisibility( currentFaultResultColors()->legendConfig(),
currentFaultResultColors()->ternaryLegendConfig(),
QString( "Fault Results: \n" ),
this->currentFaultResultColors(),
@@ -1222,30 +1222,7 @@ void RimEclipseView::onUpdateLegends()
for ( RimIntersectionResultDefinition* sepInterResDef :
this->separateIntersectionResultsCollection()->intersectionResultsDefinitions() )
{
if ( !sepInterResDef->isInAction() ) continue;
if ( sepInterResDef->isEclipseResultDefinition() )
{
updateLegendTextAndRanges( sepInterResDef->regularLegendConfig(),
sepInterResDef->ternaryLegendConfig(),
QString( "Intersection Results: \n" ),
sepInterResDef->eclipseResultDefinition(),
sepInterResDef->timeStep() );
}
else
{
sepInterResDef->geoMechResultDefinition()->updateLegendTextAndRanges( sepInterResDef->regularLegendConfig(),
"Intersection Results:\n",
sepInterResDef->timeStep() );
if ( sepInterResDef->geoMechResultDefinition()->hasResult() &&
sepInterResDef->regularLegendConfig()->showLegend() )
{
nativeOrOverrideViewer()
->addColorLegendToBottomLeftCorner( sepInterResDef->regularLegendConfig()->titledOverlayFrame(),
isUsingOverrideViewer() );
}
}
sepInterResDef->updateLegendRangesTextAndVisibility( nativeOrOverrideViewer(), isUsingOverrideViewer() );
}
if ( this->cellEdgeResult()->legendConfig()->showLegend() )
@@ -1341,7 +1318,7 @@ void RimEclipseView::onUpdateLegends()
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimEclipseView::updateLegendTextAndRanges( RimRegularLegendConfig* legendConfig,
void RimEclipseView::updateLegendRangesTextAndVisibility( RimRegularLegendConfig* legendConfig,
RimTernaryLegendConfig* ternaryLegendConfig,
QString legendHeading,
RimEclipseResultDefinition* eclResultDef,

View File

@@ -179,7 +179,7 @@ private:
void updateStaticCellColors( RivCellSetEnum geometryType );
void onUpdateLegends() override;
void updateLegendTextAndRanges( RimRegularLegendConfig* legendConfig,
void updateLegendRangesTextAndVisibility( RimRegularLegendConfig* legendConfig,
RimTernaryLegendConfig* ternaryLegendConfig,
QString legendLabel,
RimEclipseResultDefinition* eclResDef,

View File

@@ -470,48 +470,7 @@ void RimGeoMechView::onUpdateLegends()
for ( RimIntersectionResultDefinition* sepInterResDef :
this->separateIntersectionResultsCollection()->intersectionResultsDefinitions() )
{
if ( !sepInterResDef->isInAction() ) continue;
if ( sepInterResDef->isEclipseResultDefinition() )
{
RimEclipseResultDefinition* eclResultDef = sepInterResDef->eclipseResultDefinition();
eclResultDef->updateRangesForExplicitLegends( sepInterResDef->regularLegendConfig(),
sepInterResDef->ternaryLegendConfig(),
sepInterResDef->timeStep() );
eclResultDef->updateLegendTitle( sepInterResDef->regularLegendConfig(), "Intersection Results:\n" );
if ( sepInterResDef->regularLegendConfig()->showLegend() && eclResultDef->hasResult() )
{
nativeOrOverrideViewer()
->addColorLegendToBottomLeftCorner( sepInterResDef->regularLegendConfig()->titledOverlayFrame(),
isUsingOverrideViewer() );
}
else if ( eclResultDef->isTernarySaturationSelected() &&
eclResultDef->currentGridCellResults()->maxTimeStepCount() > 1 &&
sepInterResDef->ternaryLegendConfig()->showLegend() &&
sepInterResDef->ternaryLegendConfig()->titledOverlayFrame() )
{
sepInterResDef->ternaryLegendConfig()->setTitle( "Intersection Results: \n" );
nativeOrOverrideViewer()
->addColorLegendToBottomLeftCorner( sepInterResDef->ternaryLegendConfig()->titledOverlayFrame(),
isUsingOverrideViewer() );
}
}
else
{
sepInterResDef->geoMechResultDefinition()->updateLegendTextAndRanges( sepInterResDef->regularLegendConfig(),
"Intersection Results:\n",
sepInterResDef->timeStep() );
if ( sepInterResDef->geoMechResultDefinition()->hasResult() &&
sepInterResDef->regularLegendConfig()->showLegend() )
{
nativeOrOverrideViewer()
->addColorLegendToBottomLeftCorner( sepInterResDef->regularLegendConfig()->titledOverlayFrame(),
isUsingOverrideViewer() );
}
}
sepInterResDef->updateLegendRangesTextAndVisibility( nativeOrOverrideViewer(), isUsingOverrideViewer() );
}
if ( tensorResults()->showTensors() )

View File

@@ -28,6 +28,9 @@
#include "RimRegularLegendConfig.h"
#include "RimTernaryLegendConfig.h"
#include "RimTools.h"
#include "RiuViewer.h"
#include "cafPdmUiTreeOrdering.h"
CAF_PDM_SOURCE_INIT( RimIntersectionResultDefinition, "IntersectionResultDefinition" );
@@ -183,6 +186,51 @@ RimGeoMechResultDefinition* RimIntersectionResultDefinition::geoMechResultDefini
return m_geomResultDefinition();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimIntersectionResultDefinition::updateLegendRangesTextAndVisibility( RiuViewer* nativeOrOverrideViewer,
bool isUsingOverrideViewer )
{
if ( !this->isInAction() ) return;
if ( this->isEclipseResultDefinition() )
{
RimEclipseResultDefinition* eclResultDef = this->eclipseResultDefinition();
eclResultDef->updateRangesForExplicitLegends( this->regularLegendConfig(),
this->ternaryLegendConfig(),
this->timeStep() );
eclResultDef->updateLegendTitle( this->regularLegendConfig(), "Intersection Results:\n" );
if ( this->regularLegendConfig()->showLegend() && eclResultDef->hasResult() )
{
nativeOrOverrideViewer->addColorLegendToBottomLeftCorner( this->regularLegendConfig()->titledOverlayFrame(),
isUsingOverrideViewer );
}
else if ( eclResultDef->isTernarySaturationSelected() &&
eclResultDef->currentGridCellResults()->maxTimeStepCount() > 1 &&
this->ternaryLegendConfig()->showLegend() && this->ternaryLegendConfig()->titledOverlayFrame() )
{
this->ternaryLegendConfig()->setTitle( "Intersection Results: \n" );
nativeOrOverrideViewer->addColorLegendToBottomLeftCorner( this->ternaryLegendConfig()->titledOverlayFrame(),
isUsingOverrideViewer );
}
}
else
{
this->geoMechResultDefinition()->updateLegendTextAndRanges( this->regularLegendConfig(),
"Intersection Results:\n",
this->timeStep() );
if ( this->geoMechResultDefinition()->hasResult() && this->regularLegendConfig()->showLegend() )
{
nativeOrOverrideViewer->addColorLegendToBottomLeftCorner( this->regularLegendConfig()->titledOverlayFrame(),
isUsingOverrideViewer );
}
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@@ -29,6 +29,7 @@ class RimGeoMechResultDefinition;
class RimCase;
class RimRegularLegendConfig;
class RimTernaryLegendConfig;
class RiuViewer;
class RimIntersectionResultDefinition : public caf::PdmObject
{
@@ -51,6 +52,8 @@ public:
RimEclipseResultDefinition* eclipseResultDefinition() const;
RimGeoMechResultDefinition* geoMechResultDefinition() const;
void updateLegendRangesTextAndVisibility( RiuViewer* nativeOrOverrideViewer, bool isUsingOverrideViewer );
protected:
virtual caf::PdmFieldHandle* userDescriptionField() override;
virtual caf::PdmFieldHandle* objectToggleField() override;