Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@
#include "RiuSummaryVectorSelectionDialog.h"

#include "cafPdmUiLineEditor.h"
#include "cafPdmUiPushButtonEditor.h"
#include "cafPdmUiTreeSelectionEditor.h"

CAF_PDM_SOURCE_INIT( RimCustomObjectiveFunctionWeight, "RimCustomObjectiveFunctionWeight" );
Expand All @@ -52,10 +51,6 @@ RimCustomObjectiveFunctionWeight::RimCustomObjectiveFunctionWeight()
CAF_PDM_InitFieldNoDefault( &m_objectiveValuesSummaryAddresses, "ObjectiveSummaryAddress", "Summary Address" );
m_objectiveValuesSummaryAddresses.uiCapability()->setUiTreeChildrenHidden( true );

CAF_PDM_InitFieldNoDefault( &m_objectiveValuesSelectSummaryAddressPushButton, "SelectObjectiveSummaryAddress", "" );
caf::PdmUiPushButtonEditor::configureEditorLabelHidden( &m_objectiveValuesSelectSummaryAddressPushButton );
m_objectiveValuesSelectSummaryAddressPushButton = false;

CAF_PDM_InitField( &m_weightValue, "WeightValue", 1.0, "Weight" );
m_weightValue.uiCapability()->setUiEditorTypeName( caf::PdmUiLineEditor::uiEditorTypeName() );

Expand Down Expand Up @@ -143,38 +138,6 @@ void RimCustomObjectiveFunctionWeight::fieldChangedByUi( const caf::PdmFieldHand
{
updateAddressesUiField();
}
else if ( changedField == &m_objectiveValuesSelectSummaryAddressPushButton )
{
RiuSummaryVectorSelectionDialog dlg( RiaGuiApplication::widgetToUseAsParent() );
RimObjectiveFunctionTools::configureDialogForObjectiveFunctions( &dlg );
RimSummaryEnsemble* candidateEnsemble = parentCurveSet()->summaryEnsemble();

std::vector<RifEclipseSummaryAddress> candidateAddresses;
for ( auto address : m_objectiveValuesSummaryAddresses().childrenByType() )
{
candidateAddresses.push_back( address->address() );
}

dlg.setEnsembleAndAddresses( candidateEnsemble, candidateAddresses );

if ( dlg.exec() == QDialog::Accepted )
{
auto curveSelection = dlg.curveSelection();
if ( !curveSelection.empty() )
{
m_objectiveValuesSummaryAddresses.deleteChildren();
for ( auto address : curveSelection )
{
RimSummaryAddress* summaryAddress = new RimSummaryAddress();
summaryAddress->setAddress( address.summaryAddressY() );
m_objectiveValuesSummaryAddresses.push_back( summaryAddress );
}
}
}
updateAddressesUiField();
m_objectiveValuesSelectSummaryAddressPushButton = false;
parentObjectiveFunction()->onWeightChanged();
}
else if ( changedField == &m_weightValue )
{
parentObjectiveFunction()->onWeightChanged();
Expand All @@ -191,7 +154,7 @@ void RimCustomObjectiveFunctionWeight::fieldChangedByUi( const caf::PdmFieldHand
void RimCustomObjectiveFunctionWeight::defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering )
{
uiOrdering.add( &m_objectiveValuesSummaryAddressesUiField );
uiOrdering.add( &m_objectiveValuesSelectSummaryAddressPushButton, { .newRow = false, .totalColumnSpan = 1, .leftLabelColumnSpan = 0 } );
uiOrdering.addNewButton( "...", [this]() { selectSummaryAddress(); }, { .newRow = false, .totalColumnSpan = 1, .leftLabelColumnSpan = 0 } );
uiOrdering.add( &m_weightValue );
uiOrdering.add( &m_objectiveFunction );

Expand All @@ -215,14 +178,6 @@ void RimCustomObjectiveFunctionWeight::defineEditorAttribute( const caf::PdmFiel

myAttr->validator = new QDoubleValidator( 0.0, 9999.0, 2 );
}
else if ( field == &m_objectiveValuesSelectSummaryAddressPushButton )
{
caf::PdmUiPushButtonEditorAttribute* attrib = dynamic_cast<caf::PdmUiPushButtonEditorAttribute*>( attribute );
if ( attrib )
{
attrib->m_buttonText = "...";
}
}
}

//--------------------------------------------------------------------------------------------------
Expand Down Expand Up @@ -261,3 +216,38 @@ void RimCustomObjectiveFunctionWeight::updateAddressesUiField()
}
m_objectiveValuesSummaryAddressesUiField = QString::fromStdString( RifEclipseSummaryAddress::generateStringFromAddresses( addressVector ) );
}

