#970 Auto-Axis title now using vector name and unit.

This commit is contained in:
Jacob Støren 2016-11-21 11:30:34 +01:00
parent 3d1bad978f
commit fd572b5c87
8 changed files with 86 additions and 33 deletions

View File

@ -71,15 +71,15 @@ void RicSummaryCurveSwitchAxisFeature::onActionTriggered(bool isChecked)
for (RimSummaryCurve* summaryCurve : selectedSoloCurves) for (RimSummaryCurve* summaryCurve : selectedSoloCurves)
{ {
RimDefines::PlotAxis plotAxis = summaryCurve->associatedPlotAxis(); RimDefines::PlotAxis plotAxis = summaryCurve->yAxis();
if ( plotAxis == RimDefines::PLOT_AXIS_LEFT ) if ( plotAxis == RimDefines::PLOT_AXIS_LEFT )
{ {
summaryCurve->setPlotAxis(RimDefines::PLOT_AXIS_RIGHT); summaryCurve->setYAxis(RimDefines::PLOT_AXIS_RIGHT);
} }
else else
{ {
summaryCurve->setPlotAxis(RimDefines::PLOT_AXIS_LEFT); summaryCurve->setYAxis(RimDefines::PLOT_AXIS_LEFT);
} }
summaryCurve->updateQwtPlotAxis(); summaryCurve->updateQwtPlotAxis();

View File

@ -259,7 +259,7 @@ std::vector<double> RimSummaryCurve::yPlotValues() const
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RimSummaryCurve::setPlotAxis(RimDefines::PlotAxis plotAxis) void RimSummaryCurve::setYAxis(RimDefines::PlotAxis plotAxis)
{ {
m_plotAxis = plotAxis; m_plotAxis = plotAxis;
} }
@ -267,7 +267,7 @@ void RimSummaryCurve::setPlotAxis(RimDefines::PlotAxis plotAxis)
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
RimDefines::PlotAxis RimSummaryCurve::associatedPlotAxis() const RimDefines::PlotAxis RimSummaryCurve::yAxis() const
{ {
return m_plotAxis(); return m_plotAxis();
} }
@ -384,7 +384,7 @@ void RimSummaryCurve::onLoadDataAndUpdate()
RimSummaryPlot* plot = nullptr; RimSummaryPlot* plot = nullptr;
firstAncestorOrThisOfType(plot); firstAncestorOrThisOfType(plot);
bool isLogCurve = plot->isLogarithmicScaleEnabled(this->associatedPlotAxis()); bool isLogCurve = plot->isLogarithmicScaleEnabled(this->yAxis());
if(this->curveData(&dateTimes, &values)) if(this->curveData(&dateTimes, &values))
{ {
@ -444,7 +444,7 @@ void RimSummaryCurve::updateQwtPlotAxis()
{ {
if (m_qwtPlotCurve) if (m_qwtPlotCurve)
{ {
if (this->associatedPlotAxis() == RimDefines::PLOT_AXIS_LEFT) if (this->yAxis() == RimDefines::PLOT_AXIS_LEFT)
{ {
m_qwtPlotCurve->setYAxis(QwtPlot::yLeft); m_qwtPlotCurve->setYAxis(QwtPlot::yLeft);
} }

View File

@ -88,8 +88,8 @@ public:
std::vector<double> yPlotValues() const; std::vector<double> yPlotValues() const;
void setPlotAxis(RimDefines::PlotAxis plotAxis); void setYAxis(RimDefines::PlotAxis plotAxis);
RimDefines::PlotAxis associatedPlotAxis() const; RimDefines::PlotAxis yAxis() const;
void updateQwtPlotAxis(); void updateQwtPlotAxis();
void applyCurveAutoNameSettings(const RimSummaryCurveAutoName& autoNameSettings); void applyCurveAutoNameSettings(const RimSummaryCurveAutoName& autoNameSettings);

View File

@ -255,7 +255,7 @@ void RimSummaryCurveFilter::fieldChangedByUi(const caf::PdmFieldHandle* changedF
{ {
curve->updateCurveVisibility(); curve->updateCurveVisibility();
} }
if (m_parentQwtPlot) m_parentQwtPlot->replot(); updatePlotAxisForCurves();
} }
else if (changedField == &m_plotAxis) else if (changedField == &m_plotAxis)
{ {
@ -431,7 +431,7 @@ void RimSummaryCurveFilter::updatePlotAxisForCurves()
{ {
for (RimSummaryCurve* curve : m_curves) for (RimSummaryCurve* curve : m_curves)
{ {
curve->setPlotAxis(m_plotAxis()); curve->setYAxis(m_plotAxis());
curve->updateQwtPlotAxis(); curve->updateQwtPlotAxis();
} }
@ -466,6 +466,21 @@ std::set<std::string> RimSummaryCurveFilter::unitNames()
return unitNames; return unitNames;
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::vector<RimSummaryCurve*> RimSummaryCurveFilter::curves()
{
std::vector<RimSummaryCurve*> myCurves;
for ( RimSummaryCurve* curve: m_curves)
{
myCurves.push_back(curve);
}
return myCurves;
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@ -541,7 +556,7 @@ void RimSummaryCurveFilter::createCurvesFromCurveDefinitions(const std::set<std:
curve->setParentQwtPlot(m_parentQwtPlot); curve->setParentQwtPlot(m_parentQwtPlot);
curve->setSummaryCase(currentCase); curve->setSummaryCase(currentCase);
curve->setSummaryAddress(caseAddrPair.second); curve->setSummaryAddress(caseAddrPair.second);
curve->setPlotAxis(m_plotAxis()); curve->setYAxis(m_plotAxis());
curve->applyCurveAutoNameSettings(*m_curveNameConfig()); curve->applyCurveAutoNameSettings(*m_curveNameConfig());
m_curves.push_back(curve); m_curves.push_back(curve);

View File

@ -68,6 +68,7 @@ public:
RimSummaryCurve* findRimCurveFromQwtCurve(const QwtPlotCurve* qwtCurve) const; RimSummaryCurve* findRimCurveFromQwtCurve(const QwtPlotCurve* qwtCurve) const;
std::set<std::string> unitNames(); std::set<std::string> unitNames();
std::vector<RimSummaryCurve*> curves();
void updateCaseNameHasChanged(); void updateCaseNameHasChanged();

View File

@ -191,24 +191,41 @@ void RimSummaryPlotYAxisFormater::applyYAxisPropertiesToPlot(RiuSummaryQwtPlot*
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
QString RimSummaryPlotYAxisFormater::autoAxisTitle() const QString RimSummaryPlotYAxisFormater::autoAxisTitle() const
{ {
std::set<std::string> unitNames; std::map<std::string, std::set<std::string> > unitToQuantityNameMap;
for (RimSummaryCurve* rimCurve : m_singleCurves) for ( RimSummaryCurve* rimCurve : m_singleCurves )
{ {
if (rimCurve->isCurveVisible()) unitNames.insert(rimCurve->unitName()); if ( rimCurve->isCurveVisible() && rimCurve->yAxis() == this->m_axisProperties->axis() )
{
unitToQuantityNameMap[rimCurve->unitName()].insert(rimCurve->summaryAddress().quantityName());
}
} }
for (RimSummaryCurveFilter* curveFilter : m_curveFilters) for ( RimSummaryCurveFilter* curveFilter : m_curveFilters )
{ {
std::set<std::string> filterUnitNames = curveFilter->unitNames(); if ( curveFilter->isCurvesVisible() )
unitNames.insert(filterUnitNames.begin(), filterUnitNames.end()); {
std::vector<RimSummaryCurve*> curveFilterCurves = curveFilter->curves();
for ( RimSummaryCurve* rimCurve : curveFilterCurves )
{
if ( rimCurve->isCurveVisible() && rimCurve->yAxis() == this->m_axisProperties->axis() )
{
unitToQuantityNameMap[rimCurve->unitName()].insert(rimCurve->summaryAddress().quantityName());
}
}
}
} }
QString assembledYAxisText; QString assembledYAxisText;
for (const std::string& unitName : unitNames) for ( auto unitIt : unitToQuantityNameMap )
{ {
assembledYAxisText += "[" + QString::fromStdString(unitName) + "] "; for (const auto &quantIt: unitIt.second)
{
assembledYAxisText += QString::fromStdString(quantIt) + " ";
}
assembledYAxisText += "[" + QString::fromStdString(unitIt.first) + "] ";
} }
return assembledYAxisText; return assembledYAxisText;

View File

@ -197,22 +197,17 @@ void RimSummaryPlot::updateAxis(RimDefines::PlotAxis plotAxis)
} }
else else
{ {
std::vector<RimSummaryCurve*> curves = curvesForAxis(plotAxis); if (hasVisibleCurvesForAxis(plotAxis))
std::vector<RimSummaryCurveFilter*> curveFiltersForAxis;
for (RimSummaryCurveFilter* cs : m_curveFilters)
{ {
if (cs->associatedPlotAxis() == plotAxis) std::vector<RimSummaryCurve*> curves;
{ curves.insert(curves.begin(), m_curves.begin(), m_curves.end());
curveFiltersForAxis.push_back(cs);
} std::vector<RimSummaryCurveFilter*> curveFilters;
} curveFilters.insert(curveFilters.begin(), m_curveFilters.begin(), m_curveFilters.end());
if (curves.size() > 0)
{
m_qwtPlot->enableAxis(qwtAxis, true); m_qwtPlot->enableAxis(qwtAxis, true);
RimSummaryPlotYAxisFormater calc(yAxisProperties, curves, curveFiltersForAxis); RimSummaryPlotYAxisFormater calc(yAxisProperties, curves, curveFilters);
calc.applyYAxisPropertiesToPlot(m_qwtPlot); calc.applyYAxisPropertiesToPlot(m_qwtPlot);
} }
else else
@ -234,7 +229,7 @@ std::vector<RimSummaryCurve*> RimSummaryPlot::curvesForAxis(RimDefines::PlotAxis
for (RimSummaryCurve* curve : childCurves) for (RimSummaryCurve* curve : childCurves)
{ {
if (curve->associatedPlotAxis() == plotAxis) if (curve->yAxis() == plotAxis)
{ {
curves.push_back(curve); curves.push_back(curve);
} }
@ -243,6 +238,30 @@ std::vector<RimSummaryCurve*> RimSummaryPlot::curvesForAxis(RimDefines::PlotAxis
return curves; return curves;
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimSummaryPlot::hasVisibleCurvesForAxis(RimDefines::PlotAxis plotAxis) const
{
for (RimSummaryCurve* curve : m_curves)
{
if (curve->isCurveVisible() && curve->yAxis() == plotAxis) return true;
}
for (RimSummaryCurveFilter * curveFilter : m_curveFilters)
{
if (curveFilter->isCurvesVisible())
{
for ( RimSummaryCurve* curve : curveFilter->curves() )
{
if ( curve->isCurveVisible() && curve->yAxis() == plotAxis ) return true;
}
}
}
return false;
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@ -101,6 +101,7 @@ private:
void updateAxis(RimDefines::PlotAxis plotAxis); void updateAxis(RimDefines::PlotAxis plotAxis);
std::vector<RimSummaryCurve*> curvesForAxis(RimDefines::PlotAxis plotAxis) const; std::vector<RimSummaryCurve*> curvesForAxis(RimDefines::PlotAxis plotAxis) const;
bool hasVisibleCurvesForAxis(RimDefines::PlotAxis plotAxis) const;
void updateTimeAxis(); void updateTimeAxis();
void setZoomIntervalsInQwtPlot(); void setZoomIntervalsInQwtPlot();