chart2/source/inc/ChartTypeTemplate.hxx                      |    7 -
 chart2/source/model/main/ChartModel_Persistence.cxx          |    2 
 chart2/source/model/template/BarChartTypeTemplate.cxx        |    3 
 chart2/source/model/template/BarChartTypeTemplate.hxx        |    2 
 chart2/source/model/template/ChartTypeTemplate.cxx           |   38 ++------
 chart2/source/model/template/ColumnLineChartTypeTemplate.cxx |   47 ++++-------
 chart2/source/model/template/ColumnLineChartTypeTemplate.hxx |    2 
 chart2/source/model/template/LineChartTypeTemplate.cxx       |    3 
 chart2/source/model/template/LineChartTypeTemplate.hxx       |    2 
 chart2/source/model/template/NetChartTypeTemplate.cxx        |    3 
 chart2/source/model/template/NetChartTypeTemplate.hxx        |    2 
 chart2/source/model/template/PieChartTypeTemplate.cxx        |    3 
 chart2/source/model/template/PieChartTypeTemplate.hxx        |    2 
 chart2/source/model/template/ScatterChartTypeTemplate.cxx    |    3 
 chart2/source/model/template/ScatterChartTypeTemplate.hxx    |    2 
 chart2/source/model/template/StockChartTypeTemplate.cxx      |    6 -
 chart2/source/model/template/StockChartTypeTemplate.hxx      |    2 
 chart2/source/tools/DiagramHelper.cxx                        |    4 
 18 files changed, 58 insertions(+), 75 deletions(-)

New commits:
commit b274c175a2f57cc414ccff127a2199692fc3b3b4
Author:     Noel Grandin <noelgran...@gmail.com>
AuthorDate: Sun Jan 23 16:17:20 2022 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Sun Jan 23 20:19:56 2022 +0100

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

