summaryrefslogtreecommitdiff
path: root/chart2/source/tools/RegressionCurveHelper.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'chart2/source/tools/RegressionCurveHelper.cxx')
-rw-r--r--chart2/source/tools/RegressionCurveHelper.cxx41
1 files changed, 40 insertions, 1 deletions
diff --git a/chart2/source/tools/RegressionCurveHelper.cxx b/chart2/source/tools/RegressionCurveHelper.cxx
index 08228bc0961f..5ffc1d5c3e4b 100644
--- a/chart2/source/tools/RegressionCurveHelper.cxx
+++ b/chart2/source/tools/RegressionCurveHelper.cxx
@@ -20,6 +20,8 @@
#include "RegressionCurveHelper.hxx"
#include "MeanValueRegressionCurveCalculator.hxx"
#include "LinearRegressionCurveCalculator.hxx"
+#include "PolynomialRegressionCurveCalculator.hxx"
+#include "MovingAverageRegressionCurveCalculator.hxx"
#include "LogarithmicRegressionCurveCalculator.hxx"
#include "ExponentialRegressionCurveCalculator.hxx"
#include "PotentialRegressionCurveCalculator.hxx"
@@ -63,6 +65,12 @@ OUString lcl_getServiceNameForType( ::chart::RegressionCurveHelper::tRegressionT
case ::chart::RegressionCurveHelper::REGRESSION_TYPE_POWER:
aServiceName = "com.sun.star.chart2.PotentialRegressionCurve";
break;
+ case ::chart::RegressionCurveHelper::REGRESSION_TYPE_POLYNOMIAL:
+ aServiceName = "com.sun.star.chart2.PolynomialRegressionCurve";
+ break;
+ case ::chart::RegressionCurveHelper::REGRESSION_TYPE_MOVING_AVERAGE:
+ aServiceName = "com.sun.star.chart2.MovingAverageRegressionCurve";
+ break;
default:
OSL_FAIL("unknown regression curve type - use linear instead");
aServiceName = "com.sun.star.chart2.LinearRegressionCurve";
@@ -107,6 +115,14 @@ Reference< XRegressionCurve > RegressionCurveHelper::createRegressionCurveByServ
{
xResult.set( new PotentialRegressionCurve( xContext ) );
}
+ else if( aServiceName == "com.sun.star.chart2.PolynomialRegressionCurve" )
+ {
+ xResult.set( new PolynomialRegressionCurve( xContext ) );
+ }
+ else if( aServiceName == "com.sun.star.chart2.MovingAverageRegressionCurve" )
+ {
+ xResult.set( new MovingAverageRegressionCurve( xContext ) );
+ }
return xResult;
}
@@ -139,6 +155,14 @@ Reference< XRegressionCurveCalculator > RegressionCurveHelper::createRegressionC
{
xResult.set( new PotentialRegressionCurveCalculator() );
}
+ else if( aServiceName == "com.sun.star.chart2.PolynomialRegressionCurve" )
+ {
+ xResult.set( new PolynomialRegressionCurveCalculator() );
+ }
+ else if( aServiceName == "com.sun.star.chart2.MovingAverageRegressionCurve" )
+ {
+ xResult.set( new MovingAverageRegressionCurveCalculator() );
+ }
return xResult;
}
@@ -349,7 +373,6 @@ void RegressionCurveHelper::addRegressionCurve(
uno::Reference< chart2::XRegressionCurve > xCurve;
OUString aServiceName( lcl_getServiceNameForType( eType ));
-
if( !aServiceName.isEmpty())
{
// todo: use a valid context
@@ -529,6 +552,14 @@ RegressionCurveHelper::tRegressionType RegressionCurveHelper::getRegressionType(
{
eResult = REGRESSION_TYPE_MEAN_VALUE;
}
+ else if( aServiceName == "com.sun.star.chart2.PolynomialRegressionCurve" )
+ {
+ eResult = REGRESSION_TYPE_POLYNOMIAL;
+ }
+ else if( aServiceName == "com.sun.star.chart2.MovingAverageRegressionCurve" )
+ {
+ eResult = REGRESSION_TYPE_MOVING_AVERAGE;
+ }
}
}
catch( const Exception & ex )
@@ -591,6 +622,14 @@ OUString RegressionCurveHelper::getUINameForRegressionCurve( const Reference< XR
{
aResult = SCH_RESSTR(STR_REGRESSION_POWER);
}
+ else if( aServiceName == "com.sun.star.chart2.PolynomialRegressionCurve" )
+ {
+ aResult = SCH_RESSTR(STR_REGRESSION_POLYNOMIAL);
+ }
+ else if( aServiceName == "com.sun.star.chart2.MovingAverageRegressionCurve" )
+ {
+ aResult = SCH_RESSTR(STR_REGRESSION_MOVING_AVERAGE);
+ }
return aResult;
}