diff --git a/ApplicationLibCode/Commands/SummaryPlotCommands/RicEditSummaryPlotFeature.cpp b/ApplicationLibCode/Commands/SummaryPlotCommands/RicEditSummaryPlotFeature.cpp index a12729fea4..746b0b8a58 100644 --- a/ApplicationLibCode/Commands/SummaryPlotCommands/RicEditSummaryPlotFeature.cpp +++ b/ApplicationLibCode/Commands/SummaryPlotCommands/RicEditSummaryPlotFeature.cpp @@ -149,5 +149,13 @@ RimSummaryPlot* RicEditSummaryPlotFeature::selectedSummaryPlot() sumPlot = RiaSummaryTools::parentSummaryPlot( selObj ); } + if ( !sumPlot ) + { + RimSummaryMultiPlot* multiPlot = RiaSummaryTools::parentSummaryMultiPlot( selObj ); + if ( multiPlot ) + { + } + } + return sumPlot; } diff --git a/ApplicationLibCode/Commands/SummaryPlotCommands/RicOpenSummaryPlotEditorFeature.cpp b/ApplicationLibCode/Commands/SummaryPlotCommands/RicOpenSummaryPlotEditorFeature.cpp index a1c90e6c01..5e1fd5d9d7 100644 --- a/ApplicationLibCode/Commands/SummaryPlotCommands/RicOpenSummaryPlotEditorFeature.cpp +++ b/ApplicationLibCode/Commands/SummaryPlotCommands/RicOpenSummaryPlotEditorFeature.cpp @@ -29,11 +29,13 @@ #include "RimCustomObjectiveFunctionCollection.h" #include "RimEnsembleCurveFilter.h" #include "RimEnsembleCurveFilterCollection.h" +#include "RimObservedDataCollection.h" #include "RimProject.h" #include "RimRegularLegendConfig.h" #include "RimSummaryCase.h" #include "RimSummaryCaseCollection.h" #include "RimSummaryCaseMainCollection.h" +#include "RimSummaryMultiPlot.h" #include "RimSummaryPlot.h" #include "RiuPlotMainWindow.h" @@ -54,20 +56,27 @@ bool RicOpenSummaryPlotEditorFeature::isCommandEnabled() RimCustomObjectiveFunctionCollection* customObjFuncCollection = nullptr; caf::PdmObject* selObj = dynamic_cast( caf::SelectionManager::instance()->selectedItem() ); - if ( selObj ) - { - multiPlot = RiaSummaryTools::parentSummaryMultiPlot( selObj ); - selObj->firstAncestorOrThisOfType( customObjFuncCollection ); - } + if ( !selObj ) return false; + + selObj->firstAncestorOrThisOfType( customObjFuncCollection ); auto ensembleFilter = dynamic_cast( selObj ); auto ensembleFilterColl = dynamic_cast( selObj ); auto legendConfig = dynamic_cast( selObj ); + auto sumPlot = dynamic_cast( selObj ); - if ( ensembleFilter || ensembleFilterColl || legendConfig || customObjFuncCollection ) return false; + if ( ensembleFilter || ensembleFilterColl || legendConfig || customObjFuncCollection || sumPlot ) return false; + + multiPlot = RiaSummaryTools::parentSummaryMultiPlot( selObj ); if ( multiPlot ) return true; - return true; + auto summaryCase = dynamic_cast( selObj ); + auto summaryCaseColl = dynamic_cast( selObj ); + auto obsColl = dynamic_cast( selObj ); + + if ( summaryCase || summaryCaseColl || obsColl ) return true; + + return false; } //-------------------------------------------------------------------------------------------------- @@ -78,6 +87,9 @@ void RicOpenSummaryPlotEditorFeature::onActionTriggered( bool isChecked ) RimProject* project = RimProject::current(); CVF_ASSERT( project ); + RimSummaryMultiPlot* multiPlot = + dynamic_cast( caf::SelectionManager::instance()->selectedItem() ); + std::vector selectedCases = caf::selectedObjectsByType(); std::vector selectedGroups = caf::selectedObjectsByType(); @@ -126,7 +138,21 @@ void RicOpenSummaryPlotEditorFeature::onActionTriggered( bool isChecked ) dialog->raise(); } - dialog->updateFromDefaultCases( sourcesToSelect ); + if ( multiPlot ) + { + if ( multiPlot->summaryPlots().size() > 0 ) + { + dialog->updateFromSummaryPlot( multiPlot->summaryPlots()[0] ); + } + else + { + dialog->updateFromSummaryMultiPlot( multiPlot ); + } + } + else + { + dialog->updateFromDefaultCases( sourcesToSelect ); + } } //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationLibCode/Commands/SummaryPlotCommands/RicSummaryPlotEditorDialog.cpp b/ApplicationLibCode/Commands/SummaryPlotCommands/RicSummaryPlotEditorDialog.cpp index f25da5c11e..bfc5e39301 100644 --- a/ApplicationLibCode/Commands/SummaryPlotCommands/RicSummaryPlotEditorDialog.cpp +++ b/ApplicationLibCode/Commands/SummaryPlotCommands/RicSummaryPlotEditorDialog.cpp @@ -67,6 +67,15 @@ void RicSummaryPlotEditorDialog::updateFromSummaryPlot( RimSummaryPlot* summaryP m_curveCreatorSplitterUi->updateUi(); } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RicSummaryPlotEditorDialog::updateFromSummaryMultiPlot( RimSummaryMultiPlot* summaryPlot ) +{ + m_curveCreatorSplitterUi->updateFromSummaryMultiPlot( summaryPlot ); + m_curveCreatorSplitterUi->updateUi(); +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationLibCode/Commands/SummaryPlotCommands/RicSummaryPlotEditorDialog.h b/ApplicationLibCode/Commands/SummaryPlotCommands/RicSummaryPlotEditorDialog.h index 58b16d2f14..762621b429 100644 --- a/ApplicationLibCode/Commands/SummaryPlotCommands/RicSummaryPlotEditorDialog.h +++ b/ApplicationLibCode/Commands/SummaryPlotCommands/RicSummaryPlotEditorDialog.h @@ -27,6 +27,7 @@ class PdmObject; class RicSummaryPlotEditorWidgetCreator; class RimSummaryPlot; +class RimSummaryMultiPlot; class RimSummaryCase; //================================================================================================== @@ -41,6 +42,7 @@ public: ~RicSummaryPlotEditorDialog() override; void updateFromSummaryPlot( RimSummaryPlot* summaryPlot ); + void updateFromSummaryMultiPlot( RimSummaryMultiPlot* summaryPlot ); void updateFromDefaultCases( const std::vector defaultSources ); private slots: diff --git a/ApplicationLibCode/Commands/SummaryPlotCommands/RicSummaryPlotEditorUi.cpp b/ApplicationLibCode/Commands/SummaryPlotCommands/RicSummaryPlotEditorUi.cpp index 2c87798f7c..5e27b7e201 100644 --- a/ApplicationLibCode/Commands/SummaryPlotCommands/RicSummaryPlotEditorUi.cpp +++ b/ApplicationLibCode/Commands/SummaryPlotCommands/RicSummaryPlotEditorUi.cpp @@ -165,7 +165,7 @@ void RicSummaryPlotEditorUi::updateFromSummaryPlot( RimSummaryPlot* if ( m_targetPlot ) { RimSummaryMultiPlot* parentPlot = nullptr; - targetPlot->firstAncestorOfType( parentPlot ); + m_targetPlot->firstAncestorOfType( parentPlot ); m_plotContainer = parentPlot; populateCurveCreator( *m_targetPlot ); @@ -184,6 +184,23 @@ void RicSummaryPlotEditorUi::updateFromSummaryPlot( RimSummaryPlot* caf::PdmUiItem::updateConnectedEditors(); } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RicSummaryPlotEditorUi::updateFromSummaryMultiPlot( RimSummaryMultiPlot* summaryMultiPlot, + const std::vector& defaultSources ) +{ + resetAllFields(); + + m_useAutoAppearanceAssignment = true; + + m_plotContainer = summaryMultiPlot; + + setDefaultCurveSelection( defaultSources ); + + caf::PdmUiItem::updateConnectedEditors(); +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationLibCode/Commands/SummaryPlotCommands/RicSummaryPlotEditorUi.h b/ApplicationLibCode/Commands/SummaryPlotCommands/RicSummaryPlotEditorUi.h index dfa5fce41f..9da9d20554 100644 --- a/ApplicationLibCode/Commands/SummaryPlotCommands/RicSummaryPlotEditorUi.h +++ b/ApplicationLibCode/Commands/SummaryPlotCommands/RicSummaryPlotEditorUi.h @@ -68,6 +68,9 @@ public: void updateFromSummaryPlot( RimSummaryPlot* targetPlot, const std::vector& defaultSources = std::vector() ); + void updateFromSummaryMultiPlot( RimSummaryMultiPlot* summaryMultiPlot, + const std::vector& defaultSources = std::vector() ); + QWidget* addressSelectionWidget( QWidget* parent ); bool isCloseButtonPressed() const; diff --git a/ApplicationLibCode/Commands/SummaryPlotCommands/RicSummaryPlotEditorWidgetCreator.cpp b/ApplicationLibCode/Commands/SummaryPlotCommands/RicSummaryPlotEditorWidgetCreator.cpp index dcec80ddf3..ec008104b3 100644 --- a/ApplicationLibCode/Commands/SummaryPlotCommands/RicSummaryPlotEditorWidgetCreator.cpp +++ b/ApplicationLibCode/Commands/SummaryPlotCommands/RicSummaryPlotEditorWidgetCreator.cpp @@ -66,6 +66,14 @@ void RicSummaryPlotEditorWidgetCreator::updateFromSummaryPlot( RimSummaryPlot* s m_summaryCurveCreator->updateFromSummaryPlot( summaryPlot ); } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RicSummaryPlotEditorWidgetCreator::updateFromSummaryMultiPlot( RimSummaryMultiPlot* summaryMultiPlot ) +{ + m_summaryCurveCreator->updateFromSummaryMultiPlot( summaryMultiPlot ); +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationLibCode/Commands/SummaryPlotCommands/RicSummaryPlotEditorWidgetCreator.h b/ApplicationLibCode/Commands/SummaryPlotCommands/RicSummaryPlotEditorWidgetCreator.h index 4fded48874..ee0932823e 100644 --- a/ApplicationLibCode/Commands/SummaryPlotCommands/RicSummaryPlotEditorWidgetCreator.h +++ b/ApplicationLibCode/Commands/SummaryPlotCommands/RicSummaryPlotEditorWidgetCreator.h @@ -24,6 +24,7 @@ #include class RimSummaryPlot; +class RimSummaryMultiPlot; class RimSummaryCase; class RicSummaryPlotEditorUi; @@ -54,6 +55,7 @@ public: ~RicSummaryPlotEditorWidgetCreator() override; void updateFromSummaryPlot( RimSummaryPlot* summaryPlot ); + void updateFromSummaryMultiPlot( RimSummaryMultiPlot* summaryMultiPlot ); void updateFromDefaultSources( const std::vector defaultSources ); private: diff --git a/ApplicationLibCode/ProjectDataModel/RimContextCommandBuilder.cpp b/ApplicationLibCode/ProjectDataModel/RimContextCommandBuilder.cpp index 10ccb5ce4a..5b1af4e6c3 100644 --- a/ApplicationLibCode/ProjectDataModel/RimContextCommandBuilder.cpp +++ b/ApplicationLibCode/ProjectDataModel/RimContextCommandBuilder.cpp @@ -1121,6 +1121,7 @@ caf::CmdFeatureMenuBuilder RimContextCommandBuilder::commandsFromSelection() menuBuilder << "RicShowTotalAllocationDataFeature"; menuBuilder << "RicNewSummaryMultiPlotFeature"; + menuBuilder << "RicOpenSummaryPlotEditorFeature"; menuBuilder << "RicNewDerivedEnsembleFeature"; menuBuilder << "RicNewSummaryCrossPlotFeature"; menuBuilder << "RicSummaryCurveSwitchAxisFeature";