diff --git a/chart2/source/inc/ChartTypeTemplate.hxx 
b/chart2/source/inc/ChartTypeTemplate.hxx
index 665b2709984c..2bcd1f256515 100644
--- a/chart2/source/inc/ChartTypeTemplate.hxx
+++ b/chart2/source/inc/ChartTypeTemplate.hxx
@@ -93,14 +93,13 @@ public:
 
     OOO_DLLPUBLIC_CHARTTOOLS
     void changeDiagram(
-        const css::uno::Reference< css::chart2::XDiagram >& xDiagram );
+        const rtl::Reference< ::chart::Diagram >& xDiagram );
     void changeDiagramData(
-        const css::uno::Reference< css::chart2::XDiagram >& xDiagram,
+        const rtl::Reference< ::chart::Diagram >& xDiagram,
         const css::uno::Reference< css::chart2::data::XDataSource >& 
xDataSource,
         const css::uno::Sequence< css::beans::PropertyValue >& aArguments );
     virtual bool matchesTemplate(
-        const css::uno::Reference<
-        css::chart2::XDiagram >& xDiagram,
+        const rtl::Reference< ::chart::Diagram >& xDiagram,
         bool bAdaptProperties );
     virtual rtl::Reference< ::chart::ChartType >
         getChartTypeForNewSeries( const std::vector<
diff --git a/chart2/source/model/main/ChartModel_Persistence.cxx 
b/chart2/source/model/main/ChartModel_Persistence.cxx
index 7d891996d9b5..a9eb264292c3 100644
--- a/chart2/source/model/main/ChartModel_Persistence.cxx
+++ b/chart2/source/model/main/ChartModel_Persistence.cxx
@@ -728,7 +728,7 @@ void SAL_CALL ChartModel::modified( const 
lang::EventObject& rEvenObject)
 
             Reference<chart2::data::XDataSource> 
xDataSource(xDataProvider->createDataSource(aArguments));
             rtl::Reference< ::chart::ChartTypeManager > xChartTypeManager = 
getTypeManager();
-            Reference<chart2::XDiagram> xDiagram(getFirstDiagram());
+            rtl::Reference<Diagram> xDiagram(getFirstChartDiagram());
 
             DiagramHelper::tTemplateWithServiceName aTemplateAndService = 
DiagramHelper::getTemplateForDiagram(xDiagram, xChartTypeManager);
             
aTemplateAndService.xChartTypeTemplate->changeDiagramData(xDiagram, 
xDataSource, aArguments);
diff --git a/chart2/source/model/template/BarChartTypeTemplate.cxx 
b/chart2/source/model/template/BarChartTypeTemplate.cxx
index 84d1f06a5cbe..266c07434319 100644
--- a/chart2/source/model/template/BarChartTypeTemplate.cxx
+++ b/chart2/source/model/template/BarChartTypeTemplate.cxx
@@ -19,6 +19,7 @@
 
 #include "BarChartTypeTemplate.hxx"
 #include "ColumnChartType.hxx"
+#include <Diagram.hxx>
 #include <DiagramHelper.hxx>
 #include <servicenames_charttypes.hxx>
 #include <DataSeriesHelper.hxx>
@@ -165,7 +166,7 @@ bool BarChartTypeTemplate::isSwapXAndY() const
 
 // ____ ChartTypeTemplate ____
 bool  BarChartTypeTemplate::matchesTemplate(
-    const Reference< chart2::XDiagram >& xDiagram,
+    const rtl::Reference< ::chart::Diagram >& xDiagram,
     bool bAdaptProperties )
 {
     bool bResult = ChartTypeTemplate::matchesTemplate( xDiagram, 
bAdaptProperties );
diff --git a/chart2/source/model/template/BarChartTypeTemplate.hxx 
b/chart2/source/model/template/BarChartTypeTemplate.hxx
index fc12eb94b685..4364743082fe 100644
--- a/chart2/source/model/template/BarChartTypeTemplate.hxx
+++ b/chart2/source/model/template/BarChartTypeTemplate.hxx
@@ -64,7 +64,7 @@ protected:
 
     // ____ ChartTypeTemplate ____
     virtual bool matchesTemplate(
-        const css::uno::Reference< css::chart2::XDiagram >& xDiagram,
+        const rtl::Reference< ::chart::Diagram >& xDiagram,
         bool bAdaptProperties ) override;
     virtual rtl::Reference< ::chart::ChartType >
         getChartTypeForNewSeries( const std::vector<
diff --git a/chart2/source/model/template/ChartTypeTemplate.cxx 
b/chart2/source/model/template/ChartTypeTemplate.cxx
index cabeedb76304..a2451a430b3d 100644
--- a/chart2/source/model/template/ChartTypeTemplate.cxx
+++ b/chart2/source/model/template/ChartTypeTemplate.cxx
@@ -27,6 +27,7 @@
 #include <Diagram.hxx>
 #include <DiagramHelper.hxx>
 #include <AxisIndexDefines.hxx>
+#include <BaseCoordinateSystem.hxx>
 #include <unonames.hxx>
 
 #include <com/sun/star/uno/XComponentContext.hpp>
@@ -177,7 +178,7 @@ bool ChartTypeTemplate::supportsCategories()
     return true;
 }
 
-void ChartTypeTemplate::changeDiagram( const uno::Reference< XDiagram >& 
xDiagram )
+void ChartTypeTemplate::changeDiagram( const rtl::Reference< Diagram >& 
xDiagram )
 {
     if( ! xDiagram.is())
         return;
@@ -228,18 +229,9 @@ void ChartTypeTemplate::changeDiagram( const 
uno::Reference< XDiagram >& xDiagra
         std::vector< rtl::Reference< ChartType > > aOldChartTypesSeq =
             DiagramHelper::getChartTypesFromDiagram(xDiagram);
 
-        Reference< XCoordinateSystemContainer > xCoordSysCnt( xDiagram, 
uno::UNO_QUERY );
-        OSL_ASSERT( xCoordSysCnt.is());
-        if( xCoordSysCnt.is())
+        for( rtl::Reference< BaseCoordinateSystem > const & coords : 
xDiagram->getBaseCoordinateSystems() )
         {
-            const Sequence< Reference< XCoordinateSystem > > aCooSysSeq(
-                xCoordSysCnt->getCoordinateSystems());
-            for( Reference< XCoordinateSystem > const & coords : aCooSysSeq )
-            {
-                Reference< XChartTypeContainer > xContainer( coords, 
uno::UNO_QUERY );
-                if( xContainer.is() )
-                    xContainer->setChartTypes( Sequence< Reference< XChartType 
> >() );
-            }
+            coords->setChartTypes( Sequence< Reference< XChartType > >() );
         }
 
         FillDiagram( xDiagram, aSeriesSeq, aData.Categories, aOldChartTypesSeq 
);
@@ -251,7 +243,7 @@ void ChartTypeTemplate::changeDiagram( const 
uno::Reference< XDiagram >& xDiagra
 }
 
 void ChartTypeTemplate::changeDiagramData(
-    const Reference< chart2::XDiagram >& xDiagram,
+    const rtl::Reference< Diagram >& xDiagram,
     const Reference< chart2::data::XDataSource >& xDataSource,
     const Sequence< beans::PropertyValue >& aArguments )
 {
@@ -301,7 +293,7 @@ void ChartTypeTemplate::changeDiagramData(
 }
 
 bool ChartTypeTemplate::matchesTemplate(
-    const Reference< chart2::XDiagram >& xDiagram,
+    const rtl::Reference< ::chart::Diagram >& xDiagram,
     bool /* bAdaptProperties */ )
 {
     bool bResult = false;
@@ -311,13 +303,11 @@ bool ChartTypeTemplate::matchesTemplate(
 
     try
     {
-        Reference< XCoordinateSystemContainer > xCooSysCnt(
-            xDiagram, uno::UNO_QUERY_THROW );
-        Sequence< Reference< XCoordinateSystem > > aCooSysSeq(
-            xCooSysCnt->getCoordinateSystems());
+        const std::vector< rtl::Reference< BaseCoordinateSystem > > & 
aCooSysSeq(
+            xDiagram->getBaseCoordinateSystems());
 
         // need to have at least one coordinate system
-        bResult = aCooSysSeq.hasElements();
+        bResult = !aCooSysSeq.empty();
         if( bResult )
         {
             std::vector< rtl::Reference< ChartType > > aFormerlyUsedChartTypes;
@@ -327,18 +317,14 @@ bool ChartTypeTemplate::matchesTemplate(
 
             const OUString aChartTypeToMatch = xOldCT->getChartType();
             const sal_Int32 nDimensionToMatch = getDimension();
-            for( sal_Int32 nCooSysIdx=0; bResult && (nCooSysIdx < 
aCooSysSeq.getLength()); ++nCooSysIdx )
+            for( sal_Int32 nCooSysIdx=0; bResult && (nCooSysIdx < 
static_cast<sal_Int32>(aCooSysSeq.size())); ++nCooSysIdx )
             {
                 // match dimension
                 bResult = bResult && (aCooSysSeq[nCooSysIdx]->getDimension() 
== nDimensionToMatch);
 
-                Reference< XChartTypeContainer > xCTCnt( 
aCooSysSeq[nCooSysIdx], uno::UNO_QUERY_THROW );
-                Sequence< Reference< XChartType > > aChartTypeSeq( 
xCTCnt->getChartTypes());
-                for( sal_Int32 nCTIdx=0; bResult && (nCTIdx < 
aChartTypeSeq.getLength()); ++nCTIdx )
+                std::vector< rtl::Reference< ChartType > > aChartTypeSeq( 
aCooSysSeq[nCooSysIdx]->getChartTypes2());
+                for( sal_Int32 nCTIdx=0; bResult && (nCTIdx < 
static_cast<sal_Int32>(aChartTypeSeq.size())); ++nCTIdx )
                 {
-                    if (!aChartTypeSeq[nCTIdx].is())
-                        return false;
-
                     // match chart type
                     bResult = bResult && aChartTypeSeq[nCTIdx]->getChartType() 
== aChartTypeToMatch;
                     bool bFound=false;
diff --git a/chart2/source/model/template/ColumnLineChartTypeTemplate.cxx 
b/chart2/source/model/template/ColumnLineChartTypeTemplate.cxx
index 181012dfa63b..26ba46b7afa9 100644
--- a/chart2/source/model/template/ColumnLineChartTypeTemplate.cxx
+++ b/chart2/source/model/template/ColumnLineChartTypeTemplate.cxx
@@ -21,6 +21,8 @@
 #include "ColumnChartType.hxx"
 #include "LineChartType.hxx"
 #include <CommonConverters.hxx>
+#include <BaseCoordinateSystem.hxx>
+#include <Diagram.hxx>
 #include <DiagramHelper.hxx>
 #include <DataSeriesHelper.hxx>
 #include <servicenames_charttypes.hxx>
@@ -271,7 +273,7 @@ StackMode ColumnLineChartTypeTemplate::getStackMode( 
sal_Int32 nChartTypeIndex )
 
 // ____ XChartTypeTemplate ____
 bool ColumnLineChartTypeTemplate::matchesTemplate(
-    const uno::Reference< XDiagram >& xDiagram,
+    const rtl::Reference< ::chart::Diagram >& xDiagram,
     bool bAdaptProperties )
 {
     bool bResult = false;
@@ -281,35 +283,27 @@ bool ColumnLineChartTypeTemplate::matchesTemplate(
 
     try
     {
-        Reference< chart2::XChartType > xColumnChartType;
-        Reference< XCoordinateSystem > xColumnChartCooSys;
-        Reference< chart2::XChartType > xLineChartType;
+        rtl::Reference< ChartType > xColumnChartType;
+        rtl::Reference< BaseCoordinateSystem > xColumnChartCooSys;
+        rtl::Reference< ChartType > xLineChartType;
         sal_Int32 nNumberOfChartTypes = 0;
 
-        Reference< XCoordinateSystemContainer > xCooSysCnt(
-            xDiagram, uno::UNO_QUERY_THROW );
-        const Sequence< Reference< XCoordinateSystem > > aCooSysSeq(
-            xCooSysCnt->getCoordinateSystems());
-        for( Reference< XCoordinateSystem > const & coords : aCooSysSeq )
+        for( rtl::Reference< BaseCoordinateSystem > const & coords : 
xDiagram->getBaseCoordinateSystems() )
         {
-            Reference< XChartTypeContainer > xCTCnt( coords, 
uno::UNO_QUERY_THROW );
-            const Sequence< Reference< XChartType > > aChartTypeSeq( 
xCTCnt->getChartTypes());
-            for( Reference< XChartType > const & chartType : aChartTypeSeq )
+            const std::vector< rtl::Reference< ChartType > > aChartTypeSeq( 
coords->getChartTypes2());
+            for( rtl::Reference< ChartType > const & chartType : aChartTypeSeq 
)
             {
-                if( chartType.is())
+                ++nNumberOfChartTypes;
+                if( nNumberOfChartTypes > 2 )
+                    break;
+                OUString aCTService = chartType->getChartType();
+                if( aCTService == CHART2_SERVICE_NAME_CHARTTYPE_COLUMN )
                 {
-                    ++nNumberOfChartTypes;
-                    if( nNumberOfChartTypes > 2 )
-                        break;
-                    OUString aCTService = chartType->getChartType();
-                    if( aCTService == CHART2_SERVICE_NAME_CHARTTYPE_COLUMN )
-                    {
-                        xColumnChartType.set( chartType );
-                        xColumnChartCooSys.set( coords );
-                    }
-                    else if( aCTService == CHART2_SERVICE_NAME_CHARTTYPE_LINE )
-                        xLineChartType.set( chartType );
+                    xColumnChartType = chartType;
+                    xColumnChartCooSys = coords;
                 }
+                else if( aCTService == CHART2_SERVICE_NAME_CHARTTYPE_LINE )
+                    xLineChartType = chartType;
             }
             if( nNumberOfChartTypes > 2 )
                 break;
@@ -334,10 +328,9 @@ bool ColumnLineChartTypeTemplate::matchesTemplate(
 
                 if( bResult && bAdaptProperties )
                 {
-                    Reference< XDataSeriesContainer > xSeriesContainer( 
xLineChartType, uno::UNO_QUERY );
-                    if( xSeriesContainer.is() )
+                    if( xLineChartType.is() )
                     {
-                        sal_Int32 nNumberOfLines = 
xSeriesContainer->getDataSeries().getLength();
+                        sal_Int32 nNumberOfLines = 
xLineChartType->getDataSeries().getLength();
                         setFastPropertyValue_NoBroadcast( 
PROP_COL_LINE_NUMBER_OF_LINES, uno::Any( nNumberOfLines ));
                     }
                 }
diff --git a/chart2/source/model/template/ColumnLineChartTypeTemplate.hxx 
b/chart2/source/model/template/ColumnLineChartTypeTemplate.hxx
index 42705776cce4..a8854a779d9d 100644
--- a/chart2/source/model/template/ColumnLineChartTypeTemplate.hxx
+++ b/chart2/source/model/template/ColumnLineChartTypeTemplate.hxx
@@ -57,7 +57,7 @@ protected:
 
     // ____ XChartTypeTemplate ____
     virtual bool matchesTemplate(
-        const css::uno::Reference< css::chart2::XDiagram >& xDiagram,
+        const rtl::Reference< ::chart::Diagram >& xDiagram,
         bool bAdaptProperties ) override;
     virtual rtl::Reference< ::chart::ChartType >
         getChartTypeForNewSeries( const std::vector<
diff --git a/chart2/source/model/template/LineChartTypeTemplate.cxx 
b/chart2/source/model/template/LineChartTypeTemplate.cxx
index be8a81ad17bb..9629ab9e471b 100644
--- a/chart2/source/model/template/LineChartTypeTemplate.cxx
+++ b/chart2/source/model/template/LineChartTypeTemplate.cxx
@@ -19,6 +19,7 @@
 
 #include "LineChartTypeTemplate.hxx"
 #include "LineChartType.hxx"
+#include <Diagram.hxx>
 #include <DiagramHelper.hxx>
 #include <servicenames_charttypes.hxx>
 #include <DataSeriesHelper.hxx>
@@ -201,7 +202,7 @@ StackMode LineChartTypeTemplate::getStackMode( sal_Int32 /* 
nChartTypeIndex */ )
 
 // ____ ChartTypeTemplate ____
 bool LineChartTypeTemplate::matchesTemplate(
-    const uno::Reference< chart2::XDiagram >& xDiagram,
+    const rtl::Reference< ::chart::Diagram >& xDiagram,
     bool bAdaptProperties )
 {
     bool bResult = ChartTypeTemplate::matchesTemplate( xDiagram, 
bAdaptProperties );
diff --git a/chart2/source/model/template/LineChartTypeTemplate.hxx 
b/chart2/source/model/template/LineChartTypeTemplate.hxx
index 976c878328a3..55d0a23c0fb3 100644
--- a/chart2/source/model/template/LineChartTypeTemplate.hxx
+++ b/chart2/source/model/template/LineChartTypeTemplate.hxx
@@ -58,7 +58,7 @@ protected:
 
     // ____ XChartTypeTemplate ____
     virtual bool matchesTemplate(
-        const css::uno::Reference< css::chart2::XDiagram >& xDiagram,
+        const rtl::Reference< ::chart::Diagram >& xDiagram,
         bool bAdaptProperties ) override;
     virtual rtl::Reference< ::chart::ChartType >
         getChartTypeForNewSeries( const std::vector<
diff --git a/chart2/source/model/template/NetChartTypeTemplate.cxx 
b/chart2/source/model/template/NetChartTypeTemplate.cxx
index 4cfffb66b838..222456629783 100644
--- a/chart2/source/model/template/NetChartTypeTemplate.cxx
+++ b/chart2/source/model/template/NetChartTypeTemplate.cxx
@@ -20,6 +20,7 @@
 #include "NetChartTypeTemplate.hxx"
 #include "FilledNetChartType.hxx"
 #include "NetChartType.hxx"
+#include <Diagram.hxx>
 #include <DiagramHelper.hxx>
 #include <servicenames_charttypes.hxx>
 #include <DataSeriesHelper.hxx>
@@ -87,7 +88,7 @@ void NetChartTypeTemplate::applyStyle(
 
 // ____ ChartTypeTemplate ____
 bool NetChartTypeTemplate::matchesTemplate(
-    const Reference< chart2::XDiagram >& xDiagram,
+    const rtl::Reference< ::chart::Diagram >& xDiagram,
     bool bAdaptProperties )
 {
     bool bResult = ChartTypeTemplate::matchesTemplate( xDiagram, 
bAdaptProperties );
diff --git a/chart2/source/model/template/NetChartTypeTemplate.hxx 
b/chart2/source/model/template/NetChartTypeTemplate.hxx
index 7643cd7d5efe..6b57e3fe0890 100644
--- a/chart2/source/model/template/NetChartTypeTemplate.hxx
+++ b/chart2/source/model/template/NetChartTypeTemplate.hxx
@@ -40,7 +40,7 @@ public:
 protected:
     // ____ ChartTypeTemplate ____
     virtual bool matchesTemplate(
-        const css::uno::Reference< css::chart2::XDiagram >& xDiagram,
+        const rtl::Reference< ::chart::Diagram >& xDiagram,
         bool bAdaptProperties ) override;
     virtual rtl::Reference< ::chart::ChartType >
         getChartTypeForNewSeries( const std::vector<
diff --git a/chart2/source/model/template/PieChartTypeTemplate.cxx 
b/chart2/source/model/template/PieChartTypeTemplate.cxx
index 49f92d14dfc3..320d41f9227a 100644
--- a/chart2/source/model/template/PieChartTypeTemplate.cxx
+++ b/chart2/source/model/template/PieChartTypeTemplate.cxx
@@ -21,6 +21,7 @@
 #include "PieChartType.hxx"
 #include <CommonConverters.hxx>
 #include <ChartType.hxx>
+#include <Diagram.hxx>
 #include <DiagramHelper.hxx>
 #include <servicenames_charttypes.hxx>
 #include <DataSeriesHelper.hxx>
@@ -317,7 +318,7 @@ void PieChartTypeTemplate::createChartTypes(
 
 // ____ XChartTypeTemplate ____
 bool PieChartTypeTemplate::matchesTemplate(
-    const uno::Reference< chart2::XDiagram >& xDiagram,
+    const rtl::Reference< ::chart::Diagram >& xDiagram,
     bool bAdaptProperties )
 {
     bool bResult = ChartTypeTemplate::matchesTemplate( xDiagram, 
bAdaptProperties );
diff --git a/chart2/source/model/template/PieChartTypeTemplate.hxx 
b/chart2/source/model/template/PieChartTypeTemplate.hxx
index 62d28c293a45..307b0ee23f1d 100644
--- a/chart2/source/model/template/PieChartTypeTemplate.hxx
+++ b/chart2/source/model/template/PieChartTypeTemplate.hxx
@@ -58,7 +58,7 @@ protected:
 
     // ____ XChartTypeTemplate ____
     virtual bool matchesTemplate(
-        const css::uno::Reference< css::chart2::XDiagram >& xDiagram,
+        const rtl::Reference< ::chart::Diagram >& xDiagram,
         bool bAdaptProperties ) override;
     virtual rtl::Reference< ::chart::ChartType >
         getChartTypeForNewSeries( const std::vector<
diff --git a/chart2/source/model/template/ScatterChartTypeTemplate.cxx 
b/chart2/source/model/template/ScatterChartTypeTemplate.cxx
index c2b2d4e68035..b6ebf646e7e4 100644
--- a/chart2/source/model/template/ScatterChartTypeTemplate.cxx
+++ b/chart2/source/model/template/ScatterChartTypeTemplate.cxx
@@ -21,6 +21,7 @@
 #include "ScatterChartType.hxx"
 #include "XYDataInterpreter.hxx"
 #include <ChartType.hxx>
+#include <Diagram.hxx>
 #include <DiagramHelper.hxx>
 #include <servicenames_charttypes.hxx>
 #include <DataSeriesHelper.hxx>
@@ -230,7 +231,7 @@ bool ScatterChartTypeTemplate::supportsCategories()
 }
 
 bool ScatterChartTypeTemplate::matchesTemplate(
-    const Reference< chart2::XDiagram >& xDiagram,
+    const rtl::Reference< ::chart::Diagram >& xDiagram,
     bool bAdaptProperties )
 {
     bool bResult = ChartTypeTemplate::matchesTemplate( xDiagram, 
bAdaptProperties );
diff --git a/chart2/source/model/template/ScatterChartTypeTemplate.hxx 
b/chart2/source/model/template/ScatterChartTypeTemplate.hxx
index 7f9decd0341d..e72bd007d771 100644
--- a/chart2/source/model/template/ScatterChartTypeTemplate.hxx
+++ b/chart2/source/model/template/ScatterChartTypeTemplate.hxx
@@ -57,7 +57,7 @@ protected:
     // ____ XChartTypeTemplate ____
     virtual bool supportsCategories() override;
     virtual bool matchesTemplate(
-        const css::uno::Reference< css::chart2::XDiagram >& xDiagram,
+        const rtl::Reference< ::chart::Diagram >& xDiagram,
         bool bAdaptProperties ) override;
     virtual rtl::Reference< ::chart::ChartType >
         getChartTypeForNewSeries( const std::vector<
diff --git a/chart2/source/model/template/StockChartTypeTemplate.cxx 
b/chart2/source/model/template/StockChartTypeTemplate.cxx
index 43018fe8b657..afacb1c3b633 100644
--- a/chart2/source/model/template/StockChartTypeTemplate.cxx
+++ b/chart2/source/model/template/StockChartTypeTemplate.cxx
@@ -364,15 +364,13 @@ void StockChartTypeTemplate::createChartTypes(
 
 // ____ ChartTypeTemplate ____
 bool StockChartTypeTemplate::matchesTemplate(
-    const uno::Reference< XDiagram >& xDiagram,
+    const rtl::Reference< ::chart::Diagram >& xDiagram,
     bool /* bAdaptProperties */ )
 {
     bool bResult = false;
 
     if( ! xDiagram.is())
         return bResult;
-    Diagram* pDiagram = dynamic_cast<Diagram*>(xDiagram.get());
-    assert(pDiagram);
 
     try
     {
@@ -387,7 +385,7 @@ bool StockChartTypeTemplate::matchesTemplate(
         Reference< chart2::XChartType > xLineChartType;
         sal_Int32 nNumberOfChartTypes = 0;
 
-        for( rtl::Reference< BaseCoordinateSystem > const & coords : 
pDiagram->getBaseCoordinateSystems() )
+        for( rtl::Reference< BaseCoordinateSystem > const & coords : 
xDiagram->getBaseCoordinateSystems() )
         {
             const Sequence< Reference< XChartType > > aChartTypeSeq( 
coords->getChartTypes());
             for( Reference< XChartType >  const & chartType : aChartTypeSeq )
diff --git a/chart2/source/model/template/StockChartTypeTemplate.hxx 
b/chart2/source/model/template/StockChartTypeTemplate.hxx
index 61a4017250dd..5ea72f65fb8d 100644
--- a/chart2/source/model/template/StockChartTypeTemplate.hxx
+++ b/chart2/source/model/template/StockChartTypeTemplate.hxx
@@ -71,7 +71,7 @@ protected:
 
     // ____ XChartTypeTemplate ____
     virtual bool matchesTemplate(
-        const css::uno::Reference< css::chart2::XDiagram >& xDiagram,
+        const rtl::Reference< ::chart::Diagram >& xDiagram,
         bool bAdaptProperties ) override;
     virtual rtl::Reference< ::chart::ChartType >
         getChartTypeForNewSeries( const std::vector<
diff --git a/chart2/source/tools/DiagramHelper.cxx 
b/chart2/source/tools/DiagramHelper.cxx
index b47fe41b0140..f7440c8ec1c0 100644
--- a/chart2/source/tools/DiagramHelper.cxx
+++ b/chart2/source/tools/DiagramHelper.cxx
@@ -85,6 +85,8 @@ DiagramHelper::tTemplateWithServiceName
 
     if( ! (xChartTypeManager.is() && xDiagram.is()))
         return aResult;
+    auto pDiagram = dynamic_cast<Diagram*>(xDiagram.get());
+    assert(pDiagram);
 
     Sequence< OUString > aServiceNames( 
xChartTypeManager->getAvailableServiceNames());
     const sal_Int32 nLength = aServiceNames.getLength();
@@ -98,7 +100,7 @@ DiagramHelper::tTemplateWithServiceName
             rtl::Reference< ::chart::ChartTypeTemplate > xTempl =
                 xChartTypeManager->createTemplate( aServiceNames[ i ] );
 
-            if (xTempl.is() && xTempl->matchesTemplate(xDiagram, true))
+            if (xTempl.is() && xTempl->matchesTemplate(pDiagram, true))
             {
                 aResult.xChartTypeTemplate = xTempl;
                 aResult.sServiceName = aServiceNames[ i ];

Reply via email to