Curve Definition Selection : Make robust for invalid or missing input

This commit is contained in:
Magne Sjaastad 2017-11-21 09:43:34 +01:00
parent 4d6d48dc18
commit f73e964d23
3 changed files with 18 additions and 5 deletions

View File

@ -226,6 +226,9 @@ bool RifEclipseSummaryAddress::isValid() const
{
switch (category())
{
case SUMMARY_INVALID:
return false;
case SUMMARY_REGION:
if (m_regionNumber == -1) return false;
return true;

View File

@ -529,6 +529,11 @@ void RiuSummaryCurveDefSelection::defineUiOrdering(QString uiConfigName, caf::Pd
caf::PdmField<std::vector<QString>>* summaryiesField = nullptr;
RifEclipseSummaryAddress::SummaryVarCategory sumCategory = m_currentSummaryCategory();
if (sumCategory == RifEclipseSummaryAddress::SUMMARY_INVALID)
{
sumCategory == RifEclipseSummaryAddress::SUMMARY_FIELD;
}
if (sumCategory == RifEclipseSummaryAddress::SUMMARY_FIELD)
{
summaryiesField = m_identifierFieldsMap[RifEclipseSummaryAddress::SUMMARY_FIELD][0]->pdmField();
@ -646,9 +651,11 @@ void RiuSummaryCurveDefSelection::defineUiOrdering(QString uiConfigName, caf::Pd
summaryiesField = m_identifierFieldsMap[RifEclipseSummaryAddress::SUMMARY_CALCULATED][0]->pdmField();
}
CAF_ASSERT(summaryiesField);
caf::PdmUiGroup* summariesGroup = uiOrdering.addNewGroupWithKeyword("Summaries", RiuSummaryCurveDefinitionKeywords::summaries());
summariesGroup->add(summaryiesField);
if (summaryiesField)
{
summariesGroup->add(summaryiesField);
}
uiOrdering.skipRemainingFields(true);
}

View File

@ -74,10 +74,13 @@ RiuSummaryCurveDefSelectionDialog::~RiuSummaryCurveDefSelectionDialog()
//--------------------------------------------------------------------------------------------------
void RiuSummaryCurveDefSelectionDialog::setCaseAndAddress(RimSummaryCase* summaryCase, const RifEclipseSummaryAddress& address)
{
std::vector<RiaSummaryCurveDefinition> sumCasePairs;
sumCasePairs.push_back(RiaSummaryCurveDefinition(summaryCase, address));
if (summaryCase && address.isValid())
{
std::vector<RiaSummaryCurveDefinition> sumCasePairs;
sumCasePairs.push_back(RiaSummaryCurveDefinition(summaryCase, address));
summaryAddressSelection()->setSelectedCurveDefinitions(sumCasePairs);
}
summaryAddressSelection()->setSelectedCurveDefinitions(sumCasePairs);
summaryAddressSelection()->updateConnectedEditors();
updateLabel();
}