chart2/source/controller/main/ControllerCommandDispatch.cxx |    5 -
 chart2/source/inc/RegressionCurveHelper.hxx                 |   27 +-----
 chart2/source/tools/RegressionCurveHelper.cxx               |   50 ++++--------
 3 files changed, 27 insertions(+), 55 deletions(-)

New commits:
commit 8734d375be70a991d3e44b5a26191360d4d32a3c
Author:     Noel Grandin <noelgran...@gmail.com>
AuthorDate: Sat Apr 12 22:28:38 2025 +0200
Commit:     Noel Grandin <noelgran...@gmail.com>
CommitDate: Sun Apr 13 17:12:10 2025 +0200

    use more concrete UNO in chart2
    
    Change-Id: I3bd1202fc54d474f135d5d541ecca62b06e80d1b
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184120
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/chart2/source/controller/main/ControllerCommandDispatch.cxx 
b/chart2/source/controller/main/ControllerCommandDispatch.cxx
index c732fae2c49a..8945d168f19e 100644
--- a/chart2/source/controller/main/ControllerCommandDispatch.cxx
+++ b/chart2/source/controller/main/ControllerCommandDispatch.cxx
@@ -33,6 +33,7 @@
 #include <DataSeriesHelper.hxx>
 #include <StatisticsHelper.hxx>
 #include <ReferenceSizeProvider.hxx>
+#include <RegressionCurveModel.hxx>
 #include "ShapeController.hxx"
 
 #include <vcl/svapp.hxx>
@@ -275,8 +276,8 @@ void ControllerState::update(
     {
         bMayFormatTrendline = true;
         bMayDeleteTrendline = true;
-        uno::Reference< chart2::XRegressionCurve > xRegCurve(
-            ObjectIdentifier::getObjectPropertySet( aSelObjCID, xModel ), 
uno::UNO_QUERY );
+        rtl::Reference< RegressionCurveModel > xRegCurve(
+            
dynamic_cast<RegressionCurveModel*>(ObjectIdentifier::getObjectPropertySet( 
aSelObjCID, xModel ).get()) );
 
         // Trendline Equation
         bMayFormatTrendlineEquation = bMayDeleteTrendlineEquation = 
RegressionCurveHelper::hasEquation( xRegCurve );
diff --git a/chart2/source/inc/RegressionCurveHelper.hxx 
b/chart2/source/inc/RegressionCurveHelper.hxx
index 2a0e8d311c9f..a730b91d900d 100644
--- a/chart2/source/inc/RegressionCurveHelper.hxx
+++ b/chart2/source/inc/RegressionCurveHelper.hxx
@@ -142,7 +142,7 @@ namespace chart::RegressionCurveHelper
         createRegressionCurveCalculatorByServiceName( std::u16string_view 
aServiceName );
 
     /** recalculates the regression parameters according to the data given in
-        the data source.
+        the data series.
 
         A sequence having the role "values-x" will be used as x-values for the
         calculation if found.  Otherwise a sequence (1, 2, 3, ...) of category
@@ -152,19 +152,6 @@ namespace chart::RegressionCurveHelper
         The first sequence having the role "values-y" will be used as y-values
         for the recalculateRegression() method of the regression curve.
 
-        @param bUseXValuesIfAvailable
-            If false, the sequence (1, 2, 3, ...) will always be used, even if
-            there is a data-sequence with role "values-x"
-     */
-    void initializeCurveCalculator(
-        const rtl::Reference<RegressionCurveCalculator>& xOutCurveCalculator,
-        const css::uno::Reference<css::chart2::data::XDataSource>& xSource,
-        bool bUseXValuesIfAvailable );
-
-    /** Same method as above, but uses the given XModel to determine the
-        parameter bUseXValuesIfAvailable in the above function.  It is also
-        necessary that the data::XDataSource is an XDataSeries, thus this 
parameter
-        also changed.
      */
     void initializeCurveCalculator(
         const rtl::Reference<RegressionCurveCalculator>& xOutCurveCalculator,
@@ -172,16 +159,16 @@ namespace chart::RegressionCurveHelper
         const rtl::Reference<::chart::ChartModel>& xModel );
 
     OUString getUINameForRegressionCurve(
-        const css::uno::Reference<css::chart2::XRegressionCurve>& xCurve );
+        const rtl::Reference<RegressionCurveModel>& xCurve );
 
     OUString getRegressionCurveName(
-        const css::uno::Reference<css::chart2::XRegressionCurve>& xCurve );
+        const rtl::Reference<RegressionCurveModel>& xCurve );
 
     OUString getRegressionCurveGenericName(
-        const css::uno::Reference<css::chart2::XRegressionCurve>& xCurve );
+        const rtl::Reference<RegressionCurveModel>& xCurve );
 
     OUString getRegressionCurveSpecificName(
-        const css::uno::Reference<css::chart2::XRegressionCurve>& xCurve );
+        const rtl::Reference<RegressionCurveModel>& xCurve );
 
     void resetEquationPosition(
         const css::uno::Reference<css::chart2::XRegressionCurve>& xCurve );
