1*cde9e8dcSAndrew Rist /**************************************************************
2cdf0e10cSrcweir *
3*cde9e8dcSAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one
4*cde9e8dcSAndrew Rist * or more contributor license agreements. See the NOTICE file
5*cde9e8dcSAndrew Rist * distributed with this work for additional information
6*cde9e8dcSAndrew Rist * regarding copyright ownership. The ASF licenses this file
7*cde9e8dcSAndrew Rist * to you under the Apache License, Version 2.0 (the
8*cde9e8dcSAndrew Rist * "License"); you may not use this file except in compliance
9*cde9e8dcSAndrew Rist * with the License. You may obtain a copy of the License at
10cdf0e10cSrcweir *
11*cde9e8dcSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0
12cdf0e10cSrcweir *
13*cde9e8dcSAndrew Rist * Unless required by applicable law or agreed to in writing,
14*cde9e8dcSAndrew Rist * software distributed under the License is distributed on an
15*cde9e8dcSAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*cde9e8dcSAndrew Rist * KIND, either express or implied. See the License for the
17*cde9e8dcSAndrew Rist * specific language governing permissions and limitations
18*cde9e8dcSAndrew Rist * under the License.
19cdf0e10cSrcweir *
20*cde9e8dcSAndrew Rist *************************************************************/
21*cde9e8dcSAndrew Rist
22*cde9e8dcSAndrew Rist
23cdf0e10cSrcweir
24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove
25cdf0e10cSrcweir #include "precompiled_chart2.hxx"
26cdf0e10cSrcweir #include "MultipleChartConverters.hxx"
27cdf0e10cSrcweir
28cdf0e10cSrcweir #include "chartview/ChartSfxItemIds.hxx"
29cdf0e10cSrcweir #include "SchWhichPairs.hxx"
30cdf0e10cSrcweir #include "AxisItemConverter.hxx"
31cdf0e10cSrcweir #include "StatisticsItemConverter.hxx"
32cdf0e10cSrcweir #include "GraphicPropertyItemConverter.hxx"
33cdf0e10cSrcweir #include "DataPointItemConverter.hxx"
34cdf0e10cSrcweir #include "ChartModelHelper.hxx"
35cdf0e10cSrcweir #include "TitleHelper.hxx"
36cdf0e10cSrcweir #include "TitleItemConverter.hxx"
37cdf0e10cSrcweir #include "AxisHelper.hxx"
38cdf0e10cSrcweir #include "chartview/ExplicitValueProvider.hxx"
39cdf0e10cSrcweir #include "DiagramHelper.hxx"
40cdf0e10cSrcweir
41cdf0e10cSrcweir using namespace ::com::sun::star;
42cdf0e10cSrcweir using namespace ::com::sun::star::chart2;
43cdf0e10cSrcweir using ::com::sun::star::uno::Reference;
44cdf0e10cSrcweir using ::com::sun::star::uno::Sequence;
45cdf0e10cSrcweir
46cdf0e10cSrcweir namespace chart
47cdf0e10cSrcweir {
48cdf0e10cSrcweir namespace wrapper
49cdf0e10cSrcweir {
50cdf0e10cSrcweir
51cdf0e10cSrcweir //-----------------------------------------------------------------------------
52cdf0e10cSrcweir
AllAxisItemConverter(const uno::Reference<frame::XModel> & xChartModel,SfxItemPool & rItemPool,SdrModel & rDrawModel,const uno::Reference<lang::XMultiServiceFactory> &,::std::auto_ptr<awt::Size> pRefSize)53cdf0e10cSrcweir AllAxisItemConverter::AllAxisItemConverter(
54cdf0e10cSrcweir const uno::Reference< frame::XModel > & xChartModel,
55cdf0e10cSrcweir SfxItemPool& rItemPool,
56cdf0e10cSrcweir SdrModel& rDrawModel,
57cdf0e10cSrcweir const uno::Reference< lang::XMultiServiceFactory > & /*xNamedPropertyContainerFactory*/,
58cdf0e10cSrcweir ::std::auto_ptr< awt::Size > pRefSize )
59cdf0e10cSrcweir : MultipleItemConverter( rItemPool )
60cdf0e10cSrcweir {
61cdf0e10cSrcweir Reference< XDiagram > xDiagram( ChartModelHelper::findDiagram( xChartModel ) );
62cdf0e10cSrcweir Sequence< Reference< XAxis > > aElementList( AxisHelper::getAllAxesOfDiagram( xDiagram ) );
63cdf0e10cSrcweir for( sal_Int32 nA = 0; nA < aElementList.getLength(); nA++ )
64cdf0e10cSrcweir {
65cdf0e10cSrcweir uno::Reference< beans::XPropertySet > xObjectProperties(aElementList[nA], uno::UNO_QUERY);
66cdf0e10cSrcweir if( pRefSize.get())
67cdf0e10cSrcweir m_aConverters.push_back( new ::chart::wrapper::AxisItemConverter(
68cdf0e10cSrcweir xObjectProperties, rItemPool, rDrawModel,
69cdf0e10cSrcweir uno::Reference< chart2::XChartDocument >( xChartModel, uno::UNO_QUERY ), 0, 0,
70cdf0e10cSrcweir ::std::auto_ptr< awt::Size >( new awt::Size( *pRefSize )) ));
71cdf0e10cSrcweir else
72cdf0e10cSrcweir m_aConverters.push_back( new ::chart::wrapper::AxisItemConverter(
73cdf0e10cSrcweir xObjectProperties, rItemPool, rDrawModel,
74cdf0e10cSrcweir uno::Reference< chart2::XChartDocument >( xChartModel, uno::UNO_QUERY ), 0, 0 ) );
75cdf0e10cSrcweir }
76cdf0e10cSrcweir }
77cdf0e10cSrcweir
~AllAxisItemConverter()78cdf0e10cSrcweir AllAxisItemConverter::~AllAxisItemConverter()
79cdf0e10cSrcweir {
80cdf0e10cSrcweir }
81cdf0e10cSrcweir
GetWhichPairs() const82cdf0e10cSrcweir const sal_uInt16 * AllAxisItemConverter::GetWhichPairs() const
83cdf0e10cSrcweir {
84cdf0e10cSrcweir // must span all used items!
85cdf0e10cSrcweir return nAllAxisWhichPairs;
86cdf0e10cSrcweir }
87cdf0e10cSrcweir
88cdf0e10cSrcweir //-----------------------------------------------------------------------------
89cdf0e10cSrcweir
AllGridItemConverter(const uno::Reference<frame::XModel> & xChartModel,SfxItemPool & rItemPool,SdrModel & rDrawModel,const uno::Reference<lang::XMultiServiceFactory> & xNamedPropertyContainerFactory)90cdf0e10cSrcweir AllGridItemConverter::AllGridItemConverter(
91cdf0e10cSrcweir const uno::Reference< frame::XModel > & xChartModel,
92cdf0e10cSrcweir SfxItemPool& rItemPool,
93cdf0e10cSrcweir SdrModel& rDrawModel,
94cdf0e10cSrcweir const uno::Reference< lang::XMultiServiceFactory > & xNamedPropertyContainerFactory )
95cdf0e10cSrcweir : MultipleItemConverter( rItemPool )
96cdf0e10cSrcweir {
97cdf0e10cSrcweir Reference< XDiagram > xDiagram( ChartModelHelper::findDiagram( xChartModel ) );
98cdf0e10cSrcweir Sequence< Reference< beans::XPropertySet > > aElementList( AxisHelper::getAllGrids( xDiagram ) );
99cdf0e10cSrcweir for( sal_Int32 nA = 0; nA < aElementList.getLength(); nA++ )
100cdf0e10cSrcweir {
101cdf0e10cSrcweir Reference< beans::XPropertySet > xObjectProperties(aElementList[nA]);
102cdf0e10cSrcweir m_aConverters.push_back( new ::chart::wrapper::GraphicPropertyItemConverter(
103cdf0e10cSrcweir xObjectProperties, rItemPool, rDrawModel, xNamedPropertyContainerFactory,
104cdf0e10cSrcweir ::chart::wrapper::GraphicPropertyItemConverter::LINE_PROPERTIES ) );
105cdf0e10cSrcweir }
106cdf0e10cSrcweir }
107cdf0e10cSrcweir
~AllGridItemConverter()108cdf0e10cSrcweir AllGridItemConverter::~AllGridItemConverter()
109cdf0e10cSrcweir {
110cdf0e10cSrcweir }
111cdf0e10cSrcweir
GetWhichPairs() const112cdf0e10cSrcweir const sal_uInt16 * AllGridItemConverter::GetWhichPairs() const
113cdf0e10cSrcweir {
114cdf0e10cSrcweir // must span all used items!
115cdf0e10cSrcweir return nGridWhichPairs;
116cdf0e10cSrcweir }
117cdf0e10cSrcweir
118cdf0e10cSrcweir //-----------------------------------------------------------------------------
119cdf0e10cSrcweir
AllDataLabelItemConverter(const uno::Reference<frame::XModel> & xChartModel,SfxItemPool & rItemPool,SdrModel & rDrawModel,const uno::Reference<lang::XMultiServiceFactory> & xNamedPropertyContainerFactory,::std::auto_ptr<awt::Size> pRefSize)120cdf0e10cSrcweir AllDataLabelItemConverter::AllDataLabelItemConverter(
121cdf0e10cSrcweir const uno::Reference< frame::XModel > & xChartModel,
122cdf0e10cSrcweir SfxItemPool& rItemPool,
123cdf0e10cSrcweir SdrModel& rDrawModel,
124cdf0e10cSrcweir const uno::Reference< lang::XMultiServiceFactory > & xNamedPropertyContainerFactory,
125cdf0e10cSrcweir ::std::auto_ptr< awt::Size > pRefSize )
126cdf0e10cSrcweir : MultipleItemConverter( rItemPool )
127cdf0e10cSrcweir {
128cdf0e10cSrcweir ::std::vector< uno::Reference< chart2::XDataSeries > > aSeriesList(
129cdf0e10cSrcweir ::chart::ChartModelHelper::getDataSeries( xChartModel ));
130cdf0e10cSrcweir
131cdf0e10cSrcweir ::std::vector< uno::Reference< chart2::XDataSeries > >::const_iterator aIt;
132cdf0e10cSrcweir for( aIt = aSeriesList.begin(); aIt != aSeriesList.end(); ++aIt )
133cdf0e10cSrcweir {
134cdf0e10cSrcweir uno::Reference< beans::XPropertySet > xObjectProperties( *aIt, uno::UNO_QUERY);
135cdf0e10cSrcweir uno::Reference< uno::XComponentContext> xContext(0);//do not need Context for label properties
136cdf0e10cSrcweir
137cdf0e10cSrcweir sal_Int32 nNumberFormat=ExplicitValueProvider::getExplicitNumberFormatKeyForDataLabel( xObjectProperties, *aIt, -1/*nPointIndex*/, ChartModelHelper::findDiagram( xChartModel ) );
138cdf0e10cSrcweir sal_Int32 nPercentNumberFormat=ExplicitValueProvider::getExplicitPercentageNumberFormatKeyForDataLabel(
139cdf0e10cSrcweir xObjectProperties,uno::Reference< util::XNumberFormatsSupplier >(xChartModel, uno::UNO_QUERY));
140cdf0e10cSrcweir
141cdf0e10cSrcweir m_aConverters.push_back( new ::chart::wrapper::DataPointItemConverter(
142cdf0e10cSrcweir xChartModel, xContext,
143cdf0e10cSrcweir xObjectProperties, *aIt, rItemPool, rDrawModel, NULL,
144cdf0e10cSrcweir xNamedPropertyContainerFactory,
145cdf0e10cSrcweir GraphicPropertyItemConverter::FILLED_DATA_POINT,
146cdf0e10cSrcweir ::std::auto_ptr< awt::Size >( pRefSize.get() ? new awt::Size( *pRefSize ) : 0),
147cdf0e10cSrcweir true, /*bDataSeries*/
148cdf0e10cSrcweir false, /*bUseSpecialFillColor*/
149cdf0e10cSrcweir 0, /*nSpecialFillColor*/
150cdf0e10cSrcweir true /*bOverwriteLabelsForAttributedDataPointsAlso*/,
151cdf0e10cSrcweir nNumberFormat, nPercentNumberFormat
152cdf0e10cSrcweir ));
153cdf0e10cSrcweir }
154cdf0e10cSrcweir }
155cdf0e10cSrcweir
~AllDataLabelItemConverter()156cdf0e10cSrcweir AllDataLabelItemConverter::~AllDataLabelItemConverter()
157cdf0e10cSrcweir {
158cdf0e10cSrcweir }
159cdf0e10cSrcweir
GetWhichPairs() const160cdf0e10cSrcweir const sal_uInt16 * AllDataLabelItemConverter::GetWhichPairs() const
161cdf0e10cSrcweir {
162cdf0e10cSrcweir // must span all used items!
163cdf0e10cSrcweir return nDataLabelWhichPairs;
164cdf0e10cSrcweir }
165cdf0e10cSrcweir
166cdf0e10cSrcweir //-----------------------------------------------------------------------------
167cdf0e10cSrcweir
AllTitleItemConverter(const uno::Reference<frame::XModel> & xChartModel,SfxItemPool & rItemPool,SdrModel & rDrawModel,const uno::Reference<lang::XMultiServiceFactory> & xNamedPropertyContainerFactory,::std::auto_ptr<awt::Size> pRefSize)168cdf0e10cSrcweir AllTitleItemConverter::AllTitleItemConverter(
169cdf0e10cSrcweir const uno::Reference< frame::XModel > & xChartModel,
170cdf0e10cSrcweir SfxItemPool& rItemPool,
171cdf0e10cSrcweir SdrModel& rDrawModel,
172cdf0e10cSrcweir const uno::Reference< lang::XMultiServiceFactory > & xNamedPropertyContainerFactory,
173cdf0e10cSrcweir ::std::auto_ptr< awt::Size > pRefSize )
174cdf0e10cSrcweir : MultipleItemConverter( rItemPool )
175cdf0e10cSrcweir {
176cdf0e10cSrcweir for(sal_Int32 nTitle = TitleHelper::TITLE_BEGIN; nTitle < TitleHelper::NORMAL_TITLE_END; nTitle++ )
177cdf0e10cSrcweir {
178cdf0e10cSrcweir uno::Reference< chart2::XTitle > xTitle( TitleHelper::getTitle( TitleHelper::eTitleType(nTitle), xChartModel ) );
179cdf0e10cSrcweir if(!xTitle.is())
180cdf0e10cSrcweir continue;
181cdf0e10cSrcweir uno::Reference< beans::XPropertySet > xObjectProperties( xTitle, uno::UNO_QUERY);
182cdf0e10cSrcweir ::std::auto_ptr< awt::Size > pSingleRefSize(0);
183cdf0e10cSrcweir if( pRefSize.get())
184cdf0e10cSrcweir pSingleRefSize = ::std::auto_ptr< awt::Size >( new awt::Size( *pRefSize ));
185cdf0e10cSrcweir m_aConverters.push_back( new ::chart::wrapper::TitleItemConverter(
186cdf0e10cSrcweir xObjectProperties, rItemPool, rDrawModel, xNamedPropertyContainerFactory, pSingleRefSize ));
187cdf0e10cSrcweir }
188cdf0e10cSrcweir }
189cdf0e10cSrcweir
~AllTitleItemConverter()190cdf0e10cSrcweir AllTitleItemConverter::~AllTitleItemConverter()
191cdf0e10cSrcweir {
192cdf0e10cSrcweir }
193cdf0e10cSrcweir
GetWhichPairs() const194cdf0e10cSrcweir const sal_uInt16 * AllTitleItemConverter::GetWhichPairs() const
195cdf0e10cSrcweir {
196cdf0e10cSrcweir // must span all used items!
197cdf0e10cSrcweir return nTitleWhichPairs;
198cdf0e10cSrcweir }
199cdf0e10cSrcweir
200cdf0e10cSrcweir //-----------------------------------------------------------------------------
201cdf0e10cSrcweir
AllSeriesStatisticsConverter(const uno::Reference<frame::XModel> & xChartModel,SfxItemPool & rItemPool)202cdf0e10cSrcweir AllSeriesStatisticsConverter::AllSeriesStatisticsConverter(
203cdf0e10cSrcweir const uno::Reference< frame::XModel > & xChartModel,
204cdf0e10cSrcweir SfxItemPool& rItemPool )
205cdf0e10cSrcweir : MultipleItemConverter( rItemPool )
206cdf0e10cSrcweir {
207cdf0e10cSrcweir ::std::vector< uno::Reference< chart2::XDataSeries > > aSeriesList(
208cdf0e10cSrcweir ::chart::ChartModelHelper::getDataSeries( xChartModel ));
209cdf0e10cSrcweir
210cdf0e10cSrcweir ::std::vector< uno::Reference< chart2::XDataSeries > >::const_iterator aIt;
211cdf0e10cSrcweir for( aIt = aSeriesList.begin(); aIt != aSeriesList.end(); ++aIt )
212cdf0e10cSrcweir {
213cdf0e10cSrcweir uno::Reference< beans::XPropertySet > xObjectProperties( *aIt, uno::UNO_QUERY);
214cdf0e10cSrcweir m_aConverters.push_back( new ::chart::wrapper::StatisticsItemConverter(
215cdf0e10cSrcweir xChartModel, xObjectProperties, rItemPool ));
216cdf0e10cSrcweir }
217cdf0e10cSrcweir }
218cdf0e10cSrcweir
~AllSeriesStatisticsConverter()219cdf0e10cSrcweir AllSeriesStatisticsConverter::~AllSeriesStatisticsConverter()
220cdf0e10cSrcweir {}
221cdf0e10cSrcweir
GetWhichPairs() const222cdf0e10cSrcweir const sal_uInt16 * AllSeriesStatisticsConverter::GetWhichPairs() const
223cdf0e10cSrcweir {
224cdf0e10cSrcweir // must span all used items!
225cdf0e10cSrcweir return nStatWhichPairs;
226cdf0e10cSrcweir }
227cdf0e10cSrcweir
228cdf0e10cSrcweir } // namespace wrapper
229cdf0e10cSrcweir } // namespace chart
230