Support cross plot curves in plot templates

This commit is contained in:
Magne Sjaastad
2023-09-18 12:54:32 +02:00
parent f07a5db559
commit b87fa0bc74
3 changed files with 68 additions and 3 deletions

View File

@@ -250,13 +250,13 @@ void RicSummaryPlotTemplateTools::setValuesForPlaceholders( RimSummaryPlot*
auto summaryCurves = summaryPlot->allCurves( RimSummaryDataSourceStepping::Axis::Y_AXIS );
for ( const auto& curve : summaryCurves )
{
auto fieldHandle = curve->findField( RicSummaryPlotTemplateTools::summaryCaseFieldKeyword() );
if ( fieldHandle )
auto summaryCaseHandle = curve->findField( RicSummaryPlotTemplateTools::summaryCaseFieldKeyword() );
if ( summaryCaseHandle )
{
bool conversionOk = false;
const QString placeholderString = RicSummaryPlotTemplateTools::placeholderTextForSummaryCase();
auto referenceString = fieldHandle->xmlCapability()->referenceString();
auto referenceString = summaryCaseHandle->xmlCapability()->referenceString();
int indexValue = RicSummaryPlotTemplateTools::findValueForKeyword( placeholderString, referenceString, &conversionOk );
if ( conversionOk && indexValue >= 0 && indexValue < static_cast<int>( selectedSummaryCases.size() ) )
@@ -266,12 +266,37 @@ void RicSummaryPlotTemplateTools::setValuesForPlaceholders( RimSummaryPlot*
}
}
auto summaryCaseXHandle = curve->findField( RicSummaryPlotTemplateTools::summaryCaseXFieldKeyword() );
if ( summaryCaseXHandle )
{
bool conversionOk = false;
const QString placeholderString = RicSummaryPlotTemplateTools::placeholderTextForSummaryCaseX();
auto referenceString = summaryCaseXHandle->xmlCapability()->referenceString();
int indexValue = RicSummaryPlotTemplateTools::findValueForKeyword( placeholderString, referenceString, &conversionOk );
if ( conversionOk && indexValue >= 0 && indexValue < static_cast<int>( selectedSummaryCases.size() ) )
{
auto summaryCase = selectedSummaryCases[static_cast<int>( indexValue )];
curve->setSummaryCaseX( summaryCase );
}
}
// Replace placeholders with object names from selection
auto curveAdr = curve->summaryAddressY();
setPlaceholderWellName( &curveAdr, wellNames );
setPlaceholderGroupName( &curveAdr, groupNames );
setPlaceholderRegion( &curveAdr, regions );
curve->setSummaryAddressY( curveAdr );
if ( curve->axisTypeX() == RiaDefines::HorizontalAxisType::SUMMARY_VECTOR )
{
auto curveAdr = curve->summaryAddressX();
setPlaceholderWellName( &curveAdr, wellNames );
setPlaceholderGroupName( &curveAdr, groupNames );
setPlaceholderRegion( &curveAdr, regions );
curve->setSummaryAddressX( curveAdr );
}
}
for ( const auto& curveSet : summaryPlot->curveSets() )
@@ -493,6 +518,14 @@ QString RicSummaryPlotTemplateTools::summaryCaseFieldKeyword()
return "SummaryCase";
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RicSummaryPlotTemplateTools::summaryCaseXFieldKeyword()
{
return "SummaryCaseX";
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -509,6 +542,14 @@ QString RicSummaryPlotTemplateTools::placeholderTextForSummaryCase()
return "__CASE_NAME__";
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RicSummaryPlotTemplateTools::placeholderTextForSummaryCaseX()
{
return "__CASE_NAME_X__";
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------