diff options
Diffstat (limited to 'chart2/source/tools/DataSeriesHelper.cxx')
-rw-r--r-- | chart2/source/tools/DataSeriesHelper.cxx | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/chart2/source/tools/DataSeriesHelper.cxx b/chart2/source/tools/DataSeriesHelper.cxx index 202b67395c83..baba1a530294 100644 --- a/chart2/source/tools/DataSeriesHelper.cxx +++ b/chart2/source/tools/DataSeriesHelper.cxx @@ -675,6 +675,45 @@ void deleteDataLabelsFromPoint( const Reference< beans::XPropertySet >& xPointPr } } +sal_Int32 getExplicitNumberFormatKeyForDataLabel( + const uno::Reference<beans::XPropertySet>& xSeriesOrPointProp) +{ + rtl::Reference< ::chart::DataSeries > xDataSeries( dynamic_cast<DataSeries*>(xSeriesOrPointProp.get()) ); + sal_Int32 nFormat = 0; + if (!xDataSeries.is()) + return nFormat; + try + { + + bool bLinkToSource = true; + xDataSeries->getPropertyValue(CHART_UNONAME_LINK_TO_SRC_NUMFMT) >>= bLinkToSource; + xDataSeries->getPropertyValue(CHART_UNONAME_NUMFMT) >>= nFormat; + + if (bLinkToSource && xDataSeries->getDataSequences().getLength()) + { + Reference<data::XLabeledDataSequence> xLabeledSeq( + xDataSeries->getDataSequences()[0]); + if( xLabeledSeq.is() ) + { + Reference< data::XDataSequence > xSeq( xLabeledSeq->getValues()); + if( xSeq.is() ) + { + nFormat = xSeq->getNumberFormatKeyByIndex( -1 ); + } + } + + } + } + catch (const beans::UnknownPropertyException&) + { + } + + if (nFormat < 0) + nFormat = 0; + return nFormat; + +} + } // namespace chart /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |