diff options
Diffstat (limited to 'chart2/source/view/axes')
-rw-r--r-- | chart2/source/view/axes/VAxisBase.cxx | 12 | ||||
-rw-r--r-- | chart2/source/view/axes/VAxisProperties.cxx | 6 | ||||
-rw-r--r-- | chart2/source/view/axes/VAxisProperties.hxx | 5 | ||||
-rw-r--r-- | chart2/source/view/axes/VCoordinateSystem.cxx | 10 |
4 files changed, 23 insertions, 10 deletions
diff --git a/chart2/source/view/axes/VAxisBase.cxx b/chart2/source/view/axes/VAxisBase.cxx index da2f01523a97..be24262e8801 100644 --- a/chart2/source/view/axes/VAxisBase.cxx +++ b/chart2/source/view/axes/VAxisBase.cxx @@ -82,20 +82,26 @@ void SAL_CALL VAxisBase::initAxisLabelProperties( const ::com::sun::star::awt::S if( !m_aAxisProperties.m_bDisplayLabels ) return; - if( AxisType::CATEGORY==m_aAxisProperties.m_nAxisType - || AxisType::SERIES==m_aAxisProperties.m_nAxisType ) + if( AxisType::SERIES==m_aAxisProperties.m_nAxisType ) { if( m_aAxisProperties.m_xAxisTextProvider.is() ) m_aTextLabels = m_aAxisProperties.m_xAxisTextProvider->getTextualData(); m_bUseTextLabels = true; - if( m_aTextLabels.getLength() == 1 && AxisType::SERIES==m_aAxisProperties.m_nAxisType ) + if( m_aTextLabels.getLength() == 1 ) { //don't show a single series name m_aAxisProperties.m_bDisplayLabels = false; return; } } + else if( AxisType::CATEGORY==m_aAxisProperties.m_nAxisType ) + { + if( m_aAxisProperties.m_pExplicitCategoriesProvider ) + m_aTextLabels = m_aAxisProperties.m_pExplicitCategoriesProvider->getTextualData(); + + m_bUseTextLabels = true; + } m_aAxisLabelProperties.nNumberFormatKey = m_aAxisProperties.m_nNumberFormatKey; m_aAxisLabelProperties.init(m_aAxisProperties.m_xAxisModel); diff --git a/chart2/source/view/axes/VAxisProperties.cxx b/chart2/source/view/axes/VAxisProperties.cxx index 27ca8d2188e3..eea2b2eb47f2 100644 --- a/chart2/source/view/axes/VAxisProperties.cxx +++ b/chart2/source/view/axes/VAxisProperties.cxx @@ -161,7 +161,7 @@ TickmarkProperties AxisProperties::getBiggestTickmarkProperties() //-------------------------------------------------------------------------- AxisProperties::AxisProperties( const uno::Reference< XAxis >& xAxisModel - , const uno::Reference< data::XTextualDataSequence >& xAxisTextProvider ) + , ExplicitCategoriesProvider* pExplicitCategoriesProvider ) : m_xAxisModel(xAxisModel) , m_nDimensionIndex(0) , m_bIsMainAxis(true) @@ -186,7 +186,8 @@ AxisProperties::AxisProperties( const uno::Reference< XAxis >& xAxisModel , m_aLineProperties() //for category axes , m_nAxisType(AxisType::REALNUMBER) - , m_xAxisTextProvider(xAxisTextProvider) + , m_pExplicitCategoriesProvider(pExplicitCategoriesProvider) + , m_xAxisTextProvider(0) , m_bTickmarksAtIndicatedValue(false) { } @@ -216,6 +217,7 @@ AxisProperties::AxisProperties( const AxisProperties& rAxisProperties ) , m_aLineProperties( rAxisProperties.m_aLineProperties ) //for category axes , m_nAxisType( rAxisProperties.m_nAxisType ) + , m_pExplicitCategoriesProvider( rAxisProperties.m_pExplicitCategoriesProvider ) , m_xAxisTextProvider( rAxisProperties.m_xAxisTextProvider ) , m_bTickmarksAtIndicatedValue( rAxisProperties.m_bTickmarksAtIndicatedValue ) { diff --git a/chart2/source/view/axes/VAxisProperties.hxx b/chart2/source/view/axes/VAxisProperties.hxx index 61f2477c7681..56ef075bfdb2 100644 --- a/chart2/source/view/axes/VAxisProperties.hxx +++ b/chart2/source/view/axes/VAxisProperties.hxx @@ -33,6 +33,7 @@ #include "TickmarkProperties.hxx" #include "PlottingPositionHelper.hxx" #include "LabelAlignment.hxx" +#include "ExplicitCategoriesProvider.hxx" #include <com/sun/star/chart/ChartAxisLabelPosition.hpp> #include <com/sun/star/chart/ChartAxisMarkPosition.hpp> @@ -137,6 +138,7 @@ struct AxisProperties //for category axes -> sal_Int32 m_nAxisType;//REALNUMBER, CATEGORY etc. type ::com::sun::star::chart2::AxisType + ExplicitCategoriesProvider* m_pExplicitCategoriesProvider;/*no ownership here*/ ::com::sun::star::uno::Reference< ::com::sun::star::chart2::data::XTextualDataSequence > m_xAxisTextProvider; //for categries or series names @@ -147,8 +149,7 @@ struct AxisProperties //methods: AxisProperties( const ::com::sun::star::uno::Reference< ::com::sun::star::chart2::XAxis >& xAxisModel - , const ::com::sun::star::uno::Reference< - ::com::sun::star::chart2::data::XTextualDataSequence >& xAxisTextProvider ); + , ExplicitCategoriesProvider* pExplicitCategoriesProvider ); AxisProperties( const AxisProperties& rAxisProperties ); virtual ~AxisProperties(); virtual void init(bool bCartesian=false);//init from model data (m_xAxisModel) diff --git a/chart2/source/view/axes/VCoordinateSystem.cxx b/chart2/source/view/axes/VCoordinateSystem.cxx index 47cc6de405f7..af8cfc228ee7 100644 --- a/chart2/source/view/axes/VCoordinateSystem.cxx +++ b/chart2/source/view/axes/VCoordinateSystem.cxx @@ -97,7 +97,7 @@ VCoordinateSystem::VCoordinateSystem( const Reference< XCoordinateSystem >& xCoo , m_aMergedMinimumAndMaximumSupplier() , m_aExplicitScales(3) , m_aExplicitIncrements(3) - , m_aExplicitCategoriesProvider( new ExplicitCategoriesProvider( m_xCooSysModel ) ) + , m_apExplicitCategoriesProvider(NULL) { if( !m_xCooSysModel.is() || m_xCooSysModel->getDimension()<3 ) { @@ -264,10 +264,14 @@ void VCoordinateSystem::impl_adjustDimensionAndIndex( sal_Int32& rDimensionIndex rAxisIndex = 0; } +void VCoordinateSystem::setExplicitCategoriesProvider( ExplicitCategoriesProvider* pExplicitCategoriesProvider /*takes ownership*/ ) +{ + m_apExplicitCategoriesProvider = ::std::auto_ptr< ExplicitCategoriesProvider >(pExplicitCategoriesProvider); +} -Reference< data::XTextualDataSequence > VCoordinateSystem::getExplicitCategoriesProvider() +ExplicitCategoriesProvider* VCoordinateSystem::getExplicitCategoriesProvider() { - return m_aExplicitCategoriesProvider.getRef(); + return m_apExplicitCategoriesProvider.get(); } Sequence< ExplicitScaleData > VCoordinateSystem::getExplicitScales( sal_Int32 nDimensionIndex, sal_Int32 nAxisIndex ) const |