//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimCustomObjectiveFunctionWeight::selectSummaryAddress()
{
RiuSummaryVectorSelectionDialog dlg( nullptr );
RimObjectiveFunctionTools::configureDialogForObjectiveFunctions( &dlg );
RimSummaryEnsemble* candidateEnsemble = parentCurveSet()->summaryEnsemble();

std::vector<RifEclipseSummaryAddress> candidateAddresses;
for ( auto address : m_objectiveValuesSummaryAddresses().childrenByType() )
{
candidateAddresses.push_back( address->address() );
}

dlg.setEnsembleAndAddresses( candidateEnsemble, candidateAddresses );

if ( dlg.exec() == QDialog::Accepted )
{
auto curveSelection = dlg.curveSelection();
if ( !curveSelection.empty() )
{
m_objectiveValuesSummaryAddresses.deleteChildren();
for ( auto address : curveSelection )
{
RimSummaryAddress* summaryAddress = new RimSummaryAddress();
summaryAddress->setAddress( address.summaryAddressY() );
m_objectiveValuesSummaryAddresses.push_back( summaryAddress );
}
}
}
updateAddressesUiField();
parentObjectiveFunction()->onWeightChanged();
}
Original file line number Diff line number Diff line change
Expand Up @@ -66,12 +66,12 @@ class RimCustomObjectiveFunctionWeight : public caf::PdmObject
RimCustomObjectiveFunction* parentObjectiveFunction() const;

void updateAddressesUiField();
void selectSummaryAddress();

private:
caf::PdmProxyValueField<QString> m_title;
caf::PdmChildArrayField<RimSummaryAddress*> m_objectiveValuesSummaryAddresses;
caf::PdmField<QString> m_objectiveValuesSummaryAddressesUiField;
caf::PdmField<bool> m_objectiveValuesSelectSummaryAddressPushButton;
caf::PdmField<caf::AppEnum<RimObjectiveFunction::FunctionType>> m_objectiveFunction;
caf::PdmField<double> m_weightValue;
};
41 changes: 13 additions & 28 deletions ApplicationLibCode/ProjectDataModel/RimEclipseStatisticsCase.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@
#include "RiuMainWindow.h"

