diff options
Diffstat (limited to 'chart2/source/tools/InternalDataProvider.cxx')
-rw-r--r-- | chart2/source/tools/InternalDataProvider.cxx | 65 |
1 files changed, 9 insertions, 56 deletions
diff --git a/chart2/source/tools/InternalDataProvider.cxx b/chart2/source/tools/InternalDataProvider.cxx index 3257821e521f..4d8f7be112ff 100644 --- a/chart2/source/tools/InternalDataProvider.cxx +++ b/chart2/source/tools/InternalDataProvider.cxx @@ -138,13 +138,6 @@ public: void setColumnLabels( const ::std::vector< OUString > & rNewColumnLabels ); ::std::vector< OUString > getColumnLabels() const; - /** returns whether the data source was created by putting sequence contents - into columns (true) or rows (false) - */ - bool setDataByDataSource( - const Reference< chart2::data::XDataSource > & xDataSource, - const Sequence< beans::PropertyValue > & rArgs ); - #if OSL_DEBUG_LEVEL > 2 void traceData() const; #endif @@ -400,8 +393,8 @@ void InternalData::swapAllDataAtIndexWithNext( sal_Int32 nAtIndex, bool bDataInC bool InternalData::enlargeData( sal_Int32 nColumnCount, sal_Int32 nRowCount ) { - sal_Int32 nNewColumnCount( ::std::max<sal_Int32>(1, ::std::max<sal_Int32>( m_nColumnCount, nColumnCount ))); - sal_Int32 nNewRowCount( ::std::max<sal_Int32>(1, ::std::max<sal_Int32>( m_nRowCount, nRowCount ))); + sal_Int32 nNewColumnCount( ::std::max<sal_Int32>( m_nColumnCount, nColumnCount ) ); + sal_Int32 nNewRowCount( ::std::max<sal_Int32>( m_nRowCount, nRowCount ) ); sal_Int32 nNewSize( nNewColumnCount*nNewRowCount ); bool bGrow = (nNewSize > m_nColumnCount*m_nRowCount); @@ -419,9 +412,9 @@ bool InternalData::enlargeData( sal_Int32 nColumnCount, sal_Int32 nRowCount ) m_aData.resize( nNewSize ); m_aData = aNewData; - m_nColumnCount = nNewColumnCount; - m_nRowCount = nNewRowCount; } + m_nColumnCount = nNewColumnCount; + m_nRowCount = nNewRowCount; return bGrow; } @@ -628,49 +621,6 @@ void InternalData::setColumnLabels( const ::std::vector< OUString > & rNewColumn return m_aColumnLabels; } -bool InternalData::setDataByDataSource( - const Reference< chart2::data::XDataSource > & xDataSource, - const Sequence< beans::PropertyValue > & rArgs ) -{ - OUString aRangeRepresentation; - uno::Sequence< sal_Int32 > aSequenceMapping; //yyyy todo...? InternalData::setDataByDataSource - bool bUseColumns = true; - bool bFirstCellAsLabel = true; - bool bHasCategories = true; - - DataSourceHelper::readArguments( rArgs, aRangeRepresentation, aSequenceMapping, bUseColumns, bFirstCellAsLabel, bHasCategories ); - - typedef ::std::vector< Reference< chart2::data::XLabeledDataSequence > > tLSeqCntType; - tLSeqCntType aLSeqVec( ContainerHelper::SequenceToVector( xDataSource->getDataSequences())); - tLSeqCntType::const_iterator aIt( aLSeqVec.begin()); - const tLSeqCntType::const_iterator aEndIt( aLSeqVec.end()); - - if( bHasCategories && aIt != aEndIt ) - { - if( bUseColumns ) - setRowLabels( ContainerHelper::SequenceToVector( - DataSequenceToStringSequence( (*aIt)->getValues() ))); - else - setColumnLabels( ContainerHelper::SequenceToVector( - DataSequenceToStringSequence( (*aIt)->getValues() ))); - ++aIt; - } - - ::std::vector< Sequence< double > > aDataVec; - ::std::vector< OUString > aLabelVec; - transform( aIt, aEndIt, back_inserter( aDataVec ), lcl_ValuesOfLabeledSequence()); - transform( aIt, aEndIt, back_inserter( aLabelVec ), lcl_LabelOfLabeledSequence()); - - setData( ContainerHelper::ContainerToSequence( aDataVec ), bUseColumns ); - - if( bUseColumns ) - setColumnLabels( aLabelVec ); - else - setRowLabels( aLabelVec ); - - return bUseColumns; -} - #if OSL_DEBUG_LEVEL > 2 void InternalData::traceData() const { @@ -789,6 +739,8 @@ Sequence< Reference< chart2::data::XLabeledDataSequence > > { ::std::vector< OUString > aLabels( rInternalData.getColumnLabels()); OSL_ASSERT( static_cast< size_t >( nNewIndex ) < aLabels.size()); + if( aLabels.size() <= static_cast< size_t >( nNewIndex ) ) + aLabels.resize( nNewIndex+1 ); aLabels[nNewIndex] = impl::FlattenStringSequence( xLabel->getTextualData()); rInternalData.setColumnLabels( aLabels ); Reference< chart2::data::XDataSequence > xNewLabel( @@ -1049,8 +1001,9 @@ Reference< chart2::data::XDataSource > SAL_CALL InternalDataProvider::createData impl::InternalData & rData( getInternalData()); // categories - aResultLSeqVec.push_back( - new LabeledDataSequence( createDataSequenceAndAddToMap( lcl_aCategoriesRangeName, lcl_aCategoriesRoleName ))); + if ( bHasCategories ) + aResultLSeqVec.push_back( + new LabeledDataSequence( createDataSequenceAndAddToMap( lcl_aCategoriesRangeName, lcl_aCategoriesRoleName ))); // data with labels ::std::vector< Reference< chart2::data::XLabeledDataSequence > > aDataVec; |