diff options
Diffstat (limited to 'chart2/source/controller/dialogs/ChartTypeDialogController.cxx')
-rw-r--r-- | chart2/source/controller/dialogs/ChartTypeDialogController.cxx | 61 |
1 files changed, 34 insertions, 27 deletions
diff --git a/chart2/source/controller/dialogs/ChartTypeDialogController.cxx b/chart2/source/controller/dialogs/ChartTypeDialogController.cxx index 7286bccdc32f..35284fbb6bfc 100644 --- a/chart2/source/controller/dialogs/ChartTypeDialogController.cxx +++ b/chart2/source/controller/dialogs/ChartTypeDialogController.cxx @@ -18,24 +18,27 @@ */ #include <ChartTypeDialogController.hxx> +#include <ChartTypeManager.hxx> +#include <ChartTypeTemplate.hxx> #include <ResId.hxx> #include <strings.hrc> #include <bitmaps.hlst> #include <ChartModelHelper.hxx> -#include <DiagramHelper.hxx> +#include <DataSeries.hxx> +#include <Diagram.hxx> #include <ControllerLockGuard.hxx> #include <AxisHelper.hxx> #include <unonames.hxx> +#include <BaseCoordinateSystem.hxx> +#include <ChartModel.hxx> #include <com/sun/star/chart2/DataPointGeometry3D.hpp> -#include <com/sun/star/chart2/XChartDocument.hpp> #include <svtools/valueset.hxx> #include <vcl/image.hxx> #include <vcl/settings.hxx> -#include <com/sun/star/lang/XMultiServiceFactory.hpp> -#include <tools/diagnose_ex.h> +#include <comphelper/diagnose_ex.hxx> namespace chart { @@ -250,19 +253,19 @@ OUString ChartTypeDialogController::getServiceNameForParameter( const ChartTypeP } return OUString(); } -uno::Reference< XChartTypeTemplate > ChartTypeDialogController::getCurrentTemplate( +rtl::Reference< ChartTypeTemplate > ChartTypeDialogController::getCurrentTemplate( const ChartTypeParameter& rParameter - , const uno::Reference< lang::XMultiServiceFactory >& xTemplateManager ) const + , const rtl::Reference< ChartTypeManager >& xTemplateManager ) const { - uno::Reference< XChartTypeTemplate > xTemplate; + rtl::Reference< ChartTypeTemplate > xTemplate; OUString aServiceName( getServiceNameForParameter( rParameter ) ); if(!aServiceName.isEmpty()) { - xTemplate.set( xTemplateManager->createInstance( aServiceName ), uno::UNO_QUERY ); + xTemplate = xTemplateManager->createTemplate( aServiceName ); if(xTemplate.is()) { - uno::Reference< beans::XPropertySet > xTemplateProps( xTemplate, uno::UNO_QUERY ); + uno::Reference< beans::XPropertySet > xTemplateProps( static_cast<cppu::OWeakObject*>(xTemplate.get()), uno::UNO_QUERY ); if(xTemplateProps.is()) { try @@ -301,30 +304,30 @@ uno::Reference< XChartTypeTemplate > ChartTypeDialogController::getCurrentTempla } void ChartTypeDialogController::commitToModel( const ChartTypeParameter& rParameter - , const uno::Reference< XChartDocument >& xChartModel ) + , const rtl::Reference<::chart::ChartModel>& xChartModel ) { - uno::Reference< lang::XMultiServiceFactory > xTemplateManager( xChartModel->getChartTypeManager(), uno::UNO_QUERY ); - uno::Reference< XChartTypeTemplate > xTemplate( getCurrentTemplate( rParameter, xTemplateManager ) ); + rtl::Reference< ::chart::ChartTypeManager > xTemplateManager = xChartModel->getTypeManager(); + rtl::Reference< ::chart::ChartTypeTemplate > xTemplate( getCurrentTemplate( rParameter, xTemplateManager ) ); if(!xTemplate.is()) return; // locked controllers ControllerLockGuardUNO aCtrlLockGuard( xChartModel ); - uno::Reference< XDiagram > xDiagram = ChartModelHelper::findDiagram( xChartModel ); - DiagramHelper::tTemplateWithServiceName aTemplateWithService( - DiagramHelper::getTemplateForDiagram( xDiagram, xTemplateManager )); - if( aTemplateWithService.first.is()) - aTemplateWithService.first->resetStyles( xDiagram ); + rtl::Reference< Diagram > xDiagram = xChartModel->getFirstChartDiagram(); + Diagram::tTemplateWithServiceName aTemplateWithService; + if (xDiagram) + aTemplateWithService = xDiagram->getTemplate( xTemplateManager ); + if( aTemplateWithService.xChartTypeTemplate.is()) + aTemplateWithService.xChartTypeTemplate->resetStyles2( xDiagram ); xTemplate->changeDiagram( xDiagram ); if( AllSettings::GetMathLayoutRTL() ) AxisHelper::setRTLAxisLayout( AxisHelper::getCoordinateSystemByIndex( xDiagram, 0 ) ); if( rParameter.b3DLook ) - ThreeDHelper::setScheme( xDiagram, rParameter.eThreeDLookScheme ); + xDiagram->setScheme( rParameter.eThreeDLookScheme ); - uno::Reference<beans::XPropertySet> xDiaProp(xDiagram, uno::UNO_QUERY); - if (xDiaProp.is()) + if (xDiagram.is()) { - xDiaProp->setPropertyValue(CHART_UNONAME_SORT_BY_XVALUES, uno::Any(rParameter.bSortByXValues)); + xDiagram->setPropertyValue(CHART_UNONAME_SORT_BY_XVALUES, uno::Any(rParameter.bSortByXValues)); } } void ChartTypeDialogController::fillSubTypeList( ValueSet& rSubTypeList, const ChartTypeParameter& /*rParameter*/ ) @@ -358,7 +361,7 @@ void ChartTypeDialogController::showExtraControls(weld::Builder* /*pBuilder*/) void ChartTypeDialogController::hideExtraControls() const { } -void ChartTypeDialogController::fillExtraControls( const uno::Reference< XChartDocument >& /*xChartModel*/ +void ChartTypeDialogController::fillExtraControls( const rtl::Reference<::chart::ChartModel>& /*xChartModel*/ , const uno::Reference< beans::XPropertySet >& /*xTemplateProps*/ ) const { } @@ -563,6 +566,8 @@ const tTemplateServiceChartTypeParameterMap& PieChartDialogController::getTempla {"com.sun.star.chart2.template.PieAllExploded" , ChartTypeParameter(2,false,false)}, {"com.sun.star.chart2.template.Donut" , ChartTypeParameter(3,false,false)}, {"com.sun.star.chart2.template.DonutAllExploded" , ChartTypeParameter(4,false,false)}, + {"com.sun.star.chart2.template.BarOfPie" , ChartTypeParameter(5,false,false)}, + {"com.sun.star.chart2.template.PieOfPie" , ChartTypeParameter(6,false,false)}, {"com.sun.star.chart2.template.ThreeDPie" , ChartTypeParameter(1,false,true)}, {"com.sun.star.chart2.template.ThreeDPieAllExploded" , ChartTypeParameter(2,false,true)}, {"com.sun.star.chart2.template.ThreeDDonut" , ChartTypeParameter(3,false,true)}, @@ -586,11 +591,15 @@ void PieChartDialogController::fillSubTypeList( ValueSet& rSubTypeList, const Ch rSubTypeList.InsertItem(2, Image(StockImage::Yes, BMP_CIRCLES_2D_EXPLODED)); rSubTypeList.InsertItem(3, Image(StockImage::Yes, BMP_DONUT_2D)); rSubTypeList.InsertItem(4, Image(StockImage::Yes, BMP_DONUT_2D_EXPLODED)); + rSubTypeList.InsertItem(5, Image(StockImage::Yes, BMP_BAR_OF_PIE)); + rSubTypeList.InsertItem(6, Image(StockImage::Yes, BMP_PIE_OF_PIE)); } rSubTypeList.SetItemText( 1, SchResId( STR_NORMAL ) ); rSubTypeList.SetItemText( 2, SchResId( STR_PIE_EXPLODED ) ); rSubTypeList.SetItemText( 3, SchResId( STR_DONUT ) ); rSubTypeList.SetItemText( 4, SchResId( STR_DONUT_EXPLODED ) ); + rSubTypeList.SetItemText( 5, SchResId( STR_BAR_OF_PIE ) ); + rSubTypeList.SetItemText( 6, SchResId( STR_PIE_OF_PIE ) ); } bool PieChartDialogController::shouldShow_3DLookControl() const @@ -1146,15 +1155,13 @@ void CombiColumnLineChartDialogController::hideExtraControls() const } void CombiColumnLineChartDialogController::fillExtraControls( - const uno::Reference< XChartDocument >& xChartModel + const rtl::Reference<::chart::ChartModel>& xChartModel , const uno::Reference< beans::XPropertySet >& xTemplateProps ) const { if (!m_xMF_NumberOfLines) return; - uno::Reference< frame::XModel > xModel = xChartModel; - - uno::Reference< XDiagram > xDiagram = ChartModelHelper::findDiagram( xModel ); + rtl::Reference< Diagram > xDiagram = xChartModel->getFirstChartDiagram(); if(!xDiagram.is()) return; @@ -1175,7 +1182,7 @@ void CombiColumnLineChartDialogController::fillExtraControls( nNumLines = 0; m_xMF_NumberOfLines->set_value(nNumLines); - sal_Int32 nMaxLines = ChartModelHelper::getDataSeries( xModel ).size() - 1; + sal_Int32 nMaxLines = ChartModelHelper::getDataSeries( xChartModel ).size() - 1; if( nMaxLines < 0 ) nMaxLines = 0; m_xMF_NumberOfLines->set_max(nMaxLines); |