chart2/source/inc/TitleHelper.hxx        |   13 +++++++------
 chart2/source/tools/ObjectIdentifier.cxx |   28 +++++++++++++++-------------
 chart2/source/tools/TitleHelper.cxx      |   21 ++++++++++-----------
 3 files changed, 32 insertions(+), 30 deletions(-)

New commits:
commit ed9b410a1932fabfd335ab0b613be6595af6a5a2
Author:     Noel Grandin <noelgran...@gmail.com>
AuthorDate: Sun Jan 23 20:02:44 2022 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Mon Jan 24 07:04:56 2022 +0100

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

diff --git a/chart2/source/inc/TitleHelper.hxx 
b/chart2/source/inc/TitleHelper.hxx
index c85b5ce1a3ff..f6978674be0a 100644
--- a/chart2/source/inc/TitleHelper.hxx
+++ b/chart2/source/inc/TitleHelper.hxx
@@ -19,6 +19,7 @@
 #pragma once
 
 #include <com/sun/star/uno/Reference.h>
+#include <rtl/ref.hxx>
 #include <rtl/ustring.hxx>
 #include "charttoolsdllapi.hxx"
 
@@ -57,24 +58,24 @@ public:
 
     static css::uno::Reference< css::chart2::XTitle >
         getTitle( eTitleType nTitleIndex
-                    , const css::uno::Reference< css::frame::XModel >& xModel 
);
+                    , const rtl::Reference< ::chart::ChartModel >& xModel );
 
     static css::uno::Reference<
             css::chart2::XTitle >
         createTitle(  eTitleType nTitleIndex
                     , const OUString& rTitleText
-                    , const css::uno::Reference< css::frame::XModel >& xModel
+                    , const rtl::Reference< ::chart::ChartModel >& xModel
                     , const css::uno::Reference< css::uno::XComponentContext > 
& xContext
                     , ReferenceSizeProvider * pRefSizeProvider = nullptr );
     static css::uno::Reference<
             css::chart2::XTitle >
           createOrShowTitle(  eTitleType nTitleIndex
                     , const OUString& rTitleText
-                    , const css::uno::Reference< css::frame::XModel >& xModel
+                    , const rtl::Reference< ::chart::ChartModel >& xModel
                     , const css::uno::Reference< css::uno::XComponentContext > 
& xContex );
 
     static void removeTitle( eTitleType nTitleIndex
-                    , const css::uno::Reference< css::frame::XModel >& xModel 
);
+                    , const rtl::Reference< ::chart::ChartModel >& xModel );
 
     static OUString getCompleteString( const css::uno::Reference< 
css::chart2::XTitle >& xTitle );
     static void setCompleteString( const OUString& rNewText
@@ -88,9 +89,9 @@ public:
 
     static bool getTitleType( eTitleType& rType
                     , const css::uno::Reference< css::chart2::XTitle >& xTitle
-                    , const css::uno::Reference< css::frame::XModel >& xModel 
);
+                    , const rtl::Reference< ::chart::ChartModel >& xModel );
     static void hideTitle( eTitleType nTitleIndex,
-            const css::uno::Reference< css::frame::XModel > & xModel);
+            const rtl::Reference< ::chart::ChartModel > & xModel);
 };
 
 } //namespace chart
