summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@googlemail.com>2015-07-16 21:15:31 +0200
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2015-07-16 22:18:09 +0200
commit329818a7a1e064675b7f840d8455c963d2a773b2 (patch)
tree8a2c71cc5ccfb4c7edca1a282ebe84daabf44a7b
parent71c6ee42d3311b31896e5a408d8f83f4e5d7726e (diff)
handle trendline checkbox in series panel
Change-Id: I4fc0634ed35c645d2080c667e8ffb90d606612a2
-rw-r--r--chart2/source/controller/sidebar/ChartSeriesPanel.cxx40
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;
}