mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-09 23:16:00 -06:00
#2610 New command, display ensamble curves with single color
This commit is contained in:
parent
43f1101f1f
commit
21a81744f1
@ -32,6 +32,7 @@ ${CMAKE_CURRENT_LIST_DIR}/RicSummaryCurveCalculatorDialog.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RicSummaryCurveCalculatorEditor.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RicSummaryCurveCalculator.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RicNewSummaryCrossPlotCurveFeature.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RicNewSummaryEnsambleCurveSetFeature.h
|
||||
)
|
||||
|
||||
set (SOURCE_GROUP_SOURCE_FILES
|
||||
@ -67,6 +68,7 @@ ${CMAKE_CURRENT_LIST_DIR}/RicSummaryCurveCalculatorDialog.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RicSummaryCurveCalculatorEditor.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RicSummaryCurveCalculator.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RicNewSummaryCrossPlotCurveFeature.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RicNewSummaryEnsambleCurveSetFeature.cpp
|
||||
)
|
||||
|
||||
list(APPEND CODE_HEADER_FILES
|
||||
|
@ -0,0 +1,101 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2016- Statoil ASA
|
||||
//
|
||||
// ResInsight is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
// FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
|
||||
// for more details.
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "RicNewSummaryEnsambleCurveSetFeature.h"
|
||||
|
||||
#include "RiaApplication.h"
|
||||
|
||||
#include "RimMainPlotCollection.h"
|
||||
#include "RimOilField.h"
|
||||
#include "RimProject.h"
|
||||
#include "RiaSummaryTools.h"
|
||||
#include "RimSummaryCaseMainCollection.h"
|
||||
#include "RimSummaryCurve.h"
|
||||
#include "RimSummaryPlot.h"
|
||||
#include "RimSummaryPlotCollection.h"
|
||||
#include "RimEnsambleCurveSet.h"
|
||||
#include "RimEnsambleCurveSetCollection.h"
|
||||
|
||||
#include "RiuMainPlotWindow.h"
|
||||
|
||||
#include "WellLogCommands/RicWellLogPlotCurveFeatureImpl.h"
|
||||
|
||||
#include "cafSelectionManager.h"
|
||||
|
||||
#include "cvfAssert.h"
|
||||
|
||||
#include <QAction>
|
||||
|
||||
|
||||
CAF_CMD_SOURCE_INIT(RicNewSummaryEnsambleCurveSetFeature, "RicNewSummaryEnsambleCurveSetFeature");
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RicNewSummaryEnsambleCurveSetFeature::isCommandEnabled()
|
||||
{
|
||||
return (selectedSummaryPlot());
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RicNewSummaryEnsambleCurveSetFeature::onActionTriggered(bool isChecked)
|
||||
{
|
||||
RimProject* project = RiaApplication::instance()->project();
|
||||
CVF_ASSERT(project);
|
||||
|
||||
RimSummaryPlot* plot = selectedSummaryPlot();
|
||||
if (plot)
|
||||
{
|
||||
RimEnsambleCurveSet* curveSet = new RimEnsambleCurveSet();
|
||||
|
||||
plot->ensambleCurveSets()->addCurveSet(curveSet);
|
||||
plot->updateConnectedEditors();
|
||||
|
||||
RiaApplication::instance()->getOrCreateAndShowMainPlotWindow()->selectAsCurrentItem(curveSet);
|
||||
|
||||
RiuMainPlotWindow* mainPlotWindow = RiaApplication::instance()->mainPlotWindow();
|
||||
mainPlotWindow->updateSummaryPlotToolBar();
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RicNewSummaryEnsambleCurveSetFeature::setupActionLook(QAction* actionToSetup)
|
||||
{
|
||||
actionToSetup->setText("New Summary Ensamble Curve Set");
|
||||
actionToSetup->setIcon(QIcon(":/SummaryCurve16x16.png"));
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimSummaryPlot* RicNewSummaryEnsambleCurveSetFeature::selectedSummaryPlot() const
|
||||
{
|
||||
RimSummaryPlot* sumPlot = nullptr;
|
||||
|
||||
caf::PdmObject* selObj = dynamic_cast<caf::PdmObject*>(caf::SelectionManager::instance()->selectedItem());
|
||||
if (selObj)
|
||||
{
|
||||
sumPlot = RiaSummaryTools::parentSummaryPlot(selObj);
|
||||
}
|
||||
|
||||
return sumPlot;
|
||||
}
|
@ -0,0 +1,41 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2016- Statoil ASA
|
||||
//
|
||||
// ResInsight is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
// FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
|
||||
// for more details.
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "cafCmdFeature.h"
|
||||
|
||||
#include <vector>
|
||||
|
||||
class RimSummaryPlot;
|
||||
|
||||
//==================================================================================================
|
||||
///
|
||||
//==================================================================================================
|
||||
class RicNewSummaryEnsambleCurveSetFeature : public caf::CmdFeature
|
||||
{
|
||||
CAF_CMD_HEADER_INIT;
|
||||
protected:
|
||||
// Overrides
|
||||
virtual bool isCommandEnabled();
|
||||
virtual void onActionTriggered( bool isChecked );
|
||||
virtual void setupActionLook( QAction* actionToSetup );
|
||||
|
||||
private:
|
||||
RimSummaryPlot* selectedSummaryPlot() const;
|
||||
};
|
@ -40,6 +40,8 @@
|
||||
#include "RimSummaryPlot.h"
|
||||
#include "RimSummaryPlotCollection.h"
|
||||
#include "RimSummaryCalculationCollection.h"
|
||||
#include "RimEnsambleCurveSetCollection.h"
|
||||
#include "RimEnsambleCurveSet.h"
|
||||
|
||||
#include "RiuPlotMainWindowTools.h"
|
||||
#include "RiuSummaryCurveDefSelection.h"
|
||||
@ -540,6 +542,23 @@ void RicSummaryCurveCreator::updateTargetPlot()
|
||||
copyCurveAndAddToPlot(editedCurve, m_targetPlot);
|
||||
}
|
||||
|
||||
// DEBUG
|
||||
//{
|
||||
// m_targetPlot->ensambleCurveSets()->deleteAllCurveSets();
|
||||
|
||||
// RimEnsambleCurveSet* curveSet = new RimEnsambleCurveSet();
|
||||
// m_targetPlot->ensambleCurveSets()->addCurveSet(curveSet);
|
||||
|
||||
// for (const auto& editedCurve : m_previewPlot->summaryCurves())
|
||||
// {
|
||||
// if (!editedCurve->isCurveVisible())
|
||||
// {
|
||||
// continue;
|
||||
// }
|
||||
// copyEnsambleCurveAndAddToPlot(editedCurve, curveSet);
|
||||
// }
|
||||
//}
|
||||
|
||||
m_targetPlot->enableAutoPlotTitle(m_useAutoPlotTitleProxy());
|
||||
|
||||
m_targetPlot->loadDataAndUpdate();
|
||||
@ -570,6 +589,30 @@ void RicSummaryCurveCreator::copyCurveAndAddToPlot(const RimSummaryCurve *curve,
|
||||
curveCopy->loadDataAndUpdate(false);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RicSummaryCurveCreator::copyEnsambleCurveAndAddToPlot(const RimSummaryCurve *curve, RimEnsambleCurveSet *curveSet, bool forceVisible)
|
||||
{
|
||||
RimSummaryCurve* curveCopy = dynamic_cast<RimSummaryCurve*>(curve->xmlCapability()->copyByXmlSerialization(caf::PdmDefaultObjectFactory::instance()));
|
||||
CVF_ASSERT(curveCopy);
|
||||
|
||||
if (forceVisible)
|
||||
{
|
||||
curveCopy->setCurveVisiblity(true);
|
||||
}
|
||||
|
||||
curveSet->addCurve(curveCopy);
|
||||
|
||||
// Resolve references after object has been inserted into the project data model
|
||||
curveCopy->resolveReferencesRecursively();
|
||||
|
||||
// The curve creator is not a descendant of the project, and need to be set manually
|
||||
curveCopy->setSummaryCaseY(curve->summaryCaseY());
|
||||
curveCopy->initAfterReadRecursively();
|
||||
curveCopy->loadDataAndUpdate(false);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -41,6 +41,7 @@ class RimSummaryCase;
|
||||
class RimSummaryCurveAutoName;
|
||||
class RimSummaryPlot;
|
||||
class RiaSummaryCurveDefinition;
|
||||
class RimEnsambleCurveSet;
|
||||
|
||||
//==================================================================================================
|
||||
///
|
||||
@ -85,6 +86,7 @@ private:
|
||||
void populateCurveCreator(const RimSummaryPlot& sourceSummaryPlot);
|
||||
void updateTargetPlot();
|
||||
static void copyCurveAndAddToPlot(const RimSummaryCurve *curve, RimSummaryPlot *plot, bool forceVisible = false);
|
||||
static void copyEnsambleCurveAndAddToPlot(const RimSummaryCurve *curve, RimEnsambleCurveSet* curveSet, bool forceVisible = false);
|
||||
void setDefaultCurveSelection();
|
||||
|
||||
void resetAllFields();
|
||||
|
@ -35,6 +35,7 @@
|
||||
#include "RimEclipsePropertyFilterCollection.h"
|
||||
#include "RimEclipseStatisticsCase.h"
|
||||
#include "RimEclipseView.h"
|
||||
#include "RimEnsambleCurveSetCollection.h"
|
||||
#include "RimFaultInView.h"
|
||||
#include "RimFlowCharacteristicsPlot.h"
|
||||
#include "RimFlowDiagSolution.h"
|
||||
@ -440,6 +441,10 @@ caf::CmdFeatureMenuBuilder RimContextCommandBuilder::commandsFromSelection()
|
||||
menuBuilder << "RicNewSummaryCurveFeature";
|
||||
menuBuilder << "RicNewSummaryCrossPlotCurveFeature";
|
||||
}
|
||||
else if (dynamic_cast<RimEnsambleCurveSetCollection*>(uiItem))
|
||||
{
|
||||
menuBuilder << "RicNewSummaryEnsambleCurveSetFeature";
|
||||
}
|
||||
else if (dynamic_cast<RimSummaryCase*>(uiItem))
|
||||
{
|
||||
if (!dynamic_cast<RimObservedData*>(uiItem))
|
||||
|
@ -19,6 +19,7 @@
|
||||
#include "RimPlotCurve.h"
|
||||
#include "RimSummaryCurveCollection.h"
|
||||
#include "RimSummaryCurveFilter.h"
|
||||
#include "RimEnsambleCurveSet.h"
|
||||
|
||||
#include "RiuLineSegmentQwtPlotCurve.h"
|
||||
|
||||
@ -188,6 +189,10 @@ void RimPlotCurve::updateCurveVisibility(bool updateParentPlot)
|
||||
RimSummaryCurveCollection* summaryCurveCollection = nullptr;
|
||||
this->firstAncestorOrThisOfType(summaryCurveCollection);
|
||||
if (summaryCurveCollection) isVisibleInPossibleParent = summaryCurveCollection->isCurvesVisible();
|
||||
|
||||
RimEnsambleCurveSet* ensambleCurveSet = nullptr;
|
||||
firstAncestorOrThisOfType(ensambleCurveSet);
|
||||
if (ensambleCurveSet) isVisibleInPossibleParent = ensambleCurveSet->isCurvesVisible();
|
||||
}
|
||||
|
||||
if (m_showCurve() && m_parentQwtPlot && isVisibleInPossibleParent)
|
||||
|
@ -100,6 +100,8 @@ public:
|
||||
|
||||
void setZOrder(double z);
|
||||
|
||||
virtual void updateCurveAppearance();
|
||||
|
||||
protected:
|
||||
|
||||
virtual QString createCurveAutoName() = 0;
|
||||
@ -107,7 +109,6 @@ protected:
|
||||
virtual void onLoadDataAndUpdate(bool updateParentPlot) = 0;
|
||||
|
||||
void updateCurvePresentation(bool updatePlotLegend);
|
||||
virtual void updateCurveAppearance();
|
||||
|
||||
void updateOptionSensitivity();
|
||||
|
||||
|
@ -602,6 +602,27 @@ std::vector<RimSummaryCase*> RimProject::allSummaryCases() const
|
||||
return sumCases;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<RimSummaryCaseCollection*> RimProject::summaryGroups() const
|
||||
{
|
||||
std::vector<RimSummaryCaseCollection*> groups;
|
||||
|
||||
for (RimOilField* oilField : oilFields)
|
||||
{
|
||||
if (!oilField) continue;
|
||||
RimSummaryCaseMainCollection* sumCaseMainColl = oilField->summaryCaseMainCollection();
|
||||
if (sumCaseMainColl)
|
||||
{
|
||||
std::vector<RimSummaryCaseCollection*> g = sumCaseMainColl->summaryCaseCollections();
|
||||
groups.insert(groups.end(), g.begin(), g.end());
|
||||
}
|
||||
}
|
||||
|
||||
return groups;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -47,6 +47,7 @@ class RimObservedData;
|
||||
class RimOilField;
|
||||
class RimScriptCollection;
|
||||
class RimSummaryCase;
|
||||
class RimSummaryCaseCollection;
|
||||
class Rim3dView;
|
||||
class RimGridView;
|
||||
class RimViewLinker;
|
||||
@ -106,6 +107,7 @@ public:
|
||||
void allCases(std::vector<RimCase*>& cases);
|
||||
|
||||
std::vector<RimSummaryCase*> allSummaryCases() const;
|
||||
std::vector<RimSummaryCaseCollection*> summaryGroups() const;
|
||||
|
||||
void allVisibleViews(std::vector<Rim3dView*>& views);
|
||||
void allVisibleGridViews(std::vector<RimGridView*>& views);
|
||||
|
@ -24,18 +24,49 @@
|
||||
|
||||
#include "RimProject.h"
|
||||
#include "RimSummaryCase.h"
|
||||
#include "RimSummaryCaseCollection.h"
|
||||
#include "RimSummaryCrossPlot.h"
|
||||
#include "RimSummaryCurve.h"
|
||||
#include "RimSummaryPlot.h"
|
||||
#include "RimSummaryPlotSourceStepping.h"
|
||||
#include "RimSummaryFilter.h"
|
||||
#include "RimSummaryAddress.h"
|
||||
#include "RimEnsambleCurveSetCollection.h"
|
||||
|
||||
#include "RiuLineSegmentQwtPlotCurve.h"
|
||||
#include "RiuSummaryQwtPlot.h"
|
||||
|
||||
#include "cafPdmUiTreeViewEditor.h"
|
||||
#include "cafPdmUiListEditor.h"
|
||||
#include "cafPdmObject.h"
|
||||
#include "cafPdmUiPushButtonEditor.h"
|
||||
|
||||
#include <QTextStream>
|
||||
#include <QKeyEvent>
|
||||
|
||||
|
||||
// See also corresponding fake implementations in RimSummaryCurveFilter
|
||||
static QTextStream& operator << (QTextStream& str, const RifEclipseSummaryAddress& sobj)
|
||||
{
|
||||
CVF_ASSERT(false);
|
||||
return str;
|
||||
}
|
||||
|
||||
static QTextStream& operator >> (QTextStream& str, RifEclipseSummaryAddress& sobj)
|
||||
{
|
||||
CVF_ASSERT(false);
|
||||
return str;
|
||||
}
|
||||
|
||||
template<>
|
||||
void caf::AppEnum< RimEnsambleCurveSet::ColorMode >::setUp()
|
||||
{
|
||||
addItem(RimEnsambleCurveSet::SINGLE_COLOR, "SINGLE_COLOR", "Single Color");
|
||||
addItem(RimEnsambleCurveSet::BY_ENSAMBLE_PARAM, "BY_ENSAMBLE_PARAM", "By Ensamble Parameter");
|
||||
setDefault(RimEnsambleCurveSet::SINGLE_COLOR);
|
||||
}
|
||||
|
||||
|
||||
CAF_PDM_SOURCE_INIT(RimEnsambleCurveSet, "RimEnsambleCurveSet");
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -43,35 +74,73 @@ CAF_PDM_SOURCE_INIT(RimEnsambleCurveSet, "RimEnsambleCurveSet");
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimEnsambleCurveSet::RimEnsambleCurveSet()
|
||||
{
|
||||
CAF_PDM_InitObject("Summary Curves", ":/SummaryCurveFilter16x16.png", "", "");
|
||||
CAF_PDM_InitObject("Ensamble Curve Set", ":/SummaryCurveFilter16x16.png", "", "");
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&m_curves, "CollectionCurves", "Collection Curves", "", "", "");
|
||||
CAF_PDM_InitFieldNoDefault(&m_curves, "EnsambleCurveSet", "Ensamble Curve Set", "", "", "");
|
||||
m_curves.uiCapability()->setUiHidden(true);
|
||||
m_curves.uiCapability()->setUiTreeChildrenHidden(false);
|
||||
|
||||
CAF_PDM_InitField(&m_showCurves, "IsActive", true, "Show Curves", "", "", "");
|
||||
m_showCurves.uiCapability()->setUiHidden(true);
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&m_ySourceStepping, "YSourceStepping", "", "", "", "");
|
||||
m_ySourceStepping = new RimSummaryPlotSourceStepping;
|
||||
m_ySourceStepping->setSourceSteppingType(RimSummaryPlotSourceStepping::Y_AXIS);
|
||||
m_ySourceStepping.uiCapability()->setUiHidden(true);
|
||||
m_ySourceStepping.uiCapability()->setUiTreeChildrenHidden(true);
|
||||
m_ySourceStepping.xmlCapability()->disableIO();
|
||||
//CAF_PDM_InitFieldNoDefault(&m_ySourceStepping, "YSourceStepping", "", "", "", "");
|
||||
//m_ySourceStepping = new RimSummaryPlotSourceStepping;
|
||||
//m_ySourceStepping->setSourceSteppingType(RimSummaryPlotSourceStepping::Y_AXIS);
|
||||
//m_ySourceStepping.uiCapability()->setUiHidden(true);
|
||||
//m_ySourceStepping.uiCapability()->setUiTreeChildrenHidden(true);
|
||||
//m_ySourceStepping.xmlCapability()->disableIO();
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&m_xSourceStepping, "XSourceStepping", "", "", "", "");
|
||||
m_xSourceStepping = new RimSummaryPlotSourceStepping;
|
||||
m_xSourceStepping->setSourceSteppingType(RimSummaryPlotSourceStepping::X_AXIS);
|
||||
m_xSourceStepping.uiCapability()->setUiHidden(true);
|
||||
m_xSourceStepping.uiCapability()->setUiTreeChildrenHidden(true);
|
||||
m_xSourceStepping.xmlCapability()->disableIO();
|
||||
//CAF_PDM_InitFieldNoDefault(&m_xSourceStepping, "XSourceStepping", "", "", "", "");
|
||||
//m_xSourceStepping = new RimSummaryPlotSourceStepping;
|
||||
//m_xSourceStepping->setSourceSteppingType(RimSummaryPlotSourceStepping::X_AXIS);
|
||||
//m_xSourceStepping.uiCapability()->setUiHidden(true);
|
||||
//m_xSourceStepping.uiCapability()->setUiTreeChildrenHidden(true);
|
||||
//m_xSourceStepping.xmlCapability()->disableIO();
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&m_unionSourceStepping, "UnionSourceStepping", "", "", "", "");
|
||||
m_unionSourceStepping = new RimSummaryPlotSourceStepping;
|
||||
m_unionSourceStepping->setSourceSteppingType(RimSummaryPlotSourceStepping::UNION_X_Y_AXIS);
|
||||
m_unionSourceStepping.uiCapability()->setUiHidden(true);
|
||||
m_unionSourceStepping.uiCapability()->setUiTreeChildrenHidden(true);
|
||||
m_unionSourceStepping.xmlCapability()->disableIO();
|
||||
//CAF_PDM_InitFieldNoDefault(&m_unionSourceStepping, "UnionSourceStepping", "", "", "", "");
|
||||
//m_unionSourceStepping = new RimSummaryPlotSourceStepping;
|
||||
//m_unionSourceStepping->setSourceSteppingType(RimSummaryPlotSourceStepping::UNION_X_Y_AXIS);
|
||||
//m_unionSourceStepping.uiCapability()->setUiHidden(true);
|
||||
//m_unionSourceStepping.uiCapability()->setUiTreeChildrenHidden(true);
|
||||
//m_unionSourceStepping.xmlCapability()->disableIO();
|
||||
|
||||
// Y Values
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&m_yValuesSummaryGroup, "SummaryGroup", "Group", "", "", "");
|
||||
m_yValuesSummaryGroup.uiCapability()->setUiTreeChildrenHidden(true);
|
||||
m_yValuesSummaryGroup.uiCapability()->setAutoAddingOptionFromValue(false);
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&m_yValuesSelectedVariableDisplayField, "SelectedVariableDisplayVar", "Vector", "", "", "");
|
||||
m_yValuesSelectedVariableDisplayField.xmlCapability()->disableIO();
|
||||
//m_yValuesSelectedVariableDisplayField.uiCapability()->setUiReadOnly(true);
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&m_yValuesSummaryFilter, "VarListFilter", "Filter", "", "", "");
|
||||
m_yValuesSummaryFilter.uiCapability()->setUiTreeChildrenHidden(true);
|
||||
m_yValuesSummaryFilter.uiCapability()->setUiHidden(true);
|
||||
|
||||
m_yValuesSummaryFilter = new RimSummaryFilter;
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&m_yValuesUiFilterResultSelection, "FilterResultSelection", "Filter Result", "", "", "");
|
||||
m_yValuesUiFilterResultSelection.xmlCapability()->disableIO();
|
||||
m_yValuesUiFilterResultSelection.uiCapability()->setUiEditorTypeName(caf::PdmUiListEditor::uiEditorTypeName());
|
||||
m_yValuesUiFilterResultSelection.uiCapability()->setUiLabelPosition(caf::PdmUiItemInfo::HIDDEN);
|
||||
m_yValuesUiFilterResultSelection.uiCapability()->setAutoAddingOptionFromValue(false);
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&m_yValuesCurveVariable, "SummaryAddress", "Summary Address", "", "", "");
|
||||
m_yValuesCurveVariable.uiCapability()->setUiHidden(true);
|
||||
m_yValuesCurveVariable.uiCapability()->setUiTreeChildrenHidden(true);
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&m_yPushButtonSelectSummaryAddress, "SelectAddress", "", "", "", "");
|
||||
caf::PdmUiPushButtonEditor::configureEditorForField(&m_yPushButtonSelectSummaryAddress);
|
||||
m_yPushButtonSelectSummaryAddress = false;
|
||||
|
||||
m_yValuesCurveVariable = new RimSummaryAddress;
|
||||
|
||||
CAF_PDM_InitField(&m_colorMode, "ColorMode", caf::AppEnum<ColorMode>(SINGLE_COLOR), "Coloring Mode", "", "", "");
|
||||
|
||||
CAF_PDM_InitField(&m_color, "Color", cvf::Color3f(cvf::Color3::BLACK), "Color", "", "", "");
|
||||
|
||||
CAF_PDM_InitField(&m_ensambleParameter, "EnsambleParameter", QString(""), "Ensamble Parameter", "", "", "");
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -87,7 +156,9 @@ RimEnsambleCurveSet::~RimEnsambleCurveSet()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RimEnsambleCurveSet::isCurvesVisible()
|
||||
{
|
||||
return m_showCurves();
|
||||
RimEnsambleCurveSetCollection* coll = nullptr;
|
||||
firstAncestorOrThisOfType(coll);
|
||||
return m_showCurves() && (coll ? coll->isCurveSetsVisible() : true);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -265,83 +336,83 @@ void RimEnsambleCurveSet::setCurrentSummaryCurve(RimSummaryCurve* curve)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<caf::PdmFieldHandle*> RimEnsambleCurveSet::fieldsToShowInToolbar()
|
||||
{
|
||||
RimSummaryCrossPlot* parentCrossPlot;
|
||||
firstAncestorOrThisOfType(parentCrossPlot);
|
||||
|
||||
if (parentCrossPlot)
|
||||
{
|
||||
return m_unionSourceStepping->fieldsToShowInToolbar();
|
||||
}
|
||||
|
||||
return m_ySourceStepping()->fieldsToShowInToolbar();
|
||||
}
|
||||
//std::vector<caf::PdmFieldHandle*> RimEnsambleCurveSet::fieldsToShowInToolbar()
|
||||
//{
|
||||
// RimSummaryCrossPlot* parentCrossPlot;
|
||||
// firstAncestorOrThisOfType(parentCrossPlot);
|
||||
//
|
||||
// if (parentCrossPlot)
|
||||
// {
|
||||
// return m_unionSourceStepping->fieldsToShowInToolbar();
|
||||
// }
|
||||
//
|
||||
// return m_ySourceStepping()->fieldsToShowInToolbar();
|
||||
//}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimEnsambleCurveSet::handleKeyPressEvent(QKeyEvent* keyEvent)
|
||||
{
|
||||
if (!keyEvent) return;
|
||||
//if (!keyEvent) return;
|
||||
|
||||
RimSummaryPlotSourceStepping* sourceStepping = nullptr;
|
||||
{
|
||||
RimSummaryCrossPlot* summaryCrossPlot = nullptr;
|
||||
this->firstAncestorOrThisOfType(summaryCrossPlot);
|
||||
//RimSummaryPlotSourceStepping* sourceStepping = nullptr;
|
||||
//{
|
||||
// RimSummaryCrossPlot* summaryCrossPlot = nullptr;
|
||||
// this->firstAncestorOrThisOfType(summaryCrossPlot);
|
||||
|
||||
if (summaryCrossPlot)
|
||||
{
|
||||
sourceStepping = m_unionSourceStepping();
|
||||
}
|
||||
else
|
||||
{
|
||||
sourceStepping = m_ySourceStepping();
|
||||
}
|
||||
}
|
||||
// if (summaryCrossPlot)
|
||||
// {
|
||||
// sourceStepping = m_unionSourceStepping();
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// sourceStepping = m_ySourceStepping();
|
||||
// }
|
||||
//}
|
||||
|
||||
if (keyEvent->key() == Qt::Key_PageUp)
|
||||
{
|
||||
if (keyEvent->modifiers() & Qt::ShiftModifier)
|
||||
{
|
||||
sourceStepping->applyPrevCase();
|
||||
//if (keyEvent->key() == Qt::Key_PageUp)
|
||||
//{
|
||||
// if (keyEvent->modifiers() & Qt::ShiftModifier)
|
||||
// {
|
||||
// sourceStepping->applyPrevCase();
|
||||
|
||||
keyEvent->accept();
|
||||
}
|
||||
else if (keyEvent->modifiers() & Qt::ControlModifier)
|
||||
{
|
||||
sourceStepping->applyPrevOtherIdentifier();
|
||||
// keyEvent->accept();
|
||||
// }
|
||||
// else if (keyEvent->modifiers() & Qt::ControlModifier)
|
||||
// {
|
||||
// sourceStepping->applyPrevOtherIdentifier();
|
||||
|
||||
keyEvent->accept();
|
||||
}
|
||||
else
|
||||
{
|
||||
sourceStepping->applyPrevQuantity();
|
||||
// keyEvent->accept();
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// sourceStepping->applyPrevQuantity();
|
||||
|
||||
keyEvent->accept();
|
||||
}
|
||||
}
|
||||
else if (keyEvent->key() == Qt::Key_PageDown)
|
||||
{
|
||||
if (keyEvent->modifiers() & Qt::ShiftModifier)
|
||||
{
|
||||
sourceStepping->applyNextCase();
|
||||
// keyEvent->accept();
|
||||
// }
|
||||
//}
|
||||
//else if (keyEvent->key() == Qt::Key_PageDown)
|
||||
//{
|
||||
// if (keyEvent->modifiers() & Qt::ShiftModifier)
|
||||
// {
|
||||
// sourceStepping->applyNextCase();
|
||||
|
||||
keyEvent->accept();
|
||||
}
|
||||
else if (keyEvent->modifiers() & Qt::ControlModifier)
|
||||
{
|
||||
sourceStepping->applyNextOtherIdentifier();
|
||||
// keyEvent->accept();
|
||||
// }
|
||||
// else if (keyEvent->modifiers() & Qt::ControlModifier)
|
||||
// {
|
||||
// sourceStepping->applyNextOtherIdentifier();
|
||||
|
||||
keyEvent->accept();
|
||||
}
|
||||
else
|
||||
{
|
||||
sourceStepping->applyNextQuantity();
|
||||
// keyEvent->accept();
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// sourceStepping->applyNextQuantity();
|
||||
|
||||
keyEvent->accept();
|
||||
}
|
||||
}
|
||||
// keyEvent->accept();
|
||||
// }
|
||||
//}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -353,6 +424,48 @@ void RimEnsambleCurveSet::fieldChangedByUi(const caf::PdmFieldHandle* changedFie
|
||||
{
|
||||
loadDataAndUpdate(true);
|
||||
}
|
||||
else if (changedField == &m_yValuesSummaryGroup || changedField == &m_yValuesSelectedVariableDisplayField)
|
||||
{
|
||||
deleteAllCurves();
|
||||
|
||||
RimSummaryPlot* plot;
|
||||
firstAncestorOrThisOfType(plot);
|
||||
if (plot) plot->loadDataAndUpdate();
|
||||
|
||||
RimSummaryCaseCollection* group = m_yValuesSummaryGroup();
|
||||
RifEclipseSummaryAddress addr = m_yValuesSelectedVariableDisplayField();
|
||||
if (group && plot && addr.category() != RifEclipseSummaryAddress::SUMMARY_INVALID)
|
||||
{
|
||||
for (auto& sumCase : group->allSummaryCases())
|
||||
{
|
||||
RimSummaryCurve* curve = new RimSummaryCurve();
|
||||
curve->setSummaryCaseY(sumCase);
|
||||
curve->setSummaryAddressY(addr);
|
||||
|
||||
addCurve(curve);
|
||||
curve->setParentQwtPlotNoReplot(plot->qwtPlot());
|
||||
|
||||
curve->updateCurveVisibility(true);
|
||||
curve->loadDataAndUpdate(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (changedField == &m_ensambleParameter)
|
||||
{
|
||||
|
||||
}
|
||||
else if (changedField == &m_color)
|
||||
{
|
||||
for (auto& curve : m_curves)
|
||||
{
|
||||
curve->setColor(m_color);
|
||||
curve->updateCurveAppearance();
|
||||
}
|
||||
|
||||
RimSummaryPlot* plot;
|
||||
firstAncestorOrThisOfType(plot);
|
||||
if (plot && plot->qwtPlot()) plot->qwtPlot()->replot();
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -360,35 +473,63 @@ void RimEnsambleCurveSet::fieldChangedByUi(const caf::PdmFieldHandle* changedFie
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimEnsambleCurveSet::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
|
||||
{
|
||||
RimSummaryCrossPlot* parentCrossPlot;
|
||||
firstAncestorOrThisOfType(parentCrossPlot);
|
||||
|
||||
if (parentCrossPlot)
|
||||
{
|
||||
{
|
||||
auto group = uiOrdering.addNewGroup("Y Source Stepping");
|
||||
QString curveDataGroupName = "Summary Vector";
|
||||
caf::PdmUiGroup* curveDataGroup = uiOrdering.addNewGroupWithKeyword(curveDataGroupName, "Summary Vector Y");
|
||||
curveDataGroup->add(&m_yValuesSummaryGroup);
|
||||
curveDataGroup->add(&m_yValuesSelectedVariableDisplayField);
|
||||
curveDataGroup->add(&m_yPushButtonSelectSummaryAddress);
|
||||
|
||||
m_ySourceStepping()->uiOrdering(uiConfigName, *group);
|
||||
}
|
||||
QString curveVarSelectionGroupName = "Vector Selection Filter Y";
|
||||
caf::PdmUiGroup* curveVarSelectionGroup = curveDataGroup->addNewGroupWithKeyword("Vector Selection Filter", curveVarSelectionGroupName);
|
||||
curveVarSelectionGroup->setCollapsedByDefault(true);
|
||||
m_yValuesSummaryFilter->uiOrdering(uiConfigName, *curveVarSelectionGroup);
|
||||
curveVarSelectionGroup->add(&m_yValuesUiFilterResultSelection);
|
||||
|
||||
{
|
||||
auto group = uiOrdering.addNewGroup("X Source Stepping");
|
||||
|
||||
m_xSourceStepping()->uiOrdering(uiConfigName, *group);
|
||||
}
|
||||
|
||||
{
|
||||
auto group = uiOrdering.addNewGroup("XY Union Source Stepping");
|
||||
|
||||
m_unionSourceStepping()->uiOrdering(uiConfigName, *group);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
caf::PdmUiGroup* colorsGroup = uiOrdering.addNewGroup("Colors");
|
||||
colorsGroup->add(&m_colorMode);
|
||||
|
||||
if (m_colorMode == SINGLE_COLOR)
|
||||
{
|
||||
auto group = uiOrdering.addNewGroup("Plot Source Stepping");
|
||||
|
||||
m_ySourceStepping()->uiOrdering(uiConfigName, *group);
|
||||
colorsGroup->add(&m_color);
|
||||
}
|
||||
else if (m_colorMode == BY_ENSAMBLE_PARAM)
|
||||
{
|
||||
colorsGroup->add(&m_ensambleParameter);
|
||||
}
|
||||
uiOrdering.skipRemainingFields(true);
|
||||
|
||||
//RimSummaryCrossPlot* parentCrossPlot;
|
||||
//firstAncestorOrThisOfType(parentCrossPlot);
|
||||
|
||||
//if (parentCrossPlot)
|
||||
//{
|
||||
// {
|
||||
// auto group = uiOrdering.addNewGroup("Y Source Stepping");
|
||||
|
||||
// m_ySourceStepping()->uiOrdering(uiConfigName, *group);
|
||||
// }
|
||||
|
||||
// {
|
||||
// auto group = uiOrdering.addNewGroup("X Source Stepping");
|
||||
|
||||
// m_xSourceStepping()->uiOrdering(uiConfigName, *group);
|
||||
// }
|
||||
|
||||
// {
|
||||
// auto group = uiOrdering.addNewGroup("XY Union Source Stepping");
|
||||
|
||||
// m_unionSourceStepping()->uiOrdering(uiConfigName, *group);
|
||||
// }
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// auto group = uiOrdering.addNewGroup("Plot Source Stepping");
|
||||
|
||||
// m_ySourceStepping()->uiOrdering(uiConfigName, *group);
|
||||
//}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -410,3 +551,101 @@ void RimEnsambleCurveSet::defineObjectEditorAttribute(QString uiConfigName, caf:
|
||||
myAttr->currentObject = m_currentSummaryCurve.p();
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QList<caf::PdmOptionItemInfo> RimEnsambleCurveSet::calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool* useOptionsOnly)
|
||||
{
|
||||
QList<caf::PdmOptionItemInfo> options;
|
||||
|
||||
if (fieldNeedingOptions == &m_yValuesSummaryGroup)
|
||||
{
|
||||
RimProject* proj = RiaApplication::instance()->project();
|
||||
std::vector<RimSummaryCaseCollection*> groups = proj->summaryGroups();
|
||||
|
||||
for (RimSummaryCaseCollection* group : groups)
|
||||
{
|
||||
options.push_back(caf::PdmOptionItemInfo(group->name(), group));
|
||||
}
|
||||
|
||||
options.push_front(caf::PdmOptionItemInfo("None", nullptr));
|
||||
}
|
||||
else if (fieldNeedingOptions == &m_ensambleParameter)
|
||||
{
|
||||
RimSummaryCaseCollection* group = m_yValuesSummaryGroup;
|
||||
|
||||
options.push_back(caf::PdmOptionItemInfo("None", ""));
|
||||
|
||||
if (group)
|
||||
{
|
||||
std::set<QString> paramSet;
|
||||
for (RimSummaryCase* rimCase : group->allSummaryCases())
|
||||
{
|
||||
if (!rimCase->caseRealizationParameters().isNull())
|
||||
{
|
||||
auto ps = rimCase->caseRealizationParameters()->parameters();
|
||||
for (auto p : ps) paramSet.insert(p.first);
|
||||
}
|
||||
}
|
||||
|
||||
for (auto param : paramSet)
|
||||
{
|
||||
options.push_back(caf::PdmOptionItemInfo(param, param));
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (fieldNeedingOptions == &m_yValuesSelectedVariableDisplayField)
|
||||
{
|
||||
RimSummaryCaseCollection* group = m_yValuesSummaryGroup;
|
||||
std::map<QString, RifEclipseSummaryAddress> allOpts;
|
||||
|
||||
if (group)
|
||||
{
|
||||
for (auto& sumCase : group->allSummaryCases())
|
||||
{
|
||||
std::map<QString, RifEclipseSummaryAddress> opts;
|
||||
RimSummaryFilter filter;
|
||||
getOptionsForSummaryAddresses(&opts, sumCase, &filter);
|
||||
|
||||
for (auto& opt : opts) allOpts.insert(opt);
|
||||
}
|
||||
}
|
||||
|
||||
for (const auto& opt : allOpts) options.push_back(caf::PdmOptionItemInfo(opt.first, QVariant::fromValue(opt.second)));
|
||||
options.push_front(caf::PdmOptionItemInfo(RiaDefines::undefinedResultName(), QVariant::fromValue(RifEclipseSummaryAddress())));
|
||||
}
|
||||
|
||||
//else if (fieldNeedingOptions == &m_yValuesUiFilterResultSelection)
|
||||
//{
|
||||
// appendOptionItemsForSummaryAddresses(&options, m_yValuesSummaryCase(), m_yValuesSummaryFilter());
|
||||
//}
|
||||
|
||||
return options;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimEnsambleCurveSet::getOptionsForSummaryAddresses(std::map<QString, RifEclipseSummaryAddress>* options,
|
||||
RimSummaryCase* summaryCase,
|
||||
RimSummaryFilter* summaryFilter)
|
||||
{
|
||||
if (summaryCase)
|
||||
{
|
||||
RifSummaryReaderInterface* reader = summaryCase->summaryReader();
|
||||
if (reader)
|
||||
{
|
||||
const std::vector<RifEclipseSummaryAddress> allAddresses = reader->allResultAddresses();
|
||||
|
||||
for (auto& address : allAddresses)
|
||||
{
|
||||
if (summaryFilter && !summaryFilter->isIncludedByFilter(address)) continue;
|
||||
|
||||
std::string name = address.uiText();
|
||||
QString s = QString::fromStdString(name);
|
||||
options->insert(std::make_pair(s, address));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -19,16 +19,24 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "RifEclipseSummaryAddress.h"
|
||||
|
||||
#include "cafPdmFieldCvfColor.h"
|
||||
#include "cafPdmChildArrayField.h"
|
||||
#include "cafPdmChildField.h"
|
||||
#include "cafPdmField.h"
|
||||
#include "cafPdmObject.h"
|
||||
#include "cafPdmPtrArrayField.h"
|
||||
#include "cafPdmPtrField.h"
|
||||
#include "cafAppEnum.h"
|
||||
|
||||
class QwtPlot;
|
||||
class QwtPlotCurve;
|
||||
class RimSummaryCase;
|
||||
class RimSummaryCaseCollection;
|
||||
class RimSummaryCurve;
|
||||
class RimSummaryAddress;
|
||||
class RimSummaryFilter;
|
||||
class RimSummaryPlotSourceStepping;
|
||||
class QKeyEvent;
|
||||
|
||||
@ -40,6 +48,8 @@ class RimEnsambleCurveSet : public caf::PdmObject
|
||||
CAF_PDM_HEADER_INIT;
|
||||
|
||||
public:
|
||||
enum ColorMode {SINGLE_COLOR, BY_ENSAMBLE_PARAM};
|
||||
|
||||
RimEnsambleCurveSet();
|
||||
virtual ~RimEnsambleCurveSet();
|
||||
|
||||
@ -63,7 +73,7 @@ public:
|
||||
|
||||
void setCurrentSummaryCurve(RimSummaryCurve* curve);
|
||||
|
||||
std::vector<caf::PdmFieldHandle*> fieldsToShowInToolbar();
|
||||
//std::vector<caf::PdmFieldHandle*> fieldsToShowInToolbar();
|
||||
|
||||
void handleKeyPressEvent(QKeyEvent* keyEvent);
|
||||
|
||||
@ -72,19 +82,36 @@ private:
|
||||
virtual void defineObjectEditorAttribute(QString uiConfigName,
|
||||
caf::PdmUiEditorAttribute* attribute) override;
|
||||
|
||||
virtual QList<caf::PdmOptionItemInfo> calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool* useOptionsOnly);
|
||||
virtual void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override;
|
||||
|
||||
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField,
|
||||
const QVariant& oldValue, const QVariant& newValue) override;
|
||||
|
||||
static void getOptionsForSummaryAddresses(std::map<QString, RifEclipseSummaryAddress>* options,
|
||||
RimSummaryCase* summaryCase,
|
||||
RimSummaryFilter* summaryFilter);
|
||||
|
||||
private:
|
||||
caf::PdmField<bool> m_showCurves;
|
||||
caf::PdmChildArrayField<RimSummaryCurve*> m_curves;
|
||||
caf::PdmChildArrayField<RimSummaryCurve*> m_curves; // Convert to PtrField ?
|
||||
|
||||
caf::PdmChildField<RimSummaryPlotSourceStepping*> m_ySourceStepping;
|
||||
caf::PdmChildField<RimSummaryPlotSourceStepping*> m_xSourceStepping;
|
||||
caf::PdmChildField<RimSummaryPlotSourceStepping*> m_unionSourceStepping;
|
||||
//caf::PdmChildField<RimSummaryPlotSourceStepping*> m_ySourceStepping;
|
||||
//caf::PdmChildField<RimSummaryPlotSourceStepping*> m_xSourceStepping;
|
||||
//caf::PdmChildField<RimSummaryPlotSourceStepping*> m_unionSourceStepping;
|
||||
|
||||
caf::PdmPointer<RimSummaryCurve> m_currentSummaryCurve;
|
||||
|
||||
// Y values
|
||||
caf::PdmPtrField<RimSummaryCaseCollection*> m_yValuesSummaryGroup;
|
||||
caf::PdmChildField<RimSummaryAddress*> m_yValuesCurveVariable;
|
||||
caf::PdmField<RifEclipseSummaryAddress> m_yValuesSelectedVariableDisplayField;
|
||||
caf::PdmChildField<RimSummaryFilter*> m_yValuesSummaryFilter;
|
||||
caf::PdmField<RifEclipseSummaryAddress> m_yValuesUiFilterResultSelection;
|
||||
caf::PdmField<bool> m_yPushButtonSelectSummaryAddress;
|
||||
|
||||
caf::PdmField<caf::AppEnum<ColorMode>> m_colorMode;
|
||||
caf::PdmField<cvf::Color3f> m_color;
|
||||
caf::PdmField<QString> m_ensambleParameter;
|
||||
};
|
||||
|
||||
|
@ -23,6 +23,7 @@
|
||||
#include "RifReaderEclipseSummary.h"
|
||||
|
||||
#include "RimProject.h"
|
||||
#include "RimEnsambleCurveSet.h"
|
||||
#include "RimSummaryCase.h"
|
||||
#include "RimSummaryCrossPlot.h"
|
||||
#include "RimSummaryCurve.h"
|
||||
@ -43,35 +44,35 @@ CAF_PDM_SOURCE_INIT(RimEnsambleCurveSetCollection, "RimEnsambleCurveSetCollectio
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimEnsambleCurveSetCollection::RimEnsambleCurveSetCollection()
|
||||
{
|
||||
CAF_PDM_InitObject("Summary Curves", ":/SummaryCurveFilter16x16.png", "", "");
|
||||
CAF_PDM_InitObject("Ensamble Curve Sets", ":/SummaryCurveFilter16x16.png", "", "");
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&m_curves, "CollectionCurves", "Collection Curves", "", "", "");
|
||||
m_curves.uiCapability()->setUiHidden(true);
|
||||
m_curves.uiCapability()->setUiTreeChildrenHidden(false);
|
||||
CAF_PDM_InitFieldNoDefault(&m_curveSets, "EnsambleCurveSets", "Ensamble Curve Sets", "", "", "");
|
||||
m_curveSets.uiCapability()->setUiHidden(true);
|
||||
m_curveSets.uiCapability()->setUiTreeChildrenHidden(false);
|
||||
|
||||
CAF_PDM_InitField(&m_showCurves, "IsActive", true, "Show Curves", "", "", "");
|
||||
m_showCurves.uiCapability()->setUiHidden(true);
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&m_ySourceStepping, "YSourceStepping", "", "", "", "");
|
||||
m_ySourceStepping = new RimSummaryPlotSourceStepping;
|
||||
m_ySourceStepping->setSourceSteppingType(RimSummaryPlotSourceStepping::Y_AXIS);
|
||||
m_ySourceStepping.uiCapability()->setUiHidden(true);
|
||||
m_ySourceStepping.uiCapability()->setUiTreeChildrenHidden(true);
|
||||
m_ySourceStepping.xmlCapability()->disableIO();
|
||||
//CAF_PDM_InitFieldNoDefault(&m_ySourceStepping, "YSourceStepping", "", "", "", "");
|
||||
//m_ySourceStepping = new RimSummaryPlotSourceStepping;
|
||||
//m_ySourceStepping->setSourceSteppingType(RimSummaryPlotSourceStepping::Y_AXIS);
|
||||
//m_ySourceStepping.uiCapability()->setUiHidden(true);
|
||||
//m_ySourceStepping.uiCapability()->setUiTreeChildrenHidden(true);
|
||||
//m_ySourceStepping.xmlCapability()->disableIO();
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&m_xSourceStepping, "XSourceStepping", "", "", "", "");
|
||||
m_xSourceStepping = new RimSummaryPlotSourceStepping;
|
||||
m_xSourceStepping->setSourceSteppingType(RimSummaryPlotSourceStepping::X_AXIS);
|
||||
m_xSourceStepping.uiCapability()->setUiHidden(true);
|
||||
m_xSourceStepping.uiCapability()->setUiTreeChildrenHidden(true);
|
||||
m_xSourceStepping.xmlCapability()->disableIO();
|
||||
//CAF_PDM_InitFieldNoDefault(&m_xSourceStepping, "XSourceStepping", "", "", "", "");
|
||||
//m_xSourceStepping = new RimSummaryPlotSourceStepping;
|
||||
//m_xSourceStepping->setSourceSteppingType(RimSummaryPlotSourceStepping::X_AXIS);
|
||||
//m_xSourceStepping.uiCapability()->setUiHidden(true);
|
||||
//m_xSourceStepping.uiCapability()->setUiTreeChildrenHidden(true);
|
||||
//m_xSourceStepping.xmlCapability()->disableIO();
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&m_unionSourceStepping, "UnionSourceStepping", "", "", "", "");
|
||||
m_unionSourceStepping = new RimSummaryPlotSourceStepping;
|
||||
m_unionSourceStepping->setSourceSteppingType(RimSummaryPlotSourceStepping::UNION_X_Y_AXIS);
|
||||
m_unionSourceStepping.uiCapability()->setUiHidden(true);
|
||||
m_unionSourceStepping.uiCapability()->setUiTreeChildrenHidden(true);
|
||||
m_unionSourceStepping.xmlCapability()->disableIO();
|
||||
//CAF_PDM_InitFieldNoDefault(&m_unionSourceStepping, "UnionSourceStepping", "", "", "", "");
|
||||
//m_unionSourceStepping = new RimSummaryPlotSourceStepping;
|
||||
//m_unionSourceStepping->setSourceSteppingType(RimSummaryPlotSourceStepping::UNION_X_Y_AXIS);
|
||||
//m_unionSourceStepping.uiCapability()->setUiHidden(true);
|
||||
//m_unionSourceStepping.uiCapability()->setUiTreeChildrenHidden(true);
|
||||
//m_unionSourceStepping.xmlCapability()->disableIO();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -79,13 +80,13 @@ RimEnsambleCurveSetCollection::RimEnsambleCurveSetCollection()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimEnsambleCurveSetCollection::~RimEnsambleCurveSetCollection()
|
||||
{
|
||||
m_curves.deleteAllChildObjects();
|
||||
m_curveSets.deleteAllChildObjects();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RimEnsambleCurveSetCollection::isCurvesVisible()
|
||||
bool RimEnsambleCurveSetCollection::isCurveSetsVisible()
|
||||
{
|
||||
return m_showCurves();
|
||||
}
|
||||
@ -95,36 +96,28 @@ bool RimEnsambleCurveSetCollection::isCurvesVisible()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimEnsambleCurveSetCollection::loadDataAndUpdate(bool updateParentPlot)
|
||||
{
|
||||
for (RimSummaryCurve* curve : m_curves)
|
||||
for (RimEnsambleCurveSet* curveSet : m_curveSets)
|
||||
{
|
||||
curve->loadDataAndUpdate(false);
|
||||
curve->updateQwtPlotAxis();
|
||||
curveSet->loadDataAndUpdate(updateParentPlot);
|
||||
}
|
||||
|
||||
if ( updateParentPlot )
|
||||
{
|
||||
RimSummaryPlot* parentPlot;
|
||||
firstAncestorOrThisOfTypeAsserted(parentPlot);
|
||||
if ( parentPlot->qwtPlot() )
|
||||
{
|
||||
parentPlot->qwtPlot()->updateLegend();
|
||||
parentPlot->updateAxes();
|
||||
parentPlot->updateZoomInQwt();
|
||||
}
|
||||
}
|
||||
}
|
||||
//for (RimSummaryCurve* curve : m_curves)
|
||||
//{
|
||||
// curve->loadDataAndUpdate(false);
|
||||
// curve->updateQwtPlotAxis();
|
||||
//}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimEnsambleCurveSetCollection::setParentQwtPlotAndReplot(QwtPlot* plot)
|
||||
{
|
||||
for (RimSummaryCurve* curve : m_curves)
|
||||
{
|
||||
curve->setParentQwtPlotNoReplot(plot);
|
||||
}
|
||||
|
||||
if (plot) plot->replot();
|
||||
//if ( updateParentPlot )
|
||||
//{
|
||||
// RimSummaryPlot* parentPlot;
|
||||
// firstAncestorOrThisOfTypeAsserted(parentPlot);
|
||||
// if ( parentPlot->qwtPlot() )
|
||||
// {
|
||||
// parentPlot->qwtPlot()->updateLegend();
|
||||
// parentPlot->updateAxes();
|
||||
// parentPlot->updateZoomInQwt();
|
||||
// }
|
||||
//}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -132,69 +125,53 @@ void RimEnsambleCurveSetCollection::setParentQwtPlotAndReplot(QwtPlot* plot)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimEnsambleCurveSetCollection::detachQwtCurves()
|
||||
{
|
||||
for (RimSummaryCurve* curve : m_curves)
|
||||
for(const auto& curveSet : m_curveSets)
|
||||
{
|
||||
curve->detachQwtCurve();
|
||||
curveSet->detachQwtCurves();
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimSummaryCurve* RimEnsambleCurveSetCollection::findRimCurveFromQwtCurve(const QwtPlotCurve* qwtCurve) const
|
||||
void RimEnsambleCurveSetCollection::addCurveSet(RimEnsambleCurveSet* curveSet)
|
||||
{
|
||||
for (RimSummaryCurve* rimCurve : m_curves)
|
||||
if (curveSet)
|
||||
{
|
||||
if (rimCurve->qwtPlotCurve() == qwtCurve)
|
||||
{
|
||||
return rimCurve;
|
||||
}
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimEnsambleCurveSetCollection::addCurve(RimSummaryCurve* curve)
|
||||
{
|
||||
if (curve)
|
||||
{
|
||||
m_curves.push_back(curve);
|
||||
m_curveSets.push_back(curveSet);
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimEnsambleCurveSetCollection::deleteCurve(RimSummaryCurve* curve)
|
||||
void RimEnsambleCurveSetCollection::deleteCurveSet(RimEnsambleCurveSet* curveSet)
|
||||
{
|
||||
if (curve)
|
||||
if (curveSet)
|
||||
{
|
||||
m_curves.removeChildObject(curve);
|
||||
delete curve;
|
||||
m_curveSets.removeChildObject(curveSet);
|
||||
delete curveSet;
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<RimSummaryCurve*> RimEnsambleCurveSetCollection::curves() const
|
||||
std::vector<RimEnsambleCurveSet*> RimEnsambleCurveSetCollection::curveSets() const
|
||||
{
|
||||
return m_curves.childObjects();
|
||||
return m_curveSets.childObjects();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<RimSummaryCurve*> RimEnsambleCurveSetCollection::visibleCurves() const
|
||||
std::vector<RimEnsambleCurveSet*> RimEnsambleCurveSetCollection::visibleCurveSets() const
|
||||
{
|
||||
std::vector<RimSummaryCurve*> visible;
|
||||
std::vector<RimEnsambleCurveSet*> visible;
|
||||
|
||||
for (auto c : m_curves)
|
||||
for (auto c : m_curveSets)
|
||||
{
|
||||
if (c->isCurveVisible())
|
||||
if (c->isCurvesVisible())
|
||||
{
|
||||
visible.push_back(c);
|
||||
}
|
||||
@ -203,146 +180,146 @@ std::vector<RimSummaryCurve*> RimEnsambleCurveSetCollection::visibleCurves() con
|
||||
return visible;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimEnsambleCurveSetCollection::deleteCurvesAssosiatedWithCase(RimSummaryCase* summaryCase)
|
||||
{
|
||||
std::vector<RimSummaryCurve*> summaryCurvesToDelete;
|
||||
|
||||
for (RimSummaryCurve* summaryCurve : m_curves)
|
||||
{
|
||||
if (!summaryCurve) continue;
|
||||
if (!summaryCurve->summaryCaseY()) continue;
|
||||
|
||||
if (summaryCurve->summaryCaseY() == summaryCase)
|
||||
{
|
||||
summaryCurvesToDelete.push_back(summaryCurve);
|
||||
}
|
||||
}
|
||||
for (RimSummaryCurve* summaryCurve : summaryCurvesToDelete)
|
||||
{
|
||||
m_curves.removeChildObject(summaryCurve);
|
||||
delete summaryCurve;
|
||||
}
|
||||
|
||||
}
|
||||
////--------------------------------------------------------------------------------------------------
|
||||
/////
|
||||
////--------------------------------------------------------------------------------------------------
|
||||
//void RimEnsambleCurveSetCollection::deleteCurvesAssosiatedWithCase(RimSummaryCase* summaryCase)
|
||||
//{
|
||||
// std::vector<RimSummaryCurve*> summaryCurvesToDelete;
|
||||
//
|
||||
// for (RimSummaryCurve* summaryCurve : m_curves)
|
||||
// {
|
||||
// if (!summaryCurve) continue;
|
||||
// if (!summaryCurve->summaryCaseY()) continue;
|
||||
//
|
||||
// if (summaryCurve->summaryCaseY() == summaryCase)
|
||||
// {
|
||||
// summaryCurvesToDelete.push_back(summaryCurve);
|
||||
// }
|
||||
// }
|
||||
// for (RimSummaryCurve* summaryCurve : summaryCurvesToDelete)
|
||||
// {
|
||||
// m_curves.removeChildObject(summaryCurve);
|
||||
// delete summaryCurve;
|
||||
// }
|
||||
//
|
||||
//}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimEnsambleCurveSetCollection::deleteAllCurves()
|
||||
void RimEnsambleCurveSetCollection::deleteAllCurveSets()
|
||||
{
|
||||
m_curves.deleteAllChildObjects();
|
||||
m_curveSets.deleteAllChildObjects();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimEnsambleCurveSetCollection::updateCaseNameHasChanged()
|
||||
{
|
||||
for (RimSummaryCurve* curve : m_curves)
|
||||
{
|
||||
curve->updateCurveNameNoLegendUpdate();
|
||||
curve->updateConnectedEditors();
|
||||
}
|
||||
|
||||
RimSummaryPlot* parentPlot;
|
||||
firstAncestorOrThisOfTypeAsserted(parentPlot);
|
||||
if (parentPlot->qwtPlot()) parentPlot->qwtPlot()->updateLegend();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimEnsambleCurveSetCollection::setCurrentSummaryCurve(RimSummaryCurve* curve)
|
||||
{
|
||||
m_currentSummaryCurve = curve;
|
||||
|
||||
updateConnectedEditors();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<caf::PdmFieldHandle*> RimEnsambleCurveSetCollection::fieldsToShowInToolbar()
|
||||
{
|
||||
RimSummaryCrossPlot* parentCrossPlot;
|
||||
firstAncestorOrThisOfType(parentCrossPlot);
|
||||
|
||||
if (parentCrossPlot)
|
||||
{
|
||||
return m_unionSourceStepping->fieldsToShowInToolbar();
|
||||
}
|
||||
|
||||
return m_ySourceStepping()->fieldsToShowInToolbar();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimEnsambleCurveSetCollection::handleKeyPressEvent(QKeyEvent* keyEvent)
|
||||
{
|
||||
if (!keyEvent) return;
|
||||
|
||||
RimSummaryPlotSourceStepping* sourceStepping = nullptr;
|
||||
{
|
||||
RimSummaryCrossPlot* summaryCrossPlot = nullptr;
|
||||
this->firstAncestorOrThisOfType(summaryCrossPlot);
|
||||
|
||||
if (summaryCrossPlot)
|
||||
{
|
||||
sourceStepping = m_unionSourceStepping();
|
||||
}
|
||||
else
|
||||
{
|
||||
sourceStepping = m_ySourceStepping();
|
||||
}
|
||||
}
|
||||
|
||||
if (keyEvent->key() == Qt::Key_PageUp)
|
||||
{
|
||||
if (keyEvent->modifiers() & Qt::ShiftModifier)
|
||||
{
|
||||
sourceStepping->applyPrevCase();
|
||||
|
||||
keyEvent->accept();
|
||||
}
|
||||
else if (keyEvent->modifiers() & Qt::ControlModifier)
|
||||
{
|
||||
sourceStepping->applyPrevOtherIdentifier();
|
||||
|
||||
keyEvent->accept();
|
||||
}
|
||||
else
|
||||
{
|
||||
sourceStepping->applyPrevQuantity();
|
||||
|
||||
keyEvent->accept();
|
||||
}
|
||||
}
|
||||
else if (keyEvent->key() == Qt::Key_PageDown)
|
||||
{
|
||||
if (keyEvent->modifiers() & Qt::ShiftModifier)
|
||||
{
|
||||
sourceStepping->applyNextCase();
|
||||
|
||||
keyEvent->accept();
|
||||
}
|
||||
else if (keyEvent->modifiers() & Qt::ControlModifier)
|
||||
{
|
||||
sourceStepping->applyNextOtherIdentifier();
|
||||
|
||||
keyEvent->accept();
|
||||
}
|
||||
else
|
||||
{
|
||||
sourceStepping->applyNextQuantity();
|
||||
|
||||
keyEvent->accept();
|
||||
}
|
||||
}
|
||||
}
|
||||
////--------------------------------------------------------------------------------------------------
|
||||
/////
|
||||
////--------------------------------------------------------------------------------------------------
|
||||
//void RimEnsambleCurveSetCollection::updateCaseNameHasChanged()
|
||||
//{
|
||||
// for (RimSummaryCurve* curve : m_curves)
|
||||
// {
|
||||
// curve->updateCurveNameNoLegendUpdate();
|
||||
// curve->updateConnectedEditors();
|
||||
// }
|
||||
//
|
||||
// RimSummaryPlot* parentPlot;
|
||||
// firstAncestorOrThisOfTypeAsserted(parentPlot);
|
||||
// if (parentPlot->qwtPlot()) parentPlot->qwtPlot()->updateLegend();
|
||||
//}
|
||||
//
|
||||
////--------------------------------------------------------------------------------------------------
|
||||
/////
|
||||
////--------------------------------------------------------------------------------------------------
|
||||
//void RimEnsambleCurveSetCollection::setCurrentSummaryCurve(RimSummaryCurve* curve)
|
||||
//{
|
||||
// m_currentSummaryCurve = curve;
|
||||
//
|
||||
// updateConnectedEditors();
|
||||
//}
|
||||
//
|
||||
////--------------------------------------------------------------------------------------------------
|
||||
/////
|
||||
////--------------------------------------------------------------------------------------------------
|
||||
//std::vector<caf::PdmFieldHandle*> RimEnsambleCurveSetCollection::fieldsToShowInToolbar()
|
||||
//{
|
||||
// RimSummaryCrossPlot* parentCrossPlot;
|
||||
// firstAncestorOrThisOfType(parentCrossPlot);
|
||||
//
|
||||
// if (parentCrossPlot)
|
||||
// {
|
||||
// return m_unionSourceStepping->fieldsToShowInToolbar();
|
||||
// }
|
||||
//
|
||||
// return m_ySourceStepping()->fieldsToShowInToolbar();
|
||||
//}
|
||||
//
|
||||
////--------------------------------------------------------------------------------------------------
|
||||
/////
|
||||
////--------------------------------------------------------------------------------------------------
|
||||
//void RimEnsambleCurveSetCollection::handleKeyPressEvent(QKeyEvent* keyEvent)
|
||||
//{
|
||||
// if (!keyEvent) return;
|
||||
//
|
||||
// RimSummaryPlotSourceStepping* sourceStepping = nullptr;
|
||||
// {
|
||||
// RimSummaryCrossPlot* summaryCrossPlot = nullptr;
|
||||
// this->firstAncestorOrThisOfType(summaryCrossPlot);
|
||||
//
|
||||
// if (summaryCrossPlot)
|
||||
// {
|
||||
// sourceStepping = m_unionSourceStepping();
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// sourceStepping = m_ySourceStepping();
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// if (keyEvent->key() == Qt::Key_PageUp)
|
||||
// {
|
||||
// if (keyEvent->modifiers() & Qt::ShiftModifier)
|
||||
// {
|
||||
// sourceStepping->applyPrevCase();
|
||||
//
|
||||
// keyEvent->accept();
|
||||
// }
|
||||
// else if (keyEvent->modifiers() & Qt::ControlModifier)
|
||||
// {
|
||||
// sourceStepping->applyPrevOtherIdentifier();
|
||||
//
|
||||
// keyEvent->accept();
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// sourceStepping->applyPrevQuantity();
|
||||
//
|
||||
// keyEvent->accept();
|
||||
// }
|
||||
// }
|
||||
// else if (keyEvent->key() == Qt::Key_PageDown)
|
||||
// {
|
||||
// if (keyEvent->modifiers() & Qt::ShiftModifier)
|
||||
// {
|
||||
// sourceStepping->applyNextCase();
|
||||
//
|
||||
// keyEvent->accept();
|
||||
// }
|
||||
// else if (keyEvent->modifiers() & Qt::ControlModifier)
|
||||
// {
|
||||
// sourceStepping->applyNextOtherIdentifier();
|
||||
//
|
||||
// keyEvent->accept();
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// sourceStepping->applyNextQuantity();
|
||||
//
|
||||
// keyEvent->accept();
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
@ -360,35 +337,35 @@ void RimEnsambleCurveSetCollection::fieldChangedByUi(const caf::PdmFieldHandle*
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimEnsambleCurveSetCollection::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
|
||||
{
|
||||
RimSummaryCrossPlot* parentCrossPlot;
|
||||
firstAncestorOrThisOfType(parentCrossPlot);
|
||||
//RimSummaryCrossPlot* parentCrossPlot;
|
||||
//firstAncestorOrThisOfType(parentCrossPlot);
|
||||
|
||||
if (parentCrossPlot)
|
||||
{
|
||||
{
|
||||
auto group = uiOrdering.addNewGroup("Y Source Stepping");
|
||||
//if (parentCrossPlot)
|
||||
//{
|
||||
// {
|
||||
// auto group = uiOrdering.addNewGroup("Y Source Stepping");
|
||||
|
||||
m_ySourceStepping()->uiOrdering(uiConfigName, *group);
|
||||
}
|
||||
// m_ySourceStepping()->uiOrdering(uiConfigName, *group);
|
||||
// }
|
||||
|
||||
{
|
||||
auto group = uiOrdering.addNewGroup("X Source Stepping");
|
||||
// {
|
||||
// auto group = uiOrdering.addNewGroup("X Source Stepping");
|
||||
|
||||
m_xSourceStepping()->uiOrdering(uiConfigName, *group);
|
||||
}
|
||||
// m_xSourceStepping()->uiOrdering(uiConfigName, *group);
|
||||
// }
|
||||
|
||||
{
|
||||
auto group = uiOrdering.addNewGroup("XY Union Source Stepping");
|
||||
// {
|
||||
// auto group = uiOrdering.addNewGroup("XY Union Source Stepping");
|
||||
|
||||
m_unionSourceStepping()->uiOrdering(uiConfigName, *group);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
auto group = uiOrdering.addNewGroup("Plot Source Stepping");
|
||||
// m_unionSourceStepping()->uiOrdering(uiConfigName, *group);
|
||||
// }
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// auto group = uiOrdering.addNewGroup("Plot Source Stepping");
|
||||
|
||||
m_ySourceStepping()->uiOrdering(uiConfigName, *group);
|
||||
}
|
||||
// m_ySourceStepping()->uiOrdering(uiConfigName, *group);
|
||||
//}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -404,9 +381,9 @@ caf::PdmFieldHandle* RimEnsambleCurveSetCollection::objectToggleField()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimEnsambleCurveSetCollection::defineObjectEditorAttribute(QString uiConfigName, caf::PdmUiEditorAttribute* attribute)
|
||||
{
|
||||
caf::PdmUiTreeViewEditorAttribute* myAttr = dynamic_cast<caf::PdmUiTreeViewEditorAttribute*>(attribute);
|
||||
if (myAttr && m_currentSummaryCurve.notNull())
|
||||
{
|
||||
myAttr->currentObject = m_currentSummaryCurve.p();
|
||||
}
|
||||
//caf::PdmUiTreeViewEditorAttribute* myAttr = dynamic_cast<caf::PdmUiTreeViewEditorAttribute*>(attribute);
|
||||
//if (myAttr && m_currentSummaryCurve.notNull())
|
||||
//{
|
||||
// myAttr->currentObject = m_currentSummaryCurve.p();
|
||||
//}
|
||||
}
|
||||
|
@ -25,12 +25,8 @@
|
||||
#include "cafPdmObject.h"
|
||||
#include "cafPdmPtrArrayField.h"
|
||||
|
||||
class QwtPlot;
|
||||
class QwtPlotCurve;
|
||||
class RimSummaryCase;
|
||||
class RimSummaryCurve;
|
||||
class RimSummaryPlotSourceStepping;
|
||||
class QKeyEvent;
|
||||
class RimEnsambleCurveSet;
|
||||
|
||||
//==================================================================================================
|
||||
///
|
||||
@ -43,29 +39,29 @@ public:
|
||||
RimEnsambleCurveSetCollection();
|
||||
virtual ~RimEnsambleCurveSetCollection();
|
||||
|
||||
bool isCurvesVisible();
|
||||
bool isCurveSetsVisible();
|
||||
|
||||
void loadDataAndUpdate(bool updateParentPlot);
|
||||
void setParentQwtPlotAndReplot(QwtPlot* plot);
|
||||
//void setParentQwtPlotAndReplot(QwtPlot* plot);
|
||||
void detachQwtCurves();
|
||||
|
||||
RimSummaryCurve* findRimCurveFromQwtCurve(const QwtPlotCurve* qwtCurve) const;
|
||||
//RimSummaryCurve* findRimCurveFromQwtCurve(const QwtPlotCurve* qwtCurve) const;
|
||||
|
||||
void addCurve(RimSummaryCurve* curve);
|
||||
void deleteCurve(RimSummaryCurve* curve);
|
||||
void addCurveSet(RimEnsambleCurveSet* curveSet);
|
||||
void deleteCurveSet(RimEnsambleCurveSet* curveSet);
|
||||
|
||||
std::vector<RimSummaryCurve*> curves() const;
|
||||
std::vector<RimSummaryCurve*> visibleCurves() const;
|
||||
std::vector<RimEnsambleCurveSet*> curveSets() const;
|
||||
std::vector<RimEnsambleCurveSet*> visibleCurveSets() const;
|
||||
|
||||
void deleteCurvesAssosiatedWithCase(RimSummaryCase* summaryCase);
|
||||
void deleteAllCurves();
|
||||
void updateCaseNameHasChanged();
|
||||
//void deleteCurvesAssosiatedWithCase(RimSummaryCase* summaryCase);
|
||||
void deleteAllCurveSets();
|
||||
//void updateCaseNameHasChanged();
|
||||
|
||||
void setCurrentSummaryCurve(RimSummaryCurve* curve);
|
||||
//void setCurrentSummaryCurve(RimSummaryCurve* curve);
|
||||
|
||||
std::vector<caf::PdmFieldHandle*> fieldsToShowInToolbar();
|
||||
//std::vector<caf::PdmFieldHandle*> fieldsToShowInToolbar();
|
||||
|
||||
void handleKeyPressEvent(QKeyEvent* keyEvent);
|
||||
//void handleKeyPressEvent(QKeyEvent* keyEvent);
|
||||
|
||||
private:
|
||||
caf::PdmFieldHandle* objectToggleField();
|
||||
@ -78,13 +74,9 @@ private:
|
||||
const QVariant& oldValue, const QVariant& newValue) override;
|
||||
|
||||
private:
|
||||
caf::PdmField<bool> m_showCurves;
|
||||
caf::PdmChildArrayField<RimSummaryCurve*> m_curves;
|
||||
caf::PdmField<bool> m_showCurves;
|
||||
caf::PdmChildArrayField<RimEnsambleCurveSet*> m_curveSets;
|
||||
|
||||
caf::PdmChildField<RimSummaryPlotSourceStepping*> m_ySourceStepping;
|
||||
caf::PdmChildField<RimSummaryPlotSourceStepping*> m_xSourceStepping;
|
||||
caf::PdmChildField<RimSummaryPlotSourceStepping*> m_unionSourceStepping;
|
||||
|
||||
caf::PdmPointer<RimSummaryCurve> m_currentSummaryCurve;
|
||||
//caf::PdmPointer<RimSummaryCurve> m_currentSummaryCurve;
|
||||
};
|
||||
|
||||
|
@ -22,12 +22,14 @@
|
||||
#include "RiaSummaryCurveAnalyzer.h"
|
||||
|
||||
#include "RimAsciiDataCurve.h"
|
||||
#include "RimEnsambleCurveSet.h"
|
||||
#include "RimGridTimeHistoryCurve.h"
|
||||
#include "RimProject.h"
|
||||
#include "RimSummaryAxisProperties.h"
|
||||
#include "RimSummaryCase.h"
|
||||
#include "RimSummaryCurve.h"
|
||||
#include "RimSummaryCurveCollection.h"
|
||||
#include "RimEnsambleCurveSetCollection.h"
|
||||
#include "RimSummaryCurveFilter.h"
|
||||
#include "RimSummaryCurvesCalculator.h"
|
||||
#include "RimSummaryPlotCollection.h"
|
||||
@ -83,6 +85,10 @@ RimSummaryPlot::RimSummaryPlot()
|
||||
m_summaryCurveCollection.uiCapability()->setUiTreeHidden(true);
|
||||
m_summaryCurveCollection = new RimSummaryCurveCollection;
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&m_ensambleCurveSetCollection, "EnsambleCurveSetCollection", "", "", "", "");
|
||||
m_ensambleCurveSetCollection.uiCapability()->setUiTreeHidden(true);
|
||||
m_ensambleCurveSetCollection = new RimEnsambleCurveSetCollection();
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&m_summaryCurves_OBSOLETE, "SummaryCurves", "", "", "", "");
|
||||
m_summaryCurves_OBSOLETE.uiCapability()->setUiTreeHidden(true);
|
||||
|
||||
@ -133,6 +139,7 @@ RimSummaryPlot::~RimSummaryPlot()
|
||||
m_summaryCurves_OBSOLETE.deleteAllChildObjects();
|
||||
m_curveFilters_OBSOLETE.deleteAllChildObjects();
|
||||
delete m_summaryCurveCollection;
|
||||
delete m_ensambleCurveSetCollection;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -937,6 +944,18 @@ void RimSummaryPlot::addCurveNoUpdate(RimSummaryCurve* curve)
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
//void RimSummaryPlot::addEnsambleCurve(const RimEnsambleCurveSet* curveSet, RimSummaryCurve* curve)
|
||||
//{
|
||||
// if (curveSet && curve)
|
||||
// {
|
||||
// const_cast<RimEnsambleCurveSet*>(curveSet)->addCurve(curve);
|
||||
// curve->setParentQwtPlotAndReplot(m_qwtPlot);
|
||||
// }
|
||||
//}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -962,6 +981,14 @@ void RimSummaryPlot::deleteCurvesAssosiatedWithCase(RimSummaryCase* summaryCase)
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimEnsambleCurveSetCollection* RimSummaryPlot::ensambleCurveSets() const
|
||||
{
|
||||
return m_ensambleCurveSetCollection;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -969,6 +996,9 @@ void RimSummaryPlot::setCurveCollection(RimSummaryCurveCollection* curveCollecti
|
||||
{
|
||||
if (curveCollection)
|
||||
{
|
||||
// Delete current curve coll ?
|
||||
|
||||
|
||||
m_summaryCurveCollection = curveCollection;
|
||||
if (m_qwtPlot)
|
||||
{
|
||||
@ -1114,6 +1144,7 @@ void RimSummaryPlot::defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering
|
||||
axisFolder->add(&m_rightYAxisProperties);
|
||||
|
||||
uiTreeOrdering.add(&m_summaryCurveCollection);
|
||||
uiTreeOrdering.add(&m_ensambleCurveSetCollection);
|
||||
uiTreeOrdering.add(&m_gridTimeHistoryCurves);
|
||||
uiTreeOrdering.add(&m_asciiDataCurves);
|
||||
|
||||
@ -1134,6 +1165,8 @@ void RimSummaryPlot::onLoadDataAndUpdate()
|
||||
m_summaryCurveCollection->loadDataAndUpdate(false);
|
||||
}
|
||||
|
||||
m_ensambleCurveSetCollection->loadDataAndUpdate(false);
|
||||
|
||||
for (RimGridTimeHistoryCurve* curve : m_gridTimeHistoryCurves)
|
||||
{
|
||||
curve->loadDataAndUpdate(true);
|
||||
@ -1461,6 +1494,8 @@ void RimSummaryPlot::detachAllCurves()
|
||||
m_summaryCurveCollection->detachQwtCurves();
|
||||
}
|
||||
|
||||
m_ensambleCurveSetCollection->detachQwtCurves();
|
||||
|
||||
for (RimGridTimeHistoryCurve* curve : m_gridTimeHistoryCurves)
|
||||
{
|
||||
curve->detachQwtCurve();
|
||||
|
@ -38,6 +38,7 @@ class RimGridTimeHistoryCurve;
|
||||
class RimSummaryCase;
|
||||
class RimSummaryCurve;
|
||||
class RimSummaryCurveCollection;
|
||||
class RimEnsambleCurveSetCollection;
|
||||
class RimSummaryCurveFilter_OBSOLETE;
|
||||
class RimSummaryTimeAxisProperties;
|
||||
class RimSummaryAxisProperties;
|
||||
@ -69,10 +70,14 @@ public:
|
||||
void addCurveAndUpdate(RimSummaryCurve* curve);
|
||||
void addCurveNoUpdate(RimSummaryCurve* curve);
|
||||
|
||||
//void addEnsambleCurve(const RimEnsambleCurveSet* curveSet, RimSummaryCurve* curve);
|
||||
|
||||
void deleteCurve(RimSummaryCurve* curve);
|
||||
void setCurveCollection(RimSummaryCurveCollection* curveCollection);
|
||||
void deleteCurvesAssosiatedWithCase(RimSummaryCase* summaryCase);
|
||||
|
||||
RimEnsambleCurveSetCollection* ensambleCurveSets() const;
|
||||
|
||||
void addGridTimeHistoryCurve(RimGridTimeHistoryCurve* curve);
|
||||
|
||||
void addAsciiDataCruve(RimAsciiDataCurve* curve);
|
||||
@ -165,6 +170,8 @@ private:
|
||||
|
||||
caf::PdmChildArrayField<RimGridTimeHistoryCurve*> m_gridTimeHistoryCurves;
|
||||
caf::PdmChildField<RimSummaryCurveCollection*> m_summaryCurveCollection;
|
||||
caf::PdmChildField<RimEnsambleCurveSetCollection*> m_ensambleCurveSetCollection;
|
||||
|
||||
caf::PdmChildArrayField<RimAsciiDataCurve*> m_asciiDataCurves;
|
||||
|
||||
caf::PdmField<bool> m_isAutoZoom;
|
||||
|
@ -526,7 +526,9 @@ std::set<RifEclipseSummaryAddress> RimSummaryPlotSourceStepping::visibleAddresse
|
||||
std::set<RifEclipseSummaryAddress> addresses;
|
||||
|
||||
RimSummaryCurveCollection* curveCollection = nullptr;
|
||||
this->firstAncestorOrThisOfTypeAsserted(curveCollection);
|
||||
this->firstAncestorOrThisOfType(curveCollection);
|
||||
|
||||
if (!curveCollection) return addresses;
|
||||
|
||||
auto curves = curveCollection->visibleCurves();
|
||||
for (auto c : curves)
|
||||
@ -553,7 +555,9 @@ std::set<RimSummaryCase*> RimSummaryPlotSourceStepping::visibleSummaryCasesCurve
|
||||
std::set<RimSummaryCase*> sumCases;
|
||||
|
||||
RimSummaryCurveCollection* curveCollection = nullptr;
|
||||
this->firstAncestorOrThisOfTypeAsserted(curveCollection);
|
||||
this->firstAncestorOrThisOfType(curveCollection);
|
||||
|
||||
if (!curveCollection) return sumCases;
|
||||
|
||||
auto curves = curveCollection->visibleCurves();
|
||||
for (auto c : curves)
|
||||
|
@ -307,7 +307,15 @@ void RiuSummaryCurveDefSelection::setDefaultSelection()
|
||||
RiaSummaryCurveDefinition curveDef(allSumCases[0], defaultAddress);
|
||||
std::vector<RiaSummaryCurveDefinition> curveDefs;
|
||||
curveDefs.push_back(curveDef);
|
||||
|
||||
|
||||
// DEBUG
|
||||
//{
|
||||
// RifEclipseSummaryAddress defaultAddress = RifEclipseSummaryAddress::fieldVarAddress("FOPTH");
|
||||
|
||||
// RiaSummaryCurveDefinition curveDef(allSumCases[0], defaultAddress);
|
||||
// curveDefs.push_back(curveDef);
|
||||
//}
|
||||
|
||||
setSelectedCurveDefinitions(curveDefs);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user