diff --git a/chart2/source/tools/ObjectIdentifier.cxx 
b/chart2/source/tools/ObjectIdentifier.cxx
index 8983e7ef427a..a9bdb598e693 100644
--- a/chart2/source/tools/ObjectIdentifier.cxx
+++ b/chart2/source/tools/ObjectIdentifier.cxx
@@ -214,7 +214,7 @@ void lcl_parseSeriesIndices( sal_Int32& rnChartTypeIndex, 
sal_Int32& rnSeriesInd
 void lcl_getDiagramAndCooSys( const OUString& rObjectCID
                 , const Reference< frame::XModel >& xChartModel
                 , rtl::Reference< Diagram >& xDiagram
-                , Reference< XCoordinateSystem >& xCooSys )
+                , rtl::Reference< BaseCoordinateSystem >& xCooSys )
 {
     sal_Int32 nDiagramIndex = -1;
     sal_Int32 nCooSysIndex = -1;
@@ -225,8 +225,8 @@ void lcl_getDiagramAndCooSys( const OUString& rObjectCID
 
     if( nCooSysIndex > -1 )
     {
-        uno::Sequence< Reference< XCoordinateSystem > > aCooSysList( 
xDiagram->getCoordinateSystems() );
-        if( nCooSysIndex < aCooSysList.getLength() )
+        const std::vector< rtl::Reference< BaseCoordinateSystem > > 
aCooSysList( xDiagram->getBaseCoordinateSystems() );
+        if( nCooSysIndex < static_cast<sal_Int32>(aCooSysList.size()) )
             xCooSys = aCooSysList[nCooSysIndex];
     }
 }
@@ -386,6 +386,8 @@ OUString 
ObjectIdentifier::createClassifiedIdentifierForObject(
     OUString aParentParticle;
     const OUString aDragMethodServiceName;
     const OUString aDragParameterString;
+    auto pModel = dynamic_cast<ChartModel*>(xChartModel.get());
+    assert(!xChartModel || pModel);
 
     try
     {
@@ -394,7 +396,7 @@ OUString 
ObjectIdentifier::createClassifiedIdentifierForObject(
         if( xTitle.is() )
         {
             TitleHelper::eTitleType aTitleType;
-            if( TitleHelper::getTitleType( aTitleType, xTitle, xChartModel ) )
+            if( TitleHelper::getTitleType( aTitleType, xTitle, pModel ) )
             {
                 eObjectType = OBJECTTYPE_TITLE;
                 aParentParticle = lcl_getTitleParentParticle( aTitleType );
@@ -1162,6 +1164,8 @@ Reference< beans::XPropertySet > 
ObjectIdentifier::getObjectPropertySet(
         return nullptr;
     if(!xChartModel.is())
         return nullptr;
+    auto pModel = dynamic_cast<ChartModel*>(xChartModel.get());
+    assert(pModel);
 
     Reference< beans::XPropertySet > xObjectProperties;
     try
@@ -1170,22 +1174,20 @@ Reference< beans::XPropertySet > 
ObjectIdentifier::getObjectPropertySet(
         OUString aParticleID = ObjectIdentifier::getParticleID( rObjectCID );
 
         rtl::Reference< Diagram > xDiagram;
-        Reference< XCoordinateSystem > xCooSys;
-        lcl_getDiagramAndCooSys( rObjectCID, xChartModel, xDiagram, xCooSys );
+        rtl::Reference< BaseCoordinateSystem > xCooSys;
+        lcl_getDiagramAndCooSys( rObjectCID, pModel, xDiagram, xCooSys );
 
         switch(eObjectType)
         {
             case OBJECTTYPE_PAGE:
                 {
-                    Reference< XChartDocument > xChartDocument( xChartModel, 
uno::UNO_QUERY );
-                    if( xChartDocument.is())
-                        xObjectProperties.set( 
xChartDocument->getPageBackground() );
+                    xObjectProperties.set( pModel->getPageBackground() );
                 }
                 break;
             case OBJECTTYPE_TITLE:
                 {
                     TitleHelper::eTitleType aTitleType = getTitleTypeForCID( 
rObjectCID );
-                    Reference< XTitle > xTitle( TitleHelper::getTitle( 
aTitleType, xChartModel ) );
+                    Reference< XTitle > xTitle( TitleHelper::getTitle( 
aTitleType, pModel ) );
                     xObjectProperties.set( xTitle, uno::UNO_QUERY );
                 }
                 break;
@@ -1345,7 +1347,7 @@ Reference< XAxis > ObjectIdentifier::getAxisForCID(
                 , const Reference< frame::XModel >& xChartModel )
 {
     rtl::Reference< Diagram > xDiagram;
-    Reference< XCoordinateSystem > xCooSys;
+    rtl::Reference< BaseCoordinateSystem > xCooSys;
     lcl_getDiagramAndCooSys( rObjectCID, xChartModel, xDiagram, xCooSys );
 
     sal_Int32 nDimensionIndex = -1;
@@ -1362,7 +1364,7 @@ Reference< XDataSeries > 
ObjectIdentifier::getDataSeriesForCID(
     Reference< XDataSeries > xSeries;
 
     rtl::Reference< Diagram > xDiagram;
-    Reference< XCoordinateSystem > xCooSys;
+    rtl::Reference< BaseCoordinateSystem > xCooSys;
     lcl_getDiagramAndCooSys( rObjectCID, xChartModel, xDiagram, xCooSys );
 
     sal_Int32 nChartTypeIndex = -1;
@@ -1386,7 +1388,7 @@ rtl::Reference< Diagram > 
ObjectIdentifier::getDiagramForCID(
                 , const uno::Reference< frame::XModel >& xChartModel )
 {
     rtl::Reference< Diagram > xDiagram;
-    Reference< XCoordinateSystem > xCooSys;
+    rtl::Reference< BaseCoordinateSystem > xCooSys;
     lcl_getDiagramAndCooSys( rObjectCID, xChartModel, xDiagram, xCooSys );
 
     return xDiagram;
diff --git a/chart2/source/tools/TitleHelper.cxx 
b/chart2/source/tools/TitleHelper.cxx
index 0078e0a29a6c..2a66c72171f2 100644
--- a/chart2/source/tools/TitleHelper.cxx
+++ b/chart2/source/tools/TitleHelper.cxx
@@ -154,19 +154,18 @@ uno::Reference< XTitle > TitleHelper::getTitle( 
TitleHelper::eTitleType nTitleIn
 }
 
 uno::Reference< XTitle > TitleHelper::getTitle( TitleHelper::eTitleType 
nTitleIndex
-                            , const uno::Reference< frame::XModel >& xModel )
+                            , const rtl::Reference<ChartModel>& xModel )
 {
     uno::Reference< XTitled > xTitled;
     if(nTitleIndex == TitleHelper::MAIN_TITLE)
     {
-        xTitled.set( xModel, uno::UNO_QUERY );
+        xTitled = xModel;
     }
     else
     {
-        uno::Reference< XChartDocument > xChartDoc( xModel, uno::UNO_QUERY );
-        uno::Reference< XDiagram > xDiagram;
-        if( xChartDoc.is())
-            xDiagram.set( xChartDoc->getFirstDiagram());
+        rtl::Reference< Diagram > xDiagram;
+        if( xModel.is())
+            xDiagram = xModel->getFirstChartDiagram();
         xTitled = lcl_getTitleParent( nTitleIndex, xDiagram );
     }
     if( xTitled.is())
@@ -177,7 +176,7 @@ uno::Reference< XTitle > TitleHelper::getTitle( 
TitleHelper::eTitleType nTitleIn
 uno::Reference< XTitle > TitleHelper::createOrShowTitle(
       TitleHelper::eTitleType eTitleType
     , const OUString& rTitleText
-    , const uno::Reference< frame::XModel >& xModel
+    , const rtl::Reference<ChartModel>& xModel
     , const uno::Reference< uno::XComponentContext > & xContext )
 {
     uno::Reference< chart2::XTitle > xTitled( TitleHelper::getTitle( 
eTitleType, xModel ) );
@@ -196,7 +195,7 @@ uno::Reference< XTitle > TitleHelper::createOrShowTitle(
 uno::Reference< XTitle > TitleHelper::createTitle(
       TitleHelper::eTitleType eTitleType
     , const OUString& rTitleText
-    , const uno::Reference< frame::XModel >& xModel
+    , const rtl::Reference<ChartModel>& xModel
     , const uno::Reference< uno::XComponentContext > & xContext
     , ReferenceSizeProvider * pRefSizeProvider )
 {
@@ -386,7 +385,7 @@ void TitleHelper::setCompleteString( const OUString& 
rNewText
 }
 
 void TitleHelper::removeTitle( TitleHelper::eTitleType nTitleIndex
-                    , const css::uno::Reference< css::frame::XModel >& xModel )
+                    , const rtl::Reference<ChartModel>& xModel )
 {
     uno::Reference< XTitled > xTitled( lcl_getTitleParent( nTitleIndex, xModel 
) );
     if( xTitled.is())
@@ -418,7 +417,7 @@ bool TitleHelper::getTitleType( eTitleType& rType
 
 bool TitleHelper::getTitleType( eTitleType& rType
                     , const css::uno::Reference< css::chart2::XTitle >& xTitle
-                    , const css::uno::Reference< css::frame::XModel >& xModel )
+                    , const rtl::Reference<ChartModel>& xModel )
 {
     if( !xTitle.is() || !xModel.is() )
         return false;
@@ -438,7 +437,7 @@ bool TitleHelper::getTitleType( eTitleType& rType
 }
 
 void TitleHelper::hideTitle( TitleHelper::eTitleType nTitleIndex
-        , const css::uno::Reference< css::frame::XModel >& xModel)
+        , const rtl::Reference<ChartModel>& xModel)
 {
     uno::Reference< chart2::XTitle > xTitled( TitleHelper::getTitle( 
nTitleIndex, xModel ) );
     if( xTitled.is())

Reply via email to