Summary Plot Editor: Context menu update (#9289)

* Summary plot editor context menu update
This commit is contained in:
jonjenssen 2022-09-13 11:14:30 +02:00 committed by GitHub
parent 3cdc69d1a7
commit c685b7e9b5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 85 additions and 9 deletions

View File

@ -149,5 +149,13 @@ RimSummaryPlot* RicEditSummaryPlotFeature::selectedSummaryPlot()
sumPlot = RiaSummaryTools::parentSummaryPlot( selObj ); sumPlot = RiaSummaryTools::parentSummaryPlot( selObj );
} }
if ( !sumPlot )
{
RimSummaryMultiPlot* multiPlot = RiaSummaryTools::parentSummaryMultiPlot( selObj );
if ( multiPlot )
{
}
}
return sumPlot; return sumPlot;
} }

View File

@ -29,11 +29,13 @@
#include "RimCustomObjectiveFunctionCollection.h" #include "RimCustomObjectiveFunctionCollection.h"
#include "RimEnsembleCurveFilter.h" #include "RimEnsembleCurveFilter.h"
#include "RimEnsembleCurveFilterCollection.h" #include "RimEnsembleCurveFilterCollection.h"
#include "RimObservedDataCollection.h"
#include "RimProject.h" #include "RimProject.h"
#include "RimRegularLegendConfig.h" #include "RimRegularLegendConfig.h"
#include "RimSummaryCase.h" #include "RimSummaryCase.h"
#include "RimSummaryCaseCollection.h" #include "RimSummaryCaseCollection.h"
#include "RimSummaryCaseMainCollection.h" #include "RimSummaryCaseMainCollection.h"
#include "RimSummaryMultiPlot.h"
#include "RimSummaryPlot.h" #include "RimSummaryPlot.h"
#include "RiuPlotMainWindow.h" #include "RiuPlotMainWindow.h"
@ -54,20 +56,27 @@ bool RicOpenSummaryPlotEditorFeature::isCommandEnabled()
RimCustomObjectiveFunctionCollection* customObjFuncCollection = nullptr; RimCustomObjectiveFunctionCollection* customObjFuncCollection = nullptr;
caf::PdmObject* selObj = dynamic_cast<caf::PdmObject*>( caf::SelectionManager::instance()->selectedItem() ); caf::PdmObject* selObj = dynamic_cast<caf::PdmObject*>( caf::SelectionManager::instance()->selectedItem() );
if ( selObj ) if ( !selObj ) return false;
{
multiPlot = RiaSummaryTools::parentSummaryMultiPlot( selObj ); selObj->firstAncestorOrThisOfType( customObjFuncCollection );
selObj->firstAncestorOrThisOfType( customObjFuncCollection );
}
auto ensembleFilter = dynamic_cast<RimEnsembleCurveFilter*>( selObj ); auto ensembleFilter = dynamic_cast<RimEnsembleCurveFilter*>( selObj );
auto ensembleFilterColl = dynamic_cast<RimEnsembleCurveFilterCollection*>( selObj ); auto ensembleFilterColl = dynamic_cast<RimEnsembleCurveFilterCollection*>( selObj );
auto legendConfig = dynamic_cast<RimRegularLegendConfig*>( selObj ); auto legendConfig = dynamic_cast<RimRegularLegendConfig*>( selObj );
auto sumPlot = dynamic_cast<RimSummaryPlot*>( selObj );
if ( ensembleFilter || ensembleFilterColl || legendConfig || customObjFuncCollection ) return false; if ( ensembleFilter || ensembleFilterColl || legendConfig || customObjFuncCollection || sumPlot ) return false;
multiPlot = RiaSummaryTools::parentSummaryMultiPlot( selObj );
if ( multiPlot ) return true; if ( multiPlot ) return true;
return true; auto summaryCase = dynamic_cast<RimSummaryCase*>( selObj );
auto summaryCaseColl = dynamic_cast<RimSummaryCaseCollection*>( selObj );
auto obsColl = dynamic_cast<RimObservedDataCollection*>( selObj );
if ( summaryCase || summaryCaseColl || obsColl ) return true;
return false;
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@ -78,6 +87,9 @@ void RicOpenSummaryPlotEditorFeature::onActionTriggered( bool isChecked )
RimProject* project = RimProject::current(); RimProject* project = RimProject::current();
CVF_ASSERT( project ); CVF_ASSERT( project );
RimSummaryMultiPlot* multiPlot =
dynamic_cast<RimSummaryMultiPlot*>( caf::SelectionManager::instance()->selectedItem() );
std::vector<RimSummaryCase*> selectedCases = caf::selectedObjectsByType<RimSummaryCase*>(); std::vector<RimSummaryCase*> selectedCases = caf::selectedObjectsByType<RimSummaryCase*>();
std::vector<RimSummaryCaseCollection*> selectedGroups = caf::selectedObjectsByType<RimSummaryCaseCollection*>(); std::vector<RimSummaryCaseCollection*> selectedGroups = caf::selectedObjectsByType<RimSummaryCaseCollection*>();
@ -126,7 +138,21 @@ void RicOpenSummaryPlotEditorFeature::onActionTriggered( bool isChecked )
dialog->raise(); 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 );
}
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@ -67,6 +67,15 @@ void RicSummaryPlotEditorDialog::updateFromSummaryPlot( RimSummaryPlot* summaryP
m_curveCreatorSplitterUi->updateUi(); m_curveCreatorSplitterUi->updateUi();
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RicSummaryPlotEditorDialog::updateFromSummaryMultiPlot( RimSummaryMultiPlot* summaryPlot )
{
m_curveCreatorSplitterUi->updateFromSummaryMultiPlot( summaryPlot );
m_curveCreatorSplitterUi->updateUi();
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@ -27,6 +27,7 @@ class PdmObject;
class RicSummaryPlotEditorWidgetCreator; class RicSummaryPlotEditorWidgetCreator;
class RimSummaryPlot; class RimSummaryPlot;
class RimSummaryMultiPlot;
class RimSummaryCase; class RimSummaryCase;
//================================================================================================== //==================================================================================================
@ -41,6 +42,7 @@ public:
~RicSummaryPlotEditorDialog() override; ~RicSummaryPlotEditorDialog() override;
void updateFromSummaryPlot( RimSummaryPlot* summaryPlot ); void updateFromSummaryPlot( RimSummaryPlot* summaryPlot );
void updateFromSummaryMultiPlot( RimSummaryMultiPlot* summaryPlot );
void updateFromDefaultCases( const std::vector<caf::PdmObject*> defaultSources ); void updateFromDefaultCases( const std::vector<caf::PdmObject*> defaultSources );
private slots: private slots:

View File

@ -165,7 +165,7 @@ void RicSummaryPlotEditorUi::updateFromSummaryPlot( RimSummaryPlot*
if ( m_targetPlot ) if ( m_targetPlot )
{ {
RimSummaryMultiPlot* parentPlot = nullptr; RimSummaryMultiPlot* parentPlot = nullptr;
targetPlot->firstAncestorOfType( parentPlot ); m_targetPlot->firstAncestorOfType( parentPlot );
m_plotContainer = parentPlot; m_plotContainer = parentPlot;
populateCurveCreator( *m_targetPlot ); populateCurveCreator( *m_targetPlot );
@ -184,6 +184,23 @@ void RicSummaryPlotEditorUi::updateFromSummaryPlot( RimSummaryPlot*
caf::PdmUiItem::updateConnectedEditors(); caf::PdmUiItem::updateConnectedEditors();
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RicSummaryPlotEditorUi::updateFromSummaryMultiPlot( RimSummaryMultiPlot* summaryMultiPlot,
const std::vector<SummarySource*>& defaultSources )
{
resetAllFields();
m_useAutoAppearanceAssignment = true;
m_plotContainer = summaryMultiPlot;
setDefaultCurveSelection( defaultSources );
caf::PdmUiItem::updateConnectedEditors();
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@ -68,6 +68,9 @@ public:
void updateFromSummaryPlot( RimSummaryPlot* targetPlot, void updateFromSummaryPlot( RimSummaryPlot* targetPlot,
const std::vector<caf::PdmObject*>& defaultSources = std::vector<caf::PdmObject*>() ); const std::vector<caf::PdmObject*>& defaultSources = std::vector<caf::PdmObject*>() );
void updateFromSummaryMultiPlot( RimSummaryMultiPlot* summaryMultiPlot,
const std::vector<caf::PdmObject*>& defaultSources = std::vector<caf::PdmObject*>() );
QWidget* addressSelectionWidget( QWidget* parent ); QWidget* addressSelectionWidget( QWidget* parent );
bool isCloseButtonPressed() const; bool isCloseButtonPressed() const;

View File

@ -66,6 +66,14 @@ void RicSummaryPlotEditorWidgetCreator::updateFromSummaryPlot( RimSummaryPlot* s
m_summaryCurveCreator->updateFromSummaryPlot( summaryPlot ); m_summaryCurveCreator->updateFromSummaryPlot( summaryPlot );
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RicSummaryPlotEditorWidgetCreator::updateFromSummaryMultiPlot( RimSummaryMultiPlot* summaryMultiPlot )
{
m_summaryCurveCreator->updateFromSummaryMultiPlot( summaryMultiPlot );
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@ -24,6 +24,7 @@
#include <vector> #include <vector>
class RimSummaryPlot; class RimSummaryPlot;
class RimSummaryMultiPlot;
class RimSummaryCase; class RimSummaryCase;
class RicSummaryPlotEditorUi; class RicSummaryPlotEditorUi;
@ -54,6 +55,7 @@ public:
~RicSummaryPlotEditorWidgetCreator() override; ~RicSummaryPlotEditorWidgetCreator() override;
void updateFromSummaryPlot( RimSummaryPlot* summaryPlot ); void updateFromSummaryPlot( RimSummaryPlot* summaryPlot );
void updateFromSummaryMultiPlot( RimSummaryMultiPlot* summaryMultiPlot );
void updateFromDefaultSources( const std::vector<caf::PdmObject*> defaultSources ); void updateFromDefaultSources( const std::vector<caf::PdmObject*> defaultSources );
private: private:

View File

@ -1121,6 +1121,7 @@ caf::CmdFeatureMenuBuilder RimContextCommandBuilder::commandsFromSelection()
menuBuilder << "RicShowTotalAllocationDataFeature"; menuBuilder << "RicShowTotalAllocationDataFeature";
menuBuilder << "RicNewSummaryMultiPlotFeature"; menuBuilder << "RicNewSummaryMultiPlotFeature";
menuBuilder << "RicOpenSummaryPlotEditorFeature";
menuBuilder << "RicNewDerivedEnsembleFeature"; menuBuilder << "RicNewDerivedEnsembleFeature";
menuBuilder << "RicNewSummaryCrossPlotFeature"; menuBuilder << "RicNewSummaryCrossPlotFeature";
menuBuilder << "RicSummaryCurveSwitchAxisFeature"; menuBuilder << "RicSummaryCurveSwitchAxisFeature";