From 60e94d8982e2b3d2e92a178a7179142fb7fcc631 Mon Sep 17 00:00:00 2001 From: Kohei Yoshida Date: Thu, 26 Jun 2014 10:10:29 -0400 Subject: Move the category level removal code into its own method. Change-Id: I4f0cfb4b15bc145b7a5c3491a7acbff13999bf5d --- .../source/controller/dialogs/DataBrowserModel.cxx | 40 +++++++++++++--------- .../source/controller/dialogs/DataBrowserModel.hxx | 2 ++ 2 files changed, 25 insertions(+), 17 deletions(-) (limited to 'chart2') diff --git a/chart2/source/controller/dialogs/DataBrowserModel.cxx b/chart2/source/controller/dialogs/DataBrowserModel.cxx index 56d6b41f76ac..49dfec30d64f 100644 --- a/chart2/source/controller/dialogs/DataBrowserModel.cxx +++ b/chart2/source/controller/dialogs/DataBrowserModel.cxx @@ -440,32 +440,38 @@ void DataBrowserModel::insertComplexCategoryLevel( sal_Int32 nAfterColumnIndex ) updateFromModel(); } -void DataBrowserModel::removeDataSeriesOrComplexCategoryLevel( sal_Int32 nAtColumnIndex ) +void DataBrowserModel::removeComplexCategoryLevel( sal_Int32 nAtColumnIndex ) { - OSL_ASSERT( m_apDialogModel.get()); - if (static_cast(nAtColumnIndex) >= m_aColumns.size()) + //delete a category column if there is more than one level (in case of a single column we do not get here) + OSL_ENSURE(nAtColumnIndex>0, "wrong index for categories deletion" ); + + Reference< chart2::XInternalDataProvider > xDataProvider( m_apDialogModel->getDataProvider(), uno::UNO_QUERY ); + if (!xDataProvider.is()) return; - Reference< chart2::XDataSeries > xSeries( m_aColumns[nAtColumnIndex].m_xDataSeries ); - if (!xSeries.is()) - { - //delete a category column if there is more than one level (in case of a single column we do not get here) - OSL_ENSURE(nAtColumnIndex>0, "wrong index for categories deletion" ); + m_apDialogModel->startControllerLockTimer(); + ControllerLockGuardUNO aLockedControllers( Reference< frame::XModel >( m_xChartDocument, uno::UNO_QUERY ) ); + xDataProvider->deleteComplexCategoryLevel( nAtColumnIndex ); - Reference< chart2::XInternalDataProvider > xDataProvider( m_apDialogModel->getDataProvider(), uno::UNO_QUERY ); - if (!xDataProvider.is()) - return; + updateFromModel(); +} - m_apDialogModel->startControllerLockTimer(); - ControllerLockGuardUNO aLockedControllers( Reference< frame::XModel >( m_xChartDocument, uno::UNO_QUERY ) ); - xDataProvider->deleteComplexCategoryLevel( nAtColumnIndex ); - updateFromModel(); +void DataBrowserModel::removeDataSeriesOrComplexCategoryLevel( sal_Int32 nAtColumnIndex ) +{ + OSL_ASSERT( m_apDialogModel.get()); + if (nAtColumnIndex < 0 || static_cast(nAtColumnIndex) >= m_aColumns.size()) + // Out of bound. + return; + if (isCategoriesColumn(nAtColumnIndex)) + { + removeComplexCategoryLevel(nAtColumnIndex); return; } - m_apDialogModel->deleteSeries( - xSeries, getHeaderForSeries( xSeries ).m_xChartType ); + const Reference& xSeries = m_aColumns[nAtColumnIndex].m_xDataSeries; + + m_apDialogModel->deleteSeries(xSeries, getHeaderForSeries(xSeries).m_xChartType); //delete sequences from internal data provider that are not used anymore //but do not delete sequences that are still in use by the remaining series diff --git a/chart2/source/controller/dialogs/DataBrowserModel.hxx b/chart2/source/controller/dialogs/DataBrowserModel.hxx index 57bd55f14848..ce1b5e14f98d 100644 --- a/chart2/source/controller/dialogs/DataBrowserModel.hxx +++ b/chart2/source/controller/dialogs/DataBrowserModel.hxx @@ -143,6 +143,8 @@ public: private: void updateFromModel(); + void removeComplexCategoryLevel( sal_Int32 nAtColumnIndex ); + void addErrorBarRanges( const ::com::sun::star::uno::Reference< ::com::sun::star::chart2::XDataSeries > & xDataSeries, -- cgit