chart2/source/inc/chartview/ExplicitValueProvider.hxx  |    5 +++
 chart2/source/view/axes/VCartesianCoordinateSystem.cxx |    2 -
 chart2/source/view/axes/VCartesianCoordinateSystem.hxx |    2 -
 chart2/source/view/axes/VCoordinateSystem.cxx          |    5 +--
 chart2/source/view/axes/VPolarCoordinateSystem.cxx     |    2 -
 chart2/source/view/axes/VPolarCoordinateSystem.hxx     |    2 -
 chart2/source/view/inc/VCoordinateSystem.hxx           |    6 +--
 chart2/source/view/main/ChartView.cxx                  |   26 +++++++++++------
 chart2/source/view/main/VLegend.cxx                    |    2 -
 9 files changed, 33 insertions(+), 19 deletions(-)

New commits:
commit 4007a8135a689221e30b69b849beea674a8e63d0
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Sun Jan 23 13:46:32 2022 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Sun Jan 23 14:44:17 2022 +0100

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

diff --git a/chart2/source/inc/chartview/ExplicitValueProvider.hxx 
b/chart2/source/inc/chartview/ExplicitValueProvider.hxx
index f367271e3b80..a84b2e30813b 100644
--- a/chart2/source/inc/chartview/ExplicitValueProvider.hxx
+++ b/chart2/source/inc/chartview/ExplicitValueProvider.hxx
@@ -20,6 +20,7 @@
 
 #include <com/sun/star/awt/Rectangle.hpp>
 #include <chartview/chartviewdllapi.hxx>
+#include <rtl/ref.hxx>
 
 #include <memory>
 
@@ -79,6 +80,10 @@ public:
               const css::uno::Reference< css::chart2::XAxis >& xAxis
             , const css::uno::Reference< css::chart2::XCoordinateSystem > & 
xCorrespondingCoordinateSystem
             , const css::uno::Reference< css::chart2::XChartDocument>& 
xChartDoc);
+    static sal_Int32 getExplicitNumberFormatKeyForAxis(
+              const css::uno::Reference< css::chart2::XAxis >& xAxis
+            , const css::uno::Reference< css::chart2::XCoordinateSystem > & 
xCorrespondingCoordinateSystem
+            , const rtl::Reference< ::chart::ChartModel>& xChartDoc);
 
     static sal_Int32 getExplicitNumberFormatKeyForDataLabel(
             const css::uno::Reference< css::beans::XPropertySet >& 
xSeriesOrPointProp );
diff --git a/chart2/source/view/axes/VCartesianCoordinateSystem.cxx 
b/chart2/source/view/axes/VCartesianCoordinateSystem.cxx
index 71c280f45007..3f7f7ca0f663 100644
--- a/chart2/source/view/axes/VCartesianCoordinateSystem.cxx
+++ b/chart2/source/view/axes/VCartesianCoordinateSystem.cxx
@@ -98,7 +98,7 @@ void VCartesianCoordinateSystem::createGridShapes()
 }
 
 void VCartesianCoordinateSystem::createVAxisList(
-              const uno::Reference<chart2::XChartDocument> & xChartDoc
+              const rtl::Reference<::chart::ChartModel> & xChartDoc
             , const awt::Size& rFontReferenceSize
             , const awt::Rectangle& rMaximumSpaceForLabels
             , bool bLimitSpaceForLabels
diff --git a/chart2/source/view/axes/VCartesianCoordinateSystem.hxx 
b/chart2/source/view/axes/VCartesianCoordinateSystem.hxx
index e26239225261..e9d684821445 100644
--- a/chart2/source/view/axes/VCartesianCoordinateSystem.hxx
+++ b/chart2/source/view/axes/VCartesianCoordinateSystem.hxx
@@ -31,7 +31,7 @@ public:
     virtual ~VCartesianCoordinateSystem() override;
 
     virtual void createVAxisList(
-            const css::uno::Reference< css::chart2::XChartDocument> &ChartDoc
+            const rtl::Reference<::chart::ChartModel> &ChartDoc
             , const css::awt::Size& rFontReferenceSize
             , const css::awt::Rectangle& rMaximumSpaceForLabels
             , bool bLimitSpaceForLabels ) override;
diff --git a/chart2/source/view/axes/VCoordinateSystem.cxx 
b/chart2/source/view/axes/VCoordinateSystem.cxx
index 44f17c7d915f..f98f66502857 100644
--- a/chart2/source/view/axes/VCoordinateSystem.cxx
+++ b/chart2/source/view/axes/VCoordinateSystem.cxx
@@ -22,6 +22,7 @@
 #include "VCartesianCoordinateSystem.hxx"
 #include "VPolarCoordinateSystem.hxx"
 #include <BaseCoordinateSystem.hxx>
+#include <ChartModel.hxx>
 #include <ScaleAutomatism.hxx>
 #include <ShapeFactory.hxx>
 #include <servicenames_coosystems.hxx>
@@ -322,7 +323,7 @@ sal_Int32 
VCoordinateSystem::getMaximumAxisIndexByDimension( sal_Int32 nDimensio
 }
 
 void VCoordinateSystem::createVAxisList(
-              const uno::Reference<chart2::XChartDocument> & /* xChartDoc */
+              const rtl::Reference<::chart::ChartModel> & /* xChartDoc */
             , const awt::Size& /* rFontReferenceSize */
             , const awt::Rectangle& /* rMaximumSpaceForLabels */
             , bool /* bLimitSpaceForLabels */
@@ -547,7 +548,7 @@ void VCoordinateSystem::setSeriesNamesForAxis( const 
Sequence< OUString >& rSeri
 
 sal_Int32 VCoordinateSystem::getNumberFormatKeyForAxis(
         const Reference< chart2::XAxis >& xAxis
-        , const Reference<chart2::XChartDocument>& xChartDoc)
+        , const rtl::Reference<::chart::ChartModel>& xChartDoc)
 {
     return ExplicitValueProvider::getExplicitNumberFormatKeyForAxis(
                 xAxis, m_xCooSysModel, xChartDoc);
diff --git a/chart2/source/view/axes/VPolarCoordinateSystem.cxx 
b/chart2/source/view/axes/VPolarCoordinateSystem.cxx
index 5bc585097b77..20304555611a 100644
--- a/chart2/source/view/axes/VPolarCoordinateSystem.cxx
+++ b/chart2/source/view/axes/VPolarCoordinateSystem.cxx
@@ -66,7 +66,7 @@ uno::Sequence< sal_Int32 > 
VPolarCoordinateSystem::getCoordinateSystemResolution
 }
 
 void VPolarCoordinateSystem::createVAxisList(
-              const uno::Reference<chart2::XChartDocument> & xChartDoc
+              const rtl::Reference<::chart::ChartModel> & xChartDoc
             , const awt::Size& rFontReferenceSize
             , const awt::Rectangle& rMaximumSpaceForLabels
             , bool //bLimitSpaceForLabels
diff --git a/chart2/source/view/axes/VPolarCoordinateSystem.hxx 
b/chart2/source/view/axes/VPolarCoordinateSystem.hxx
index 95c1094260c9..9659660a5e8c 100644
--- a/chart2/source/view/axes/VPolarCoordinateSystem.hxx
+++ b/chart2/source/view/axes/VPolarCoordinateSystem.hxx
@@ -35,7 +35,7 @@ public:
                                     , const css::awt::Size& rPageResolution ) 
override;
 
     virtual void createVAxisList(
-            const css::uno::Reference< css::chart2::XChartDocument> & xChartDoc
+            const rtl::Reference<::chart::ChartModel> & xChartDoc
             , const css::awt::Size& rFontReferenceSize
             , const css::awt::Rectangle& rMaximumSpaceForLabels
             , bool bLimitSpaceForLabels ) override;
diff --git a/chart2/source/view/inc/VCoordinateSystem.hxx 
b/chart2/source/view/inc/VCoordinateSystem.hxx
index 2beac4a05631..24ebc0336da0 100644
--- a/chart2/source/view/inc/VCoordinateSystem.hxx
+++ b/chart2/source/view/inc/VCoordinateSystem.hxx
@@ -32,6 +32,7 @@
 
 namespace chart { class ExplicitCategoriesProvider; }
 namespace chart { class ScaleAutomatism; }
+namespace chart { class ChartModel; }
 namespace com::sun::star::awt { struct Rectangle; }
 namespace com::sun::star::awt { struct Size; }
 namespace com::sun::star::beans { class XPropertySet; }
@@ -115,7 +116,7 @@ public:
      * Create "view" axis objects 'VAxis' from the coordinate system model.
      */
     virtual void createVAxisList(
-            const css::uno::Reference< css::chart2::XChartDocument> & xChartDoc
+            const rtl::Reference<::chart::ChartModel> & xChartDoc
             , const css::awt::Size& rFontReferenceSize
             , const css::awt::Rectangle& rMaximumSpaceForLabels
             , bool bLimitSpaceForLabels );
@@ -152,8 +153,7 @@ protected: //methods
 
     sal_Int32 getNumberFormatKeyForAxis( const css::uno::Reference<
                      css::chart2::XAxis >& xAxis
-                     , const css::uno::Reference<
-                     css::chart2::XChartDocument>& xChartDoc);
+                     , const rtl::Reference<::chart::ChartModel>& xChartDoc);
 
 private: //methods
     static void impl_adjustDimension( sal_Int32& rDimensionIndex );
diff --git a/chart2/source/view/main/ChartView.cxx 
b/chart2/source/view/main/ChartView.cxx
index de1dc6db0fa0..112bb1b91b42 100644
--- a/chart2/source/view/main/ChartView.cxx
+++ b/chart2/source/view/main/ChartView.cxx
@@ -414,7 +414,7 @@ VCoordinateSystem* addCooSysToList( std::vector< 
std::unique_ptr<VCoordinateSyst
     if(!pVCooSys)
         return nullptr;
 
-    OUString aCooSysParticle( 
ObjectIdentifier::createParticleForCoordinateSystem( xCooSys, rChartModel ) );
+    OUString aCooSysParticle( 
ObjectIdentifier::createParticleForCoordinateSystem( xCooSys, &rChartModel ) );
     pVCooSys->setParticle(aCooSysParticle);
 
     pVCooSys->setExplicitCategoriesProvider( new 
ExplicitCategoriesProvider(xCooSys, rChartModel) );
@@ -1400,7 +1400,6 @@ awt::Rectangle ChartView::impl_createDiagramAndContent( 
const CreateShapeParam2D
     SeriesPlottersType& rSeriesPlotterList = 
rParam.mpSeriesPlotterContainer->getSeriesPlotterList();
 
     //create VAxis, so they can give necessary information for automatic 
scaling
-    uno::Reference<chart2::XChartDocument> const xChartDoc(&mrChartModel);
     uno::Reference<util::XNumberFormatsSupplier> const xNumberFormatsSupplier(
             mrChartModel.getNumberFormatsSupplier());
     size_t nC = 0;
@@ -1416,7 +1415,7 @@ awt::Rectangle ChartView::impl_createDiagramAndContent( 
const CreateShapeParam2D
             pVCooSys->set3DWallPositions( eLeftWallPos, eBackWallPos, 
eBottomPos );
         }
 
-        pVCooSys->createVAxisList(xChartDoc, rPageSize, 
rParam.maRemainingSpace, rParam.mbUseFixedInnerSize);
+        pVCooSys->createVAxisList(&mrChartModel, rPageSize, 
rParam.maRemainingSpace, rParam.mbUseFixedInnerSize);
     }
 
     // - prepare list of all axis and how they are used
@@ -1818,7 +1817,16 @@ bool lcl_getPropertySwapXAndYAxis( const rtl::Reference< 
Diagram >& xDiagram )
 sal_Int32 ExplicitValueProvider::getExplicitNumberFormatKeyForAxis(
                   const Reference< chart2::XAxis >& xAxis
                 , const Reference< chart2::XCoordinateSystem > & 
xCorrespondingCoordinateSystem
-                , const Reference<chart2::XChartDocument>& xChartDoc)
+                , const css::uno::Reference< css::chart2::XChartDocument>& 
xChartDoc)
+{
+    return AxisHelper::getExplicitNumberFormatKeyForAxis( xAxis, 
xCorrespondingCoordinateSystem, xChartDoc
+        , true /*bSearchForParallelAxisIfNothingIsFound*/ );
+}
+
+sal_Int32 ExplicitValueProvider::getExplicitNumberFormatKeyForAxis(
+                  const Reference< chart2::XAxis >& xAxis
+                , const Reference< chart2::XCoordinateSystem > & 
xCorrespondingCoordinateSystem
+                , const rtl::Reference<::chart::ChartModel>& xChartDoc)
 {
     return AxisHelper::getExplicitNumberFormatKeyForAxis( xAxis, 
xCorrespondingCoordinateSystem, xChartDoc
         , true /*bSearchForParallelAxisIfNothingIsFound*/ );
@@ -1888,28 +1896,28 @@ awt::Rectangle 
ExplicitValueProvider::AddSubtractAxisTitleSizes(
 
             if( xTitle_Height.is() )
             {
-                OUString aCID_X( 
ObjectIdentifier::createClassifiedIdentifierForObject( xTitle_Height, rModel ) 
);
+                OUString aCID_X( 
ObjectIdentifier::createClassifiedIdentifierForObject( xTitle_Height, &rModel ) 
);
                 nTitleSpaceHeight = 
pExplicitValueProvider->getRectangleOfObject( aCID_X, true ).Height;
                 if( nTitleSpaceHeight )
                     nTitleSpaceHeight+=lcl_getDiagramTitleSpace();
             }
             if( xTitle_Width.is() )
             {
-                OUString aCID_Y( 
ObjectIdentifier::createClassifiedIdentifierForObject( xTitle_Width, rModel ) );
+                OUString aCID_Y( 
ObjectIdentifier::createClassifiedIdentifierForObject( xTitle_Width, &rModel ) 
);
                 nTitleSpaceWidth = 
pExplicitValueProvider->getRectangleOfObject( aCID_Y, true ).Width;
                 if(nTitleSpaceWidth)
                     nTitleSpaceWidth+=lcl_getDiagramTitleSpace();
             }
             if( xSecondTitle_Height.is() )
             {
-                OUString aCID_X( 
ObjectIdentifier::createClassifiedIdentifierForObject( xSecondTitle_Height, 
rModel ) );
+                OUString aCID_X( 
ObjectIdentifier::createClassifiedIdentifierForObject( xSecondTitle_Height, 
&rModel ) );
                 nSecondTitleSpaceHeight = 
pExplicitValueProvider->getRectangleOfObject( aCID_X, true ).Height;
                 if( nSecondTitleSpaceHeight )
                     nSecondTitleSpaceHeight+=lcl_getDiagramTitleSpace();
             }
             if( xSecondTitle_Width.is() )
             {
-                OUString aCID_Y( 
ObjectIdentifier::createClassifiedIdentifierForObject( xSecondTitle_Width, 
rModel ) );
+                OUString aCID_Y( 
ObjectIdentifier::createClassifiedIdentifierForObject( xSecondTitle_Width, 
&rModel ) );
                 nSecondTitleSpaceWidth += 
pExplicitValueProvider->getRectangleOfObject( aCID_Y, true ).Width;
                 if( nSecondTitleSpaceWidth )
                     nSecondTitleSpaceWidth+=lcl_getDiagramTitleSpace();
@@ -2109,7 +2117,7 @@ std::shared_ptr<VTitle> lcl_createTitle( 
TitleHelper::eTitleType eType
         bYAxisTitle = true;
     }
     apVTitle = std::make_shared<VTitle>(xTitle);
-    OUString aCID = 
ObjectIdentifier::createClassifiedIdentifierForObject(xTitle, rModel);
+    OUString aCID = 
ObjectIdentifier::createClassifiedIdentifierForObject(xTitle, &rModel);
     apVTitle->init(xPageShapes, aCID);
     apVTitle->createShapes(awt::Point(0, 0), rPageSize, aTextMaxWidth, 
bYAxisTitle);
     awt::Size aTitleUnrotatedSize = apVTitle->getUnrotatedSize();
diff --git a/chart2/source/view/main/VLegend.cxx 
b/chart2/source/view/main/VLegend.cxx
index 1dfe3653e4d1..ce2bb99047a4 100644
--- a/chart2/source/view/main/VLegend.cxx
+++ b/chart2/source/view/main/VLegend.cxx
@@ -918,7 +918,7 @@ void VLegend::createShapes(
     try
     {
         //create shape and add to page
-        OUString aLegendParticle( ObjectIdentifier::createParticleForLegend( 
mrModel ) );
+        OUString aLegendParticle( ObjectIdentifier::createParticleForLegend( 
&mrModel ) );
         m_xShape = ShapeFactory::createGroup2D( m_xTarget,
                     ObjectIdentifier::createClassifiedIdentifierForParticle( 
aLegendParticle ) );
 

Reply via email to