summaryrefslogtreecommitdiff
path: root/chart2
diff options
context:
space:
mode:
Diffstat (limited to 'chart2')
-rw-r--r--chart2/source/model/inc/Diagram.hxx2
-rw-r--r--chart2/source/view/axes/VAxisProperties.cxx8
-rw-r--r--chart2/source/view/axes/VAxisProperties.hxx7
-rw-r--r--chart2/source/view/axes/VCartesianCoordinateSystem.cxx7
-rw-r--r--chart2/source/view/axes/VPolarCoordinateSystem.cxx9
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);