mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#1999 Curve calc. Curve creator now uses CurveDefSelection component
This commit is contained in:
parent
ec53855cd4
commit
8276d92ce7
File diff suppressed because it is too large
Load Diff
@ -21,6 +21,7 @@
|
||||
|
||||
#include "RifEclipseSummaryAddress.h"
|
||||
#include "RimSummaryCurveAppearanceCalculator.h"
|
||||
#include "RiuSummaryCurveDefSelectionEditor.h"
|
||||
|
||||
#include "cafPdmChildArrayField.h"
|
||||
#include "cafPdmChildField.h"
|
||||
@ -36,6 +37,7 @@
|
||||
class RimSummaryCase;
|
||||
class RimSummaryCurveAutoName;
|
||||
class RimSummaryPlot;
|
||||
class RiaSummaryCurveDefinition;
|
||||
|
||||
//==================================================================================================
|
||||
///
|
||||
@ -48,29 +50,6 @@ class RicSummaryCurveCreator : public caf::PdmObject
|
||||
private:
|
||||
typedef caf::AppEnum<RimSummaryCurveAppearanceCalculator::CurveAppearanceType> AppearanceTypeAppEnum;
|
||||
|
||||
class SummaryIdentifierAndField
|
||||
{
|
||||
public:
|
||||
SummaryIdentifierAndField() :
|
||||
m_summaryIdentifier((RifEclipseSummaryAddress::SummaryIdentifierType)0),
|
||||
m_pdmField(nullptr)
|
||||
{}
|
||||
|
||||
SummaryIdentifierAndField(RifEclipseSummaryAddress::SummaryIdentifierType summaryIdentifier) :
|
||||
m_summaryIdentifier(summaryIdentifier),
|
||||
m_pdmField(new caf::PdmField<std::vector<QString>>())
|
||||
{}
|
||||
|
||||
virtual ~SummaryIdentifierAndField() { delete m_pdmField; }
|
||||
|
||||
RifEclipseSummaryAddress::SummaryIdentifierType summaryIdentifier() const { return m_summaryIdentifier; }
|
||||
caf::PdmField<std::vector<QString>>* pdmField() { return m_pdmField; }
|
||||
|
||||
private:
|
||||
RifEclipseSummaryAddress::SummaryIdentifierType m_summaryIdentifier;
|
||||
caf::PdmField<std::vector<QString>> * m_pdmField;
|
||||
};
|
||||
|
||||
public:
|
||||
RicSummaryCurveCreator();
|
||||
virtual ~RicSummaryCurveCreator();
|
||||
@ -81,6 +60,7 @@ public:
|
||||
bool isCloseButtonPressed() const;
|
||||
void clearCloseButton();
|
||||
void updateCurveNames();
|
||||
void setCurveDefSelectionObject(RiuSummaryCurveDefSelection* curveDefSelection);
|
||||
|
||||
private:
|
||||
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField,
|
||||
@ -91,27 +71,9 @@ private:
|
||||
virtual void defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName,
|
||||
caf::PdmUiEditorAttribute* attribute) override;
|
||||
|
||||
|
||||
std::set<RifEclipseSummaryAddress> findPossibleSummaryAddresses(const std::vector<RimSummaryCase*> &selectedCases,
|
||||
const SummaryIdentifierAndField *identifierAndField);
|
||||
std::set<RifEclipseSummaryAddress> findPossibleSummaryAddressesFromSelectedCases(const SummaryIdentifierAndField *identifierAndField);
|
||||
std::set<RifEclipseSummaryAddress> findPossibleSummaryAddressesFromSelectedObservedData(const SummaryIdentifierAndField *identifierAndField);
|
||||
std::set<RifEclipseSummaryAddress> findPossibleSummaryAddressesFromCalculated();
|
||||
|
||||
std::vector<SummaryIdentifierAndField*> buildControllingFieldList(const SummaryIdentifierAndField *identifierAndField);
|
||||
SummaryIdentifierAndField* lookupIdentifierAndFieldFromFieldHandle(const caf::PdmFieldHandle* pdmFieldHandle);
|
||||
SummaryIdentifierAndField* lookupControllingField(const SummaryIdentifierAndField *dependentField);
|
||||
bool isAddressCompatibleWithControllingFieldSelection(const RifEclipseSummaryAddress &address,
|
||||
const std::vector<SummaryIdentifierAndField*>& identifierAndFieldList);
|
||||
std::set<std::pair<RifEclipseSummaryAddress,bool>> buildAddressListFromSelections();
|
||||
void buildAddressListForCategoryRecursively(RifEclipseSummaryAddress::SummaryVarCategory category,
|
||||
std::vector<SummaryIdentifierAndField*>::const_iterator identifierAndFieldItr,
|
||||
std::vector<std::pair<RifEclipseSummaryAddress::SummaryIdentifierType, QString>>& identifierPath,
|
||||
std::set<std::pair<RifEclipseSummaryAddress,bool>>& addressPairSet);
|
||||
|
||||
void syncPreviewCurvesFromUiSelection();
|
||||
void updatePreviewCurvesFromCurveDefinitions(const std::set<std::pair<RimSummaryCase*, RifEclipseSummaryAddress> >& allCurveDefsToDisplay,
|
||||
const std::set<std::pair<RimSummaryCase*, RifEclipseSummaryAddress> >& curveDefsToAdd,
|
||||
void updatePreviewCurvesFromCurveDefinitions(const std::set<RiaSummaryCurveDefinition>& allCurveDefsToDisplay,
|
||||
const std::set<RiaSummaryCurveDefinition>& curveDefsToAdd,
|
||||
const std::set<RimSummaryCurve*>& curvesToDelete);
|
||||
std::set<std::string> getAllSummaryCaseNames();
|
||||
std::set<std::string> getAllSummaryWellNames();
|
||||
@ -121,26 +83,19 @@ private:
|
||||
static void copyCurveAndAddToPlot(const RimSummaryCurve *curve, RimSummaryPlot *plot, bool forceVisible = false);
|
||||
|
||||
void resetAllFields();
|
||||
void updateEditorsConnectedToPreviewPlot();
|
||||
void initCurveAppearanceCalculator(RimSummaryCurveAppearanceCalculator& curveAppearanceCalc);
|
||||
void applyAppearanceToAllPreviewCurves();
|
||||
void updateAppearanceEditor();
|
||||
std::set<std::pair<RimSummaryCase*, RifEclipseSummaryAddress>>
|
||||
allPreviewCurveDefs() const;
|
||||
std::set<RiaSummaryCurveDefinition> allPreviewCurveDefs() const;
|
||||
void createNewPlot();
|
||||
bool isObservedData(RimSummaryCase *sumCase) const;
|
||||
|
||||
std::vector<RimSummaryCase*> summaryCases() const;
|
||||
static RimSummaryCase* calculatedSummaryCase();
|
||||
|
||||
void selectionEditorFieldChanged();
|
||||
|
||||
private:
|
||||
caf::PdmPtrArrayField<RimSummaryCase*> m_selectedCases;
|
||||
|
||||
caf::PdmField<std::vector<caf::AppEnum<RifEclipseSummaryAddress::SummaryVarCategory>>> m_selectedSummaryCategories;
|
||||
caf::PdmField<caf::AppEnum<RifEclipseSummaryAddress::SummaryVarCategory>> m_currentSummaryCategory;
|
||||
|
||||
std::map<RifEclipseSummaryAddress::SummaryVarCategory, std::vector<SummaryIdentifierAndField*>> m_identifierFieldsMap;
|
||||
caf::PdmPtrField<RiuSummaryCurveDefSelection*> m_selectionEditor;
|
||||
|
||||
caf::PdmPtrField<RimSummaryPlot*> m_targetPlot;
|
||||
|
||||
|
@ -23,6 +23,8 @@
|
||||
#include "RimSummaryPlot.h"
|
||||
|
||||
#include "RiuSummaryCurveDefinitionKeywords.h"
|
||||
#include "RiuSummaryCurveDefSelectionEditor.h"
|
||||
#include "RiuSummaryCurveDefSelection.h"
|
||||
|
||||
#include "cafPdmUiFieldEditorHandle.h"
|
||||
#include "cafPdmUiFieldHandle.h"
|
||||
@ -41,6 +43,8 @@
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RicSummaryCurveCreatorSplitterUi::RicSummaryCurveCreatorSplitterUi(QWidget* parent)
|
||||
{
|
||||
m_parentWidget = parent;
|
||||
m_addrSelWidget = std::unique_ptr<RiuSummaryCurveDefSelectionEditor>(new RiuSummaryCurveDefSelectionEditor());
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -59,6 +63,8 @@ void RicSummaryCurveCreatorSplitterUi::recursivelyConfigureAndUpdateTopLevelUiIt
|
||||
RicSummaryCurveCreator* sumCurveCreator = dynamic_cast<RicSummaryCurveCreator*>(this->pdmItem());
|
||||
if (sumCurveCreator)
|
||||
{
|
||||
sumCurveCreator->setCurveDefSelectionObject(m_addrSelWidget->summaryAddressSelection());
|
||||
|
||||
if (sumCurveCreator->isCloseButtonPressed())
|
||||
{
|
||||
sumCurveCreator->clearCloseButton();
|
||||
@ -69,38 +75,10 @@ void RicSummaryCurveCreatorSplitterUi::recursivelyConfigureAndUpdateTopLevelUiIt
|
||||
|
||||
if (!m_layout) return;
|
||||
|
||||
int splitterPositionIndex = 0;
|
||||
for (size_t i = 0; i < topLevelUiItems.size(); ++i)
|
||||
{
|
||||
if (topLevelUiItems[i]->isUiHidden(uiConfigName)) continue;
|
||||
QWidget* addrWidget = m_addrSelWidget->getOrCreateWidget(m_parentWidget);
|
||||
m_addrSelWidget->summaryAddressSelection()->updateConnectedEditors();
|
||||
|
||||
if (topLevelUiItems[i]->isUiGroup())
|
||||
{
|
||||
caf::PdmUiGroup* group = static_cast<caf::PdmUiGroup*>(topLevelUiItems[i]);
|
||||
auto groupBox = createGroupBoxWithContent(group, uiConfigName);
|
||||
|
||||
bool isSources = group->keyword() == RiuSummaryCurveDefinitionKeywords::sources();
|
||||
bool isSummaryTypes = group->keyword() == RiuSummaryCurveDefinitionKeywords::summaryTypes();
|
||||
bool isSummaries = group->keyword() == RiuSummaryCurveDefinitionKeywords::summaries();
|
||||
bool isDynamicGroup = !isSources && !isSummaryTypes && !isSummaries;
|
||||
bool leftColumn = isSources || isSummaryTypes;
|
||||
|
||||
if (isSummaryTypes || isDynamicGroup)
|
||||
{
|
||||
groupBox->setFixedWidth(170);
|
||||
}
|
||||
|
||||
if(leftColumn)
|
||||
m_firstRowLeftLayout->addWidget(groupBox);
|
||||
else
|
||||
m_firstRowRightLayout->addWidget(groupBox);
|
||||
|
||||
// Add group boxes until summaries are detected
|
||||
|
||||
if (group->keyword() == RiuSummaryCurveDefinitionKeywords::summaries())
|
||||
break;
|
||||
}
|
||||
}
|
||||
m_firstRowLayout->addWidget(addrWidget);
|
||||
|
||||
caf::PdmUiGroup* appearanceGroup = findGroupByKeyword(topLevelUiItems, RiuSummaryCurveDefinitionKeywords::appearance(), uiConfigName);
|
||||
auto appearanceGroupBox = createGroupBoxWithContent(appearanceGroup, uiConfigName);
|
||||
@ -134,25 +112,6 @@ QWidget* RicSummaryCurveCreatorSplitterUi::createWidget(QWidget* parent)
|
||||
m_firstRowLayout->setContentsMargins(0, 0, 0, 0);
|
||||
firstRowFrame->setLayout(m_firstRowLayout);
|
||||
|
||||
QFrame* firstRowLeftFrame = new QFrame(widget);
|
||||
m_firstRowLeftLayout = new QHBoxLayout;
|
||||
m_firstRowLeftLayout->setContentsMargins(0, 0, 0, 0);
|
||||
firstRowLeftFrame->setLayout(m_firstRowLeftLayout);
|
||||
|
||||
QFrame* firstRowRightFrame = new QFrame(widget);
|
||||
m_firstRowRightLayout = new QHBoxLayout;
|
||||
m_firstRowRightLayout->setContentsMargins(0, 0, 0, 0);
|
||||
firstRowRightFrame->setLayout(m_firstRowRightLayout);
|
||||
|
||||
m_firstRowSplitter = new QSplitter(Qt::Horizontal);
|
||||
m_firstRowSplitter->setContentsMargins(0, 0, 0, 0);
|
||||
m_firstRowSplitter->setHandleWidth(6);
|
||||
m_firstRowSplitter->setStyleSheet("QSplitter::handle { image: url(:/SplitterV.png); }");
|
||||
m_firstRowSplitter->insertWidget(0, firstRowLeftFrame);
|
||||
m_firstRowSplitter->insertWidget(1, firstRowRightFrame);
|
||||
m_firstRowSplitter->setSizes(QList<int>() << 1 << 1);
|
||||
m_firstRowLayout->addWidget(m_firstRowSplitter);
|
||||
|
||||
QFrame* secondRowFrame = new QFrame(widget);
|
||||
m_secondRowLayout = new QHBoxLayout;
|
||||
m_secondRowLayout->setContentsMargins(0, 0, 0, 0);
|
||||
|
@ -20,8 +20,10 @@
|
||||
|
||||
#include "cafPdmUiWidgetBasedObjectEditor.h"
|
||||
#include <vector>
|
||||
#include <memory>
|
||||
|
||||
class RicSummaryCurveCreator;
|
||||
class RiuSummaryCurveDefSelectionEditor;
|
||||
|
||||
class QMinimizePanel;
|
||||
class QSplitter;
|
||||
@ -75,17 +77,17 @@ signals:
|
||||
private:
|
||||
QPointer<QVBoxLayout> m_layout;
|
||||
QPointer<QSplitter> m_firstColumnSplitter;
|
||||
QPointer<QSplitter> m_firstRowSplitter;
|
||||
|
||||
QPointer<QMinimizePanel> m_curvesPanel;
|
||||
|
||||
QPointer<QHBoxLayout> m_firstRowLayout;
|
||||
QPointer<QHBoxLayout> m_firstRowLeftLayout;
|
||||
QPointer<QHBoxLayout> m_firstRowRightLayout;
|
||||
QPointer<QHBoxLayout> m_secondRowLayout;
|
||||
QPointer<QVBoxLayout> m_lowerLeftLayout;
|
||||
|
||||
QPointer<QHBoxLayout> m_bottomFieldLayout;
|
||||
|
||||
QPointer<caf::PdmUiTreeView> m_curveTreeView;
|
||||
|
||||
QWidget* m_parentWidget;
|
||||
std::unique_ptr<RiuSummaryCurveDefSelectionEditor> m_addrSelWidget;
|
||||
};
|
||||
|
@ -19,6 +19,7 @@
|
||||
#include "RimSummaryCurveAppearanceCalculator.h"
|
||||
|
||||
#include "RiaColorTables.h"
|
||||
#include "RiaSummaryCurveDefinition.h"
|
||||
|
||||
#include "RimSummaryCurve.h"
|
||||
#include "RimSummaryCase.h"
|
||||
@ -45,21 +46,21 @@ void caf::AppEnum< RimSummaryCurveAppearanceCalculator::CurveAppearanceType >::s
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimSummaryCurveAppearanceCalculator::RimSummaryCurveAppearanceCalculator(const std::set<std::pair<RimSummaryCase*, RifEclipseSummaryAddress> >& curveDefinitions, const std::set<std::string> allSummaryCaseNames, const std::set<std::string> allSummaryWellNames)
|
||||
RimSummaryCurveAppearanceCalculator::RimSummaryCurveAppearanceCalculator(const std::set<RiaSummaryCurveDefinition>& curveDefinitions, const std::set<std::string> allSummaryCaseNames, const std::set<std::string> allSummaryWellNames)
|
||||
{
|
||||
m_allSummaryCaseNames = allSummaryCaseNames;
|
||||
m_allSummaryWellNames = allSummaryWellNames;
|
||||
|
||||
for(const std::pair<RimSummaryCase*, RifEclipseSummaryAddress>& curveDef : curveDefinitions)
|
||||
for(const RiaSummaryCurveDefinition& curveDef : curveDefinitions)
|
||||
{
|
||||
if(curveDef.first) m_caseToAppearanceIdxMap[curveDef.first] = -1;
|
||||
if(!curveDef.second.wellName().empty()) m_welToAppearanceIdxMap[curveDef.second.wellName()] = -1;
|
||||
if(!curveDef.second.wellGroupName().empty()) m_grpToAppearanceIdxMap[curveDef.second.wellGroupName()] = -1;
|
||||
if(!(curveDef.second.regionNumber() == -1)) m_regToAppearanceIdxMap[curveDef.second.regionNumber()] = -1;
|
||||
if(curveDef.summaryCase()) m_caseToAppearanceIdxMap[curveDef.summaryCase()] = -1;
|
||||
if(!curveDef.summaryAddress().wellName().empty()) m_welToAppearanceIdxMap[curveDef.summaryAddress().wellName()] = -1;
|
||||
if(!curveDef.summaryAddress().wellGroupName().empty()) m_grpToAppearanceIdxMap[curveDef.summaryAddress().wellGroupName()] = -1;
|
||||
if(!(curveDef.summaryAddress().regionNumber() == -1)) m_regToAppearanceIdxMap[curveDef.summaryAddress().regionNumber()] = -1;
|
||||
|
||||
if(!curveDef.second.quantityName().empty())
|
||||
if(!curveDef.summaryAddress().quantityName().empty())
|
||||
{
|
||||
std::string varname = curveDef.second.quantityName();
|
||||
std::string varname = curveDef.summaryAddress().quantityName();
|
||||
m_varToAppearanceIdxMap[varname] = -1;
|
||||
|
||||
// Indexes for sub color ranges
|
||||
|
@ -27,11 +27,12 @@
|
||||
class RimSummaryCurve;
|
||||
class RimSummaryCase;
|
||||
class RifEclipseSummaryAddress;
|
||||
class RiaSummaryCurveDefinition;
|
||||
|
||||
class RimSummaryCurveAppearanceCalculator
|
||||
{
|
||||
public:
|
||||
explicit RimSummaryCurveAppearanceCalculator(const std::set<std::pair<RimSummaryCase*, RifEclipseSummaryAddress> >& curveDefinitions,
|
||||
explicit RimSummaryCurveAppearanceCalculator(const std::set<RiaSummaryCurveDefinition>& curveDefinitions,
|
||||
const std::set<std::string> allSummaryCaseNames,
|
||||
const std::set<std::string> allSummaryWellNames);
|
||||
enum CurveAppearanceType
|
||||
|
@ -19,6 +19,7 @@
|
||||
#include "RimSummaryCurveFilter.h"
|
||||
|
||||
#include "RiaApplication.h"
|
||||
#include "RiaSummaryCurveDefinition.h"
|
||||
|
||||
#include "RifReaderEclipseSummary.h"
|
||||
|
||||
@ -140,7 +141,7 @@ void RimSummaryCurveFilter::createDefaultCurves(RimSummaryCase* summaryCase, con
|
||||
|
||||
m_summaryFilter->setCompleteVarStringFilter(defaultCurveStringFilter);
|
||||
|
||||
std::set<std::pair<RimSummaryCase*, RifEclipseSummaryAddress> > newCurveDefinitions;
|
||||
std::set<RiaSummaryCurveDefinition> newCurveDefinitions;
|
||||
|
||||
createSetOfCasesAndResultAdresses(selectedCases, *m_summaryFilter, &newCurveDefinitions);
|
||||
|
||||
@ -355,7 +356,7 @@ void RimSummaryCurveFilter::syncCurvesFromUiSelection()
|
||||
{
|
||||
// Create a search map containing whats supposed to be curves
|
||||
|
||||
std::set<std::pair<RimSummaryCase*, RifEclipseSummaryAddress> > newCurveDefinitions;
|
||||
std::set<RiaSummaryCurveDefinition> newCurveDefinitions;
|
||||
|
||||
// Populate the newCurveDefinitions from the Gui
|
||||
|
||||
@ -372,7 +373,7 @@ void RimSummaryCurveFilter::syncCurvesFromUiSelection()
|
||||
if(!reader->hasAddress(addr)) continue;
|
||||
if (addrUnion.count(addr) == 0 ) continue; // Wash the possible "old" ui selection with new filter
|
||||
|
||||
newCurveDefinitions.insert(std::make_pair(currentCase, addr));
|
||||
newCurveDefinitions.insert(RiaSummaryCurveDefinition(currentCase, addr));
|
||||
}
|
||||
}
|
||||
|
||||
@ -522,7 +523,7 @@ void RimSummaryCurveFilter::removeCurvesAssosiatedWithCase(RimSummaryCase* summa
|
||||
void RimSummaryCurveFilter::createSetOfCasesAndResultAdresses(
|
||||
const std::vector<RimSummaryCase*>& cases,
|
||||
const RimSummaryFilter& filter,
|
||||
std::set<std::pair<RimSummaryCase*, RifEclipseSummaryAddress> >* curveDefinitions) const
|
||||
std::set<RiaSummaryCurveDefinition>* curveDefinitions) const
|
||||
{
|
||||
for (RimSummaryCase* currentCase : cases)
|
||||
{
|
||||
@ -536,7 +537,7 @@ void RimSummaryCurveFilter::createSetOfCasesAndResultAdresses(
|
||||
{
|
||||
if (!filter.isIncludedByFilter(allAddresses[i])) continue;
|
||||
|
||||
curveDefinitions->insert(std::make_pair(currentCase, allAddresses[i]));
|
||||
curveDefinitions->insert(RiaSummaryCurveDefinition(currentCase, allAddresses[i]));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -545,7 +546,7 @@ void RimSummaryCurveFilter::createSetOfCasesAndResultAdresses(
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimSummaryCurveFilter::createCurvesFromCurveDefinitions(const std::set<std::pair<RimSummaryCase*, RifEclipseSummaryAddress> >& curveDefinitions)
|
||||
void RimSummaryCurveFilter::createCurvesFromCurveDefinitions(const std::set<RiaSummaryCurveDefinition>& curveDefinitions)
|
||||
{
|
||||
RimSummaryCase* prevCase = nullptr;
|
||||
RimPlotCurve::LineStyleEnum lineStyle = RimPlotCurve::STYLE_SOLID;
|
||||
@ -582,12 +583,12 @@ void RimSummaryCurveFilter::createCurvesFromCurveDefinitions(const std::set<std:
|
||||
|
||||
for (auto& caseAddrPair : curveDefinitions)
|
||||
{
|
||||
RimSummaryCase* currentCase = caseAddrPair.first;
|
||||
RimSummaryCase* currentCase = caseAddrPair.summaryCase();
|
||||
|
||||
RimSummaryCurve* curve = new RimSummaryCurve();
|
||||
curve->setParentQwtPlotNoReplot(m_parentQwtPlot);
|
||||
curve->setSummaryCase(currentCase);
|
||||
curve->setSummaryAddress(caseAddrPair.second);
|
||||
curve->setSummaryAddress(caseAddrPair.summaryAddress());
|
||||
curve->setYAxis(m_plotAxis());
|
||||
curve->applyCurveAutoNameSettings(*m_curveNameConfig());
|
||||
|
||||
|
@ -41,7 +41,7 @@ class RimSummaryCurve;
|
||||
class RimSummaryFilter;
|
||||
class RiuLineSegmentQwtPlotCurve;
|
||||
class RimSummaryCurveAutoName;
|
||||
|
||||
class RiaSummaryCurveDefinition;
|
||||
|
||||
|
||||
|
||||
@ -81,14 +81,14 @@ public:
|
||||
|
||||
private:
|
||||
void syncCurvesFromUiSelection();
|
||||
void createCurvesFromCurveDefinitions(const std::set<std::pair<RimSummaryCase*, RifEclipseSummaryAddress> >& curveDefinitions);
|
||||
void createCurvesFromCurveDefinitions(const std::set<RiaSummaryCurveDefinition>& curveDefinitions);
|
||||
void syncUiSelectionFromCurves();
|
||||
std::set<RifEclipseSummaryAddress> findPossibleSummaryAddresses();
|
||||
|
||||
void createSetOfCasesAndResultAdresses(
|
||||
const std::vector<RimSummaryCase*>& cases,
|
||||
const RimSummaryFilter& filter,
|
||||
std::set<std::pair<RimSummaryCase*, RifEclipseSummaryAddress> >* curveDefinitions) const;
|
||||
std::set<RiaSummaryCurveDefinition>* curveDefinitions) const;
|
||||
|
||||
// Overridden PDM methods
|
||||
virtual caf::PdmFieldHandle* objectToggleField() override;
|
||||
|
@ -186,6 +186,7 @@ RiuSummaryCurveDefSelection::RiuSummaryCurveDefSelection() : m_identifierFieldsM
|
||||
m_selectedSummaryCategories.uiCapability()->setUiLabelPosition(caf::PdmUiItemInfo::HIDDEN);
|
||||
|
||||
m_currentSummaryCategory.uiCapability()->setUiHidden(true);
|
||||
m_multiSelectionMode = false;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -237,6 +238,22 @@ std::vector<RiaSummaryCurveDefinition> RiuSummaryCurveDefSelection::selectedCurv
|
||||
return caseAndAddressVector;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuSummaryCurveDefSelection::setMultiSelectionMode(bool multiSelectionMode)
|
||||
{
|
||||
m_multiSelectionMode = multiSelectionMode;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuSummaryCurveDefSelection::setFieldChangedHandler(const std::function<void()>& handlerFunc)
|
||||
{
|
||||
m_toggleChangedHandler = handlerFunc;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -316,6 +333,10 @@ std::set<RifEclipseSummaryAddress> RiuSummaryCurveDefSelection::findPossibleSumm
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuSummaryCurveDefSelection::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
|
||||
{
|
||||
if (m_toggleChangedHandler != nullptr)
|
||||
{
|
||||
m_toggleChangedHandler();
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -806,7 +827,7 @@ void RiuSummaryCurveDefSelection::defineEditorAttribute(const caf::PdmFieldHandl
|
||||
attrib->showToggleAllCheckbox = false;
|
||||
}
|
||||
|
||||
attrib->singleSelectionMode = true;
|
||||
attrib->singleSelectionMode = !m_multiSelectionMode;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -28,6 +28,7 @@
|
||||
#include "cafPdmPtrArrayField.h"
|
||||
#include "cafPdmPtrField.h"
|
||||
|
||||
#include <functional>
|
||||
|
||||
#define OBSERVED_DATA_AVALUE_POSTFIX "_OBSDATA"
|
||||
|
||||
@ -50,6 +51,8 @@ public:
|
||||
|
||||
void setSelectedCurveDefinitions(const std::vector<RiaSummaryCurveDefinition>& curveDefinitions);
|
||||
std::vector<RiaSummaryCurveDefinition> selectedCurveDefinitions() const;
|
||||
void setMultiSelectionMode(bool multiSelectionMode);
|
||||
void setFieldChangedHandler(const std::function<void()>& handlerFunc);
|
||||
|
||||
private:
|
||||
class SummaryIdentifierAndField
|
||||
@ -116,4 +119,8 @@ private:
|
||||
caf::PdmField<caf::AppEnum<RifEclipseSummaryAddress::SummaryVarCategory>> m_currentSummaryCategory;
|
||||
|
||||
std::map<RifEclipseSummaryAddress::SummaryVarCategory, std::vector<SummaryIdentifierAndField*>> m_identifierFieldsMap;
|
||||
|
||||
bool m_multiSelectionMode;
|
||||
|
||||
std::function<void()> m_toggleChangedHandler;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user