#2917 Vector Selection Dialog: Rename method for retreiving all expanded curve defintions. Add method to retreive only the selection (one definition pr ensemble curve set)

This commit is contained in:
Jacob Støren 2018-05-15 13:56:25 +02:00
parent 1b5c1b5e56
commit a222c096f3
4 changed files with 50 additions and 8 deletions

View File

@ -324,7 +324,7 @@ void RicSummaryCurveCreator::defineUiOrdering(QString uiConfigName, caf::PdmUiOr
void RicSummaryCurveCreator::syncPreviewCurvesFromUiSelection()
{
std::vector<RiaSummaryCurveDefinition> allCurveDefinitionsVector =
m_summaryCurveSelectionEditor->summaryAddressSelection()->selectedCurveDefinitions();
m_summaryCurveSelectionEditor->summaryAddressSelection()->allCurveDefinitionsFromSelection();
std::set<RiaSummaryCurveDefinition> allCurveDefinitions =
std::set<RiaSummaryCurveDefinition>(allCurveDefinitionsVector.begin(), allCurveDefinitionsVector.end());

View File

@ -249,12 +249,12 @@ RiuSummaryCurveDefSelection::~RiuSummaryCurveDefSelection()
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::vector<RiaSummaryCurveDefinition> RiuSummaryCurveDefSelection::selectedCurveDefinitions() const
std::vector<RiaSummaryCurveDefinition> RiuSummaryCurveDefSelection::allCurveDefinitionsFromSelection() const
{
std::vector<RiaSummaryCurveDefinition> curveDefVector;
{
std::set<RiaSummaryCurveDefinition> caseAndAddressPairs;
std::set<RiaSummaryCurveDefinition> curveDefinitions;
std::set<RifEclipseSummaryAddress> selectedAddressesFromUi = buildAddressListFromSelections();
@ -289,19 +289,59 @@ std::vector<RiaSummaryCurveDefinition> RiuSummaryCurveDefSelection::selectedCurv
{
if (selectedAddressesFromUi.count(readerAddress) > 0)
{
caseAndAddressPairs.insert(RiaSummaryCurveDefinition(currCase, readerAddress, ensemble));
curveDefinitions.insert(RiaSummaryCurveDefinition(currCase, readerAddress, ensemble));
}
}
}
}
}
std::copy(caseAndAddressPairs.begin(), caseAndAddressPairs.end(), std::back_inserter(curveDefVector));
std::copy(curveDefinitions.begin(), curveDefinitions.end(), std::back_inserter(curveDefVector));
}
return curveDefVector;
}
//--------------------------------------------------------------------------------------------------
/// One CurveDefinition pr ensemble curve set
//--------------------------------------------------------------------------------------------------
std::vector<RiaSummaryCurveDefinition> RiuSummaryCurveDefSelection::selection() const
{
std::vector<RiaSummaryCurveDefinition> curveDefSelection;
std::set<RifEclipseSummaryAddress> selectedAddressesFromUi = buildAddressListFromSelections();
for (SummarySource* currSource : selectedSummarySources())
{
RimSummaryCaseCollection* ensemble = dynamic_cast<RimSummaryCaseCollection*>(currSource);
RimSummaryCase* sourceCase = dynamic_cast<RimSummaryCase*>(currSource);
if (ensemble)
{
std::set<RifEclipseSummaryAddress> addressUnion = ensemble->calculateUnionOfSummaryAddresses();
for ( const auto& addr : selectedAddressesFromUi)
{
if (addressUnion.count(addr))
{
curveDefSelection.push_back(RiaSummaryCurveDefinition(nullptr, addr, ensemble));
}
}
}
else
{
if (!(sourceCase && sourceCase->summaryReader())) continue;
const std::vector<RifEclipseSummaryAddress>& readerAddresses = sourceCase->summaryReader()->allResultAddresses();
for ( const auto& addr : readerAddresses)
{
if (selectedAddressesFromUi.count(addr))
{
curveDefSelection.push_back(RiaSummaryCurveDefinition(sourceCase, addr, nullptr));
}
}
}
}
return curveDefSelection;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -56,7 +56,9 @@ public:
virtual ~RiuSummaryCurveDefSelection();
void setSelectedCurveDefinitions(const std::vector<RiaSummaryCurveDefinition>& curveDefinitions);
std::vector<RiaSummaryCurveDefinition> selectedCurveDefinitions() const;
std::vector<RiaSummaryCurveDefinition> allCurveDefinitionsFromSelection() const;
std::vector<RiaSummaryCurveDefinition> selection() const;
void setMultiSelectionMode(bool multiSelectionMode);
void hideEnsembles(bool hide);
void hideSummaryCases(bool hide);

View File

@ -109,7 +109,7 @@ void RiuSummaryCurveDefSelectionDialog::setEnsembleAndAddress(RimSummaryCaseColl
//--------------------------------------------------------------------------------------------------
std::vector<RiaSummaryCurveDefinition> RiuSummaryCurveDefSelectionDialog::curveSelection() const
{
return summaryAddressSelection()->selectedCurveDefinitions();
return summaryAddressSelection()->allCurveDefinitionsFromSelection();
}
//--------------------------------------------------------------------------------------------------
@ -142,7 +142,7 @@ RiuSummaryCurveDefSelection* RiuSummaryCurveDefSelectionDialog::summaryAddressSe
void RiuSummaryCurveDefSelectionDialog::updateLabel()
{
QString curveAddressText;
std::vector<RiaSummaryCurveDefinition> sumCasePairs = this->summaryAddressSelection()->selectedCurveDefinitions();
std::vector<RiaSummaryCurveDefinition> sumCasePairs = this->summaryAddressSelection()->allCurveDefinitionsFromSelection();
if (sumCasePairs.size() == 1)
{
curveAddressText = sumCasePairs.front().curveDefinitionText();