@@ -191,8 +178,8 @@ namespace chart::RegressionCurveHelper
         const rtl::Reference<::chart::DataSeries>& xContainer,
         const rtl::Reference<::chart::RegressionCurveModel>& xCurve );
 
-    bool hasEquation(const css::uno::Reference<css::chart2::XRegressionCurve>& 
xCurve );
-    bool MayHaveCorrelationCoefficient(const 
css::uno::Reference<css::chart2::XRegressionCurve>& xCurve );
+    bool hasEquation(const rtl::Reference<RegressionCurveModel>& xCurve );
+    bool MayHaveCorrelationCoefficient(const 
rtl::Reference<RegressionCurveModel>& xCurve );
 
 } //  namespace chart
 
diff --git a/chart2/source/tools/RegressionCurveHelper.cxx 
b/chart2/source/tools/RegressionCurveHelper.cxx
index a5a9a57ddc4b..b471b3cac510 100644
--- a/chart2/source/tools/RegressionCurveHelper.cxx
+++ b/chart2/source/tools/RegressionCurveHelper.cxx
@@ -171,17 +171,22 @@ rtl::Reference< RegressionCurveCalculator > 
RegressionCurveHelper::createRegress
 
 void RegressionCurveHelper::initializeCurveCalculator(
     const rtl::Reference< RegressionCurveCalculator > & xOutCurveCalculator,
-    const Reference< data::XDataSource > & xSource,
-    bool bUseXValuesIfAvailable /* = true */ )
+    const rtl::Reference< ::chart::DataSeries > & xSeries,
+    const rtl::Reference<::chart::ChartModel> & xModel )
 {
+    sal_Int32 nAxisType = ChartTypeHelper::getAxisType(
+        xModel->getChartTypeOfSeries( xSeries ), 0 ); // x-axis
+
+    bool bUseXValuesIfAvailable = (nAxisType == AxisType::REALNUMBER);
+
     if( ! (xOutCurveCalculator.is() &&
-           xSource.is() ))
+           xSeries.is() ))
         return;
 
     Sequence< double > aXValues, aYValues;
     bool bXValuesFound = false, bYValuesFound = false;
 
