chart2/source/inc/BaseCoordinateSystem.hxx | 3 chart2/source/inc/ChartTypeTemplate.hxx | 17 +- chart2/source/model/main/BaseCoordinateSystem.cxx | 10 + chart2/source/model/template/ChartTypeTemplate.cxx | 76 ++--------- chart2/source/model/template/ColumnLineChartTypeTemplate.cxx | 24 +-- chart2/source/model/template/ColumnLineChartTypeTemplate.hxx | 6 chart2/source/model/template/PieChartTypeTemplate.cxx | 31 +--- chart2/source/model/template/PieChartTypeTemplate.hxx | 10 - chart2/source/model/template/StockChartTypeTemplate.cxx | 42 +----- chart2/source/model/template/StockChartTypeTemplate.hxx | 6 10 files changed, 79 insertions(+), 146 deletions(-)
New commits: commit d5e1fee5af79b462cb0dd9b18ebc0604b6d3ea9c Author: Noel Grandin <noelgran...@gmail.com> AuthorDate: Sun Jan 23 17:54:35 2022 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Sun Jan 23 20:21:21 2022 +0100 use more concrete types in chart2, BaseCoordinateSystem Change-Id: I780b391ffbff7cb79201eb2895702a7a9a07f89d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128829 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/chart2/source/inc/BaseCoordinateSystem.hxx b/chart2/source/inc/BaseCoordinateSystem.hxx index 922d4047b02e..2241c8490b83 100644 --- a/chart2/source/inc/BaseCoordinateSystem.hxx +++ b/chart2/source/inc/BaseCoordinateSystem.hxx @@ -88,7 +88,7 @@ public: const css::uno::Reference< css::chart2::XChartType >& aChartType ) override; virtual css::uno::Sequence< css::uno::Reference< css::chart2::XChartType > > SAL_CALL getChartTypes() override; virtual void SAL_CALL setChartTypes( - const css::uno::Sequence< css::uno::Reference< css::chart2::XChartType > >& aChartTypes ) override; + const css::uno::Sequence< css::uno::Reference< css::chart2::XChartType > >& aChartTypes ) final override; // ____ XModifyBroadcaster ____ virtual void SAL_CALL addModifyListener( @@ -96,6 +96,7 @@ public: virtual void SAL_CALL removeModifyListener( const css::uno::Reference< css::util::XModifyListener >& aListener ) override; + void setChartTypes( const std::vector< rtl::Reference< ::chart::ChartType > >& aChartTypes ); const std::vector< rtl::Reference<::chart::ChartType > > & getChartTypes2() const { return m_aChartTypes; } protected: diff --git a/chart2/source/inc/ChartTypeTemplate.hxx b/chart2/source/inc/ChartTypeTemplate.hxx index e4484981895a..ce78429f0135 100644 --- a/chart2/source/inc/ChartTypeTemplate.hxx +++ b/chart2/source/inc/ChartTypeTemplate.hxx @@ -116,7 +116,7 @@ public: /// @throws css::uno::RuntimeException void applyStyles( - const css::uno::Reference< css::chart2::XDiagram >& xDiagram ); + const rtl::Reference< ::chart::Diagram >& xDiagram ); // ____ XServiceName ____ virtual OUString SAL_CALL getServiceName() override; @@ -167,7 +167,7 @@ public: <p>Called by FillDiagram.</p> */ virtual void adaptScales( - const css::uno::Sequence< css::uno::Reference< css::chart2::XCoordinateSystem > > & aCooSysSeq, + const std::vector< rtl::Reference< ::chart::BaseCoordinateSystem > > & aCooSysSeq, const css::uno::Reference< css::chart2::data::XLabeledDataSequence > & xCategories ); /** create a data series tree, that fits the requirements of the chart type. @@ -200,9 +200,9 @@ public: css::uno::Sequence< css::uno::Reference< css::chart2::XDataSeries > > > & aSeriesSeq, - const css::uno::Sequence< - css::uno::Reference< - css::chart2::XCoordinateSystem > > & rCoordSys, + const std::vector< + rtl::Reference< + ::chart::BaseCoordinateSystem > > & rCoordSys, const std::vector< rtl::Reference< ChartType > > & aOldChartTypesSeq ); @@ -214,8 +214,6 @@ public: represents one of the dimensions of the coordinate systems. If there are series requesting a secondary axes a secondary y axes is added</p> */ - void createAxes( - const css::uno::Sequence< css::uno::Reference< css::chart2::XCoordinateSystem > > & rCoordSys ); void createAxes( const std::vector< rtl::Reference< ::chart::BaseCoordinateSystem > > & rCoordSys ); @@ -227,7 +225,7 @@ public: /** adapt properties of existing axes and remove superfluous axes */ virtual void adaptAxes( - const css::uno::Sequence< css::uno::Reference< css::chart2::XCoordinateSystem > > & rCoordSys ); + const std::vector< rtl::Reference< ::chart::BaseCoordinateSystem > > & rCoordSys ); const css::uno::Reference< css::uno::XComponentContext >& GetComponentContext() const { return m_xContext;} @@ -249,8 +247,7 @@ private: private: /** modifies the given diagram */ - void FillDiagram( const css::uno::Reference< - css::chart2::XDiagram > & xDiagram, + void FillDiagram( const rtl::Reference< ::chart::Diagram >& xDiagram, const css::uno::Sequence< css::uno::Sequence< css::uno::Reference< diff --git a/chart2/source/model/main/BaseCoordinateSystem.cxx b/chart2/source/model/main/BaseCoordinateSystem.cxx index 6717c3005047..bc02bf753561 100644 --- a/chart2/source/model/main/BaseCoordinateSystem.cxx +++ b/chart2/source/model/main/BaseCoordinateSystem.cxx @@ -294,6 +294,16 @@ void SAL_CALL BaseCoordinateSystem::setChartTypes( const Sequence< Reference< ch fireModifyEvent(); } +void BaseCoordinateSystem::setChartTypes( const std::vector< rtl::Reference< ChartType > >& aChartTypes ) +{ + for (auto const & aChartType : m_aChartTypes) + aChartType->removeModifyListener( m_xModifyEventForwarder ); + m_aChartTypes = aChartTypes; + for (auto const & aChartType : m_aChartTypes) + aChartType->addModifyListener( m_xModifyEventForwarder ); + fireModifyEvent(); +} + // ____ XModifyBroadcaster ____ void SAL_CALL BaseCoordinateSystem::addModifyListener( const Reference< util::XModifyListener >& aListener ) { diff --git a/chart2/source/model/template/ChartTypeTemplate.cxx b/chart2/source/model/template/ChartTypeTemplate.cxx index c1d91453016b..af0a48ab6511 100644 --- a/chart2/source/model/template/ChartTypeTemplate.cxx +++ b/chart2/source/model/template/ChartTypeTemplate.cxx @@ -396,7 +396,7 @@ void ChartTypeTemplate::applyStyle( } } -void ChartTypeTemplate::applyStyles( const Reference< chart2::XDiagram >& xDiagram ) +void ChartTypeTemplate::applyStyles( const rtl::Reference< ::chart::Diagram >& xDiagram ) { // apply chart-type specific styles, like "symbols on" for example Sequence< Sequence< Reference< XDataSeries > > > aNewSeriesSeq( @@ -554,18 +554,15 @@ void ChartTypeTemplate::createCoordinateSystems( } void ChartTypeTemplate::adaptScales( - const Sequence< Reference< chart2::XCoordinateSystem > > & aCooSysSeq, + const std::vector< rtl::Reference< BaseCoordinateSystem > > & aCooSysSeq, const Reference< data::XLabeledDataSequence > & xCategories //@todo: in future there may be more than one sequence of categories (e.g. charttype with categories at x and y axis ) ) { bool bSupportsCategories( supportsCategories() ); - for( Reference< XCoordinateSystem > const & xCooSys : aCooSysSeq ) + for( rtl::Reference< BaseCoordinateSystem > const & xCooSys : aCooSysSeq ) { try { - if( !xCooSys.is() ) - continue; - // attach categories to first axis sal_Int32 nDim( xCooSys->getDimension()); if( nDim > 0 ) @@ -634,39 +631,6 @@ void ChartTypeTemplate::adaptScales( void ChartTypeTemplate::adaptDiagram( const Reference< XDiagram > & /* xDiagram */ ) { - } - -void ChartTypeTemplate::createAxes( - const Sequence< Reference< XCoordinateSystem > > & rCoordSys ) -{ - //create missing axes - if( !rCoordSys.hasElements() ) - return; - - Reference< XCoordinateSystem > xCooSys( rCoordSys[0] ); - if(!xCooSys.is()) - return; - - //create main axis in first coordinate system - sal_Int32 nDimCount = xCooSys->getDimension(); - sal_Int32 nDim=0; - for( nDim=0; nDim<nDimCount; ++nDim ) - { - sal_Int32 nAxisCount = getAxisCountByDimension( nDim ); - if( nDim == 1 && - nAxisCount < 2 && AxisHelper::isSecondaryYAxisNeeded( xCooSys )) - nAxisCount = 2; - for( sal_Int32 nAxisIndex = 0; nAxisIndex < nAxisCount; ++nAxisIndex ) - { - Reference< XAxis > xAxis = AxisHelper::getAxis( nDim, nAxisIndex, xCooSys ); - if( !xAxis.is()) - { - // create and add axis - xAxis.set( AxisHelper::createAxis( - nDim, nAxisIndex, xCooSys, GetComponentContext() )); - } - } - } } void ChartTypeTemplate::createAxes( @@ -703,14 +667,14 @@ void ChartTypeTemplate::createAxes( } void ChartTypeTemplate::adaptAxes( - const Sequence< Reference< XCoordinateSystem > > & rCoordSys ) + const std::vector< rtl::Reference< BaseCoordinateSystem > > & rCoordSys ) { //adapt properties of existing axes and remove superfluous axes - if( !rCoordSys.hasElements() ) + if( rCoordSys.empty() ) return; - for( Reference< XCoordinateSystem > const & xCooSys : rCoordSys ) + for( rtl::Reference< BaseCoordinateSystem > const & xCooSys : rCoordSys ) { if( !xCooSys.is() ) continue; @@ -750,7 +714,7 @@ sal_Int32 ChartTypeTemplate::getAxisCountByDimension( sal_Int32 nDimension ) } void ChartTypeTemplate::FillDiagram( - const Reference< XDiagram >& xDiagram, + const rtl::Reference< ::chart::Diagram >& xDiagram, const Sequence< Sequence< Reference< XDataSeries > > >& aSeriesSeq, const Reference< data::XLabeledDataSequence >& xCategories, const std::vector< rtl::Reference< ChartType > >& aOldChartTypesSeq ) @@ -760,9 +724,8 @@ void ChartTypeTemplate::FillDiagram( try { // create coordinate systems and scales - Reference< XCoordinateSystemContainer > xCoordSysCnt( xDiagram, uno::UNO_QUERY_THROW ); - createCoordinateSystems( xCoordSysCnt ); - Sequence< Reference< XCoordinateSystem > > aCoordinateSystems( xCoordSysCnt->getCoordinateSystems()); + createCoordinateSystems( xDiagram ); + std::vector< rtl::Reference< BaseCoordinateSystem > > aCoordinateSystems( xDiagram->getBaseCoordinateSystems()); createAxes( aCoordinateSystems ); adaptAxes( aCoordinateSystems ); adaptScales( aCoordinateSystems, xCategories ); @@ -779,11 +742,10 @@ void ChartTypeTemplate::FillDiagram( void ChartTypeTemplate::createChartTypes( const Sequence< Sequence< Reference< XDataSeries > > > & aSeriesSeq, - const Sequence< Reference< XCoordinateSystem > > & rCoordSys, + const std::vector< rtl::Reference< BaseCoordinateSystem > > & rCoordSys, const std::vector< rtl::Reference< ChartType > >& aOldChartTypesSeq ) { - if( ! rCoordSys.hasElements() || - ! rCoordSys[0].is() ) + if( rCoordSys.empty() ) return; try @@ -794,8 +756,7 @@ void ChartTypeTemplate::createChartTypes( { // we need a new chart type xCT = getChartTypeForNewSeries( aOldChartTypesSeq ); - Reference< XChartTypeContainer > xCTCnt( rCoordSys[nCooSysIdx], uno::UNO_QUERY_THROW ); - xCTCnt->setChartTypes({ xCT }); + rCoordSys[nCooSysIdx]->setChartTypes(std::vector{ xCT }); } else { @@ -805,15 +766,14 @@ void ChartTypeTemplate::createChartTypes( { // we need a new chart type xCT = getChartTypeForNewSeries( aOldChartTypesSeq ); - Reference< XChartTypeContainer > xCTCnt( rCoordSys[nCooSysIdx], uno::UNO_QUERY_THROW ); - Sequence< Reference< XChartType > > aCTSeq( xCTCnt->getChartTypes()); - if( aCTSeq.hasElements()) + std::vector< rtl::Reference< ChartType > > aCTSeq( rCoordSys[nCooSysIdx]->getChartTypes2()); + if( !aCTSeq.empty()) { - aCTSeq.getArray()[0] = xCT; - xCTCnt->setChartTypes( aCTSeq ); + aCTSeq[0] = xCT; + rCoordSys[nCooSysIdx]->setChartTypes( aCTSeq ); } else - xCTCnt->addChartType( xCT ); + rCoordSys[nCooSysIdx]->addChartType( xCT ); xCT->setDataSeries( aSeriesSeq[nSeriesIdx] ); } @@ -831,7 +791,7 @@ void ChartTypeTemplate::createChartTypes( } // spread the series over the available coordinate systems - if( rCoordSys.getLength() > (nCooSysIdx + 1) ) + if( static_cast<sal_Int32>(rCoordSys.size()) > (nCooSysIdx + 1) ) ++nCooSysIdx; } } diff --git a/chart2/source/model/template/ColumnLineChartTypeTemplate.cxx b/chart2/source/model/template/ColumnLineChartTypeTemplate.cxx index 26ba46b7afa9..03a5f07f0fbe 100644 --- a/chart2/source/model/template/ColumnLineChartTypeTemplate.cxx +++ b/chart2/source/model/template/ColumnLineChartTypeTemplate.cxx @@ -164,17 +164,14 @@ uno::Reference< beans::XPropertySetInfo > SAL_CALL ColumnLineChartTypeTemplate:: void ColumnLineChartTypeTemplate::createChartTypes( const Sequence< Sequence< Reference< XDataSeries > > > & aSeriesSeq, - const Sequence< Reference< XCoordinateSystem > > & rCoordSys, + const std::vector< rtl::Reference< BaseCoordinateSystem > > & rCoordSys, const std::vector< rtl::Reference< ChartType > >& aOldChartTypesSeq ) { - if( ! rCoordSys.hasElements() || - ! rCoordSys[0].is() ) + if( rCoordSys.empty() ) return; try { - Reference< lang::XMultiServiceFactory > xFact( - GetComponentContext()->getServiceManager(), uno::UNO_QUERY_THROW ); const Sequence< Reference< XDataSeries > > aFlatSeriesSeq( FlattenSequence( aSeriesSeq )); sal_Int32 nNumberOfSeries = aFlatSeriesSeq.getLength(); sal_Int32 nNumberOfLines = 0; @@ -200,38 +197,33 @@ void ColumnLineChartTypeTemplate::createChartTypes( // Columns - Reference< XChartType > xCT( - xFact->createInstance( CHART2_SERVICE_NAME_CHARTTYPE_COLUMN ), uno::UNO_QUERY_THROW ); + rtl::Reference< ChartType > xCT = new ColumnChartType(); ChartTypeTemplate::copyPropertiesFromOldToNewCoordinateSystem( aOldChartTypesSeq, xCT ); - Reference< XChartTypeContainer > xCTCnt( rCoordSys[ 0 ], uno::UNO_QUERY_THROW ); - xCTCnt->setChartTypes( Sequence< Reference< chart2::XChartType > >( &xCT, 1 )); + rCoordSys[ 0 ]->setChartTypes( std::vector{xCT} ); if( nNumberOfColumns > 0 ) { - Reference< XDataSeriesContainer > xDSCnt( xCT, uno::UNO_QUERY_THROW ); Sequence< Reference< XDataSeries > > aColumnSeq( nNumberOfColumns ); std::copy( aFlatSeriesSeq.begin(), aFlatSeriesSeq.begin() + nNumberOfColumns, aColumnSeq.getArray()); - xDSCnt->setDataSeries( aColumnSeq ); + xCT->setDataSeries( aColumnSeq ); } // Lines - xCT.set( xFact->createInstance( CHART2_SERVICE_NAME_CHARTTYPE_LINE ), uno::UNO_QUERY_THROW ); - xCTCnt.set( rCoordSys[ 0 ], uno::UNO_QUERY_THROW ); - xCTCnt->addChartType( xCT ); + xCT = new LineChartType(); + rCoordSys[ 0 ]->addChartType( xCT ); if( nNumberOfLines > 0 ) { - Reference< XDataSeriesContainer > xDSCnt( xCT, uno::UNO_QUERY_THROW ); Sequence< Reference< XDataSeries > > aLineSeq( nNumberOfLines ); std::copy( aFlatSeriesSeq.begin() + nNumberOfColumns, aFlatSeriesSeq.end(), aLineSeq.getArray()); - xDSCnt->setDataSeries( aLineSeq ); + xCT->setDataSeries( aLineSeq ); } } catch( const uno::Exception & ) diff --git a/chart2/source/model/template/ColumnLineChartTypeTemplate.hxx b/chart2/source/model/template/ColumnLineChartTypeTemplate.hxx index a8854a779d9d..167c63cc11fe 100644 --- a/chart2/source/model/template/ColumnLineChartTypeTemplate.hxx +++ b/chart2/source/model/template/ColumnLineChartTypeTemplate.hxx @@ -75,9 +75,9 @@ protected: css::uno::Sequence< css::uno::Reference< css::chart2::XDataSeries > > > & aSeriesSeq, - const css::uno::Sequence< - css::uno::Reference< - css::chart2::XCoordinateSystem > > & rCoordSys, + const std::vector< + rtl::Reference< + ::chart::BaseCoordinateSystem > > & rCoordSys, const std::vector< rtl::Reference< ChartType > > & aOldChartTypesSeq ) override; diff --git a/chart2/source/model/template/PieChartTypeTemplate.cxx b/chart2/source/model/template/PieChartTypeTemplate.cxx index 5d8eef9da195..f2ff4ec5f863 100644 --- a/chart2/source/model/template/PieChartTypeTemplate.cxx +++ b/chart2/source/model/template/PieChartTypeTemplate.cxx @@ -217,14 +217,14 @@ sal_Int32 PieChartTypeTemplate::getAxisCountByDimension( sal_Int32 /*nDimension* } void PieChartTypeTemplate::adaptAxes( - const uno::Sequence< uno::Reference< chart2::XCoordinateSystem > > & /*rCoordSys*/ ) + const std::vector< rtl::Reference< BaseCoordinateSystem > > & /*rCoordSys*/ ) { // hide existing axes //hhhh todo } void PieChartTypeTemplate::adaptScales( - const Sequence< Reference< chart2::XCoordinateSystem > > & aCooSysSeq, + const std::vector< rtl::Reference< BaseCoordinateSystem > > & aCooSysSeq, const Reference< chart2::data::XLabeledDataSequence > & xCategories //@todo: in future there may be more than one sequence of categories (e.g. charttype with categories at x and y axis ) ) { @@ -233,7 +233,7 @@ void PieChartTypeTemplate::adaptScales( //remove explicit scalings from radius axis //and ensure correct orientation of scales for donuts - for( Reference< chart2::XCoordinateSystem > const & coords : aCooSysSeq ) + for( rtl::Reference< BaseCoordinateSystem > const & coords : aCooSysSeq ) { try { @@ -278,34 +278,23 @@ void PieChartTypeTemplate::adaptScales( void PieChartTypeTemplate::createChartTypes( const Sequence< Sequence< Reference< chart2::XDataSeries > > > & aSeriesSeq, - const Sequence< Reference< chart2::XCoordinateSystem > > & rCoordSys, + const std::vector< rtl::Reference< BaseCoordinateSystem > > & rCoordSys, const std::vector< rtl::Reference< ChartType > >& /* aOldChartTypesSeq */ ) { - if( ! rCoordSys.hasElements() || - ! rCoordSys[0].is() ) + if( rCoordSys.empty() ) return; try { - Reference< lang::XMultiServiceFactory > xFact( - GetComponentContext()->getServiceManager(), uno::UNO_QUERY_THROW ); - - Reference< chart2::XChartType > xCT( - xFact->createInstance( CHART2_SERVICE_NAME_CHARTTYPE_PIE ), uno::UNO_QUERY_THROW ); - Reference< beans::XPropertySet > xCTProp( xCT, uno::UNO_QUERY ); - if( xCTProp.is()) - { - xCTProp->setPropertyValue( - "UseRings", getFastPropertyValue( PROP_PIE_TEMPLATE_USE_RINGS )); - } - Reference< chart2::XChartTypeContainer > xCTCnt( rCoordSys[0], uno::UNO_QUERY_THROW ); - xCTCnt->setChartTypes( Sequence< Reference< chart2::XChartType > >( &xCT, 1 )); + rtl::Reference< ChartType > xCT = new PieChartType(); + xCT->setPropertyValue( + "UseRings", getFastPropertyValue( PROP_PIE_TEMPLATE_USE_RINGS )); + rCoordSys[0]->setChartTypes( std::vector{xCT} ); if( aSeriesSeq.hasElements() ) { - Reference< chart2::XDataSeriesContainer > xDSCnt( xCT, uno::UNO_QUERY_THROW ); Sequence< Reference< chart2::XDataSeries > > aFlatSeriesSeq( FlattenSequence( aSeriesSeq )); - xDSCnt->setDataSeries( aFlatSeriesSeq ); + xCT->setDataSeries( aFlatSeriesSeq ); DataSeriesHelper::setStackModeAtSeries( aFlatSeriesSeq, rCoordSys[0], getStackMode( 0 )); diff --git a/chart2/source/model/template/PieChartTypeTemplate.hxx b/chart2/source/model/template/PieChartTypeTemplate.hxx index 022acfaed2e9..ea2aeff07cc7 100644 --- a/chart2/source/model/template/PieChartTypeTemplate.hxx +++ b/chart2/source/model/template/PieChartTypeTemplate.hxx @@ -80,10 +80,10 @@ protected: virtual sal_Int32 getAxisCountByDimension( sal_Int32 nDimension ) override; virtual void adaptAxes( - const css::uno::Sequence< css::uno::Reference< css::chart2::XCoordinateSystem > > & rCoordSys ) override; + const std::vector< rtl::Reference< ::chart::BaseCoordinateSystem > > & rCoordSys ) override; virtual void adaptScales( - const css::uno::Sequence< css::uno::Reference< css::chart2::XCoordinateSystem > > & aCooSysSeq, + const std::vector< rtl::Reference< ::chart::BaseCoordinateSystem > > & aCooSysSeq, const css::uno::Reference< css::chart2::data::XLabeledDataSequence > & xCategories ) override; virtual void createChartTypes( @@ -91,9 +91,9 @@ protected: css::uno::Sequence< css::uno::Reference< css::chart2::XDataSeries > > >& aSeriesSeq, - const css::uno::Sequence< - css::uno::Reference< - css::chart2::XCoordinateSystem > > & rCoordSys, + const std::vector< + rtl::Reference< + ::chart::BaseCoordinateSystem > > & rCoordSys, const std::vector< rtl::Reference< ChartType > > & aOldChartTypesSeq ) override; diff --git a/chart2/source/model/template/StockChartTypeTemplate.cxx b/chart2/source/model/template/StockChartTypeTemplate.cxx index 2daad8200977..f55ee2b038e2 100644 --- a/chart2/source/model/template/StockChartTypeTemplate.cxx +++ b/chart2/source/model/template/StockChartTypeTemplate.cxx @@ -278,16 +278,14 @@ rtl::Reference< ChartType > StockChartTypeTemplate::getChartTypeForIndex( sal_In void StockChartTypeTemplate::createChartTypes( const Sequence< Sequence< Reference< XDataSeries > > > & aSeriesSeq, - const Sequence< Reference< XCoordinateSystem > > & rCoordSys, + const std::vector< rtl::Reference< BaseCoordinateSystem > > & rCoordSys, const std::vector< rtl::Reference< ChartType > >& /* aOldChartTypesSeq */ ) { - if( !rCoordSys.hasElements() ) + if( rCoordSys.empty() ) return; try { - Reference< lang::XMultiServiceFactory > xFact( - GetComponentContext()->getServiceManager(), uno::UNO_QUERY_THROW ); bool bHasVolume = false; bool bShowFirst = false; bool bJapaneseStyle = false; @@ -300,43 +298,33 @@ void StockChartTypeTemplate::createChartTypes( sal_Int32 nSeriesIndex = 0; - std::vector< Reference< chart2::XChartType > > aChartTypeVec; + std::vector< rtl::Reference< ChartType > > aChartTypeVec; // Bars (Volume) if( bHasVolume ) { // chart type - Reference< XChartType > xCT( - xFact->createInstance( - CHART2_SERVICE_NAME_CHARTTYPE_COLUMN ), uno::UNO_QUERY_THROW ); + rtl::Reference< ChartType > xCT = new ColumnChartType(); aChartTypeVec.push_back( xCT ); if( aSeriesSeq.getLength() > nSeriesIndex && aSeriesSeq[nSeriesIndex].hasElements() ) { - Reference< XDataSeriesContainer > xDSCnt( xCT, uno::UNO_QUERY_THROW ); - xDSCnt->setDataSeries( aSeriesSeq[ nSeriesIndex ] ); + xCT->setDataSeries( aSeriesSeq[ nSeriesIndex ] ); } ++nSeriesIndex; } - Reference< XChartType > xCT( - xFact->createInstance( - CHART2_SERVICE_NAME_CHARTTYPE_CANDLESTICK ), uno::UNO_QUERY_THROW ); + rtl::Reference< ChartType > xCT = new CandleStickChartType(); aChartTypeVec.push_back( xCT ); - Reference< beans::XPropertySet > xCTProp( xCT, uno::UNO_QUERY ); - if( xCTProp.is()) - { - xCTProp->setPropertyValue( "Japanese", uno::Any( bJapaneseStyle )); - xCTProp->setPropertyValue( "ShowFirst", uno::Any( bShowFirst )); - xCTProp->setPropertyValue( "ShowHighLow", uno::Any( bShowHighLow )); - } + xCT->setPropertyValue( "Japanese", uno::Any( bJapaneseStyle )); + xCT->setPropertyValue( "ShowFirst", uno::Any( bShowFirst )); + xCT->setPropertyValue( "ShowHighLow", uno::Any( bShowHighLow )); if( aSeriesSeq.getLength() > nSeriesIndex && aSeriesSeq[ nSeriesIndex ].hasElements() ) { - Reference< XDataSeriesContainer > xDSCnt( xCT, uno::UNO_QUERY_THROW ); - xDSCnt->setDataSeries( aSeriesSeq[ nSeriesIndex ] ); + xCT->setDataSeries( aSeriesSeq[ nSeriesIndex ] ); } ++nSeriesIndex; @@ -344,17 +332,13 @@ void StockChartTypeTemplate::createChartTypes( if( aSeriesSeq.getLength() > nSeriesIndex && aSeriesSeq[ nSeriesIndex ].hasElements() ) { - xCT.set( - xFact->createInstance( - CHART2_SERVICE_NAME_CHARTTYPE_LINE ), uno::UNO_QUERY_THROW ); + xCT = new LineChartType(); aChartTypeVec.push_back( xCT ); - Reference< XDataSeriesContainer > xDSCnt( xCT, uno::UNO_QUERY_THROW ); - xDSCnt->setDataSeries( aSeriesSeq[ nSeriesIndex ] ); + xCT->setDataSeries( aSeriesSeq[ nSeriesIndex ] ); } - Reference< XChartTypeContainer > xCTCnt( rCoordSys[ 0 ], uno::UNO_QUERY_THROW ); - xCTCnt->setChartTypes( comphelper::containerToSequence(aChartTypeVec) ); + rCoordSys[ 0 ]->setChartTypes( aChartTypeVec ); } catch( const uno::Exception & ) { diff --git a/chart2/source/model/template/StockChartTypeTemplate.hxx b/chart2/source/model/template/StockChartTypeTemplate.hxx index fe7ba2272680..f09c89208df4 100644 --- a/chart2/source/model/template/StockChartTypeTemplate.hxx +++ b/chart2/source/model/template/StockChartTypeTemplate.hxx @@ -94,9 +94,9 @@ protected: css::uno::Sequence< css::uno::Reference< css::chart2::XDataSeries > > >& aSeriesSeq, - const css::uno::Sequence< - css::uno::Reference< - css::chart2::XCoordinateSystem > > & rCoordSys, + const std::vector< + rtl::Reference< + ::chart::BaseCoordinateSystem > > & rCoordSys, const std::vector< rtl::Reference< ChartType > > & aOldChartTypesSeq ) override;