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()) switch (category())
{ {
case SUMMARY_INVALID:
return false;
case SUMMARY_REGION: case SUMMARY_REGION:
if (m_regionNumber == -1) return false; if (m_regionNumber == -1) return false;
return true; return true;

View File

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

View File

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