-    Sequence< Reference< data::XLabeledDataSequence > > aDataSeqs( 
xSource->getDataSequences());
+    Sequence< Reference< data::XLabeledDataSequence > > aDataSeqs( 
xSeries->getDataSequences());
     sal_Int32 i = 0;
     for( i=0;
          ! (bXValuesFound && bYValuesFound) && i<aDataSeqs.getLength();
@@ -230,19 +235,6 @@ void RegressionCurveHelper::initializeCurveCalculator(
         xOutCurveCalculator->recalculateRegression( aXValues, aYValues );
 }
 
-void RegressionCurveHelper::initializeCurveCalculator(
-    const rtl::Reference< RegressionCurveCalculator > & xOutCurveCalculator,
-    const rtl::Reference< ::chart::DataSeries > & xSeries,
-    const rtl::Reference<::chart::ChartModel> & xModel )
-{
-    sal_Int32 nAxisType = ChartTypeHelper::getAxisType(
-        xModel->getChartTypeOfSeries( xSeries ), 0 ); // x-axis
-
-    initializeCurveCalculator( xOutCurveCalculator,
-                               xSeries,
-                               (nAxisType == AxisType::REALNUMBER) );
-}
-
 bool RegressionCurveHelper::hasMeanValueLine(
     const uno::Reference< XRegressionCurveContainer > & xRegCnt )
 {
@@ -757,7 +749,7 @@ SvxChartRegress 
RegressionCurveHelper::getFirstRegressTypeNotMeanValueLine(
     return eResult;
 }
 
-OUString RegressionCurveHelper::getUINameForRegressionCurve( const Reference< 
XRegressionCurve >& xRegressionCurve )
+OUString RegressionCurveHelper::getUINameForRegressionCurve( const 
rtl::Reference< RegressionCurveModel >& xRegressionCurve )
 {
     OUString aResult = getRegressionCurveSpecificName(xRegressionCurve);
     if (aResult.isEmpty())
@@ -771,17 +763,13 @@ OUString 
RegressionCurveHelper::getUINameForRegressionCurve( const Reference< XR
     return aResult;
 }
 
-OUString RegressionCurveHelper::getRegressionCurveGenericName(const Reference< 
XRegressionCurve >& xRegressionCurve)
+OUString RegressionCurveHelper::getRegressionCurveGenericName(const 
rtl::Reference< RegressionCurveModel >& xRegressionCurve)
 {
     OUString aResult;
     if(!xRegressionCurve.is())
         return aResult;
 
-    Reference< lang::XServiceName > xServiceName( xRegressionCurve, 
uno::UNO_QUERY );
-    if(!xServiceName.is())
-        return aResult;
-
-    OUString aServiceName(xServiceName->getServiceName());
+    OUString aServiceName(xRegressionCurve->getServiceName());
 
     if( aServiceName == "com.sun.star.chart2.MeanValueRegressionCurve" )
     {
@@ -814,23 +802,19 @@ OUString 
RegressionCurveHelper::getRegressionCurveGenericName(const Reference< X
     return aResult;
 }
 
-OUString RegressionCurveHelper::getRegressionCurveSpecificName(const 
Reference< XRegressionCurve >& xRegressionCurve)
+OUString RegressionCurveHelper::getRegressionCurveSpecificName(const 
rtl::Reference< RegressionCurveModel >& xRegressionCurve)
 {
     OUString aResult;
 
     if(!xRegressionCurve.is())
         return aResult;
 
-    Reference<XPropertySet> xProperties( xRegressionCurve, uno::UNO_QUERY );
-    if(!xProperties.is())
-        return aResult;
-
-    xProperties->getPropertyValue(u"CurveName"_ustr) >>= aResult;
+    xRegressionCurve->getPropertyValue(u"CurveName"_ustr) >>= aResult;
 
     return aResult;
 }
 
-OUString RegressionCurveHelper::getRegressionCurveName( const Reference< 
XRegressionCurve >& xRegressionCurve )
+OUString RegressionCurveHelper::getRegressionCurveName( const rtl::Reference< 
RegressionCurveModel >& xRegressionCurve )
 {
     OUString aResult = getRegressionCurveSpecificName(xRegressionCurve);
     if (aResult.isEmpty())
@@ -875,7 +859,7 @@ sal_Int32 RegressionCurveHelper::getRegressionCurveIndex(
     return -1;
 }
 
-bool RegressionCurveHelper::hasEquation( const Reference< 
chart2::XRegressionCurve > & xCurve )
+bool RegressionCurveHelper::hasEquation( const rtl::Reference< 
RegressionCurveModel > & xCurve )
 {
     bool bHasEquation = false;
     if( xCurve.is())
@@ -893,7 +877,7 @@ bool RegressionCurveHelper::hasEquation( const Reference< 
chart2::XRegressionCur
     return bHasEquation;
 }
 
-bool RegressionCurveHelper::MayHaveCorrelationCoefficient( const Reference< 
chart2::XRegressionCurve > & xCurve )
+bool RegressionCurveHelper::MayHaveCorrelationCoefficient( const 
rtl::Reference< RegressionCurveModel > & xCurve )
 {
     bool bMayHaveCorrelationCoefficient = true;
     if( xCurve.is())

Reply via email to