Skip to content
Merged
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 @@ -52,7 +52,6 @@
#include "RiuTools.h"

#include "cafPdmUiComboBoxEditor.h"
#include "cafPdmUiPushButtonEditor.h"

#include <QInputDialog>
#include <QMessageBox>
Expand Down Expand Up @@ -84,27 +83,13 @@ std::vector<T> toVector( const std::set<T>& set );
//--------------------------------------------------------------------------------------------------
RicSummaryPlotEditorUi::RicSummaryPlotEditorUi()
: m_plotContainer( nullptr )
, m_closeButtonPressed( false )
{
CAF_PDM_InitFieldNoDefault( &m_targetPlot, "TargetPlot", "Target Plot" );

m_previewPlot = std::make_unique<RimSummaryPlot>();
m_previewPlot->setLegendPosition( RiuPlotWidget::Legend::TOP );

CAF_PDM_InitFieldNoDefault( &m_applyButtonField, "ApplySelection", "" );
m_applyButtonField = false;
m_applyButtonField.uiCapability()->setUiEditorTypeName( caf::PdmUiPushButtonEditor::uiEditorTypeName() );
m_applyButtonField.uiCapability()->setUiLabelPosition( caf::PdmUiItemInfo::LabelPosition::HIDDEN );

CAF_PDM_InitFieldNoDefault( &m_closeButtonField, "Close", "" );
m_closeButtonField = false;
m_closeButtonField.uiCapability()->setUiEditorTypeName( caf::PdmUiPushButtonEditor::uiEditorTypeName() );
m_closeButtonField.uiCapability()->setUiLabelPosition( caf::PdmUiItemInfo::LabelPosition::HIDDEN );

CAF_PDM_InitFieldNoDefault( &m_okButtonField, "OK", "" );
m_okButtonField = false;
m_okButtonField.uiCapability()->setUiEditorTypeName( caf::PdmUiPushButtonEditor::uiEditorTypeName() );
m_okButtonField.uiCapability()->setUiLabelPosition( caf::PdmUiItemInfo::LabelPosition::HIDDEN );

m_summaryCurveSelectionEditor = std::make_unique<RiuSummaryVectorSelectionWidgetCreator>();

m_summaryCurveSelectionEditor->summaryAddressSelection()->setFieldChangedHandler( [this]() { selectionEditorFieldChanged(); } );
Expand Down Expand Up @@ -187,49 +172,22 @@ QWidget* RicSummaryPlotEditorUi::addressSelectionWidget( QWidget* parent )
//--------------------------------------------------------------------------------------------------
bool RicSummaryPlotEditorUi::isCloseButtonPressed() const
{
return m_closeButtonField();
return m_closeButtonPressed;
}

//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RicSummaryPlotEditorUi::clearCloseButton()
{
m_closeButtonField = false;
m_closeButtonPressed = false;
}

//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RicSummaryPlotEditorUi::fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue )
{
if ( changedField == &m_applyButtonField || changedField == &m_okButtonField )
{
if ( m_targetPlot == nullptr )
{
createNewPlot();
}

updateTargetPlot();

if ( changedField == &m_okButtonField )
{
m_closeButtonField = true;

RiuPlotMainWindowTools::showPlotMainWindow();
RiuPlotMainWindowTools::selectAsCurrentItem( m_targetPlot );
RiuPlotMainWindowTools::setExpanded( m_targetPlot );
}

m_applyButtonField = false;
m_okButtonField = false;

caf::PdmField<bool>* field = dynamic_cast<caf::PdmField<bool>*>( m_targetPlot->uiCapability()->objectToggleField() );
field->setValueWithFieldChanged( true );

RiuPlotMainWindow* mainPlotWindow = RiaGuiApplication::instance()->mainPlotWindow();
mainPlotWindow->updateMultiPlotToolBar();
}
}

//--------------------------------------------------------------------------------------------------
Expand Down Expand Up @@ -260,9 +218,15 @@ QList<caf::PdmOptionItemInfo> RicSummaryPlotEditorUi::calculateValueOptions( con
void RicSummaryPlotEditorUi::defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering )
{
uiOrdering.add( &m_targetPlot );
uiOrdering.add( &m_okButtonField );
uiOrdering.add( &m_applyButtonField );
uiOrdering.add( &m_closeButtonField );
uiOrdering.addNewButton( "OK", [this]() { onOkButtonClicked(); } );
uiOrdering.addNewButton( "Apply", [this]() { onApplyButtonClicked(); }, { .newRow = false } );
uiOrdering.addNewButton( "Cancel",
[this]()
{
m_closeButtonPressed = true;
uiCapability()->updateConnectedEditors();
},
{ .newRow = false } );

uiOrdering.skipRemainingFields( true );

Expand Down Expand Up @@ -499,31 +463,7 @@ void RicSummaryPlotEditorUi::updatePreviewCurvesFromCurveDefinitions( const std:
//--------------------------------------------------------------------------------------------------
void RicSummaryPlotEditorUi::defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute )
{
if ( &m_applyButtonField == field )
{
caf::PdmUiPushButtonEditorAttribute* attrib = dynamic_cast<caf::PdmUiPushButtonEditorAttribute*>( attribute );
if ( attrib )
{
attrib->m_buttonText = "Apply";
}
}
else if ( &m_closeButtonField == field )
{
caf::PdmUiPushButtonEditorAttribute* attrib = dynamic_cast<caf::PdmUiPushButtonEditorAttribute*>( attribute );
if ( attrib )
{
attrib->m_buttonText = "Cancel";
}
}
else if ( &m_okButtonField == field )
{
caf::PdmUiPushButtonEditorAttribute* attrib = dynamic_cast<caf::PdmUiPushButtonEditorAttribute*>( attribute );
if ( attrib )
{
attrib->m_buttonText = "OK";
}
}
else if ( &m_targetPlot == field )
if ( &m_targetPlot == field )
{
caf::PdmUiComboBoxEditorAttribute* attrib = dynamic_cast<caf::PdmUiComboBoxEditorAttribute*>( attribute );
if ( attrib )
Expand Down Expand Up @@ -791,6 +731,44 @@ void RicSummaryPlotEditorUi::setInitialCurveVisibility( const RimSummaryPlot* ta
}
}

//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RicSummaryPlotEditorUi::onOkButtonClicked()
{
if ( m_targetPlot == nullptr ) createNewPlot();
updateTargetPlot();

m_closeButtonPressed = true;

RiuPlotMainWindowTools::showPlotMainWindow();
RiuPlotMainWindowTools::selectAsCurrentItem( m_targetPlot );
RiuPlotMainWindowTools::setExpanded( m_targetPlot );

caf::PdmField<bool>* field = dynamic_cast<caf::PdmField<bool>*>( m_targetPlot->uiCapability()->objectToggleField() );
if ( field ) field->setValueWithFieldChanged( true );

RiuPlotMainWindow* mainPlotWindow = RiaGuiApplication::instance()->mainPlotWindow();
mainPlotWindow->updateMultiPlotToolBar();

uiCapability()->updateConnectedEditors();
}

//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RicSummaryPlotEditorUi::onApplyButtonClicked()
{
if ( m_targetPlot == nullptr ) createNewPlot();
updateTargetPlot();

caf::PdmField<bool>* field = dynamic_cast<caf::PdmField<bool>*>( m_targetPlot->uiCapability()->objectToggleField() );
if ( field ) field->setValueWithFieldChanged( true );

RiuPlotMainWindow* mainPlotWindow = RiaGuiApplication::instance()->mainPlotWindow();
mainPlotWindow->updateMultiPlotToolBar();
}

//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,14 +98,15 @@ class RicSummaryPlotEditorUi : public caf::PdmObject
void selectionEditorFieldChanged();
void setInitialCurveVisibility( const RimSummaryPlot* targetPlot );

void onOkButtonClicked();
void onApplyButtonClicked();

private:
caf::PdmPtrField<RimSummaryPlot*> m_targetPlot;

std::unique_ptr<RimSummaryPlot> m_previewPlot;

caf::PdmField<bool> m_okButtonField;
caf::PdmField<bool> m_applyButtonField;
caf::PdmField<bool> m_closeButtonField;
bool m_closeButtonPressed;

std::unique_ptr<RiuSummaryVectorSelectionWidgetCreator> m_summaryCurveSelectionEditor;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,9 @@
#include "RiuSummaryVectorSelectionDialog.h"

#include "cafCmdFeatureMenuBuilder.h"
#include "cafPdmUiButton.h"
#include "cafPdmUiComboBoxEditor.h"
#include "cafPdmUiLineEditor.h"
#include "cafPdmUiPushButtonEditor.h"
#include "cafPdmUiToolButtonEditor.h"

#include "qwt_plot.h"
Expand All @@ -67,10 +67,6 @@ RimAbstractCorrelationPlot::RimAbstractCorrelationPlot()
CAF_PDM_InitFieldNoDefault( &m_dataSources, "AnalysisPlotData", "" );
m_dataSources.uiCapability()->setUiTreeChildrenHidden( true );

CAF_PDM_InitFieldNoDefault( &m_pushButtonSelectSummaryAddress, "SelectAddress", "" );
caf::PdmUiPushButtonEditor::configureEditorLabelHidden( &m_pushButtonSelectSummaryAddress );
m_pushButtonSelectSummaryAddress = false;

CAF_PDM_InitFieldNoDefault( &m_timeStepFilter, "TimeStepFilter", "Available Time Steps" );

CAF_PDM_InitFieldNoDefault( &m_timeStep, "TimeStep", "Time Step" );
Expand Down Expand Up @@ -139,40 +135,7 @@ void RimAbstractCorrelationPlot::setTimeStep( std::time_t timeStep )
void RimAbstractCorrelationPlot::fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue )
{
RimPlot::fieldChangedByUi( changedField, oldValue, newValue );
if ( changedField == &m_pushButtonSelectSummaryAddress )
{
RiuSummaryVectorSelectionDialog dlg( RiaGuiApplication::widgetToUseAsParent() );

if ( m_selectMultipleVectors )
{
dlg.enableMultiSelect( true );
}

dlg.hideSummaryCases();
dlg.setCurveSelection( curveDefinitions() );

if ( dlg.exec() == QDialog::Accepted )
{
auto curveSelection = dlg.curveSelection();
if ( !curveSelection.empty() )
{
std::vector<RiaSummaryCurveDefinition> summaryVectorDefinitions = dlg.curveSelection();
m_dataSources.deleteChildren();
for ( const RiaSummaryCurveDefinition& vectorDef : summaryVectorDefinitions )
{
auto plotEntry = new RimAnalysisPlotDataEntry();
plotEntry->setFromCurveDefinition( vectorDef );
m_dataSources.push_back( plotEntry );
}
connectAllCaseSignals();
loadDataAndUpdate();
updateConnectedEditors();
}
}

m_pushButtonSelectSummaryAddress = false;
}
else if ( changedField == &m_timeStep )
if ( changedField == &m_timeStep )
{
loadDataAndUpdate();
updateConnectedEditors();
Expand Down Expand Up @@ -234,11 +197,6 @@ void RimAbstractCorrelationPlot::fieldChangedByUi( const caf::PdmFieldHandle* ch
//--------------------------------------------------------------------------------------------------
void RimAbstractCorrelationPlot::defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute )
{
caf::PdmUiPushButtonEditorAttribute* attrib = dynamic_cast<caf::PdmUiPushButtonEditorAttribute*>( attribute );
if ( attrib )
{
attrib->m_buttonText = "...";
}
}

//--------------------------------------------------------------------------------------------------
Expand Down Expand Up @@ -751,7 +709,9 @@ void RimAbstractCorrelationPlot::appendDataSourceFields( QString uiConfigName, c
m_selectedVarsUiField = selectedVectorNamesText();

curveDataGroup->add( &m_selectedVarsUiField );
curveDataGroup->add( &m_pushButtonSelectSummaryAddress, { .newRow = false, .totalColumnSpan = 1, .leftLabelColumnSpan = 0 } );
curveDataGroup->addNewButton( "...",
[this]() { onSelectVariablesButtonClicked(); },
{ .newRow = false, .totalColumnSpan = 1, .leftLabelColumnSpan = 0 } );
curveDataGroup->add( &m_timeStepFilter );
curveDataGroup->add( &m_timeStep );
curveDataGroup->add( &m_useCaseFilter );
Expand Down Expand Up @@ -802,3 +762,38 @@ void RimAbstractCorrelationPlot::onFilterSourceChanged( const caf::SignalEmitter
{
if ( m_useCaseFilter() ) loadDataAndUpdate();
}

//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimAbstractCorrelationPlot::onSelectVariablesButtonClicked()
{
RiuSummaryVectorSelectionDialog dlg( RiaGuiApplication::widgetToUseAsParent() );

if ( m_selectMultipleVectors )
{
dlg.enableMultiSelect( true );
}

dlg.hideSummaryCases();
dlg.setCurveSelection( curveDefinitions() );

if ( dlg.exec() == QDialog::Accepted )
{
auto curveSelection = dlg.curveSelection();
if ( !curveSelection.empty() )
{
std::vector<RiaSummaryCurveDefinition> summaryVectorDefinitions = dlg.curveSelection();
m_dataSources.deleteChildren();
for ( const RiaSummaryCurveDefinition& vectorDef : summaryVectorDefinitions )
{
auto plotEntry = new RimAnalysisPlotDataEntry();
plotEntry->setFromCurveDefinition( vectorDef );
m_dataSources.push_back( plotEntry );
}
connectAllCaseSignals();
loadDataAndUpdate();
updateConnectedEditors();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,7 @@ class RimAbstractCorrelationPlot : public RimPlot
void connectAllCaseSignals();
void connectCurveFilterSignals();
void onFilterSourceChanged( const caf::SignalEmitter* emitter );
void onSelectVariablesButtonClicked();

RiaSummaryCurveDefinitionAnalyser* getOrCreateSelectedCurveDefAnalyser() const;

Expand All @@ -140,7 +141,6 @@ class RimAbstractCorrelationPlot : public RimPlot
bool m_selectMultipleVectors;

caf::PdmField<QString> m_selectedVarsUiField;
caf::PdmField<bool> m_pushButtonSelectSummaryAddress;
caf::PdmField<TimeStepFilterEnum> m_timeStepFilter;
caf::PdmField<QDateTime> m_timeStep;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -258,8 +258,6 @@ void RimCorrelationMatrixPlot::fieldChangedByUi( const caf::PdmFieldHandle* chan
{
RimAbstractCorrelationPlot::fieldChangedByUi( changedField, oldValue, newValue );

bool sendSelectedSignal = false;

if ( changedField == &m_showAbsoluteValues || changedField == &m_sortByValues || changedField == &m_sortByAbsoluteValues ||
changedField == &m_showOnlyTopNCorrelations || changedField == &m_topNFilterCount ||
changedField == &m_excludeParametersWithoutVariation || changedField == &m_selectedParametersList )
Expand All @@ -271,16 +269,7 @@ void RimCorrelationMatrixPlot::fieldChangedByUi( const caf::PdmFieldHandle* chan
updateLegend();
loadDataAndUpdate();
updateConnectedEditors();
sendSelectedSignal = true;
}

if ( changedField == &m_pushButtonSelectSummaryAddress )
{
sendSelectedSignal = true;
}

if ( sendSelectedSignal )
{
auto curves = curveDefinitions();
auto parameters = m_selectedParametersList();
if ( !curves.empty() && !parameters.empty() )
Expand Down
Loading
Loading