diff options
-rw-r--r-- | chart2/source/inc/InternalDataProvider.hxx | 3 | ||||
-rw-r--r-- | chart2/source/tools/InternalDataProvider.cxx | 16 |
2 files changed, 8 insertions, 11 deletions
diff --git a/chart2/source/inc/InternalDataProvider.hxx b/chart2/source/inc/InternalDataProvider.hxx index 0fa2bdf8b855..a5032efcdab8 100644 --- a/chart2/source/inc/InternalDataProvider.hxx +++ b/chart2/source/inc/InternalDataProvider.hxx @@ -37,6 +37,7 @@ namespace com::sun::star::chart2 { class XChartDocument; } namespace chart { +class ChartModel; class UncachedDataSequence; namespace impl @@ -72,7 +73,7 @@ public: // #i120559# allow handing over a default for data orientation // (DataInColumns) that will be used when no data is available explicit InternalDataProvider( - const css::uno::Reference< css::chart2::XChartDocument > & xChartDoc, + const rtl::Reference< ::chart::ChartModel > & xChartDoc, bool bConnectToModel, bool bDefaultDataInColumns ); explicit InternalDataProvider( const InternalDataProvider & rOther ); diff --git a/chart2/source/tools/InternalDataProvider.cxx b/chart2/source/tools/InternalDataProvider.cxx index 7a2fdb3aed84..696611e80fa3 100644 --- a/chart2/source/tools/InternalDataProvider.cxx +++ b/chart2/source/tools/InternalDataProvider.cxx @@ -309,22 +309,18 @@ InternalDataProvider::InternalDataProvider() {} InternalDataProvider::InternalDataProvider( - const Reference< chart2::XChartDocument > & xChartDoc, + const rtl::Reference< ChartModel > & xModel, bool bConnectToModel, bool bDefaultDataInColumns) : m_bDataInColumns( bDefaultDataInColumns ) { - if (!xChartDoc.is()) + if (!xModel.is()) return; try { - auto pModel = dynamic_cast<ChartModel*>(xChartDoc.get()); - assert(pModel); - rtl::Reference< Diagram > xDiagram( ChartModelHelper::findDiagram( pModel ) ); + rtl::Reference< Diagram > xDiagram( ChartModelHelper::findDiagram( xModel ) ); if( xDiagram.is()) { - Reference< frame::XModel > xChartModel = xChartDoc; - //data in columns? { OUString aRangeString; @@ -333,7 +329,7 @@ InternalDataProvider::InternalDataProvider( uno::Sequence< sal_Int32 > aSequenceMapping; const bool bSomethingDetected( DataSourceHelper::detectRangeSegmentation( - pModel, aRangeString, aSequenceMapping, m_bDataInColumns, bFirstCellAsLabel, bHasCategories )); + xModel, aRangeString, aSequenceMapping, m_bDataInColumns, bFirstCellAsLabel, bHasCategories )); // #i120559# if no data was available, restore default if(!bSomethingDetected && m_bDataInColumns != bDefaultDataInColumns) @@ -346,7 +342,7 @@ InternalDataProvider::InternalDataProvider( { vector< vector< uno::Any > > aNewCategories;//inner count is level { - ExplicitCategoriesProvider aExplicitCategoriesProvider(ChartModelHelper::getFirstCoordinateSystem(pModel), *pModel); + ExplicitCategoriesProvider aExplicitCategoriesProvider(ChartModelHelper::getFirstCoordinateSystem(xModel), *xModel); const Sequence< Reference< chart2::data::XLabeledDataSequence> >& rSplitCategoriesList( aExplicitCategoriesProvider.getSplitCategoriesList() ); sal_Int32 nLevelCount = rSplitCategoriesList.getLength(); @@ -390,7 +386,7 @@ InternalDataProvider::InternalDataProvider( } // data series - std::vector< Reference< chart2::XDataSeries > > aSeriesVector( ChartModelHelper::getDataSeries( pModel )); + std::vector< Reference< chart2::XDataSeries > > aSeriesVector( ChartModelHelper::getDataSeries( xModel )); lcl_internalizeSeries ftor( m_aInternalData, *this, bConnectToModel, m_bDataInColumns ); for( const auto& rxScreen : aSeriesVector ) ftor( rxScreen ); |