#5706 Use an english sentence approach on the labels and options

This commit is contained in:
Jacob Støren
2020-03-25 15:18:48 +01:00
parent 94fadb7540
commit 5153dabc8e
2 changed files with 56 additions and 42 deletions

View File

@@ -24,6 +24,7 @@
#include "RifSummaryReaderInterface.h" #include "RifSummaryReaderInterface.h"
#include "RimSummaryCase.h" #include "RimSummaryCase.h"
#include "QFontMetrics"
#include "cafPdmUiActionPushButtonEditor.h" #include "cafPdmUiActionPushButtonEditor.h"
#include "cafPdmUiDoubleSliderEditor.h" #include "cafPdmUiDoubleSliderEditor.h"
#include "cafPdmUiLineEditor.h" #include "cafPdmUiLineEditor.h"
@@ -35,9 +36,9 @@ namespace caf
template <> template <>
void caf::AppEnum<RimPlotDataFilterItem::FilterTarget>::setUp() void caf::AppEnum<RimPlotDataFilterItem::FilterTarget>::setUp()
{ {
addItem( RimPlotDataFilterItem::SUMMARY_ITEM, "SUMMARY_ITEM", "Summary Item" ); addItem( RimPlotDataFilterItem::SUMMARY_ITEM, "SUMMARY_ITEM", "summary items" );
addItem( RimPlotDataFilterItem::SUMMARY_CASE, "SUMMARY_CASE", "Summary Case" ); addItem( RimPlotDataFilterItem::SUMMARY_CASE, "SUMMARY_CASE", "summary cases" );
addItem( RimPlotDataFilterItem::ENSEMBLE_CASE, "ENSEMBLE_CASE", "Summary Case by Ensemble Parameter" ); addItem( RimPlotDataFilterItem::ENSEMBLE_CASE, "ENSEMBLE_CASE", "ensemble cases" );
setDefault( RimPlotDataFilterItem::SUMMARY_CASE ); setDefault( RimPlotDataFilterItem::SUMMARY_CASE );
} }
@@ -45,9 +46,9 @@ void caf::AppEnum<RimPlotDataFilterItem::FilterTarget>::setUp()
template <> template <>
void caf::AppEnum<RimPlotDataFilterItem::FilterOperation>::setUp() void caf::AppEnum<RimPlotDataFilterItem::FilterOperation>::setUp()
{ {
addItem( RimPlotDataFilterItem::RANGE, "RANGE", "Range" ); addItem( RimPlotDataFilterItem::RANGE, "RANGE", "within range" );
addItem( RimPlotDataFilterItem::TOP_N, "TOP_N", "Top N" ); addItem( RimPlotDataFilterItem::TOP_N, "TOP_N", "top" );
addItem( RimPlotDataFilterItem::BOTTOM_N, "BOTTOM_N", "Bottom N" ); addItem( RimPlotDataFilterItem::BOTTOM_N, "BOTTOM_N", "bottom" );
setDefault( RimPlotDataFilterItem::RANGE ); setDefault( RimPlotDataFilterItem::RANGE );
} }
@@ -55,13 +56,13 @@ void caf::AppEnum<RimPlotDataFilterItem::FilterOperation>::setUp()
template <> template <>
void caf::AppEnum<RimPlotDataFilterItem::TimeStepSourceType>::setUp() void caf::AppEnum<RimPlotDataFilterItem::TimeStepSourceType>::setUp()
{ {
addItem( RimPlotDataFilterItem::PLOT_SOURCE_TIMESTEPS, "PLOT_SOURCE_TIMESTEPS", "Plot Source" ); addItem( RimPlotDataFilterItem::PLOT_SOURCE_TIMESTEPS, "PLOT_SOURCE_TIMESTEPS", "plot source timesteps" );
addItem( RimPlotDataFilterItem::LAST_TIMESTEP, "LAST_TIMESTEP", "Last" ); addItem( RimPlotDataFilterItem::LAST_TIMESTEP, "LAST_TIMESTEP", "last timestep" );
addItem( RimPlotDataFilterItem::LAST_TIMESTEP_WITH_HISTORY, "LAST_TIMESTEP_WITH_HISTORY", "Last With History" ); addItem( RimPlotDataFilterItem::LAST_TIMESTEP_WITH_HISTORY, "LAST_TIMESTEP_WITH_HISTORY", "last timestep with history" );
addItem( RimPlotDataFilterItem::FIRST_TIMESTEP, "FIRST_TIMESTEP", "First" ); addItem( RimPlotDataFilterItem::FIRST_TIMESTEP, "FIRST_TIMESTEP", "first timestep" );
addItem( RimPlotDataFilterItem::ALL_TIMESTEPS, "ALL_TIMESTEPS", "All" ); addItem( RimPlotDataFilterItem::ALL_TIMESTEPS, "ALL_TIMESTEPS", "all timesteps" );
addItem( RimPlotDataFilterItem::SELECT_TIMESTEPS, "SELECT_TIMESTEPS", "By Selection" ); addItem( RimPlotDataFilterItem::SELECT_TIMESTEPS, "SELECT_TIMESTEPS", "selected timesteps" );
addItem( RimPlotDataFilterItem::SELECT_TIMESTEP_RANGE, "SELECT_TIMESTEP_RANGE", "By Range" ); addItem( RimPlotDataFilterItem::SELECT_TIMESTEP_RANGE, "SELECT_TIMESTEP_RANGE", "timestep range" );
setDefault( RimPlotDataFilterItem::PLOT_SOURCE_TIMESTEPS ); setDefault( RimPlotDataFilterItem::PLOT_SOURCE_TIMESTEPS );
} }
@@ -82,36 +83,34 @@ RimPlotDataFilterItem::RimPlotDataFilterItem()
CAF_PDM_InitField( &m_isActive, "IsActive", true, "Active", "", "", "" ); CAF_PDM_InitField( &m_isActive, "IsActive", true, "Active", "", "", "" );
m_isActive.uiCapability()->setUiHidden( true ); m_isActive.uiCapability()->setUiHidden( true );
CAF_PDM_InitFieldNoDefault( &m_filterTarget, "FilterTarget", "Filter Type", "", "", "" ); CAF_PDM_InitFieldNoDefault( &m_filterTarget, "FilterTarget", "Use only the", "", "", "" );
CAF_PDM_InitFieldNoDefault( &m_filterAddress, "FilterAddressField", "Filter Address", "", "", "" ); CAF_PDM_InitFieldNoDefault( &m_filterAddress, "FilterAddressField", "Filter Address", "", "", "" );
m_filterAddress.uiCapability()->setUiTreeHidden( true ); m_filterAddress.uiCapability()->setUiTreeHidden( true );
m_filterAddress.uiCapability()->setUiTreeChildrenHidden( true );
m_filterAddress = new RimSummaryAddress(); m_filterAddress = new RimSummaryAddress();
CAF_PDM_InitField( &m_filterEnsembleParameter, "QuantityText", QString( "" ), "Quantity", "", "", "" ); CAF_PDM_InitField( &m_filterEnsembleParameter, "QuantityText", QString( "" ), "where", "", "", "" );
CAF_PDM_InitFieldNoDefault( &m_filterQuantityUiField, "SelectedVariableDisplayVar", "Vector", "", "", "" ); CAF_PDM_InitFieldNoDefault( &m_filterQuantityUiField, "SelectedVariableDisplayVar", "where", "", "", "" );
m_filterQuantityUiField.xmlCapability()->disableIO(); m_filterQuantityUiField.xmlCapability()->disableIO();
m_filterQuantityUiField.uiCapability()->setUiEditorTypeName( caf::PdmUiLineEditor::uiEditorTypeName() ); m_filterQuantityUiField.uiCapability()->setUiEditorTypeName( caf::PdmUiLineEditor::uiEditorTypeName() );
CAF_PDM_InitField( &m_filterQuantitySelectButton, "SelectAddress", false, "...", "", "", "" ); CAF_PDM_InitField( &m_filterQuantitySelectButton, "SelectAddress", false, "...", "", "", "" );
caf::PdmUiActionPushButtonEditor::configureEditorForField( &m_filterQuantitySelectButton ); caf::PdmUiActionPushButtonEditor::configureEditorForField( &m_filterQuantitySelectButton );
CAF_PDM_InitFieldNoDefault( &m_filterOperation, "FilterOperation", "Operation", "", "", "" ); CAF_PDM_InitFieldNoDefault( &m_filterOperation, "FilterOperation", "is", "", "", "" );
CAF_PDM_InitField( &m_useAbsoluteValue, "UseAbsoluteValue", true, "Use Abs(value)", "", "", "" ); CAF_PDM_InitField( &m_useAbsoluteValue, "UseAbsoluteValue", true, "using absolute values", "", "", "" );
CAF_PDM_InitField( &m_topBottomN, "MinTopN", 20, "N", "", "", "" ); CAF_PDM_InitField( &m_topBottomN, "MinTopN", 20, "N", "", "", "" );
m_topBottomN.uiCapability()->setUiLabelPosition( caf::PdmUiItemInfo::HIDDEN );
CAF_PDM_InitField( &m_max, "Max", 0.0, "Max", "", "", "" ); CAF_PDM_InitField( &m_max, "Max", 0.0, "Max", "", "", "" );
m_max.uiCapability()->setUiEditorTypeName( caf::PdmUiDoubleSliderEditor::uiEditorTypeName() ); m_max.uiCapability()->setUiEditorTypeName( caf::PdmUiDoubleSliderEditor::uiEditorTypeName() );
CAF_PDM_InitField( &m_min, "Min", 0.0, "Min", "", "", "" ); CAF_PDM_InitField( &m_min, "Min", 0.0, "Min", "", "", "" );
m_min.uiCapability()->setUiEditorTypeName( caf::PdmUiDoubleSliderEditor::uiEditorTypeName() ); m_min.uiCapability()->setUiEditorTypeName( caf::PdmUiDoubleSliderEditor::uiEditorTypeName() );
CAF_PDM_InitFieldNoDefault( &m_ensembleParameterValueCategories, CAF_PDM_InitFieldNoDefault( &m_ensembleParameterValueCategories, "EnsembleParameterValueCategories", "one of", "", "", "" );
"EnsembleParameterValueCategories", CAF_PDM_InitFieldNoDefault( &m_consideredTimestepsType, "ConsideredTimestepsType", "at the", "", "", "" );
"Categories",
"",
"",
"" );
CAF_PDM_InitFieldNoDefault( &m_consideredTimestepsType, "ConsideredTimestepsType", "Timesteps to Consider", "", "", "" );
CAF_PDM_InitFieldNoDefault( &m_explicitlySelectedTimeSteps, "ExplicitlySelectedTimeSteps", "TimeSteps", "", "", "" ); CAF_PDM_InitFieldNoDefault( &m_explicitlySelectedTimeSteps, "ExplicitlySelectedTimeSteps", "TimeSteps", "", "", "" );
m_explicitlySelectedTimeSteps.uiCapability()->setUiEditorTypeName( caf::PdmUiListEditor::uiEditorTypeName() ); m_explicitlySelectedTimeSteps.uiCapability()->setUiEditorTypeName( caf::PdmUiListEditor::uiEditorTypeName() );
m_explicitlySelectedTimeSteps.uiCapability()->setUiLabelPosition( caf::PdmUiItemInfo::HIDDEN ); m_explicitlySelectedTimeSteps.uiCapability()->setUiLabelPosition( caf::PdmUiItemInfo::HIDDEN );
@@ -183,7 +182,7 @@ RimPlotDataFilterItem::TimeStepSourceType RimPlotDataFilterItem::consideredTimeS
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
std::pair<time_t, time_t> RimPlotDataFilterItem::timeRangeMinMax() const std::pair<time_t, time_t> RimPlotDataFilterItem::timeRangeMinMax() const
{ {
CVF_ASSERT( m_consideredTimestepsType() == RANGE ); CVF_ASSERT( m_consideredTimestepsType() == SELECT_TIMESTEP_RANGE );
if ( m_explicitlySelectedTimeSteps().size() >= 2 ) if ( m_explicitlySelectedTimeSteps().size() >= 2 )
{ {
@@ -333,16 +332,24 @@ void RimPlotDataFilterItem::defineUiOrdering( QString uiConfigName, caf::PdmUiOr
updateMaxMinAndDefaultValues( false ); updateMaxMinAndDefaultValues( false );
uiOrdering.add( &m_filterTarget, {true, 4, 1} ); uiOrdering.add( &m_filterTarget, {true, -1, 1} );
if ( m_filterTarget() == ENSEMBLE_CASE ) if ( m_filterTarget() == ENSEMBLE_CASE )
{ {
uiOrdering.add( &m_filterEnsembleParameter, {true, 4, 1} ); uiOrdering.add( &m_filterEnsembleParameter, {true, -1, 1} );
} }
else else
{ {
uiOrdering.add( &m_filterQuantityUiField, {true, 4, 1} ); uiOrdering.add( &m_filterQuantityUiField, {true, -1, 1} );
// uiOrdering.add( &m_filterQuantitySelectButton, {false, 1, 0} ); // uiOrdering.add( &m_filterQuantitySelectButton, {false, 1, 0} );
} }
if ( m_filterTarget() != ENSEMBLE_CASE )
{
uiOrdering.add( &m_consideredTimestepsType, {true, -1, 1} );
if ( m_consideredTimestepsType == SELECT_TIMESTEPS || m_consideredTimestepsType == SELECT_TIMESTEP_RANGE )
{
uiOrdering.add( &m_explicitlySelectedTimeSteps );
}
}
EnsembleParameter eParm; EnsembleParameter eParm;
if ( m_filterTarget() == ENSEMBLE_CASE ) if ( m_filterTarget() == ENSEMBLE_CASE )
@@ -357,25 +364,18 @@ void RimPlotDataFilterItem::defineUiOrdering( QString uiConfigName, caf::PdmUiOr
else else
{ {
uiOrdering.add( &m_filterOperation, {true, 2, 1} ); uiOrdering.add( &m_filterOperation, {true, 2, 1} );
uiOrdering.add( &m_useAbsoluteValue, {false} );
if ( m_filterOperation() == RANGE ) if ( m_filterOperation() == RANGE )
{ {
uiOrdering.add( &m_max, {true, 4, 1} ); uiOrdering.add( &m_useAbsoluteValue, {false} );
uiOrdering.add( &m_min, {true, 4, 1} );
uiOrdering.add( &m_max, {true, -1, 1} );
uiOrdering.add( &m_min, {true, -1, 1} );
} }
else if ( m_filterOperation == TOP_N || m_filterOperation == BOTTOM_N ) else if ( m_filterOperation == TOP_N || m_filterOperation == BOTTOM_N )
{ {
uiOrdering.add( &m_topBottomN, {true, 4, 1} ); uiOrdering.add( &m_topBottomN, {false} );
} uiOrdering.add( &m_useAbsoluteValue, {true} );
}
if ( m_filterTarget() != ENSEMBLE_CASE )
{
uiOrdering.add( &m_consideredTimestepsType, {true, 4, 1} );
if ( m_consideredTimestepsType == SELECT_TIMESTEPS || m_consideredTimestepsType == SELECT_TIMESTEP_RANGE )
{
uiOrdering.add( &m_explicitlySelectedTimeSteps );
} }
} }
@@ -400,6 +400,16 @@ void RimPlotDataFilterItem::defineEditorAttribute( const caf::PdmFieldHandle* fi
myAttr->m_minimum = m_lowerLimit; myAttr->m_minimum = m_lowerLimit;
myAttr->m_maximum = m_upperLimit; myAttr->m_maximum = m_upperLimit;
} }
else if ( field == &m_topBottomN )
{
caf::PdmUiLineEditorAttribute* myAttr = dynamic_cast<caf::PdmUiLineEditorAttribute*>( attribute );
if ( !myAttr ) return;
QFontMetrics fm = QFontMetrics( QFont() );
myAttr->maximumWidth = fm.width( "XXXX" );
}
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@@ -47,6 +47,10 @@ class RimSummaryAddress;
// is [within range/top N/min N] // is [within range/top N/min N]
// considering the [Plot Source/Last/First/Last with History/all] timestep(s) [range/1,2..] // considering the [Plot Source/Last/First/Last with History/all] timestep(s) [range/1,2..]
// Use only the "Summary Cases" where "FOPT" at the "plot source" time step(s) is "within range"
// Use only the "Summary Items" where "WOPT" at the "Last" time step(s) is "Top " "5"
// Use only the "Ensemble Cases" where "LGOR_FOR_EDKNRE" is "within range" "5"
class RimPlotDataFilterItem : public caf::PdmObject class RimPlotDataFilterItem : public caf::PdmObject
{ {
CAF_PDM_HEADER_INIT; CAF_PDM_HEADER_INIT;