diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2023-03-16 11:04:21 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2023-03-21 17:25:46 +0000 |
commit | 0f691fe670526c1c0ba5c9bab8dfe8209bfe698e (patch) | |
tree | ac449ffe9e7097e465dd4772b52fd420071212d2 /chart2/source/tools/DataSeriesHelper.cxx | |
parent | 59361b4578d6bea5af618efd904b3243553d246b (diff) |
move getLabel inside chart2::DataSeries
Change-Id: I38baff5980d8cae5f63ee9163d667385837d249b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149198
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'chart2/source/tools/DataSeriesHelper.cxx')
-rw-r--r-- | chart2/source/tools/DataSeriesHelper.cxx | 140 |
1 files changed, 0 insertions, 140 deletions
diff --git a/chart2/source/tools/DataSeriesHelper.cxx b/chart2/source/tools/DataSeriesHelper.cxx index a2c25366dd3a..e1212ae1fa72 100644 --- a/chart2/source/tools/DataSeriesHelper.cxx +++ b/chart2/source/tools/DataSeriesHelper.cxx @@ -86,28 +86,6 @@ private: bool m_bMatchPrefix; }; -Reference< chart2::data::XLabeledDataSequence > lcl_findLSequenceWithOnlyLabel( - const Reference< chart2::data::XDataSource > & xDataSource ) -{ - Reference< chart2::data::XLabeledDataSequence > xResult; - const Sequence< Reference< chart2::data::XLabeledDataSequence > > aSequences( xDataSource->getDataSequences()); - - for( auto const & labeledData : aSequences ) - { - OSL_ENSURE( labeledData.is(), "empty LabeledDataSequence" ); - // no values are set but a label exists - if( labeledData.is() && - ( ! labeledData->getValues().is() && - labeledData->getLabel().is())) - { - xResult.set( labeledData ); - break; - } - } - - return xResult; -} - void lcl_getCooSysAndChartTypeOfSeries( const rtl::Reference< ::chart::DataSeries > & xSeries, const Reference< chart2::XDiagram > & xDiagram, @@ -289,124 +267,6 @@ rtl::Reference< DataSource > return new DataSource(getAllDataSequences(aSeries)); } -namespace -{ -OUString lcl_getDataSequenceLabel( const Reference< chart2::data::XDataSequence > & xSequence ) -{ - OUString aResult; - - Reference< chart2::data::XTextualDataSequence > xTextSeq( xSequence, uno::UNO_QUERY ); - if( xTextSeq.is()) - { - Sequence< OUString > aSeq( xTextSeq->getTextualData()); - - const sal_Int32 nMax = aSeq.getLength() - 1; - OUStringBuffer aBuf; - - for( sal_Int32 i = 0; i <= nMax; ++i ) - { - aBuf.append( aSeq[i] ); - if( i < nMax ) - aBuf.append( ' '); - } - aResult = aBuf.makeStringAndClear(); - } - else if( xSequence.is()) - { - Sequence< uno::Any > aSeq( xSequence->getData()); - - const sal_Int32 nMax = aSeq.getLength() - 1; - OUString aVal; - OUStringBuffer aBuf; - double fNum = 0; - - for( sal_Int32 i = 0; i <= nMax; ++i ) - { - if( aSeq[i] >>= aVal ) - { - aBuf.append( aVal ); - if( i < nMax ) - aBuf.append( ' '); - } - else if( aSeq[ i ] >>= fNum ) - { - aBuf.append( fNum ); - if( i < nMax ) - aBuf.append( ' '); - } - } - aResult = aBuf.makeStringAndClear(); - } - - return aResult; -} -} - -OUString getLabelForLabeledDataSequence( - const Reference< chart2::data::XLabeledDataSequence > & xLabeledSeq ) -{ - OUString aResult; - if( xLabeledSeq.is()) - { - Reference< chart2::data::XDataSequence > xSeq( xLabeledSeq->getLabel()); - if( xSeq.is() ) - aResult = lcl_getDataSequenceLabel( xSeq ); - if( !xSeq.is() || aResult.isEmpty() ) - { - // no label set or label content is empty -> use auto-generated one - Reference< chart2::data::XDataSequence > xValueSeq( xLabeledSeq->getValues() ); - if( xValueSeq.is() ) - { - Sequence< OUString > aLabels( xValueSeq->generateLabel( - chart2::data::LabelOrigin_SHORT_SIDE ) ); - // no labels returned is interpreted as: auto-generation not - // supported by sequence - if( aLabels.hasElements() ) - aResult=aLabels[0]; - else - { - //todo?: maybe use the index of the series as name - //but as the index may change it would be better to have such a name persistent - //what is not possible at the moment - //--> maybe use the identifier as part of the name ... - aResult = lcl_getDataSequenceLabel( xValueSeq ); - } - } - } - } - return aResult; -} - -OUString getDataSeriesLabel( - const rtl::Reference< DataSeries > & xSeries, - const OUString & rLabelSequenceRole ) -{ - OUString aResult; - - if( xSeries.is()) - { - Reference< chart2::data::XLabeledDataSequence > xLabeledSeq( - ::chart::DataSeriesHelper::getDataSequenceByRole( xSeries, rLabelSequenceRole )); - if( xLabeledSeq.is()) - aResult = getLabelForLabeledDataSequence( xLabeledSeq ); - else - { - // special case: labeled data series with only a label and no values may - // serve as label - xLabeledSeq.set( lcl_findLSequenceWithOnlyLabel( xSeries )); - if( xLabeledSeq.is()) - { - Reference< chart2::data::XDataSequence > xSeq( xLabeledSeq->getLabel()); - if( xSeq.is()) - aResult = lcl_getDataSequenceLabel( xSeq ); - } - } - - } - - return aResult; -} - void setStackModeAtSeries( const std::vector< rtl::Reference< DataSeries > > & aSeries, const rtl::Reference< BaseCoordinateSystem > & xCorrespondingCoordinateSystem, |