diff options
-rw-r--r-- | chart2/source/model/inc/Diagram.hxx | 2 | ||||
-rw-r--r-- | chart2/source/view/axes/VAxisProperties.cxx | 8 | ||||
-rw-r--r-- | chart2/source/view/axes/VAxisProperties.hxx | 7 | ||||
-rw-r--r-- | chart2/source/view/axes/VCartesianCoordinateSystem.cxx | 7 | ||||
-rw-r--r-- | chart2/source/view/axes/VPolarCoordinateSystem.cxx | 9 |
5 files changed, 27 insertions, 6 deletions
diff --git a/chart2/source/model/inc/Diagram.hxx b/chart2/source/model/inc/Diagram.hxx index 2f207d3fad70..b59e0e38f78a 100644 --- a/chart2/source/model/inc/Diagram.hxx +++ b/chart2/source/model/inc/Diagram.hxx @@ -144,6 +144,7 @@ private: virtual void SAL_CALL removeModifyListener( const css::uno::Reference< css::util::XModifyListener >& aListener ) override; +public: void setDataTable(const rtl::Reference<::chart::DataTable>& xNewDataTable); rtl::Reference<::chart::DataTable> const& getDataTableRef() const @@ -151,6 +152,7 @@ private: return m_xDataTable; }; +private: // ____ XModifyListener ____ virtual void SAL_CALL modified( const css::lang::EventObject& aEvent ) override; diff --git a/chart2/source/view/axes/VAxisProperties.cxx b/chart2/source/view/axes/VAxisProperties.cxx index 44a41422eee1..48cc3569f46d 100644 --- a/chart2/source/view/axes/VAxisProperties.cxx +++ b/chart2/source/view/axes/VAxisProperties.cxx @@ -153,7 +153,8 @@ TickmarkProperties AxisProperties::getBiggestTickmarkProperties() } AxisProperties::AxisProperties( const uno::Reference< XAxis >& xAxisModel - , ExplicitCategoriesProvider* pExplicitCategoriesProvider ) + , ExplicitCategoriesProvider* pExplicitCategoriesProvider + , rtl::Reference<::chart::DataTable> const& xDataTableModel) : m_xAxisModel(xAxisModel) , m_nDimensionIndex(0) , m_bIsMainAxis(true) @@ -173,6 +174,7 @@ AxisProperties::AxisProperties( const uno::Reference< XAxis >& xAxisModel , m_bComplexCategories(false) , m_pExplicitCategoriesProvider(pExplicitCategoriesProvider) , m_bLimitSpaceForLabels(false) + , m_xDataTableModel(xDataTableModel) { } @@ -257,7 +259,9 @@ void AxisProperties::init( bool bCartesian ) if( bCartesian ) { if (m_nDimensionIndex == 0) - m_bDisplayDataTable = false; + { + m_bDisplayDataTable = m_xDataTableModel.is(); + } if( m_nDimensionIndex == 0 && m_nAxisType == AxisType::CATEGORY && m_pExplicitCategoriesProvider && m_pExplicitCategoriesProvider->hasComplexCategories() ) diff --git a/chart2/source/view/axes/VAxisProperties.hxx b/chart2/source/view/axes/VAxisProperties.hxx index bf159053c3c5..425792da689b 100644 --- a/chart2/source/view/axes/VAxisProperties.hxx +++ b/chart2/source/view/axes/VAxisProperties.hxx @@ -20,6 +20,7 @@ #include "TickmarkProperties.hxx" #include <LabelAlignment.hxx> +#include <DataTable.hxx> #include <com/sun/star/chart/ChartAxisLabelPosition.hpp> #include <com/sun/star/chart/ChartAxisMarkPosition.hpp> @@ -137,10 +138,12 @@ struct AxisProperties final bool m_bLimitSpaceForLabels; - //methods: + rtl::Reference<::chart::DataTable> m_xDataTableModel; + //methods: AxisProperties( const css::uno::Reference< css::chart2::XAxis >& xAxisModel - , ExplicitCategoriesProvider* pExplicitCategoriesProvider ); + , ExplicitCategoriesProvider* pExplicitCategoriesProvider + , rtl::Reference<::chart::DataTable> const& xDataTableModel); void init(bool bCartesian=false);//init from model data (m_xAxisModel) diff --git a/chart2/source/view/axes/VCartesianCoordinateSystem.cxx b/chart2/source/view/axes/VCartesianCoordinateSystem.cxx index 19f3ddb93bf3..d3c71361f27c 100644 --- a/chart2/source/view/axes/VCartesianCoordinateSystem.cxx +++ b/chart2/source/view/axes/VCartesianCoordinateSystem.cxx @@ -21,9 +21,11 @@ #include "VCartesianGrid.hxx" #include "VCartesianAxis.hxx" #include <AxisIndexDefines.hxx> +#include <DataTable.hxx> #include <AxisHelper.hxx> #include <cppuhelper/implbase.hxx> #include <ChartModel.hxx> +#include <Diagram.hxx> #include <com/sun/star/chart2/XCoordinateSystem.hpp> #include <com/sun/star/chart2/data/XTextualDataSequence.hpp> #include <com/sun/star/chart2/AxisType.hpp> @@ -129,7 +131,10 @@ void VCartesianCoordinateSystem::createVAxisList( if(!xAxis.is() || !AxisHelper::shouldAxisBeDisplayed( xAxis, m_xCooSysModel )) continue; - AxisProperties aAxisProperties(xAxis,getExplicitCategoriesProvider()); + uno::Reference<chart2::XDiagram> xDiagram(xChartDoc->getFirstDiagram()); + auto pDiagram = dynamic_cast<Diagram*>(xDiagram.get()); + assert(pDiagram); + AxisProperties aAxisProperties(xAxis, getExplicitCategoriesProvider(), pDiagram->getDataTableRef()); aAxisProperties.m_nDimensionIndex = nDimensionIndex; aAxisProperties.m_bSwapXAndY = bSwapXAndY; aAxisProperties.m_bIsMainAxis = (nAxisIndex==0); diff --git a/chart2/source/view/axes/VPolarCoordinateSystem.cxx b/chart2/source/view/axes/VPolarCoordinateSystem.cxx index 7ac020fdc3ab..be8f4baac53c 100644 --- a/chart2/source/view/axes/VPolarCoordinateSystem.cxx +++ b/chart2/source/view/axes/VPolarCoordinateSystem.cxx @@ -22,7 +22,10 @@ #include "VPolarAxis.hxx" #include <AxisIndexDefines.hxx> #include <AxisHelper.hxx> +#include <Diagram.hxx> +#include <DataTable.hxx> #include <ChartModel.hxx> +#include <Diagram.hxx> #include <com/sun/star/chart2/XCoordinateSystem.hpp> namespace chart @@ -89,7 +92,11 @@ void VPolarCoordinateSystem::createVAxisList( Reference< XAxis > xAxis( getAxisByDimension(nDimensionIndex,nAxisIndex) ); if(!xAxis.is() || !AxisHelper::shouldAxisBeDisplayed( xAxis, m_xCooSysModel )) continue; - AxisProperties aAxisProperties(xAxis,getExplicitCategoriesProvider()); + + uno::Reference<chart2::XDiagram> xDiagram(xChartDoc->getFirstDiagram()); + auto pDiagram = dynamic_cast<Diagram*>(xDiagram.get()); + assert(pDiagram); + AxisProperties aAxisProperties(xAxis,getExplicitCategoriesProvider(), pDiagram->getDataTableRef()); aAxisProperties.init(); if(aAxisProperties.m_bDisplayLabels) aAxisProperties.m_nNumberFormatKey = getNumberFormatKeyForAxis(xAxis, xChartDoc); |