2014-07-29 01:49:54 -05:00
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2011-2012 Statoil ASA, Ceetron AS
//
// 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.
//
/////////////////////////////////////////////////////////////////////////////////
2014-08-06 05:47:27 -05:00
# include "RimFaultResultSlot.h"
2014-07-29 01:49:54 -05:00
2014-07-30 07:26:39 -05:00
# include "RimReservoirView.h"
# include "RimResultSlot.h"
# include "RiuMainWindow.h"
# include "RimUiTreeModelPdm.h"
2014-07-29 01:49:54 -05:00
namespace caf
{
template < >
2014-08-06 05:47:27 -05:00
void AppEnum < RimFaultResultSlot : : FaultVisualizationMode > : : setUp ( )
2014-07-29 01:49:54 -05:00
{
2014-08-06 05:47:27 -05:00
addItem ( RimFaultResultSlot : : FAULT_COLOR , " FAULT_COLOR " , " Fault Colors " ) ;
addItem ( RimFaultResultSlot : : CUSTOM_RESULT_MAPPING , " CUSTOM_RESULT_MAPPING " , " Custom Cell Results " ) ;
setDefault ( RimFaultResultSlot : : FAULT_COLOR ) ;
2014-07-29 01:49:54 -05:00
}
}
2014-08-06 05:47:27 -05:00
CAF_PDM_SOURCE_INIT ( RimFaultResultSlot , " RimFaultResultSlot " ) ;
2014-07-29 01:49:54 -05:00
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
2014-08-06 05:47:27 -05:00
RimFaultResultSlot : : RimFaultResultSlot ( )
2014-07-29 01:49:54 -05:00
{
2014-08-01 05:55:43 -05:00
CAF_PDM_InitObject ( " Fault Result Slot " , " :/draw_style_faults_24x24.png " , " " , " " ) ;
2014-07-29 01:49:54 -05:00
2014-08-01 02:40:35 -05:00
CAF_PDM_InitField ( & showCustomFaultResult , " ShowCustomFaultResult " , false , " Show Custom Fault Result " , " " , " " , " " ) ;
showCustomFaultResult . setUiHidden ( true ) ;
2014-08-06 05:47:27 -05:00
CAF_PDM_InitField ( & visualizationMode , " VisualizationMode " , caf : : AppEnum < RimFaultResultSlot : : FaultVisualizationMode > ( RimFaultResultSlot : : FAULT_COLOR ) , " Fault Color Mapping " , " " , " " , " " ) ;
2014-07-31 07:05:40 -05:00
CAF_PDM_InitField ( & showNNCs , " ShowNNCs " , false , " Show NNCs " , " " , " " , " " ) ;
2014-07-29 01:49:54 -05:00
2014-07-31 07:05:40 -05:00
CAF_PDM_InitFieldNoDefault ( & m_customFaultResult , " CustomResultSlot " , " Custom Fault Result " , " :/CellResult.png " , " " , " " ) ;
m_customFaultResult = new RimResultSlot ( ) ;
2014-08-01 05:55:43 -05:00
m_customFaultResult . setOwnerObject ( this ) ;
m_customFaultResult . setUiHidden ( true ) ;
2014-07-30 07:26:39 -05:00
2014-08-01 05:55:43 -05:00
// Take ownership of the fields in RimResultDefinition to be able to trap fieldChangedByUi in this class
m_customFaultResult - > m_resultTypeUiField . setOwnerObject ( this ) ;
m_customFaultResult - > m_porosityModelUiField . setOwnerObject ( this ) ;
m_customFaultResult - > m_resultVariableUiField . setOwnerObject ( this ) ;
updateFieldVisibility ( ) ;
2014-07-29 01:49:54 -05:00
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
2014-08-06 05:47:27 -05:00
RimFaultResultSlot : : ~ RimFaultResultSlot ( )
2014-07-29 01:49:54 -05:00
{
}
2014-07-30 07:26:39 -05:00
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
2014-08-06 05:47:27 -05:00
void RimFaultResultSlot : : setReservoirView ( RimReservoirView * ownerReservoirView )
2014-07-30 07:26:39 -05:00
{
2014-07-31 01:46:30 -05:00
m_reservoirView = ownerReservoirView ;
2014-07-31 04:09:48 -05:00
m_customFaultResult - > setReservoirView ( ownerReservoirView ) ;
2014-07-30 07:26:39 -05:00
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
2014-08-06 05:47:27 -05:00
void RimFaultResultSlot : : fieldChangedByUi ( const caf : : PdmFieldHandle * changedField , const QVariant & oldValue , const QVariant & newValue )
2014-07-30 07:26:39 -05:00
{
2014-08-01 06:35:52 -05:00
this - > updateUiIconFromToggleField ( ) ;
2014-08-01 05:55:43 -05:00
m_customFaultResult - > fieldChangedByUi ( changedField , oldValue , newValue ) ;
2014-08-01 02:40:35 -05:00
2014-07-31 03:49:23 -05:00
if ( changedField = = & visualizationMode )
2014-07-30 07:26:39 -05:00
{
2014-08-01 05:55:43 -05:00
updateFieldVisibility ( ) ;
2014-07-30 07:26:39 -05:00
RiuMainWindow : : instance ( ) - > uiPdmModel ( ) - > updateUiSubTree ( this ) ;
2014-08-01 05:55:43 -05:00
}
2014-07-31 07:05:40 -05:00
2014-08-01 05:55:43 -05:00
if ( changedField = = & m_customFaultResult - > m_resultVariableUiField )
{
RiuMainWindow : : instance ( ) - > uiPdmModel ( ) - > updateUiSubTree ( this ) ;
2014-07-30 07:26:39 -05:00
}
2014-07-31 01:46:30 -05:00
2014-07-31 07:05:40 -05:00
if ( m_reservoirView ) m_reservoirView - > scheduleCreateDisplayModelAndRedraw ( ) ;
2014-07-30 07:26:39 -05:00
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
2014-08-06 05:47:27 -05:00
void RimFaultResultSlot : : initAfterRead ( )
2014-07-30 07:26:39 -05:00
{
2014-08-01 05:55:43 -05:00
m_customFaultResult - > initAfterRead ( ) ;
updateFieldVisibility ( ) ;
2014-08-01 06:35:52 -05:00
this - > updateUiIconFromToggleField ( ) ;
2014-07-30 07:26:39 -05:00
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
2014-08-06 05:47:27 -05:00
void RimFaultResultSlot : : updateFieldVisibility ( )
2014-07-30 07:26:39 -05:00
{
2014-08-01 05:55:43 -05:00
m_customFaultResult - > updateFieldVisibility ( ) ;
2014-07-31 01:46:30 -05:00
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
2014-08-06 05:47:27 -05:00
RimResultSlot * RimFaultResultSlot : : customFaultResult ( )
2014-07-31 01:46:30 -05:00
{
2014-08-01 02:40:35 -05:00
if ( showCustomFaultResult ( ) & & this - > visualizationMode ( ) = = CUSTOM_RESULT_MAPPING )
2014-07-31 01:46:30 -05:00
{
2014-07-31 04:09:48 -05:00
return this - > m_customFaultResult ( ) ;
2014-07-30 07:26:39 -05:00
}
2014-07-31 01:46:30 -05:00
return NULL ;
2014-07-30 07:26:39 -05:00
}
2014-08-01 02:40:35 -05:00
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
2014-08-06 05:47:27 -05:00
caf : : PdmFieldHandle * RimFaultResultSlot : : objectToggleField ( )
2014-08-01 02:40:35 -05:00
{
return & showCustomFaultResult ;
}
2014-08-01 05:55:43 -05:00
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
2014-08-06 05:47:27 -05:00
void RimFaultResultSlot : : defineUiOrdering ( QString uiConfigName , caf : : PdmUiOrdering & uiOrdering )
2014-08-01 05:55:43 -05:00
{
uiOrdering . add ( & visualizationMode ) ;
uiOrdering . add ( & showNNCs ) ;
if ( visualizationMode = = CUSTOM_RESULT_MAPPING )
{
caf : : PdmUiGroup * group1 = uiOrdering . addNewGroup ( " Result " ) ;
group1 - > add ( & ( m_customFaultResult - > m_resultTypeUiField ) ) ;
group1 - > add ( & ( m_customFaultResult - > m_porosityModelUiField ) ) ;
group1 - > add ( & ( m_customFaultResult - > m_resultVariableUiField ) ) ;
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
2014-08-06 05:47:27 -05:00
QList < caf : : PdmOptionItemInfo > RimFaultResultSlot : : calculateValueOptions ( const caf : : PdmFieldHandle * fieldNeedingOptions , bool * useOptionsOnly )
2014-08-01 05:55:43 -05:00
{
return m_customFaultResult - > calculateValueOptions ( fieldNeedingOptions , useOptionsOnly ) ;
}