mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#1887 Curve Creator: Make the new SummaryCurveCollection operational
This commit is contained in:
parent
1ec9e72ce2
commit
0044fb9e50
@ -37,6 +37,7 @@
|
|||||||
#include "RimSummaryCase.h"
|
#include "RimSummaryCase.h"
|
||||||
#include "RimSummaryCaseMainCollection.h"
|
#include "RimSummaryCaseMainCollection.h"
|
||||||
#include "RimSummaryCurve.h"
|
#include "RimSummaryCurve.h"
|
||||||
|
#include "RimSummaryCurveCollection.h"
|
||||||
#include "RimSummaryCurveFilter.h"
|
#include "RimSummaryCurveFilter.h"
|
||||||
#include "RimSummaryPlotCollection.h"
|
#include "RimSummaryPlotCollection.h"
|
||||||
|
|
||||||
@ -156,6 +157,8 @@ bool RiaImportEclipseCaseTools::openEclipseCaseShowTimeStepFilterImpl(const QStr
|
|||||||
RimSummaryCurve* summaryCurve = dynamic_cast<RimSummaryCurve*>(objHandle);
|
RimSummaryCurve* summaryCurve = dynamic_cast<RimSummaryCurve*>(objHandle);
|
||||||
if (summaryCurve)
|
if (summaryCurve)
|
||||||
{
|
{
|
||||||
|
//TODO: When removing curve filter functionality, move this to summaryCurveCollection
|
||||||
|
//loop and update "if (parentCollection)"-block
|
||||||
summaryCurve->setSummaryCase(newSumCase);
|
summaryCurve->setSummaryCase(newSumCase);
|
||||||
summaryCurve->updateConnectedEditors();
|
summaryCurve->updateConnectedEditors();
|
||||||
|
|
||||||
@ -178,6 +181,22 @@ bool RiaImportEclipseCaseTools::openEclipseCaseShowTimeStepFilterImpl(const QStr
|
|||||||
curveFilter->updateConnectedEditors();
|
curveFilter->updateConnectedEditors();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (caf::PdmObjectHandle* objHandle : referringObjects)
|
||||||
|
{
|
||||||
|
RimSummaryCurve* summaryCurve = dynamic_cast<RimSummaryCurve*>(objHandle);
|
||||||
|
if (summaryCurve)
|
||||||
|
{
|
||||||
|
RimSummaryCurveCollection* parentCollection = nullptr;
|
||||||
|
summaryCurve->firstAncestorOrThisOfType(parentCollection);
|
||||||
|
if (parentCollection)
|
||||||
|
{
|
||||||
|
parentCollection->loadDataAndUpdate();
|
||||||
|
parentCollection->updateConnectedEditors();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
sumCaseColl->removeCase(existingFileSummaryCase);
|
sumCaseColl->removeCase(existingFileSummaryCase);
|
||||||
|
|
||||||
delete existingFileSummaryCase;
|
delete existingFileSummaryCase;
|
||||||
|
@ -56,7 +56,7 @@ void RicCloseSummaryCaseFeature::deleteSummaryCases(const std::vector<RimSummary
|
|||||||
{
|
{
|
||||||
for (RimSummaryPlot* summaryPlot : summaryPlotColl->summaryPlots)
|
for (RimSummaryPlot* summaryPlot : summaryPlotColl->summaryPlots)
|
||||||
{
|
{
|
||||||
summaryPlot->removeCurvesAssosiatedWithCase(summaryCase);
|
summaryPlot->deleteCurvesAssosiatedWithCase(summaryCase);
|
||||||
}
|
}
|
||||||
summaryPlotColl->updateConnectedEditors();
|
summaryPlotColl->updateConnectedEditors();
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@ void RicDeleteSummaryCaseCollectionFeature::deleteSummaryCaseCollection(RimSumma
|
|||||||
{
|
{
|
||||||
for (RimSummaryPlot* summaryPlot : summaryPlotColl->summaryPlots)
|
for (RimSummaryPlot* summaryPlot : summaryPlotColl->summaryPlots)
|
||||||
{
|
{
|
||||||
summaryPlot->removeCurvesAssosiatedWithCase(summaryCase);
|
summaryPlot->deleteCurvesAssosiatedWithCase(summaryCase);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,7 +17,9 @@
|
|||||||
/////////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#include "RimPlotCurve.h"
|
#include "RimPlotCurve.h"
|
||||||
|
#include "RimSummaryCurveCollection.h"
|
||||||
#include "RimSummaryCurveFilter.h"
|
#include "RimSummaryCurveFilter.h"
|
||||||
|
|
||||||
#include "RiuLineSegmentQwtPlotCurve.h"
|
#include "RiuLineSegmentQwtPlotCurve.h"
|
||||||
|
|
||||||
#include "cafPdmUiComboBoxEditor.h"
|
#include "cafPdmUiComboBoxEditor.h"
|
||||||
@ -186,6 +188,12 @@ void RimPlotCurve::updateCurveVisibility()
|
|||||||
this->firstAncestorOrThisOfType(cFilter);
|
this->firstAncestorOrThisOfType(cFilter);
|
||||||
if(cFilter) isVisibleInPossibleParent = cFilter->isCurvesVisible();
|
if(cFilter) isVisibleInPossibleParent = cFilter->isCurvesVisible();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
RimSummaryCurveCollection* summaryCurveCollection = nullptr;
|
||||||
|
this->firstAncestorOrThisOfType(summaryCurveCollection);
|
||||||
|
if (summaryCurveCollection) isVisibleInPossibleParent = summaryCurveCollection->isCurvesVisible();
|
||||||
|
}
|
||||||
|
|
||||||
if (m_showCurve() && m_parentQwtPlot && isVisibleInPossibleParent)
|
if (m_showCurve() && m_parentQwtPlot && isVisibleInPossibleParent)
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/////////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// Copyright (C) 2016 Statoil ASA
|
// Copyright (C) 2017- Statoil ASA
|
||||||
//
|
//
|
||||||
// ResInsight is free software: you can redistribute it and/or modify
|
// ResInsight is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU General Public License as published by
|
// it under the terms of the GNU General Public License as published by
|
||||||
@ -18,45 +18,19 @@
|
|||||||
|
|
||||||
#include "RimSummaryCurveCollection.h"
|
#include "RimSummaryCurveCollection.h"
|
||||||
|
|
||||||
//#include "RiaApplication.h"
|
|
||||||
//
|
|
||||||
#include "RifReaderEclipseSummary.h"
|
#include "RifReaderEclipseSummary.h"
|
||||||
//
|
|
||||||
//#include "RigSummaryCaseData.h"
|
#include "RigSummaryCaseData.h"
|
||||||
//
|
|
||||||
//#include "RiaDefines.h"
|
#include "RiaApplication.h"
|
||||||
//#include "RimEclipseResultCase.h"
|
#include "RimProject.h"
|
||||||
//#include "RimProject.h"
|
|
||||||
#include "RimSummaryCase.h"
|
#include "RimSummaryCase.h"
|
||||||
//#include "RimSummaryCurve.h"
|
#include "RimSummaryCurve.h"
|
||||||
//#include "RimSummaryCurveAppearanceCalculator.h"
|
#include "RimSummaryPlot.h"
|
||||||
//#include "RimSummaryCurveAutoName.h"
|
|
||||||
//#include "RimSummaryFilter.h"
|
#include "RiuLineSegmentQwtPlotCurve.h"
|
||||||
//#include "RimSummaryPlot.h"
|
#include "RiuSummaryQwtPlot.h"
|
||||||
//#include "RimSummaryPlotCollection.h"
|
|
||||||
//
|
|
||||||
//#include "RiuLineSegmentQwtPlotCurve.h"
|
|
||||||
//#include "RiuSummaryQwtPlot.h"
|
|
||||||
//
|
|
||||||
//#include "WellLogCommands/RicWellLogPlotCurveFeatureImpl.h"
|
|
||||||
//
|
|
||||||
//#include "cafPdmUiListEditor.h"
|
|
||||||
//#include "cafPdmUiPushButtonEditor.h"
|
|
||||||
//
|
|
||||||
//
|
|
||||||
//QTextStream& operator << (QTextStream& str, const std::vector<RifEclipseSummaryAddress>& sobj)
|
|
||||||
//{
|
|
||||||
// CVF_ASSERT(false);
|
|
||||||
// return str;
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//QTextStream& operator >> (QTextStream& str, std::vector<RifEclipseSummaryAddress>& sobj)
|
|
||||||
//{
|
|
||||||
// CVF_ASSERT(false);
|
|
||||||
// return str;
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//
|
|
||||||
CAF_PDM_SOURCE_INIT(RimSummaryCurveCollection, "RimSummaryCurveCollection");
|
CAF_PDM_SOURCE_INIT(RimSummaryCurveCollection, "RimSummaryCurveCollection");
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -64,6 +38,14 @@ CAF_PDM_SOURCE_INIT(RimSummaryCurveCollection, "RimSummaryCurveCollection");
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
RimSummaryCurveCollection::RimSummaryCurveCollection()
|
RimSummaryCurveCollection::RimSummaryCurveCollection()
|
||||||
{
|
{
|
||||||
|
CAF_PDM_InitObject("Curve Collection", ":/SummaryCurveFilter16x16.png", "", "");
|
||||||
|
|
||||||
|
CAF_PDM_InitFieldNoDefault(&m_curves, "CollectionCurves", "Collection Curves", "", "", "");
|
||||||
|
m_curves.uiCapability()->setUiHidden(true);
|
||||||
|
m_curves.uiCapability()->setUiTreeChildrenHidden(false);
|
||||||
|
|
||||||
|
CAF_PDM_InitField(&m_showCurves, "IsActive", true, "Show Curves", "", "", "");
|
||||||
|
m_showCurves.uiCapability()->setUiHidden(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -71,21 +53,145 @@ RimSummaryCurveCollection::RimSummaryCurveCollection()
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
RimSummaryCurveCollection::~RimSummaryCurveCollection()
|
RimSummaryCurveCollection::~RimSummaryCurveCollection()
|
||||||
{
|
{
|
||||||
|
m_curves.deleteAllChildObjects();
|
||||||
}
|
}
|
||||||
|
|
||||||
void RimSummaryCurveCollection::createCurves(RimSummaryCase* summaryCase, const QString& stringFilter)
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
bool RimSummaryCurveCollection::isCurvesVisible()
|
||||||
{
|
{
|
||||||
if (summaryCase)
|
return m_showCurves();
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RimSummaryCurveCollection::loadDataAndUpdate()
|
||||||
|
{
|
||||||
|
for (RimSummaryCurve* curve : m_curves)
|
||||||
{
|
{
|
||||||
std::vector<RimSummaryCase*> selectedCases;
|
curve->loadDataAndUpdate();
|
||||||
selectedCases.push_back(summaryCase);
|
|
||||||
|
|
||||||
//m_summaryFilter->setCompleteVarStringFilter(stringFilter);
|
|
||||||
|
|
||||||
std::set<std::pair<RimSummaryCase*, RifEclipseSummaryAddress> > newCurveDefinitions;
|
|
||||||
|
|
||||||
//createSetOfCasesAndResultAdresses(selectedCases, *m_summaryFilter, &newCurveDefinitions);
|
|
||||||
|
|
||||||
//createCurvesFromCurveDefinitions(newCurveDefinitions);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RimSummaryCurveCollection::setParentQwtPlot(QwtPlot* plot)
|
||||||
|
{
|
||||||
|
for (RimSummaryCurve* curve : m_curves)
|
||||||
|
{
|
||||||
|
curve->setParentQwtPlot(plot);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RimSummaryCurveCollection::detachQwtCurves()
|
||||||
|
{
|
||||||
|
for (RimSummaryCurve* curve : m_curves)
|
||||||
|
{
|
||||||
|
curve->detachQwtCurve();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
RimSummaryCurve* RimSummaryCurveCollection::findRimCurveFromQwtCurve(const QwtPlotCurve* qwtCurve) const
|
||||||
|
{
|
||||||
|
for (RimSummaryCurve* rimCurve : m_curves)
|
||||||
|
{
|
||||||
|
if (rimCurve->qwtPlotCurve() == qwtCurve)
|
||||||
|
{
|
||||||
|
return rimCurve;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RimSummaryCurveCollection::addCurve(RimSummaryCurve* curve)
|
||||||
|
{
|
||||||
|
if (curve)
|
||||||
|
{
|
||||||
|
m_curves.push_back(curve);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RimSummaryCurveCollection::deleteCurve(RimSummaryCurve* curve)
|
||||||
|
{
|
||||||
|
if (curve)
|
||||||
|
{
|
||||||
|
m_curves.removeChildObject(curve);
|
||||||
|
delete curve;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
std::vector<RimSummaryCurve*> RimSummaryCurveCollection::curves()
|
||||||
|
{
|
||||||
|
std::vector<RimSummaryCurve*> myCurves;
|
||||||
|
|
||||||
|
for (RimSummaryCurve* curve : m_curves)
|
||||||
|
{
|
||||||
|
myCurves.push_back(curve);
|
||||||
|
}
|
||||||
|
|
||||||
|
return myCurves;
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RimSummaryCurveCollection::deleteCurvesAssosiatedWithCase(RimSummaryCase* summaryCase)
|
||||||
|
{
|
||||||
|
std::vector<RimSummaryCurve*> summaryCurvesToDelete;
|
||||||
|
|
||||||
|
for (RimSummaryCurve* summaryCurve : m_curves)
|
||||||
|
{
|
||||||
|
if (!summaryCurve) continue;
|
||||||
|
if (!summaryCurve->summaryCase()) continue;
|
||||||
|
|
||||||
|
if (summaryCurve->summaryCase() == summaryCase)
|
||||||
|
{
|
||||||
|
summaryCurvesToDelete.push_back(summaryCurve);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (RimSummaryCurve* summaryCurve : summaryCurvesToDelete)
|
||||||
|
{
|
||||||
|
m_curves.removeChildObject(summaryCurve);
|
||||||
|
delete summaryCurve;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RimSummaryCurveCollection::updateCaseNameHasChanged()
|
||||||
|
{
|
||||||
|
for (RimSummaryCurve* curve : m_curves)
|
||||||
|
{
|
||||||
|
curve->updateCurveName();
|
||||||
|
curve->updateConnectedEditors();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
caf::PdmFieldHandle* RimSummaryCurveCollection::objectToggleField()
|
||||||
|
{
|
||||||
|
return &m_showCurves;
|
||||||
|
}
|
@ -1,6 +1,6 @@
|
|||||||
/////////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// Copyright (C) 2016 Statoil ASA
|
// Copyright (C) 2017- Statoil ASA
|
||||||
//
|
//
|
||||||
// ResInsight is free software: you can redistribute it and/or modify
|
// ResInsight is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU General Public License as published by
|
// it under the terms of the GNU General Public License as published by
|
||||||
@ -19,35 +19,25 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
//#include "cafPdmField.h"
|
|
||||||
|
#include "RiaDefines.h"
|
||||||
|
|
||||||
|
#include "cafPdmChildArrayField.h"
|
||||||
|
#include "cafPdmField.h"
|
||||||
#include "cafPdmObject.h"
|
#include "cafPdmObject.h"
|
||||||
//#include "cafPdmPointer.h"
|
#include "cafPdmPtrArrayField.h"
|
||||||
//#include "cafPdmPtrField.h"
|
|
||||||
//#include "cafPdmChildField.h"
|
#include "QPointer"
|
||||||
//#include "cafPdmChildArrayField.h"
|
#include "QList"
|
||||||
//#include "cafAppEnum.h"
|
|
||||||
//#include "cafPdmPtrArrayField.h"
|
class QwtPlot;
|
||||||
//
|
class QwtPlotCurve;
|
||||||
//#include "RifEclipseSummaryAddress.h"
|
|
||||||
//
|
|
||||||
//#include "RiaDefines.h"
|
|
||||||
//#include "RimSummaryCurveAppearanceCalculator.h"
|
|
||||||
//
|
|
||||||
//class QwtPlot;
|
|
||||||
//class QwtPlotCurve;
|
|
||||||
//class RifReaderEclipseSummary;
|
|
||||||
class RimSummaryCase;
|
class RimSummaryCase;
|
||||||
//class RimSummaryCurve;
|
class RimSummaryCurve;
|
||||||
//class RimSummaryFilter;
|
class RiuLineSegmentQwtPlotCurve;
|
||||||
//class RiuLineSegmentQwtPlotCurve;
|
|
||||||
//class RimSummaryCurveAutoName;
|
|
||||||
//
|
|
||||||
//
|
|
||||||
//Q_DECLARE_METATYPE(RifEclipseSummaryAddress);
|
|
||||||
|
|
||||||
//==================================================================================================
|
//==================================================================================================
|
||||||
///
|
///
|
||||||
///
|
|
||||||
//==================================================================================================
|
//==================================================================================================
|
||||||
class RimSummaryCurveCollection : public caf::PdmObject
|
class RimSummaryCurveCollection : public caf::PdmObject
|
||||||
{
|
{
|
||||||
@ -57,6 +47,31 @@ public:
|
|||||||
RimSummaryCurveCollection();
|
RimSummaryCurveCollection();
|
||||||
virtual ~RimSummaryCurveCollection();
|
virtual ~RimSummaryCurveCollection();
|
||||||
|
|
||||||
void createCurves(RimSummaryCase* summaryCase, const QString& stringFilter);
|
bool isCurvesVisible();
|
||||||
|
|
||||||
|
void loadDataAndUpdate();
|
||||||
|
void setParentQwtPlot(QwtPlot* plot);
|
||||||
|
void detachQwtCurves();
|
||||||
|
|
||||||
|
RimSummaryCurve* findRimCurveFromQwtCurve(const QwtPlotCurve* qwtCurve) const;
|
||||||
|
|
||||||
|
void addCurve(RimSummaryCurve* curve);
|
||||||
|
void deleteCurve(RimSummaryCurve* curve);
|
||||||
|
|
||||||
|
std::vector<RimSummaryCurve*> curves();
|
||||||
|
void deleteCurvesAssosiatedWithCase(RimSummaryCase* summaryCase);
|
||||||
|
|
||||||
|
void updateCaseNameHasChanged();
|
||||||
|
|
||||||
|
private:
|
||||||
|
caf::PdmFieldHandle* objectToggleField();
|
||||||
|
|
||||||
|
|
||||||
|
private:
|
||||||
|
caf::PdmPtrArrayField<RimSummaryCase*> m_selectedSummaryCases;
|
||||||
|
|
||||||
|
caf::PdmField<bool> m_showCurves;
|
||||||
|
caf::PdmChildArrayField<RimSummaryCurve*> m_curves;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -20,16 +20,16 @@
|
|||||||
|
|
||||||
#include "RiaApplication.h"
|
#include "RiaApplication.h"
|
||||||
|
|
||||||
|
#include "RimAsciiDataCurve.h"
|
||||||
#include "RimGridTimeHistoryCurve.h"
|
#include "RimGridTimeHistoryCurve.h"
|
||||||
#include "RimSummaryCase.h"
|
#include "RimSummaryCase.h"
|
||||||
#include "RimSummaryCurve.h"
|
#include "RimSummaryCurve.h"
|
||||||
#include "RimSummaryCurveFilter.h"
|
|
||||||
#include "RimSummaryCurveCollection.h"
|
#include "RimSummaryCurveCollection.h"
|
||||||
|
#include "RimSummaryCurveFilter.h"
|
||||||
#include "RimSummaryCurvesCalculator.h"
|
#include "RimSummaryCurvesCalculator.h"
|
||||||
#include "RimSummaryPlotCollection.h"
|
#include "RimSummaryPlotCollection.h"
|
||||||
#include "RimSummaryTimeAxisProperties.h"
|
#include "RimSummaryTimeAxisProperties.h"
|
||||||
#include "RimSummaryYAxisProperties.h"
|
#include "RimSummaryYAxisProperties.h"
|
||||||
#include "RimAsciiDataCurve.h"
|
|
||||||
|
|
||||||
#include "RiuMainPlotWindow.h"
|
#include "RiuMainPlotWindow.h"
|
||||||
#include "RiuSummaryQwtPlot.h"
|
#include "RiuSummaryQwtPlot.h"
|
||||||
@ -44,10 +44,10 @@
|
|||||||
#include <QString>
|
#include <QString>
|
||||||
#include <QRectF>
|
#include <QRectF>
|
||||||
|
|
||||||
#include "qwt_plot_curve.h"
|
|
||||||
#include "qwt_plot_renderer.h"
|
|
||||||
#include "qwt_abstract_legend.h"
|
#include "qwt_abstract_legend.h"
|
||||||
#include "qwt_legend.h"
|
#include "qwt_legend.h"
|
||||||
|
#include "qwt_plot_curve.h"
|
||||||
|
#include "qwt_plot_renderer.h"
|
||||||
|
|
||||||
#include "vector"
|
#include "vector"
|
||||||
|
|
||||||
@ -70,8 +70,9 @@ RimSummaryPlot::RimSummaryPlot()
|
|||||||
CAF_PDM_InitFieldNoDefault(&m_curveFilters, "SummaryCurveFilters", "", "", "", "");
|
CAF_PDM_InitFieldNoDefault(&m_curveFilters, "SummaryCurveFilters", "", "", "", "");
|
||||||
m_curveFilters.uiCapability()->setUiTreeHidden(true);
|
m_curveFilters.uiCapability()->setUiTreeHidden(true);
|
||||||
|
|
||||||
CAF_PDM_InitFieldNoDefault(&m_curveCollection, "SummaryCurveCollection", "", "", "", "");
|
CAF_PDM_InitFieldNoDefault(&m_summaryCurveCollection, "SummaryCurveCollection", "", "", "", "");
|
||||||
|
m_summaryCurveCollection.uiCapability()->setUiTreeHidden(true);
|
||||||
|
|
||||||
CAF_PDM_InitFieldNoDefault(&m_summaryCurves, "SummaryCurves", "", "", "", "");
|
CAF_PDM_InitFieldNoDefault(&m_summaryCurves, "SummaryCurves", "", "", "", "");
|
||||||
m_summaryCurves.uiCapability()->setUiTreeHidden(true);
|
m_summaryCurves.uiCapability()->setUiTreeHidden(true);
|
||||||
|
|
||||||
@ -84,23 +85,25 @@ RimSummaryPlot::RimSummaryPlot()
|
|||||||
CAF_PDM_InitFieldNoDefault(&m_leftYAxisProperties, "LeftYAxisProperties", "Left Y Axis", "", "", "");
|
CAF_PDM_InitFieldNoDefault(&m_leftYAxisProperties, "LeftYAxisProperties", "Left Y Axis", "", "", "");
|
||||||
m_leftYAxisProperties.uiCapability()->setUiTreeHidden(true);
|
m_leftYAxisProperties.uiCapability()->setUiTreeHidden(true);
|
||||||
|
|
||||||
m_leftYAxisProperties = new RimSummaryYAxisProperties;
|
|
||||||
m_leftYAxisProperties->setNameAndAxis("Left Y-Axis", QwtPlot::yLeft);
|
|
||||||
|
|
||||||
CAF_PDM_InitFieldNoDefault(&m_rightYAxisProperties, "RightYAxisProperties", "Right Y Axis", "", "", "");
|
CAF_PDM_InitFieldNoDefault(&m_rightYAxisProperties, "RightYAxisProperties", "Right Y Axis", "", "", "");
|
||||||
m_rightYAxisProperties.uiCapability()->setUiTreeHidden(true);
|
m_rightYAxisProperties.uiCapability()->setUiTreeHidden(true);
|
||||||
|
|
||||||
m_rightYAxisProperties = new RimSummaryYAxisProperties;
|
|
||||||
m_rightYAxisProperties->setNameAndAxis("Right Y-Axis", QwtPlot::yRight);
|
|
||||||
|
|
||||||
CAF_PDM_InitFieldNoDefault(&m_timeAxisProperties, "TimeAxisProperties", "Time Axis", "", "", "");
|
CAF_PDM_InitFieldNoDefault(&m_timeAxisProperties, "TimeAxisProperties", "Time Axis", "", "", "");
|
||||||
m_timeAxisProperties.uiCapability()->setUiTreeHidden(true);
|
m_timeAxisProperties.uiCapability()->setUiTreeHidden(true);
|
||||||
|
|
||||||
m_timeAxisProperties = new RimSummaryTimeAxisProperties;
|
|
||||||
|
|
||||||
CAF_PDM_InitField(&m_isAutoZoom, "AutoZoom", true, "Auto Zoom", "", "", "");
|
CAF_PDM_InitField(&m_isAutoZoom, "AutoZoom", true, "Auto Zoom", "", "", "");
|
||||||
m_isAutoZoom.uiCapability()->setUiHidden(true);
|
m_isAutoZoom.uiCapability()->setUiHidden(true);
|
||||||
|
|
||||||
|
m_summaryCurveCollection = new RimSummaryCurveCollection;
|
||||||
|
|
||||||
|
m_leftYAxisProperties = new RimSummaryYAxisProperties;
|
||||||
|
m_leftYAxisProperties->setNameAndAxis("Left Y-Axis", QwtPlot::yLeft);
|
||||||
|
|
||||||
|
m_rightYAxisProperties = new RimSummaryYAxisProperties;
|
||||||
|
m_rightYAxisProperties->setNameAndAxis("Right Y-Axis", QwtPlot::yRight);
|
||||||
|
|
||||||
|
m_timeAxisProperties = new RimSummaryTimeAxisProperties;
|
||||||
|
|
||||||
setAsPlotMdiWindow();
|
setAsPlotMdiWindow();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -115,6 +118,7 @@ RimSummaryPlot::~RimSummaryPlot()
|
|||||||
|
|
||||||
m_summaryCurves.deleteAllChildObjects();
|
m_summaryCurves.deleteAllChildObjects();
|
||||||
m_curveFilters.deleteAllChildObjects();
|
m_curveFilters.deleteAllChildObjects();
|
||||||
|
delete m_summaryCurveCollection;
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -189,6 +193,17 @@ time_t RimSummaryPlot::firstTimeStepOfFirstCurve()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (m_summaryCurveCollection)
|
||||||
|
{
|
||||||
|
std::vector<RimSummaryCurve*> curves = m_summaryCurveCollection->curves();
|
||||||
|
size_t i = 0;
|
||||||
|
while (firstCurve == nullptr && i < curves.size())
|
||||||
|
{
|
||||||
|
firstCurve = curves[i];
|
||||||
|
++i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
size_t i = 0;
|
size_t i = 0;
|
||||||
while (firstCurve == nullptr && i < m_summaryCurves.size())
|
while (firstCurve == nullptr && i < m_summaryCurves.size())
|
||||||
{
|
{
|
||||||
@ -548,6 +563,17 @@ std::vector<RimSummaryCurve*> RimSummaryPlot::visibleSummaryCurvesForAxis(RiaDef
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (m_summaryCurveCollection && m_summaryCurveCollection->isCurvesVisible())
|
||||||
|
{
|
||||||
|
for (RimSummaryCurve* curve : m_summaryCurveCollection->curves())
|
||||||
|
{
|
||||||
|
if (curve->isCurveVisible() && curve->yAxis() == plotAxis)
|
||||||
|
{
|
||||||
|
curves.push_back(curve);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return curves;
|
return curves;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -706,6 +732,12 @@ void RimSummaryPlot::updateCaseNameHasChanged()
|
|||||||
{
|
{
|
||||||
curveFilter->updateCaseNameHasChanged();
|
curveFilter->updateCaseNameHasChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (m_summaryCurveCollection)
|
||||||
|
{
|
||||||
|
m_summaryCurveCollection->updateCaseNameHasChanged();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -755,7 +787,8 @@ void RimSummaryPlot::addCurve(RimSummaryCurve* curve)
|
|||||||
{
|
{
|
||||||
if (curve)
|
if (curve)
|
||||||
{
|
{
|
||||||
m_summaryCurves.push_back(curve);
|
m_summaryCurveCollection->addCurve(curve);
|
||||||
|
|
||||||
if (m_qwtPlot)
|
if (m_qwtPlot)
|
||||||
{
|
{
|
||||||
curve->setParentQwtPlot(m_qwtPlot);
|
curve->setParentQwtPlot(m_qwtPlot);
|
||||||
@ -771,15 +804,22 @@ void RimSummaryPlot::deleteCurve(RimSummaryCurve* curve)
|
|||||||
{
|
{
|
||||||
if (curve)
|
if (curve)
|
||||||
{
|
{
|
||||||
m_summaryCurves.removeChildObject(curve);
|
if (m_summaryCurveCollection)
|
||||||
delete curve;
|
{
|
||||||
|
m_summaryCurveCollection->deleteCurve(curve);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_summaryCurves.removeChildObject(curve);
|
||||||
|
delete curve;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimSummaryPlot::removeCurvesAssosiatedWithCase(RimSummaryCase* summaryCase)
|
void RimSummaryPlot::deleteCurvesAssosiatedWithCase(RimSummaryCase* summaryCase)
|
||||||
{
|
{
|
||||||
for (RimSummaryCurveFilter* summaryCurveFilter : m_curveFilters)
|
for (RimSummaryCurveFilter* summaryCurveFilter : m_curveFilters)
|
||||||
{
|
{
|
||||||
@ -787,6 +827,11 @@ void RimSummaryPlot::removeCurvesAssosiatedWithCase(RimSummaryCase* summaryCase)
|
|||||||
summaryCurveFilter->removeCurvesAssosiatedWithCase(summaryCase);
|
summaryCurveFilter->removeCurvesAssosiatedWithCase(summaryCase);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (m_summaryCurveCollection)
|
||||||
|
{
|
||||||
|
m_summaryCurveCollection->deleteCurvesAssosiatedWithCase(summaryCase);
|
||||||
|
}
|
||||||
|
|
||||||
std::vector<RimSummaryCurve*> summaryCurvesToDelete;
|
std::vector<RimSummaryCurve*> summaryCurvesToDelete;
|
||||||
|
|
||||||
for (RimSummaryCurve* summaryCurve : m_summaryCurves)
|
for (RimSummaryCurve* summaryCurve : m_summaryCurves)
|
||||||
@ -829,6 +874,22 @@ void RimSummaryPlot::addCurveFilter(RimSummaryCurveFilter* curveFilter)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RimSummaryPlot::setCurveCollection(RimSummaryCurveCollection* curveCollection)
|
||||||
|
{
|
||||||
|
if (curveCollection)
|
||||||
|
{
|
||||||
|
m_summaryCurveCollection = curveCollection;
|
||||||
|
if (m_qwtPlot)
|
||||||
|
{
|
||||||
|
m_summaryCurveCollection->setParentQwtPlot(m_qwtPlot);
|
||||||
|
this->updateAxes();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -908,6 +969,7 @@ void RimSummaryPlot::defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering
|
|||||||
axisFolder->add(&m_rightYAxisProperties);
|
axisFolder->add(&m_rightYAxisProperties);
|
||||||
|
|
||||||
uiTreeOrdering.add(&m_curveFilters);
|
uiTreeOrdering.add(&m_curveFilters);
|
||||||
|
uiTreeOrdering.add(&m_summaryCurveCollection);
|
||||||
uiTreeOrdering.add(&m_summaryCurves);
|
uiTreeOrdering.add(&m_summaryCurves);
|
||||||
uiTreeOrdering.add(&m_gridTimeHistoryCurves);
|
uiTreeOrdering.add(&m_gridTimeHistoryCurves);
|
||||||
uiTreeOrdering.add(&m_asciiDataCurves);
|
uiTreeOrdering.add(&m_asciiDataCurves);
|
||||||
@ -922,10 +984,15 @@ void RimSummaryPlot::loadDataAndUpdate()
|
|||||||
{
|
{
|
||||||
updateMdiWindowVisibility();
|
updateMdiWindowVisibility();
|
||||||
|
|
||||||
for (RimSummaryCurveFilter* curveFilter: m_curveFilters)
|
for (RimSummaryCurveFilter* curveFilter: m_curveFilters)
|
||||||
{
|
{
|
||||||
curveFilter->loadDataAndUpdate();
|
curveFilter->loadDataAndUpdate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (m_summaryCurveCollection)
|
||||||
|
{
|
||||||
|
m_summaryCurveCollection->loadDataAndUpdate();
|
||||||
|
}
|
||||||
|
|
||||||
for (RimSummaryCurve* curve : m_summaryCurves)
|
for (RimSummaryCurve* curve : m_summaryCurves)
|
||||||
{
|
{
|
||||||
@ -1031,12 +1098,17 @@ QWidget* RimSummaryPlot::createViewWidget(QWidget* mainWindowParent)
|
|||||||
{
|
{
|
||||||
curveFilter->setParentQwtPlot(m_qwtPlot);
|
curveFilter->setParentQwtPlot(m_qwtPlot);
|
||||||
}
|
}
|
||||||
|
|
||||||
for(RimSummaryCurve* curve : m_summaryCurves)
|
for (RimSummaryCurve* curve : m_summaryCurves)
|
||||||
{
|
{
|
||||||
curve->setParentQwtPlot(m_qwtPlot);
|
curve->setParentQwtPlot(m_qwtPlot);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(m_summaryCurveCollection)
|
||||||
|
{
|
||||||
|
m_summaryCurveCollection->setParentQwtPlot(m_qwtPlot);
|
||||||
|
}
|
||||||
|
|
||||||
for (RimGridTimeHistoryCurve* curve : m_gridTimeHistoryCurves)
|
for (RimGridTimeHistoryCurve* curve : m_gridTimeHistoryCurves)
|
||||||
{
|
{
|
||||||
curve->setParentQwtPlot(m_qwtPlot);
|
curve->setParentQwtPlot(m_qwtPlot);
|
||||||
@ -1107,6 +1179,11 @@ void RimSummaryPlot::detachAllCurves()
|
|||||||
curveFilter->detachQwtCurves();
|
curveFilter->detachQwtCurves();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (m_summaryCurveCollection)
|
||||||
|
{
|
||||||
|
m_summaryCurveCollection->detachQwtCurves();
|
||||||
|
}
|
||||||
|
|
||||||
for(RimSummaryCurve* curve : m_summaryCurves)
|
for(RimSummaryCurve* curve : m_summaryCurves)
|
||||||
{
|
{
|
||||||
curve->detachQwtCurve();
|
curve->detachQwtCurve();
|
||||||
@ -1158,6 +1235,12 @@ caf::PdmObject* RimSummaryPlot::findRimCurveFromQwtCurve(const QwtPlotCurve* qwt
|
|||||||
if (foundCurve) return foundCurve;
|
if (foundCurve) return foundCurve;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (m_summaryCurveCollection)
|
||||||
|
{
|
||||||
|
RimSummaryCurve* foundCurve = m_summaryCurveCollection->findRimCurveFromQwtCurve(qwtCurve);
|
||||||
|
if (foundCurve) return foundCurve;
|
||||||
|
}
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -30,19 +30,19 @@
|
|||||||
|
|
||||||
#include <QPointer>
|
#include <QPointer>
|
||||||
|
|
||||||
class RiuSummaryQwtPlot;
|
|
||||||
class RimSummaryCurve;
|
|
||||||
class RimSummaryCase;
|
|
||||||
class RimSummaryCurveFilter;
|
|
||||||
class RimSummaryCurveCollection;
|
|
||||||
class RimSummaryYAxisProperties;
|
|
||||||
class RimSummaryTimeAxisProperties;
|
|
||||||
class RimGridTimeHistoryCurve;
|
|
||||||
class RimAsciiDataCurve;
|
|
||||||
class PdmUiTreeOrdering;
|
class PdmUiTreeOrdering;
|
||||||
|
class RimAsciiDataCurve;
|
||||||
|
class RimGridTimeHistoryCurve;
|
||||||
|
class RimSummaryCase;
|
||||||
|
class RimSummaryCurve;
|
||||||
|
class RimSummaryCurveCollection;
|
||||||
|
class RimSummaryCurveFilter;
|
||||||
|
class RimSummaryTimeAxisProperties;
|
||||||
|
class RimSummaryYAxisProperties;
|
||||||
|
class RiuSummaryQwtPlot;
|
||||||
|
|
||||||
class QwtPlotCurve;
|
|
||||||
class QwtInterval;
|
class QwtInterval;
|
||||||
|
class QwtPlotCurve;
|
||||||
|
|
||||||
//==================================================================================================
|
//==================================================================================================
|
||||||
///
|
///
|
||||||
@ -62,7 +62,8 @@ public:
|
|||||||
void addCurve(RimSummaryCurve* curve);
|
void addCurve(RimSummaryCurve* curve);
|
||||||
void deleteCurve(RimSummaryCurve* curve);
|
void deleteCurve(RimSummaryCurve* curve);
|
||||||
void addCurveFilter(RimSummaryCurveFilter* curveFilter);
|
void addCurveFilter(RimSummaryCurveFilter* curveFilter);
|
||||||
void removeCurvesAssosiatedWithCase(RimSummaryCase* summaryCase);
|
void setCurveCollection(RimSummaryCurveCollection* curveCollection);
|
||||||
|
void deleteCurvesAssosiatedWithCase(RimSummaryCase* summaryCase);
|
||||||
void deleteAllTopLevelCurves();
|
void deleteAllTopLevelCurves();
|
||||||
|
|
||||||
void addGridTimeHistoryCurve(RimGridTimeHistoryCurve* curve);
|
void addGridTimeHistoryCurve(RimGridTimeHistoryCurve* curve);
|
||||||
@ -137,7 +138,7 @@ private:
|
|||||||
caf::PdmChildArrayField<RimGridTimeHistoryCurve*> m_gridTimeHistoryCurves;
|
caf::PdmChildArrayField<RimGridTimeHistoryCurve*> m_gridTimeHistoryCurves;
|
||||||
caf::PdmChildArrayField<RimSummaryCurve*> m_summaryCurves;
|
caf::PdmChildArrayField<RimSummaryCurve*> m_summaryCurves;
|
||||||
caf::PdmChildArrayField<RimSummaryCurveFilter*> m_curveFilters;
|
caf::PdmChildArrayField<RimSummaryCurveFilter*> m_curveFilters;
|
||||||
caf::PdmChildField<RimSummaryCurveCollection*> m_curveCollection;
|
caf::PdmChildField<RimSummaryCurveCollection*> m_summaryCurveCollection;
|
||||||
caf::PdmChildArrayField<RimAsciiDataCurve*> m_asciiDataCurves;
|
caf::PdmChildArrayField<RimAsciiDataCurve*> m_asciiDataCurves;
|
||||||
|
|
||||||
caf::PdmField<bool> m_isAutoZoom;
|
caf::PdmField<bool> m_isAutoZoom;
|
||||||
|
Loading…
Reference in New Issue
Block a user