diff options
author | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2015-07-16 21:15:31 +0200 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2015-07-16 22:18:09 +0200 |
commit | 329818a7a1e064675b7f840d8455c963d2a773b2 (patch) | |
tree | 8a2c71cc5ccfb4c7edca1a282ebe84daabf44a7b | |
parent | first parts in data series panel (diff) | |
download | core-329818a7a1e064675b7f840d8455c963d2a773b2.tar.gz core-329818a7a1e064675b7f840d8455c963d2a773b2.zip |
handle trendline checkbox in series panel
Change-Id: I4fc0634ed35c645d2080c667e8ffb90d606612a2
-rw-r--r-- | chart2/source/controller/sidebar/ChartSeriesPanel.cxx | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/chart2/source/controller/sidebar/ChartSeriesPanel.cxx b/chart2/source/controller/sidebar/ChartSeriesPanel.cxx index 1d214254cdf9..598c1d11eb88 100644 --- a/chart2/source/controller/sidebar/ChartSeriesPanel.cxx +++ b/chart2/source/controller/sidebar/ChartSeriesPanel.cxx @@ -38,6 +38,7 @@ #include "ChartModel.hxx" #include "DataSeriesHelper.hxx" +#include "RegressionCurveHelper.hxx" using namespace css; using namespace css::uno; @@ -72,6 +73,42 @@ void setDataLabelVisible(css::uno::Reference<css::frame::XModel> xModel, const O DataSeriesHelper::deleteDataLabelsFromSeriesAndAllPoints(xSeries); } +bool isTrendlineVisible(css::uno::Reference<css::frame::XModel> xModel, + const OUString& rCID) +{ + css::uno::Reference< css::chart2::XRegressionCurveContainer > xRegressionCurveContainer( + ObjectIdentifier::getDataSeriesForCID(rCID, xModel), uno::UNO_QUERY ); + + if (!xRegressionCurveContainer.is()) + return false; + + return xRegressionCurveContainer->getRegressionCurves().getLength() != 0; +} + +void setTrendlineVisible(css::uno::Reference<css::frame::XModel> + xModel, const OUString& rCID, bool bVisible) +{ + css::uno::Reference< css::chart2::XRegressionCurveContainer > xRegressionCurveContainer( + ObjectIdentifier::getDataSeriesForCID(rCID, xModel), uno::UNO_QUERY ); + + if (!xRegressionCurveContainer.is()) + return; + + if (bVisible) + { + /* code */ + uno::Reference< chart2::XRegressionCurve > xCurve = + RegressionCurveHelper::addRegressionCurve( + CHREGRESS_LINEAR, + xRegressionCurveContainer, + comphelper::getProcessComponentContext()); + } + else + RegressionCurveHelper::removeAllExceptMeanValueLine( + xRegressionCurveContainer ); + +} + } ChartSeriesPanel::ChartSeriesPanel( @@ -132,6 +169,7 @@ void ChartSeriesPanel::updateData() #endif SolarMutexGuard aGuard; mpCBLabel->Check(isDataLabelVisible(mxModel, aCID)); + mpCBTrendline->Check(isTrendlineVisible(mxModel, aCID)); } VclPtr<vcl::Window> ChartSeriesPanel::Create ( @@ -200,6 +238,8 @@ IMPL_LINK(ChartSeriesPanel, CheckBoxHdl, CheckBox*, pCheckBox) #endif if (pCheckBox == mpCBLabel.get()) setDataLabelVisible(mxModel, aCID, bChecked); + else if (pCheckBox == mpCBTrendline.get()) + setTrendlineVisible(mxModel, aCID, bChecked); return 0; } |