mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
SUMO: Improve user interface
- set fields read only - make sure custom case name is used in other UI items - use two buttons to create data source and ensemble for selected cloud ensembles
This commit is contained in:
parent
a4159cd11e
commit
d8b8c86b8f
@ -19,12 +19,10 @@
|
||||
#include "RicCreateSumoEnsembleFeature.h"
|
||||
|
||||
#include "RiaDefines.h"
|
||||
#include "RiaSummaryTools.h"
|
||||
|
||||
#include "PlotBuilderCommands/RicSummaryPlotBuilder.h"
|
||||
|
||||
#include "RimSummaryCaseMainCollection.h"
|
||||
#include "Sumo/RimSummaryEnsembleSumo.h"
|
||||
#include "Cloud/RimCloudDataSourceCollection.h"
|
||||
#include "Sumo/RimSummarySumoDataSource.h"
|
||||
|
||||
#include "cafSelectionManagerTools.h"
|
||||
@ -39,18 +37,8 @@ CAF_CMD_SOURCE_INIT( RicCreateSumoEnsembleFeature, "RicCreateSumoEnsembleFeature
|
||||
void RicCreateSumoEnsembleFeature::onActionTriggered( bool isChecked )
|
||||
{
|
||||
auto dataSources = caf::selectedObjectsByType<RimSummarySumoDataSource*>();
|
||||
for ( auto dataSource : dataSources )
|
||||
{
|
||||
RimSummaryEnsembleSumo* ensemble = new RimSummaryEnsembleSumo();
|
||||
ensemble->setSumoDataSource( dataSource );
|
||||
ensemble->updateName();
|
||||
RiaSummaryTools::summaryCaseMainCollection()->addEnsemble( ensemble );
|
||||
ensemble->loadDataAndUpdate();
|
||||
|
||||
RicSummaryPlotBuilder::createAndAppendDefaultSummaryMultiPlot( {}, { ensemble } );
|
||||
}
|
||||
|
||||
RiaSummaryTools::summaryCaseMainCollection()->updateAllRequiredEditors();
|
||||
RimCloudDataSourceCollection::createEnsemblesFromSelectedDataSources( dataSources );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -58,6 +46,6 @@ void RicCreateSumoEnsembleFeature::onActionTriggered( bool isChecked )
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RicCreateSumoEnsembleFeature::setupActionLook( QAction* actionToSetup )
|
||||
{
|
||||
actionToSetup->setText( "Create Sumo Ensemble" + RiaDefines::betaFeaturePostfix() );
|
||||
actionToSetup->setText( "Create Ensemble Plot" + RiaDefines::betaFeaturePostfix() );
|
||||
actionToSetup->setIcon( QIcon( ":/SummaryEnsemble.svg" ) );
|
||||
}
|
||||
|
@ -19,9 +19,14 @@
|
||||
#include "RimCloudDataSourceCollection.h"
|
||||
|
||||
#include "RiaApplication.h"
|
||||
#include "RiaSummaryTools.h"
|
||||
|
||||
#include "PlotBuilderCommands/RicSummaryPlotBuilder.h"
|
||||
|
||||
#include "RimOilField.h"
|
||||
#include "RimProject.h"
|
||||
#include "RimSummaryCaseMainCollection.h"
|
||||
#include "Sumo/RimSummaryEnsembleSumo.h"
|
||||
#include "Sumo/RimSummarySumoDataSource.h"
|
||||
|
||||
#include "RiuPlotMainWindowTools.h"
|
||||
@ -44,7 +49,10 @@ RimCloudDataSourceCollection::RimCloudDataSourceCollection()
|
||||
CAF_PDM_InitFieldNoDefault( &m_sumoEnsembleNames, "SumoEnsembleNames", "Ensembles" );
|
||||
m_sumoEnsembleNames.uiCapability()->setUiEditorTypeName( caf::PdmUiTreeSelectionEditor::uiEditorTypeName() );
|
||||
|
||||
CAF_PDM_InitFieldNoDefault( &m_addEnsembles, "AddEnsembles", "" );
|
||||
CAF_PDM_InitFieldNoDefault( &m_addDataSources, "AddDataSources", "", "", "Add Data Sources without Ensembles" );
|
||||
caf::PdmUiPushButtonEditor::configureEditorLabelLeft( &m_addDataSources );
|
||||
|
||||
CAF_PDM_InitFieldNoDefault( &m_addEnsembles, "AddEnsembles", "", "", "Add Data Sources and Create Summary Ensemble Plots" );
|
||||
caf::PdmUiPushButtonEditor::configureEditorLabelLeft( &m_addEnsembles );
|
||||
|
||||
CAF_PDM_InitFieldNoDefault( &m_sumoDataSources, "SumoDataSources", "Sumo Data Sources" );
|
||||
@ -68,6 +76,25 @@ std::vector<RimSummarySumoDataSource*> RimCloudDataSourceCollection::sumoDataSou
|
||||
return m_sumoDataSources.childrenByType();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimCloudDataSourceCollection::createEnsemblesFromSelectedDataSources( const std::vector<RimSummarySumoDataSource*>& dataSources )
|
||||
{
|
||||
for ( auto dataSource : dataSources )
|
||||
{
|
||||
RimSummaryEnsembleSumo* ensemble = new RimSummaryEnsembleSumo();
|
||||
ensemble->setSumoDataSource( dataSource );
|
||||
ensemble->updateName();
|
||||
RiaSummaryTools::summaryCaseMainCollection()->addEnsemble( ensemble );
|
||||
ensemble->loadDataAndUpdate();
|
||||
|
||||
RicSummaryPlotBuilder::createAndAppendDefaultSummaryMultiPlot( {}, { ensemble } );
|
||||
}
|
||||
|
||||
RiaSummaryTools::summaryCaseMainCollection()->updateAllRequiredEditors();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -88,10 +115,16 @@ void RimCloudDataSourceCollection::fieldChangedByUi( const caf::PdmFieldHandle*
|
||||
}
|
||||
if ( changedField == &m_addEnsembles )
|
||||
{
|
||||
addEnsemble();
|
||||
addEnsembles();
|
||||
|
||||
m_addEnsembles = false;
|
||||
}
|
||||
if ( changedField == &m_addDataSources )
|
||||
{
|
||||
addDataSources();
|
||||
|
||||
m_addDataSources = false;
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -152,9 +185,13 @@ QList<caf::PdmOptionItemInfo> RimCloudDataSourceCollection::calculateValueOption
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimCloudDataSourceCollection::defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering )
|
||||
{
|
||||
uiOrdering.add( &m_sumoFieldName );
|
||||
uiOrdering.add( &m_sumoCaseId );
|
||||
uiOrdering.add( &m_sumoEnsembleNames );
|
||||
caf::PdmUiOrdering::LayoutOptions layout = { .newRow = true, .totalColumnSpan = 3, .leftLabelColumnSpan = 1 };
|
||||
uiOrdering.add( &m_sumoFieldName, layout );
|
||||
uiOrdering.add( &m_sumoCaseId, layout );
|
||||
uiOrdering.add( &m_sumoEnsembleNames, layout );
|
||||
|
||||
uiOrdering.add( &m_addDataSources, { .totalColumnSpan = 2, .leftLabelColumnSpan = 1 } );
|
||||
uiOrdering.add( &m_addEnsembles, { .newRow = false, .totalColumnSpan = 1, .leftLabelColumnSpan = 0 } );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -164,6 +201,13 @@ void RimCloudDataSourceCollection::defineEditorAttribute( const caf::PdmFieldHan
|
||||
QString uiConfigName,
|
||||
caf::PdmUiEditorAttribute* attribute )
|
||||
{
|
||||
if ( field == &m_addDataSources )
|
||||
{
|
||||
if ( auto attrib = dynamic_cast<caf::PdmUiPushButtonEditorAttribute*>( attribute ) )
|
||||
{
|
||||
attrib->m_buttonText = "Add Data Sources(s)";
|
||||
}
|
||||
}
|
||||
if ( field == &m_addEnsembles )
|
||||
{
|
||||
if ( auto attrib = dynamic_cast<caf::PdmUiPushButtonEditorAttribute*>( attribute ) )
|
||||
@ -176,9 +220,11 @@ void RimCloudDataSourceCollection::defineEditorAttribute( const caf::PdmFieldHan
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimCloudDataSourceCollection::addEnsemble()
|
||||
std::vector<RimSummarySumoDataSource*> RimCloudDataSourceCollection::addDataSources()
|
||||
{
|
||||
if ( !m_sumoConnector ) return;
|
||||
if ( !m_sumoConnector ) return {};
|
||||
|
||||
std::vector<RimSummarySumoDataSource*> dataSources;
|
||||
|
||||
RimSummarySumoDataSource* objectToSelect = nullptr;
|
||||
auto sumoCaseId = SumoCaseId( m_sumoCaseId );
|
||||
@ -227,6 +273,7 @@ void RimCloudDataSourceCollection::addEnsemble()
|
||||
objectToSelect = dataSource;
|
||||
|
||||
m_sumoDataSources.push_back( dataSource );
|
||||
dataSources.push_back( dataSource );
|
||||
}
|
||||
|
||||
uiCapability()->updateAllRequiredEditors();
|
||||
@ -236,4 +283,15 @@ void RimCloudDataSourceCollection::addEnsemble()
|
||||
RiuPlotMainWindowTools::setExpanded( objectToSelect );
|
||||
RiuPlotMainWindowTools::selectAsCurrentItem( objectToSelect );
|
||||
}
|
||||
|
||||
return dataSources;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimCloudDataSourceCollection::addEnsembles()
|
||||
{
|
||||
auto dataSources = addDataSources();
|
||||
createEnsemblesFromSelectedDataSources( dataSources );
|
||||
}
|
||||
|
@ -44,6 +44,8 @@ public:
|
||||
|
||||
std::vector<RimSummarySumoDataSource*> sumoDataSources() const;
|
||||
|
||||
static void createEnsemblesFromSelectedDataSources( const std::vector<RimSummarySumoDataSource*>& dataSources );
|
||||
|
||||
private:
|
||||
void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override;
|
||||
|
||||
@ -51,13 +53,15 @@ private:
|
||||
void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override;
|
||||
void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) override;
|
||||
|
||||
void addEnsemble();
|
||||
std::vector<RimSummarySumoDataSource*> addDataSources();
|
||||
void addEnsembles();
|
||||
|
||||
private:
|
||||
caf::PdmField<QString> m_sumoFieldName;
|
||||
caf::PdmField<QString> m_sumoCaseId;
|
||||
caf::PdmField<std::vector<QString>> m_sumoEnsembleNames;
|
||||
|
||||
caf::PdmField<bool> m_addDataSources;
|
||||
caf::PdmField<bool> m_addEnsembles;
|
||||
caf::PdmChildArrayField<RimSummarySumoDataSource*> m_sumoDataSources;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user