#include "cafPdmFieldScriptingCapability.h"
#include "cafPdmUiPushButtonEditor.h"
#include "cafPdmUiTextEditor.h"
#include "cafPdmUiTreeSelectionEditor.h"
#include "cafProgressInfo.h"
Expand Down Expand Up @@ -81,10 +80,6 @@ RimEclipseStatisticsCase::RimEclipseStatisticsCase()
{
CAF_PDM_InitScriptableObject( "Case Group Statistics", ":/Histogram16x16.png" );

CAF_PDM_InitFieldNoDefault( &m_calculateEditCommand, "m_editingAllowed", "" );
caf::PdmUiPushButtonEditor::configureEditorLabelLeft( &m_calculateEditCommand );
m_calculateEditCommand = false;

CAF_PDM_InitField( &m_selectionSummary, "SelectionSummary", QString( "" ), "Summary of Calculation Setup" );
m_selectionSummary.xmlCapability()->disableIO();
m_selectionSummary.uiCapability()->setUiReadOnly( true );
Expand Down Expand Up @@ -491,7 +486,19 @@ void RimEclipseStatisticsCase::defineUiOrdering( QString uiConfigName, caf::PdmU
uiOrdering.add( &m_caseUserDescription );
uiOrdering.add( &m_caseId );

uiOrdering.add( &m_calculateEditCommand );
QString buttonText = hasComputedStatistics() ? "Edit (Will DELETE current results)" : "Compute";
uiOrdering.addNewButton( buttonText,
[this]()
{
if ( hasComputedStatistics() )
{
clearComputedStatistics();
}
else
{
computeStatisticsAndUpdateViews();
}
} );

{
caf::PdmUiGroup* group = uiOrdering.addNewGroup( "Summary of Calculation Setup" );
Expand Down Expand Up @@ -718,19 +725,6 @@ void RimEclipseStatisticsCase::fieldChangedByUi( const caf::PdmFieldHandle* chan
{
}

if ( &m_calculateEditCommand == changedField )
{
if ( hasComputedStatistics() )
{
clearComputedStatistics();
}
else
{
computeStatisticsAndUpdateViews();
}
m_calculateEditCommand = false;
}

if ( &m_dataSourceForStatistics == changedField && m_gridCalculation() == nullptr )
{
auto calculations = RimProject::current()->gridCalculationCollection()->calculations();
Expand Down Expand Up @@ -869,15 +863,6 @@ void RimEclipseStatisticsCase::defineEditorAttribute( const caf::PdmFieldHandle*
textEditAttrib->textMode = caf::PdmUiTextEditorAttribute::HTML;
}
}

if ( &m_calculateEditCommand == field )
{
caf::PdmUiPushButtonEditorAttribute* attrib = dynamic_cast<caf::PdmUiPushButtonEditorAttribute*>( attribute );
if ( attrib )
{
attrib->m_buttonText = hasComputedStatistics() ? "Edit (Will DELETE current results)" : "Compute";
}
}
}

//--------------------------------------------------------------------------------------------------
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,6 @@ class RimEclipseStatisticsCase : public RimEclipseCase

RimCaseCollection* parentStatisticsCaseCollection() const;

caf::PdmField<bool> m_calculateEditCommand;

void populateResultSelectionAfterLoadingGrid();

void setSourceProperties( RiaDefines::ResultCatType propertyType, const std::vector<QString>& propertyNames );
Expand Down
49 changes: 11 additions & 38 deletions ApplicationLibCode/ProjectDataModel/RimGridCalculation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,6 @@
#include "expressionparser/ExpressionParser.h"

#include "cafPdmUiPropertyViewDialog.h"
#include "cafPdmUiPushButtonEditor.h"
#include "cafPdmUiTreeSelectionEditor.h"

#include <QCheckBox>
Expand Down Expand Up @@ -105,9 +104,6 @@ RimGridCalculation::RimGridCalculation()
CAF_PDM_InitFieldNoDefault( &m_nonVisibleResultAddress, "NonVisibleResultAddress", "" );
m_nonVisibleResultAddress = new RimEclipseResultAddress;

CAF_PDM_InitField( &m_editNonVisibleResultAddress, "EditNonVisibleResultAddress", false, "Edit" );
caf::PdmUiPushButtonEditor::configureEditorLabelHidden( &m_editNonVisibleResultAddress );

CAF_PDM_InitFieldNoDefault( &m_nonVisibleResultText, "NonVisibleResultText", "" );
m_nonVisibleResultText.registerGetMethod( this, &RimGridCalculation::nonVisibleResultAddressText );
m_nonVisibleResultText.uiCapability()->setUiReadOnly( true );
Expand Down Expand Up @@ -362,7 +358,7 @@ void RimGridCalculation::defineUiOrdering( QString uiConfigName, caf::PdmUiOrder
if ( m_defaultValueType() == RimGridCalculation::DefaultValueType::FROM_PROPERTY )
{
filterGroup->add( &m_nonVisibleResultText );
filterGroup->add( &m_editNonVisibleResultAddress, { .newRow = false } );
filterGroup->addNewButton( "Edit", [this]() { onEditNonVisibleResultAddressButtonPressed(); }, { .newRow = false } );
}
else if ( m_defaultValueType() == RimGridCalculation::DefaultValueType::USER_DEFINED )
filterGroup->add( &m_defaultValue );
Expand Down Expand Up @@ -500,43 +496,20 @@ void RimGridCalculation::initAfterRead()
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimGridCalculation::fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue )
void RimGridCalculation::onEditNonVisibleResultAddressButtonPressed()
{
RimUserDefinedCalculation::fieldChangedByUi( changedField, oldValue, newValue );

if ( changedField == &m_editNonVisibleResultAddress )
{
auto eclipseCase = m_nonVisibleResultAddress->eclipseCase();
if ( !eclipseCase ) eclipseCase = m_destinationCase;

RimResultSelectionUi selectionUi;
selectionUi.setEclipseResultAddress( eclipseCase, m_nonVisibleResultAddress->resultType(), m_nonVisibleResultAddress->resultName() );

caf::PdmUiPropertyViewDialog propertyDialog( nullptr, &selectionUi, "Select Result", "" );
if ( propertyDialog.exec() == QDialog::Accepted )
{
m_nonVisibleResultAddress->setEclipseCase( selectionUi.eclipseCase() );
m_nonVisibleResultAddress->setResultType( selectionUi.resultType() );
m_nonVisibleResultAddress->setResultName( selectionUi.resultVariable() );
}

m_editNonVisibleResultAddress = false;
}
}
auto eclipseCase = m_nonVisibleResultAddress->eclipseCase();
if ( !eclipseCase ) eclipseCase = m_destinationCase;

//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimGridCalculation::defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute )
{
RimUserDefinedCalculation::defineEditorAttribute( field, uiConfigName, attribute );
RimResultSelectionUi selectionUi;
selectionUi.setEclipseResultAddress( eclipseCase, m_nonVisibleResultAddress->resultType(), m_nonVisibleResultAddress->resultName() );

if ( field == &m_editNonVisibleResultAddress )
caf::PdmUiPropertyViewDialog propertyDialog( nullptr, &selectionUi, "Select Result", "" );
if ( propertyDialog.exec() == QDialog::Accepted )
{
if ( auto attrib = dynamic_cast<caf::PdmUiPushButtonEditorAttribute*>( attribute ) )
{
attrib->m_buttonText = "Edit";
}
m_nonVisibleResultAddress->setEclipseCase( selectionUi.eclipseCase() );
m_nonVisibleResultAddress->setResultType( selectionUi.resultType() );
m_nonVisibleResultAddress->setResultName( selectionUi.resultVariable() );
}
}

Expand Down
4 changes: 1 addition & 3 deletions ApplicationLibCode/ProjectDataModel/RimGridCalculation.h
Original file line number Diff line number Diff line change
Expand Up @@ -131,12 +131,11 @@ class RimGridCalculation : public RimUserDefinedCalculation
void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override;
QList<caf::PdmOptionItemInfo> calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions ) override;
void initAfterRead() override;
void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override;
void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) override;

private:
void onVariableUpdated( const SignalEmitter* emitter );
bool allSourceCasesAreEqualToDestinationCase() const;
void onEditNonVisibleResultAddressButtonPressed();

static std::pair<bool, QStringList> createStatisticsText( const std::vector<std::vector<double>>& values );

Expand All @@ -154,7 +153,6 @@ class RimGridCalculation : public RimUserDefinedCalculation

caf::PdmProxyValueField<QString> m_nonVisibleResultText;
caf::PdmChildField<RimEclipseResultAddress*> m_nonVisibleResultAddress;
caf::PdmField<bool> m_editNonVisibleResultAddress;

caf::PdmField<bool> m_applyToAllCases_OBSOLETE;

Expand Down
30 changes: 6 additions & 24 deletions ApplicationLibCode/ProjectDataModel/RimRegularLegendConfig.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,6 @@
#include "cafPdmFieldCvfMat4d.h"
#include "cafPdmUiComboBoxEditor.h"
#include "cafPdmUiLineEditor.h"
#include "cafPdmUiPushButtonEditor.h"
#include "cafPdmUiToolButtonEditor.h"

#include "cvfMath.h"
Expand Down Expand Up @@ -203,9 +202,6 @@ RimRegularLegendConfig::RimRegularLegendConfig()
m_scalarMapperLegend = new caf::OverlayScalarMapperLegend( standardFont );
m_categoryLegend = new caf::CategoryLegend( standardFont, m_categoryMapper.p() );

CAF_PDM_InitField( &m_resetUserDefinedValuesButton, "ResetDefaultValues", false, "Reset Default Values" );
caf::PdmUiPushButtonEditor::configureEditorLabelHidden( &m_resetUserDefinedValuesButton );

CAF_PDM_InitField( &m_centerLegendAroundZero, "CenterLegendAroundZero", false, "Center Legend Around Zero" );

updateFieldVisibility();
Expand Down Expand Up @@ -282,13 +278,6 @@ void RimRegularLegendConfig::fieldChangedByUi( const caf::PdmFieldHandle* change
updateCategoryItems();
}

if ( changedField == &m_resetUserDefinedValuesButton )
{
resetUserDefinedValues();

m_resetUserDefinedValuesButton = false;
}

updateLegend();

auto view = firstAncestorOrThisOfType<RimGridView>();
Expand Down Expand Up @@ -375,10 +364,6 @@ void RimRegularLegendConfig::sendChangedSignal( const caf::PdmFieldHandle* chang
{
changed.send( ChangeType::COLORS );
}
else if ( changedField == &m_resetUserDefinedValuesButton )
{
changed.send( ChangeType::ALL );
}
}

auto computeAdjustedMinMax = []( double minimum, double maximum, double precision ) -> std::pair<double, double>
Expand Down Expand Up @@ -686,14 +671,6 @@ caf::PdmFieldHandle* RimRegularLegendConfig::objectToggleField()
//--------------------------------------------------------------------------------------------------
void RimRegularLegendConfig::defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute )
{
if ( &m_resetUserDefinedValuesButton == field )
{
caf::PdmUiPushButtonEditorAttribute* attrib = dynamic_cast<caf::PdmUiPushButtonEditorAttribute*>( attribute );
if ( attrib )
{
attrib->m_buttonText = "Reset User Defined Values";
}
}
}

//--------------------------------------------------------------------------------------------------
Expand Down Expand Up @@ -1309,7 +1286,12 @@ void RimRegularLegendConfig::defineUiOrdering( QString uiConfigName, caf::PdmUiO
mappingGr->add( &m_categoryColorMode );
mappingGr->add( &m_centerLegendAroundZero );

uiOrdering.add( &m_resetUserDefinedValuesButton );
uiOrdering.addNewButton( "Reset User Defined Values",
[this]()
{
resetUserDefinedValues();
changed.send( RimLegendConfigChangeType::ALL );
} );
}

updateFieldVisibility();
Expand Down
Loading