Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /*
3 : * This file is part of the LibreOffice project.
4 : *
5 : * This Source Code Form is subject to the terms of the Mozilla Public
6 : * License, v. 2.0. If a copy of the MPL was not distributed with this
7 : * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 : *
9 : * This file incorporates work covered by the following license notice:
10 : *
11 : * Licensed to the Apache Software Foundation (ASF) under one or more
12 : * contributor license agreements. See the NOTICE file distributed
13 : * with this work for additional information regarding copyright
14 : * ownership. The ASF licenses this file to you under the Apache
15 : * License, Version 2.0 (the "License"); you may not use this file
16 : * except in compliance with the License. You may obtain a copy of
17 : * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 : */
19 :
20 : #include "ChartTypeDialogController.hxx"
21 : #include "ResId.hxx"
22 : #include "HelpIds.hrc"
23 : #include "Strings.hrc"
24 : #include "Bitmaps.hrc"
25 : #include "macros.hxx"
26 : #include "ChartModelHelper.hxx"
27 : #include "DiagramHelper.hxx"
28 : #include "ControllerLockGuard.hxx"
29 : #include "AxisHelper.hxx"
30 : #include <unonames.hxx>
31 :
32 : #include <com/sun/star/chart2/DataPointGeometry3D.hpp>
33 : #include <com/sun/star/chart2/PieChartOffsetMode.hpp>
34 : #include <com/sun/star/chart2/XDataSeriesContainer.hpp>
35 :
36 : #include <svtools/controldims.hrc>
37 : #include <svtools/valueset.hxx>
38 : #include <vcl/bitmap.hxx>
39 : #include <vcl/builder.hxx>
40 : #include <vcl/image.hxx>
41 : #include <vcl/svapp.hxx>
42 : #include <vcl/settings.hxx>
43 :
44 : #include <com/sun/star/lang/XMultiServiceFactory.hpp>
45 :
46 : namespace chart
47 : {
48 : using namespace ::com::sun::star;
49 : using namespace ::com::sun::star::chart2;
50 :
51 0 : ChartTypeParameter::ChartTypeParameter()
52 : : nSubTypeIndex( 1 )
53 : , bXAxisWithValues( false )
54 : , b3DLook( false )
55 : , bSymbols( true )
56 : , bLines( true )
57 : , eStackMode( GlobalStackMode_NONE )
58 : , eCurveStyle( CurveStyle_LINES )
59 : , nCurveResolution(20)
60 : , nSplineOrder(3)
61 : , nGeometry3D(DataPointGeometry3D::CUBOID)
62 : , eThreeDLookScheme(ThreeDLookScheme_Realistic)
63 : , bSortByXValues(false)
64 0 : , mbRoundedEdge(false)
65 : {
66 0 : }
67 :
68 0 : ChartTypeParameter::ChartTypeParameter( sal_Int32 SubTypeIndex, bool HasXAxisWithValues
69 : , bool Is3DLook, GlobalStackMode nStackMode
70 : , bool HasSymbols, bool HasLines
71 : , CurveStyle nCurveStyle )
72 : : nSubTypeIndex( SubTypeIndex )
73 : , bXAxisWithValues( HasXAxisWithValues )
74 : , b3DLook( Is3DLook )
75 : , bSymbols( HasSymbols )
76 : , bLines( HasLines )
77 : , eStackMode( nStackMode )
78 : , eCurveStyle( nCurveStyle )
79 : , nCurveResolution(20)
80 : , nSplineOrder(3)
81 : , nGeometry3D(DataPointGeometry3D::CUBOID)
82 : , eThreeDLookScheme(ThreeDLookScheme_Realistic)
83 : , bSortByXValues(false)
84 0 : , mbRoundedEdge(false)
85 : {
86 0 : }
87 0 : ChartTypeParameter::~ChartTypeParameter()
88 : {
89 0 : }
90 :
91 0 : bool ChartTypeParameter::mapsToSameService( const ChartTypeParameter& rParameter ) const
92 : {
93 0 : return this->mapsToSimilarService( rParameter, 0 );
94 : }
95 0 : bool ChartTypeParameter::mapsToSimilarService( const ChartTypeParameter& rParameter, sal_Int32 nTheHigherTheLess ) const
96 : {
97 0 : sal_Int32 nMax=7;
98 0 : if(nTheHigherTheLess>nMax)
99 0 : return true;
100 0 : if( this->bXAxisWithValues!=rParameter.bXAxisWithValues )
101 0 : return nTheHigherTheLess>nMax-1;
102 0 : if( this->b3DLook!=rParameter.b3DLook )
103 0 : return nTheHigherTheLess>nMax-2;
104 0 : if( this->eStackMode!=rParameter.eStackMode )
105 0 : return nTheHigherTheLess>nMax-3;
106 0 : if( this->nSubTypeIndex!=rParameter.nSubTypeIndex )
107 0 : return nTheHigherTheLess>nMax-4;
108 0 : if( this->bSymbols!=rParameter.bSymbols )
109 0 : return nTheHigherTheLess>nMax-5;
110 0 : if( this->bLines!=rParameter.bLines )
111 0 : return nTheHigherTheLess>nMax-6;
112 0 : return true;
113 : }
114 :
115 0 : ChartTypeDialogController::ChartTypeDialogController()
116 : : bSupportsXAxisWithValues(false)
117 0 : , bSupports3D(true)
118 : {
119 0 : }
120 :
121 0 : ChartTypeDialogController::~ChartTypeDialogController()
122 : {
123 0 : }
124 0 : Image ChartTypeDialogController::getImage()
125 : {
126 0 : return Image();
127 : }
128 0 : bool ChartTypeDialogController::isSubType( const OUString& rServiceName )
129 : {
130 0 : const tTemplateServiceChartTypeParameterMap& rTemplateMap = this->getTemplateMap();
131 0 : tTemplateServiceChartTypeParameterMap::const_iterator aIt( rTemplateMap.find( rServiceName ));
132 0 : if( aIt != rTemplateMap.end())
133 0 : return true;
134 0 : return false;
135 : }
136 0 : ChartTypeParameter ChartTypeDialogController::getChartTypeParameterForService(
137 : const OUString& rServiceName
138 : , const uno::Reference< beans::XPropertySet >& xTemplateProps )
139 : {
140 0 : ChartTypeParameter aRet;
141 0 : const tTemplateServiceChartTypeParameterMap& rTemplateMap = this->getTemplateMap();
142 0 : tTemplateServiceChartTypeParameterMap::const_iterator aIt( rTemplateMap.find( rServiceName ));
143 0 : if( aIt != rTemplateMap.end())
144 0 : aRet = (*aIt).second;
145 0 : if( xTemplateProps.is() )
146 : {
147 : try
148 : {
149 0 : xTemplateProps->getPropertyValue( CHART_UNONAME_CURVE_STYLE ) >>= aRet.eCurveStyle;
150 0 : xTemplateProps->getPropertyValue( CHART_UNONAME_CURVE_RESOLUTION ) >>= aRet.nCurveResolution;
151 0 : xTemplateProps->getPropertyValue( CHART_UNONAME_SPLINE_ORDER ) >>= aRet.nSplineOrder;
152 : }
153 0 : catch( uno::Exception & ex )
154 : {
155 : //not all templates need to support CurveStyle, CurveResolution or SplineOrder
156 0 : ex.Context.is();//to have debug information without compilation warnings
157 : }
158 :
159 : try
160 : {
161 0 : xTemplateProps->getPropertyValue( "Geometry3D" ) >>= aRet.nGeometry3D;
162 : }
163 0 : catch( uno::Exception& ex )
164 : {
165 : //not all templates need to support Geometry3D
166 0 : ex.Context.is();//to have debug information without compilation warnings
167 : }
168 :
169 : try
170 : {
171 0 : xTemplateProps->getPropertyValue(CHART_UNONAME_ROUNDED_EDGE) >>= aRet.mbRoundedEdge;
172 : }
173 0 : catch ( const uno::Exception& ) {}
174 : }
175 0 : return aRet;
176 : }
177 0 : void ChartTypeDialogController::adjustSubTypeAndEnableControls( ChartTypeParameter& /*rParameter*/ )
178 : {
179 0 : }
180 0 : void ChartTypeDialogController::adjustParameterToSubType( ChartTypeParameter& rParameter )
181 : {
182 0 : switch( rParameter.nSubTypeIndex )
183 : {
184 : case 2:
185 0 : rParameter.eStackMode=GlobalStackMode_STACK_Y;
186 0 : break;
187 : case 3:
188 0 : rParameter.eStackMode=GlobalStackMode_STACK_Y_PERCENT;
189 0 : break;
190 : case 4:
191 0 : rParameter.eStackMode=GlobalStackMode_STACK_Z;
192 0 : break;
193 : default:
194 0 : rParameter.eStackMode=GlobalStackMode_NONE;
195 0 : break;
196 : }
197 0 : }
198 0 : void ChartTypeDialogController::adjustParameterToMainType( ChartTypeParameter& rParameter )
199 : {
200 0 : bool bFoundSomeMatch=false;
201 :
202 0 : rParameter.bXAxisWithValues = bSupportsXAxisWithValues;
203 0 : if( rParameter.b3DLook && !bSupports3D )
204 0 : rParameter.b3DLook = false;
205 0 : if(!rParameter.b3DLook && rParameter.eStackMode==GlobalStackMode_STACK_Z)
206 0 : rParameter.eStackMode = GlobalStackMode_NONE;
207 :
208 0 : const tTemplateServiceChartTypeParameterMap& rMap = getTemplateMap();
209 0 : tTemplateServiceChartTypeParameterMap::const_iterator aIter = rMap.begin();
210 0 : const tTemplateServiceChartTypeParameterMap::const_iterator aEnd = rMap.end();
211 0 : for( sal_Int32 nMatchPrecision=0; nMatchPrecision<7 && !bFoundSomeMatch; nMatchPrecision++ )
212 : {
213 0 : for( aIter = rMap.begin(); aIter != aEnd; ++aIter )
214 : {
215 0 : if( rParameter.mapsToSimilarService( (*aIter).second, nMatchPrecision ) )
216 : {
217 : //remind some values
218 0 : ThreeDLookScheme aScheme = rParameter.eThreeDLookScheme;
219 0 : sal_Int32 nCurveResolution = rParameter.nCurveResolution;
220 0 : sal_Int32 nSplineOrder = rParameter.nSplineOrder;
221 0 : CurveStyle eCurveStyle = rParameter.eCurveStyle;
222 0 : sal_Int32 nGeometry3D = rParameter.nGeometry3D;
223 0 : bool bSortByXValues = rParameter.bSortByXValues;
224 0 : bool bRoundedEdge = rParameter.mbRoundedEdge;
225 :
226 0 : rParameter = (*aIter).second;
227 :
228 : //some values should not be changed with charttype
229 0 : rParameter.eThreeDLookScheme = aScheme;
230 0 : rParameter.nCurveResolution = nCurveResolution;
231 0 : rParameter.nSplineOrder =nSplineOrder;
232 0 : rParameter.eCurveStyle = eCurveStyle;
233 0 : rParameter.nGeometry3D = nGeometry3D;
234 0 : rParameter.bSortByXValues = bSortByXValues;
235 0 : rParameter.mbRoundedEdge = bRoundedEdge;
236 :
237 0 : bFoundSomeMatch = true;
238 0 : break;
239 : }
240 : }
241 : }
242 0 : if(!bFoundSomeMatch)
243 : {
244 0 : if(rMap.begin()!=rMap.end())
245 0 : rParameter = (*rMap.begin()).second;
246 : else
247 0 : rParameter = ChartTypeParameter();
248 : }
249 0 : }
250 0 : OUString ChartTypeDialogController::getServiceNameForParameter( const ChartTypeParameter& rParameter ) const
251 : {
252 0 : ChartTypeParameter aParameter(rParameter);
253 0 : if( aParameter.bXAxisWithValues )
254 0 : aParameter.eStackMode = GlobalStackMode_NONE;
255 0 : if(!aParameter.b3DLook && aParameter.eStackMode==GlobalStackMode_STACK_Z)
256 0 : aParameter.eStackMode = GlobalStackMode_NONE;
257 0 : const tTemplateServiceChartTypeParameterMap& rMap = getTemplateMap();
258 0 : tTemplateServiceChartTypeParameterMap::const_iterator aIter = rMap.begin();
259 0 : const tTemplateServiceChartTypeParameterMap::const_iterator aEnd = rMap.end();
260 0 : for( ; aIter != aEnd; ++aIter )
261 : {
262 0 : if( aParameter.mapsToSameService( (*aIter).second ) )
263 0 : return (*aIter).first;
264 : }
265 :
266 : OSL_FAIL( "ChartType not implemented yet - use fallback to similar type" );
267 0 : for( sal_Int32 nMatchPrecision=1; nMatchPrecision<8; nMatchPrecision++ )
268 : {
269 0 : for( aIter = rMap.begin(); aIter != aEnd; ++aIter )
270 : {
271 0 : if( aParameter.mapsToSimilarService( (*aIter).second, nMatchPrecision ) )
272 0 : return (*aIter).first;
273 : }
274 : }
275 0 : return OUString();
276 : }
277 0 : uno::Reference< XChartTypeTemplate > ChartTypeDialogController::getCurrentTemplate(
278 : const ChartTypeParameter& rParameter
279 : , const uno::Reference< lang::XMultiServiceFactory >& xTemplateManager ) const
280 : {
281 0 : uno::Reference< XChartTypeTemplate > xTemplate(0);
282 :
283 0 : OUString aServiceName( this->getServiceNameForParameter( rParameter ) );
284 0 : if(!aServiceName.isEmpty())
285 : {
286 0 : xTemplate.set( xTemplateManager->createInstance( aServiceName ), uno::UNO_QUERY );
287 0 : if(xTemplate.is())
288 : {
289 0 : uno::Reference< beans::XPropertySet > xTemplateProps( xTemplate, uno::UNO_QUERY );
290 0 : if(xTemplateProps.is())
291 : {
292 : try
293 : {
294 0 : xTemplateProps->setPropertyValue( CHART_UNONAME_CURVE_STYLE , uno::makeAny(rParameter.eCurveStyle) );
295 0 : xTemplateProps->setPropertyValue( CHART_UNONAME_CURVE_RESOLUTION , uno::makeAny(rParameter.nCurveResolution) );
296 0 : xTemplateProps->setPropertyValue( CHART_UNONAME_SPLINE_ORDER , uno::makeAny(rParameter.nSplineOrder) );
297 : }
298 0 : catch( uno::Exception & ex )
299 : {
300 : //not all templates need to support CurveStyle, CurveResolution or SplineOrder
301 0 : ex.Context.is();//to have debug information without compilation warnings
302 : }
303 : try
304 : {
305 0 : xTemplateProps->setPropertyValue( "Geometry3D" , uno::makeAny(rParameter.nGeometry3D) );
306 : }
307 0 : catch( uno::Exception & ex )
308 : {
309 : //not all templates need to support Geometry3D
310 0 : ex.Context.is();//to have debug information without compilation warnings
311 : }
312 :
313 : try
314 : {
315 0 : xTemplateProps->setPropertyValue(CHART_UNONAME_ROUNDED_EDGE, uno::makeAny(rParameter.mbRoundedEdge));
316 : }
317 0 : catch ( const uno::Exception& )
318 : {
319 : }
320 :
321 : try
322 : {
323 0 : this->setTemplateProperties( xTemplateProps );
324 : }
325 0 : catch( const uno::Exception & ex )
326 : {
327 : ASSERT_EXCEPTION( ex );
328 : }
329 0 : }
330 : }
331 : }
332 0 : return xTemplate;
333 : }
334 :
335 0 : bool ChartTypeDialogController::commitToModel( const ChartTypeParameter& rParameter
336 : , const uno::Reference< XChartDocument >& xChartModel )
337 : {
338 0 : uno::Reference< lang::XMultiServiceFactory > xTemplateManager( xChartModel->getChartTypeManager(), uno::UNO_QUERY );
339 0 : uno::Reference< XChartTypeTemplate > xTemplate( this->getCurrentTemplate( rParameter, xTemplateManager ) );
340 0 : if(xTemplate.is())
341 : {
342 0 : uno::Reference< frame::XModel > xModel( xChartModel, uno::UNO_QUERY);
343 :
344 : // locked controllers
345 0 : ControllerLockGuardUNO aCtrlLockGuard( xModel );
346 0 : uno::Reference< XDiagram > xDiagram = ChartModelHelper::findDiagram( xModel );
347 : DiagramHelper::tTemplateWithServiceName aTemplateWithService(
348 0 : DiagramHelper::getTemplateForDiagram( xDiagram, xTemplateManager ));
349 0 : if( aTemplateWithService.first.is())
350 0 : aTemplateWithService.first->resetStyles( xDiagram );
351 0 : xTemplate->changeDiagram( xDiagram );
352 0 : if( AllSettings::GetMathLayoutRTL() )
353 0 : AxisHelper::setRTLAxisLayout( AxisHelper::getCoordinateSystemByIndex( xDiagram, 0 ) );
354 0 : if( rParameter.b3DLook )
355 0 : ThreeDHelper::setScheme( xDiagram, rParameter.eThreeDLookScheme );
356 :
357 0 : uno::Reference<beans::XPropertySet> xDiaProp(xDiagram, uno::UNO_QUERY);
358 0 : if (xDiaProp.is())
359 : {
360 0 : xDiaProp->setPropertyValue(CHART_UNONAME_SORT_BY_XVALUES, uno::makeAny(rParameter.bSortByXValues));
361 0 : }
362 : }
363 0 : return false;
364 : }
365 0 : void ChartTypeDialogController::fillSubTypeList( ValueSet& rSubTypeList, const ChartTypeParameter& /*rParameter*/ )
366 : {
367 0 : rSubTypeList.Clear();
368 0 : }
369 0 : bool ChartTypeDialogController::shouldShow_3DLookControl() const
370 : {
371 0 : return false;
372 : }
373 0 : bool ChartTypeDialogController::shouldShow_StackingControl() const
374 : {
375 0 : return false;
376 : }
377 0 : bool ChartTypeDialogController::shouldShow_DeepStackingControl() const
378 : {
379 0 : return false;
380 : }
381 0 : bool ChartTypeDialogController::shouldShow_SplineControl() const
382 : {
383 0 : return false;
384 : }
385 0 : bool ChartTypeDialogController::shouldShow_GeometryControl() const
386 : {
387 0 : return false;
388 : }
389 0 : bool ChartTypeDialogController::shouldShow_SortByXValuesResourceGroup() const
390 : {
391 0 : return false;
392 : }
393 :
394 0 : bool ChartTypeDialogController::shouldShow_GL3DResourceGroup() const
395 : {
396 0 : return false;
397 : }
398 :
399 0 : void ChartTypeDialogController::showExtraControls( VclBuilderContainer* /*pParent*/ )
400 : {
401 0 : }
402 0 : void ChartTypeDialogController::hideExtraControls() const
403 : {
404 0 : }
405 0 : void ChartTypeDialogController::fillExtraControls( const ChartTypeParameter& /*rParameter*/
406 : , const uno::Reference< XChartDocument >& /*xChartModel*/
407 : , const uno::Reference< beans::XPropertySet >& /*xTemplateProps*/ ) const
408 : {
409 0 : }
410 0 : void ChartTypeDialogController::setTemplateProperties( const uno::Reference< beans::XPropertySet >& /*xTemplateProps*/ ) const throw (uno::RuntimeException)
411 : {
412 0 : }
413 :
414 0 : ColumnOrBarChartDialogController_Base::ColumnOrBarChartDialogController_Base()
415 0 : : ChartTypeDialogController()
416 : {
417 0 : }
418 0 : ColumnOrBarChartDialogController_Base::~ColumnOrBarChartDialogController_Base()
419 : {
420 0 : }
421 0 : bool ColumnOrBarChartDialogController_Base::shouldShow_3DLookControl() const
422 : {
423 0 : return true;
424 : }
425 0 : bool ColumnOrBarChartDialogController_Base::shouldShow_GeometryControl() const
426 : {
427 0 : return true;
428 : }
429 0 : void ColumnOrBarChartDialogController_Base::adjustSubTypeAndEnableControls( ChartTypeParameter& rParameter )
430 : {
431 0 : if(rParameter.nSubTypeIndex>3 && !rParameter.b3DLook)
432 : {
433 0 : rParameter.nSubTypeIndex=1;
434 : }
435 0 : }
436 0 : ColumnChartDialogController::ColumnChartDialogController()
437 : {
438 0 : }
439 0 : ColumnChartDialogController::~ColumnChartDialogController()
440 : {
441 0 : }
442 0 : OUString ColumnChartDialogController::getName()
443 : {
444 0 : return SCH_RESSTR( STR_TYPE_COLUMN );
445 : }
446 0 : Image ColumnChartDialogController::getImage()
447 : {
448 0 : return Image( SchResId( IMG_TYPE_COLUMN ));
449 : }
450 0 : const tTemplateServiceChartTypeParameterMap& ColumnChartDialogController::getTemplateMap() const
451 : {
452 : static tTemplateServiceChartTypeParameterMap m_aTemplateMap =
453 : tTemplateServiceChartTypeParameterMap
454 : ( "com.sun.star.chart2.template.Column" , ChartTypeParameter(1,false,false,GlobalStackMode_NONE) )
455 0 : ( "com.sun.star.chart2.template.StackedColumn" , ChartTypeParameter(2,false,false,GlobalStackMode_STACK_Y) )
456 0 : ( "com.sun.star.chart2.template.PercentStackedColumn" , ChartTypeParameter(3,false,false,GlobalStackMode_STACK_Y_PERCENT) )
457 0 : ( "com.sun.star.chart2.template.ThreeDColumnFlat" , ChartTypeParameter(1,false,true,GlobalStackMode_NONE) )
458 0 : ( "com.sun.star.chart2.template.StackedThreeDColumnFlat" , ChartTypeParameter(2,false,true,GlobalStackMode_STACK_Y) )
459 0 : ( "com.sun.star.chart2.template.PercentStackedThreeDColumnFlat" , ChartTypeParameter(3,false,true,GlobalStackMode_STACK_Y_PERCENT) )
460 0 : ( "com.sun.star.chart2.template.ThreeDColumnDeep" , ChartTypeParameter(4,false,true,GlobalStackMode_STACK_Z) )
461 : ;
462 0 : return m_aTemplateMap;
463 : }
464 0 : void ColumnChartDialogController::fillSubTypeList( ValueSet& rSubTypeList, const ChartTypeParameter& rParameter )
465 : {
466 0 : rSubTypeList.Clear();
467 :
468 0 : if( rParameter.b3DLook )
469 : {
470 0 : switch(rParameter.nGeometry3D)
471 : {
472 : case DataPointGeometry3D::CYLINDER:
473 0 : rSubTypeList.InsertItem(1, Image(Bitmap(SchResId(BMP_SAEULE_3D_1))));
474 0 : rSubTypeList.InsertItem(2, Image(Bitmap(SchResId(BMP_SAEULE_3D_2))));
475 0 : rSubTypeList.InsertItem(3, Image(Bitmap(SchResId(BMP_SAEULE_3D_3))));
476 0 : rSubTypeList.InsertItem(4, Image(Bitmap(SchResId(BMP_SAEULE_3D_4))));
477 0 : break;
478 : case DataPointGeometry3D::CONE:
479 0 : rSubTypeList.InsertItem(1, Image(Bitmap(SchResId(BMP_KEGEL_3D_1))));
480 0 : rSubTypeList.InsertItem(2, Image(Bitmap(SchResId(BMP_KEGEL_3D_2))));
481 0 : rSubTypeList.InsertItem(3, Image(Bitmap(SchResId(BMP_KEGEL_3D_3))));
482 0 : rSubTypeList.InsertItem(4, Image(Bitmap(SchResId(BMP_KEGEL_3D_4))));
483 0 : break;
484 : case DataPointGeometry3D::PYRAMID:
485 0 : rSubTypeList.InsertItem(1, Image(Bitmap(SchResId(BMP_PYRAMID_3D_1))));
486 0 : rSubTypeList.InsertItem(2, Image(Bitmap(SchResId(BMP_PYRAMID_3D_2))));
487 0 : rSubTypeList.InsertItem(3, Image(Bitmap(SchResId(BMP_PYRAMID_3D_3))));
488 0 : rSubTypeList.InsertItem(4, Image(Bitmap(SchResId(BMP_PYRAMID_3D_4))));
489 0 : break;
490 : default: //DataPointGeometry3D::CUBOID:
491 0 : rSubTypeList.InsertItem(1, Image(Bitmap(SchResId(BMP_COLUMNS_3D_1))));
492 0 : rSubTypeList.InsertItem(2, Image(Bitmap(SchResId(BMP_COLUMNS_3D_2))));
493 0 : rSubTypeList.InsertItem(3, Image(Bitmap(SchResId(BMP_COLUMNS_3D_3))));
494 0 : rSubTypeList.InsertItem(4, Image(Bitmap(SchResId(BMP_COLUMNS_3D))));
495 0 : break;
496 : }
497 : }
498 : else
499 : {
500 0 : rSubTypeList.InsertItem(1, Image(Bitmap(SchResId(BMP_COLUMNS_2D_1))));
501 0 : rSubTypeList.InsertItem(2, Image(Bitmap(SchResId(BMP_COLUMNS_2D_2))));
502 0 : rSubTypeList.InsertItem(3, Image(Bitmap(SchResId(BMP_COLUMNS_2D_3))));
503 : }
504 :
505 0 : rSubTypeList.SetItemText( 1, SCH_RESSTR( STR_NORMAL ) );
506 0 : rSubTypeList.SetItemText( 2, SCH_RESSTR( STR_STACKED ) );
507 0 : rSubTypeList.SetItemText( 3, SCH_RESSTR( STR_PERCENT ) );
508 0 : rSubTypeList.SetItemText( 4, SCH_RESSTR( STR_DEEP ) );
509 0 : }
510 :
511 0 : BarChartDialogController::BarChartDialogController()
512 : {
513 0 : }
514 0 : BarChartDialogController::~BarChartDialogController()
515 : {
516 0 : }
517 0 : OUString BarChartDialogController::getName()
518 : {
519 0 : return SCH_RESSTR( STR_TYPE_BAR );
520 : }
521 0 : Image BarChartDialogController::getImage()
522 : {
523 0 : return Image( SchResId( IMG_TYPE_BAR ));
524 : }
525 0 : const tTemplateServiceChartTypeParameterMap& BarChartDialogController::getTemplateMap() const
526 : {
527 : static tTemplateServiceChartTypeParameterMap m_aTemplateMap =
528 : tTemplateServiceChartTypeParameterMap
529 : ( "com.sun.star.chart2.template.Bar" , ChartTypeParameter(1,false,false,GlobalStackMode_NONE) )
530 0 : ( "com.sun.star.chart2.template.StackedBar" , ChartTypeParameter(2,false,false,GlobalStackMode_STACK_Y) )
531 0 : ( "com.sun.star.chart2.template.PercentStackedBar" , ChartTypeParameter(3,false,false,GlobalStackMode_STACK_Y_PERCENT) )
532 0 : ( "com.sun.star.chart2.template.ThreeDBarFlat" , ChartTypeParameter(1,false,true,GlobalStackMode_NONE) )
533 0 : ( "com.sun.star.chart2.template.StackedThreeDBarFlat" , ChartTypeParameter(2,false,true,GlobalStackMode_STACK_Y) )
534 0 : ( "com.sun.star.chart2.template.PercentStackedThreeDBarFlat" , ChartTypeParameter(3,false,true,GlobalStackMode_STACK_Y_PERCENT) )
535 0 : ( "com.sun.star.chart2.template.ThreeDBarDeep" , ChartTypeParameter(4,false,true,GlobalStackMode_STACK_Z) )
536 : ;
537 0 : return m_aTemplateMap;
538 : }
539 0 : void BarChartDialogController::fillSubTypeList( ValueSet& rSubTypeList, const ChartTypeParameter& rParameter )
540 : {
541 0 : rSubTypeList.Clear();
542 :
543 0 : if( rParameter.b3DLook )
544 : {
545 0 : switch(rParameter.nGeometry3D)
546 : {
547 : case DataPointGeometry3D::CYLINDER:
548 0 : rSubTypeList.InsertItem(1, Image(Bitmap(SchResId(BMP_ROEHRE_3D_1))));
549 0 : rSubTypeList.InsertItem(2, Image(Bitmap(SchResId(BMP_ROEHRE_3D_2))));
550 0 : rSubTypeList.InsertItem(3, Image(Bitmap(SchResId(BMP_ROEHRE_3D_3))));
551 0 : rSubTypeList.InsertItem(4, Image(Bitmap(SchResId(BMP_ROEHRE_3D_4))));
552 0 : break;
553 : case DataPointGeometry3D::CONE:
554 0 : rSubTypeList.InsertItem(1, Image(Bitmap(SchResId(BMP_KEGELQ_3D_1))));
555 0 : rSubTypeList.InsertItem(2, Image(Bitmap(SchResId(BMP_KEGELQ_3D_2))));
556 0 : rSubTypeList.InsertItem(3, Image(Bitmap(SchResId(BMP_KEGELQ_3D_3))));
557 0 : rSubTypeList.InsertItem(4, Image(Bitmap(SchResId(BMP_KEGELQ_3D_4))));
558 0 : break;
559 : case DataPointGeometry3D::PYRAMID:
560 0 : rSubTypeList.InsertItem(1, Image(Bitmap(SchResId(BMP_PYRAMIDQ_3D_1))));
561 0 : rSubTypeList.InsertItem(2, Image(Bitmap(SchResId(BMP_PYRAMIDQ_3D_2))));
562 0 : rSubTypeList.InsertItem(3, Image(Bitmap(SchResId(BMP_PYRAMIDQ_3D_3))));
563 0 : rSubTypeList.InsertItem(4, Image(Bitmap(SchResId(BMP_PYRAMIDQ_3D_4))));
564 0 : break;
565 : default: //DataPointGeometry3D::CUBOID:
566 0 : rSubTypeList.InsertItem(1, Image(Bitmap(SchResId(BMP_BARS_3D_1))));
567 0 : rSubTypeList.InsertItem(2, Image(Bitmap(SchResId(BMP_BARS_3D_2))));
568 0 : rSubTypeList.InsertItem(3, Image(Bitmap(SchResId(BMP_BARS_3D_3))));
569 0 : rSubTypeList.InsertItem(4, Image(Bitmap(SchResId(BMP_BARS_3D))));
570 0 : break;
571 : }
572 : }
573 : else
574 : {
575 0 : rSubTypeList.InsertItem(1, Image(Bitmap(SchResId(BMP_BARS_2D_1))));
576 0 : rSubTypeList.InsertItem(2, Image(Bitmap(SchResId(BMP_BARS_2D_2))));
577 0 : rSubTypeList.InsertItem(3, Image(Bitmap(SchResId(BMP_BARS_2D_3))));
578 : }
579 0 : rSubTypeList.SetItemText( 1, SCH_RESSTR( STR_NORMAL ) );
580 0 : rSubTypeList.SetItemText( 2, SCH_RESSTR( STR_STACKED ) );
581 0 : rSubTypeList.SetItemText( 3, SCH_RESSTR( STR_PERCENT ) );
582 0 : rSubTypeList.SetItemText( 4, SCH_RESSTR( STR_DEEP ) );
583 0 : }
584 :
585 0 : PieChartDialogController::PieChartDialogController()
586 : {
587 0 : }
588 0 : PieChartDialogController::~PieChartDialogController()
589 : {
590 0 : }
591 0 : OUString PieChartDialogController::getName()
592 : {
593 0 : return SCH_RESSTR( STR_TYPE_PIE );
594 : }
595 0 : Image PieChartDialogController::getImage()
596 : {
597 0 : return Image( SchResId( IMG_TYPE_PIE ));
598 : }
599 0 : const tTemplateServiceChartTypeParameterMap& PieChartDialogController::getTemplateMap() const
600 : {
601 : static tTemplateServiceChartTypeParameterMap m_aTemplateMap =
602 : tTemplateServiceChartTypeParameterMap
603 : ( "com.sun.star.chart2.template.Pie" , ChartTypeParameter(1,false,false) )
604 0 : ( "com.sun.star.chart2.template.PieAllExploded" , ChartTypeParameter(2,false,false) )
605 0 : ( "com.sun.star.chart2.template.Donut" , ChartTypeParameter(3,false,false) )
606 0 : ( "com.sun.star.chart2.template.DonutAllExploded" , ChartTypeParameter(4,false,false) )
607 0 : ( "com.sun.star.chart2.template.ThreeDPie" , ChartTypeParameter(1,false,true) )
608 0 : ( "com.sun.star.chart2.template.ThreeDPieAllExploded" , ChartTypeParameter(2,false,true) )
609 0 : ( "com.sun.star.chart2.template.ThreeDDonut" , ChartTypeParameter(3,false,true) )
610 0 : ( "com.sun.star.chart2.template.ThreeDDonutAllExploded" , ChartTypeParameter(4,false,true) )
611 : ;
612 0 : return m_aTemplateMap;
613 : }
614 0 : void PieChartDialogController::fillSubTypeList( ValueSet& rSubTypeList, const ChartTypeParameter& rParameter )
615 : {
616 0 : rSubTypeList.Clear();
617 :
618 0 : if( rParameter.b3DLook )
619 : {
620 0 : rSubTypeList.InsertItem(1, Image(Bitmap(SchResId(BMP_CIRCLES_3D))));
621 0 : rSubTypeList.InsertItem(2, Image(Bitmap(SchResId(BMP_CIRCLES_3D_EXPLODED))));
622 0 : rSubTypeList.InsertItem(3, Image(Bitmap(SchResId(BMP_DONUT_3D))));
623 0 : rSubTypeList.InsertItem(4, Image(Bitmap(SchResId(BMP_DONUT_3D_EXPLODED))));
624 : }
625 : else
626 : {
627 0 : rSubTypeList.InsertItem(1, Image(Bitmap(SchResId(BMP_CIRCLES_2D))));
628 0 : rSubTypeList.InsertItem(2, Image(Bitmap(SchResId(BMP_CIRCLES_2D_EXPLODED))));
629 0 : rSubTypeList.InsertItem(3, Image(Bitmap(SchResId(BMP_DONUT_2D))));
630 0 : rSubTypeList.InsertItem(4, Image(Bitmap(SchResId(BMP_DONUT_2D_EXPLODED))));
631 : }
632 0 : rSubTypeList.SetItemText( 1, SCH_RESSTR( STR_NORMAL ) );
633 0 : rSubTypeList.SetItemText( 2, SCH_RESSTR( STR_PIE_EXPLODED ) );
634 0 : rSubTypeList.SetItemText( 3, SCH_RESSTR( STR_DONUT ) );
635 0 : rSubTypeList.SetItemText( 4, SCH_RESSTR( STR_DONUT_EXPLODED ) );
636 0 : }
637 :
638 0 : bool PieChartDialogController::shouldShow_3DLookControl() const
639 : {
640 0 : return true;
641 : }
642 0 : void PieChartDialogController::adjustParameterToSubType( ChartTypeParameter& rParameter )
643 : {
644 0 : if(rParameter.eStackMode==GlobalStackMode_STACK_Z)
645 0 : rParameter.eStackMode = GlobalStackMode_NONE;
646 0 : }
647 0 : LineChartDialogController::LineChartDialogController()
648 : {
649 0 : }
650 0 : LineChartDialogController::~LineChartDialogController()
651 : {
652 0 : }
653 0 : OUString LineChartDialogController::getName()
654 : {
655 0 : return SCH_RESSTR( STR_TYPE_LINE );
656 : }
657 0 : Image LineChartDialogController::getImage()
658 : {
659 0 : return Image( SchResId( IMG_TYPE_LINE ));
660 : }
661 0 : const tTemplateServiceChartTypeParameterMap& LineChartDialogController::getTemplateMap() const
662 : {
663 : static tTemplateServiceChartTypeParameterMap m_aTemplateMap =
664 : tTemplateServiceChartTypeParameterMap
665 : ( "com.sun.star.chart2.template.Symbol" , ChartTypeParameter(1,false,false,GlobalStackMode_NONE,true,false) )
666 0 : ( "com.sun.star.chart2.template.StackedSymbol" , ChartTypeParameter(1,false,false,GlobalStackMode_STACK_Y,true,false) )
667 0 : ( "com.sun.star.chart2.template.PercentStackedSymbol" , ChartTypeParameter(1,false,false,GlobalStackMode_STACK_Y_PERCENT,true,false) )
668 0 : ( "com.sun.star.chart2.template.LineSymbol" , ChartTypeParameter(2,false,false,GlobalStackMode_NONE,true,true) )
669 0 : ( "com.sun.star.chart2.template.StackedLineSymbol" , ChartTypeParameter(2,false,false,GlobalStackMode_STACK_Y,true,true) )
670 0 : ( "com.sun.star.chart2.template.PercentStackedLineSymbol" , ChartTypeParameter(2,false,false,GlobalStackMode_STACK_Y_PERCENT,true,true) )
671 0 : ( "com.sun.star.chart2.template.Line" , ChartTypeParameter(3,false,false,GlobalStackMode_NONE,false,true) )
672 0 : ( "com.sun.star.chart2.template.StackedLine" , ChartTypeParameter(3,false,false,GlobalStackMode_STACK_Y,false,true) )
673 0 : ( "com.sun.star.chart2.template.PercentStackedLine" , ChartTypeParameter(3,false,false,GlobalStackMode_STACK_Y_PERCENT,false,true) )
674 0 : ( "com.sun.star.chart2.template.StackedThreeDLine" , ChartTypeParameter(4,false,true,GlobalStackMode_STACK_Y,false,true) )
675 0 : ( "com.sun.star.chart2.template.PercentStackedThreeDLine" , ChartTypeParameter(4,false,true,GlobalStackMode_STACK_Y_PERCENT,false,true) )
676 0 : ( "com.sun.star.chart2.template.ThreeDLineDeep" , ChartTypeParameter(4,false,true,GlobalStackMode_STACK_Z,false,true) )
677 : ;
678 0 : return m_aTemplateMap;
679 : }
680 0 : void LineChartDialogController::fillSubTypeList( ValueSet& rSubTypeList, const ChartTypeParameter& rParameter )
681 : {
682 0 : rSubTypeList.Clear();
683 :
684 0 : switch( rParameter.eCurveStyle )
685 : {
686 : case CurveStyle_CUBIC_SPLINES:
687 : case CurveStyle_B_SPLINES:
688 0 : if( GlobalStackMode_NONE == rParameter.eStackMode || GlobalStackMode_STACK_Z == rParameter.eStackMode )
689 : {
690 0 : rSubTypeList.InsertItem(1, Image(Bitmap(SchResId(BMP_POINTS_XCATEGORY))));
691 0 : rSubTypeList.InsertItem(2, Image(Bitmap(SchResId(BMP_LINE_P_XCATEGORY_SMOOTH))));
692 0 : rSubTypeList.InsertItem(3, Image(Bitmap(SchResId(BMP_LINE_O_XCATEGORY_SMOOTH))));
693 0 : rSubTypeList.InsertItem(4, Image(Bitmap(SchResId(BMP_LINE3D_XCATEGORY_SMOOTH))));
694 : }
695 : else
696 : {
697 0 : rSubTypeList.InsertItem(1, Image(Bitmap(SchResId(BMP_POINTS_STACKED))));
698 0 : rSubTypeList.InsertItem(2, Image(Bitmap(SchResId(BMP_LINE_P_STACKED_SMOOTH))));
699 0 : rSubTypeList.InsertItem(3, Image(Bitmap(SchResId(BMP_LINE_O_STACKED_SMOOTH))));
700 0 : rSubTypeList.InsertItem(4, Image(Bitmap(SchResId(BMP_LINE3D_STACKED_SMOOTH))));
701 : }
702 0 : break;
703 : case CurveStyle_STEP_START:
704 : case CurveStyle_STEP_END:
705 : case CurveStyle_STEP_CENTER_X:
706 : case CurveStyle_STEP_CENTER_Y:
707 0 : if( GlobalStackMode_NONE == rParameter.eStackMode || GlobalStackMode_STACK_Z == rParameter.eStackMode )
708 : {
709 0 : rSubTypeList.InsertItem(1, Image(Bitmap(SchResId(BMP_POINTS_XCATEGORY))));
710 0 : rSubTypeList.InsertItem(2, Image(Bitmap(SchResId(BMP_LINE_P_XCATEGORY_STEPPED))));
711 0 : rSubTypeList.InsertItem(3, Image(Bitmap(SchResId(BMP_LINE_O_XCATEGORY_STEPPED))));
712 0 : rSubTypeList.InsertItem(4, Image(Bitmap(SchResId(BMP_LINE3D_XCATEGORY_STEPPED))));
713 : }
714 : else
715 : {
716 0 : rSubTypeList.InsertItem(1, Image(Bitmap(SchResId(BMP_POINTS_STACKED))));
717 0 : rSubTypeList.InsertItem(2, Image(Bitmap(SchResId(BMP_LINE_P_STACKED_STEPPED))));
718 0 : rSubTypeList.InsertItem(3, Image(Bitmap(SchResId(BMP_LINE_O_STACKED_STEPPED))));
719 0 : rSubTypeList.InsertItem(4, Image(Bitmap(SchResId(BMP_LINE3D_STACKED_STEPPED))));
720 : }
721 0 : break;
722 : default: // includes CurveStyle_LINES
723 : //direct lines
724 0 : if( GlobalStackMode_NONE == rParameter.eStackMode || GlobalStackMode_STACK_Z == rParameter.eStackMode )
725 : {
726 0 : rSubTypeList.InsertItem(1, Image(Bitmap(SchResId(BMP_POINTS_XCATEGORY))));
727 0 : rSubTypeList.InsertItem(2, Image(Bitmap(SchResId(BMP_LINE_P_XCATEGORY))));
728 0 : rSubTypeList.InsertItem(3, Image(Bitmap(SchResId(BMP_LINE_O_XCATEGORY))));
729 0 : rSubTypeList.InsertItem(4, Image(Bitmap(SchResId(BMP_LINE3D_XCATEGORY))));
730 : }
731 : else
732 : {
733 0 : rSubTypeList.InsertItem(1, Image(Bitmap(SchResId(BMP_POINTS_STACKED))));
734 0 : rSubTypeList.InsertItem(2, Image(Bitmap(SchResId(BMP_LINE_P_STACKED))));
735 0 : rSubTypeList.InsertItem(3, Image(Bitmap(SchResId(BMP_LINE_O_STACKED))));
736 0 : rSubTypeList.InsertItem(4, Image(Bitmap(SchResId(BMP_LINE3D_STACKED))));
737 : }
738 : }
739 :
740 0 : rSubTypeList.SetItemText( 1, SCH_RESSTR( STR_POINTS_ONLY ) );
741 0 : rSubTypeList.SetItemText( 2, SCH_RESSTR( STR_POINTS_AND_LINES ) );
742 0 : rSubTypeList.SetItemText( 3, SCH_RESSTR( STR_LINES_ONLY ) );
743 0 : rSubTypeList.SetItemText( 4, SCH_RESSTR( STR_LINES_3D ) );
744 0 : }
745 0 : bool LineChartDialogController::shouldShow_StackingControl() const
746 : {
747 0 : return true;
748 : }
749 0 : bool LineChartDialogController::shouldShow_DeepStackingControl() const
750 : {
751 0 : return false;
752 : }
753 0 : bool LineChartDialogController::shouldShow_SplineControl() const
754 : {
755 0 : return true;
756 : }
757 0 : void LineChartDialogController::adjustParameterToSubType( ChartTypeParameter& rParameter )
758 : {
759 0 : rParameter.b3DLook = false;
760 :
761 0 : switch( rParameter.nSubTypeIndex )
762 : {
763 : case 2:
764 0 : rParameter.bSymbols = true;
765 0 : rParameter.bLines = true;
766 0 : break;
767 : case 3:
768 0 : rParameter.bSymbols = false;
769 0 : rParameter.bLines = true;
770 0 : break;
771 : case 4:
772 0 : rParameter.bSymbols = false;
773 0 : rParameter.bLines = true;
774 0 : rParameter.b3DLook = true;
775 0 : if( rParameter.eStackMode == GlobalStackMode_NONE )
776 0 : rParameter.eStackMode = GlobalStackMode_STACK_Z;
777 0 : break;
778 : default:
779 0 : rParameter.bSymbols = true;
780 0 : rParameter.bLines = false;
781 0 : break;
782 : }
783 :
784 0 : if(!rParameter.b3DLook && rParameter.eStackMode == GlobalStackMode_STACK_Z )
785 0 : rParameter.eStackMode = GlobalStackMode_NONE;
786 0 : }
787 0 : void LineChartDialogController::adjustParameterToMainType( ChartTypeParameter& rParameter )
788 : {
789 0 : if( rParameter.b3DLook && rParameter.eStackMode == GlobalStackMode_NONE )
790 0 : rParameter.eStackMode = GlobalStackMode_STACK_Z;
791 :
792 0 : ChartTypeDialogController::adjustParameterToMainType( rParameter );
793 0 : }
794 0 : XYChartDialogController::XYChartDialogController()
795 : {
796 0 : bSupportsXAxisWithValues = true;
797 0 : }
798 0 : XYChartDialogController::~XYChartDialogController()
799 : {
800 0 : }
801 0 : OUString XYChartDialogController::getName()
802 : {
803 0 : return SCH_RESSTR( STR_TYPE_XY );
804 : }
805 0 : Image XYChartDialogController::getImage()
806 : {
807 0 : return Image( SchResId( IMG_TYPE_XY ));
808 : }
809 0 : const tTemplateServiceChartTypeParameterMap& XYChartDialogController::getTemplateMap() const
810 : {
811 : static tTemplateServiceChartTypeParameterMap m_aTemplateMap =
812 : tTemplateServiceChartTypeParameterMap
813 : ( "com.sun.star.chart2.template.ScatterSymbol" , ChartTypeParameter(1,true,false,GlobalStackMode_NONE,true,false) )
814 0 : ( "com.sun.star.chart2.template.ScatterLineSymbol" , ChartTypeParameter(2,true,false,GlobalStackMode_NONE,true,true) )
815 0 : ( "com.sun.star.chart2.template.ScatterLine" , ChartTypeParameter(3,true,false,GlobalStackMode_NONE,false,true) )
816 0 : ( "com.sun.star.chart2.template.ThreeDScatter" , ChartTypeParameter(4,true,true,GlobalStackMode_NONE,false,true) )
817 : ;
818 0 : return m_aTemplateMap;
819 : }
820 0 : void XYChartDialogController::fillSubTypeList( ValueSet& rSubTypeList, const ChartTypeParameter& rParameter )
821 : {
822 0 : rSubTypeList.Clear();
823 :
824 0 : switch (rParameter.eCurveStyle)
825 : {
826 : case CurveStyle_CUBIC_SPLINES:
827 : case CurveStyle_B_SPLINES:
828 : {
829 0 : rSubTypeList.InsertItem(1, Image(Bitmap(SchResId(BMP_POINTS_XVALUES))));
830 0 : rSubTypeList.InsertItem(2, Image(Bitmap(SchResId(BMP_LINE_P_XVALUES_SMOOTH))));
831 0 : rSubTypeList.InsertItem(3, Image(Bitmap(SchResId(BMP_LINE_O_XVALUES_SMOOTH))));
832 0 : rSubTypeList.InsertItem(4, Image(Bitmap(SchResId(BMP_LINE3D_XVALUES_SMOOTH))));
833 0 : break;
834 : }
835 : case CurveStyle_STEP_START:
836 : case CurveStyle_STEP_END:
837 : case CurveStyle_STEP_CENTER_X:
838 : case CurveStyle_STEP_CENTER_Y:
839 : {
840 0 : rSubTypeList.InsertItem(1, Image(Bitmap(SchResId(BMP_POINTS_XVALUES))));
841 0 : rSubTypeList.InsertItem(2, Image(Bitmap(SchResId(BMP_LINE_P_XVALUES_STEPPED))));
842 0 : rSubTypeList.InsertItem(3, Image(Bitmap(SchResId(BMP_LINE_O_XVALUES_STEPPED))));
843 0 : rSubTypeList.InsertItem(4, Image(Bitmap(SchResId(BMP_LINE3D_XVALUES_STEPPED))));
844 0 : break;
845 : }
846 : default: // includes CurveStyle_LINES
847 0 : rSubTypeList.InsertItem(1, Image(Bitmap(SchResId(BMP_POINTS_XVALUES))));
848 0 : rSubTypeList.InsertItem(2, Image(Bitmap(SchResId(BMP_LINE_P_XVALUES))));
849 0 : rSubTypeList.InsertItem(3, Image(Bitmap(SchResId(BMP_LINE_O_XVALUES))));
850 0 : rSubTypeList.InsertItem(4, Image(Bitmap(SchResId(BMP_LINE3D_XVALUES))));
851 : }
852 :
853 0 : rSubTypeList.SetItemText( 1, SCH_RESSTR( STR_POINTS_ONLY ) );
854 0 : rSubTypeList.SetItemText( 2, SCH_RESSTR( STR_POINTS_AND_LINES ) );
855 0 : rSubTypeList.SetItemText( 3, SCH_RESSTR( STR_LINES_ONLY ) );
856 0 : rSubTypeList.SetItemText( 4, SCH_RESSTR( STR_LINES_3D ) );
857 0 : }
858 0 : bool XYChartDialogController::shouldShow_SplineControl() const
859 : {
860 0 : return true;
861 : }
862 0 : bool XYChartDialogController::shouldShow_SortByXValuesResourceGroup() const
863 : {
864 0 : return true;
865 : }
866 0 : void XYChartDialogController::adjustParameterToSubType( ChartTypeParameter& rParameter )
867 : {
868 0 : rParameter.eStackMode=GlobalStackMode_NONE;
869 0 : rParameter.b3DLook = false;
870 0 : rParameter.bXAxisWithValues = true;
871 :
872 0 : switch( rParameter.nSubTypeIndex )
873 : {
874 : case 2:
875 0 : rParameter.bSymbols = true;
876 0 : rParameter.bLines = true;
877 0 : break;
878 : case 3:
879 0 : rParameter.bSymbols = false;
880 0 : rParameter.bLines = true;
881 0 : break;
882 : case 4:
883 0 : rParameter.bSymbols = false;
884 0 : rParameter.bLines = true;
885 0 : rParameter.b3DLook = true;
886 0 : rParameter.eStackMode=GlobalStackMode_STACK_Z;
887 0 : break;
888 : default:
889 0 : rParameter.bSymbols = true;
890 0 : rParameter.bLines = false;
891 0 : break;
892 : }
893 0 : }
894 0 : AreaChartDialogController::AreaChartDialogController()
895 : {
896 0 : }
897 0 : AreaChartDialogController::~AreaChartDialogController()
898 : {
899 0 : }
900 0 : OUString AreaChartDialogController::getName()
901 : {
902 0 : return SCH_RESSTR(STR_TYPE_AREA);
903 : }
904 0 : Image AreaChartDialogController::getImage()
905 : {
906 0 : return Image( SchResId( IMG_TYPE_AREA ));
907 : }
908 0 : bool AreaChartDialogController::shouldShow_3DLookControl() const
909 : {
910 0 : return true;
911 : }
912 0 : const tTemplateServiceChartTypeParameterMap& AreaChartDialogController::getTemplateMap() const
913 : {
914 : static tTemplateServiceChartTypeParameterMap m_aTemplateMap =
915 : tTemplateServiceChartTypeParameterMap
916 : ( "com.sun.star.chart2.template.Area" , ChartTypeParameter(1,false,false,GlobalStackMode_NONE) )
917 0 : ( "com.sun.star.chart2.template.ThreeDArea" , ChartTypeParameter(1,false,true,GlobalStackMode_STACK_Z) )
918 0 : ( "com.sun.star.chart2.template.StackedArea" , ChartTypeParameter(2,false,false,GlobalStackMode_STACK_Y) )
919 0 : ( "com.sun.star.chart2.template.StackedThreeDArea" , ChartTypeParameter(2,false,true,GlobalStackMode_STACK_Y) )
920 0 : ( "com.sun.star.chart2.template.PercentStackedArea" , ChartTypeParameter(3,false,false,GlobalStackMode_STACK_Y_PERCENT) )
921 0 : ( "com.sun.star.chart2.template.PercentStackedThreeDArea" , ChartTypeParameter(3,false,true,GlobalStackMode_STACK_Y_PERCENT) )
922 : ;
923 0 : return m_aTemplateMap;
924 : }
925 0 : void AreaChartDialogController::fillSubTypeList( ValueSet& rSubTypeList, const ChartTypeParameter& rParameter )
926 : {
927 0 : rSubTypeList.Clear();
928 :
929 0 : if( rParameter.b3DLook )
930 : {
931 0 : rSubTypeList.InsertItem(1, Image(Bitmap(SchResId(BMP_AREAS_3D))));
932 0 : rSubTypeList.InsertItem(2, Image(Bitmap(SchResId(BMP_AREAS_3D_1))));
933 0 : rSubTypeList.InsertItem(3, Image(Bitmap(SchResId(BMP_AREAS_3D_2))));
934 : }
935 : else
936 : {
937 0 : rSubTypeList.InsertItem(1, Image(Bitmap(SchResId(BMP_AREAS_2D_1))));
938 0 : rSubTypeList.InsertItem(2, Image(Bitmap(SchResId(BMP_AREAS_2D))));
939 0 : rSubTypeList.InsertItem(3, Image(Bitmap(SchResId(BMP_AREAS_2D_3))));
940 : }
941 :
942 0 : rSubTypeList.SetItemText( 1, SCH_RESSTR( rParameter.b3DLook ? STR_DEEP : STR_NORMAL ) );
943 0 : rSubTypeList.SetItemText( 2, SCH_RESSTR( STR_STACKED ) );
944 0 : rSubTypeList.SetItemText( 3, SCH_RESSTR( STR_PERCENT ) );
945 0 : }
946 0 : void AreaChartDialogController::adjustParameterToSubType( ChartTypeParameter& rParameter )
947 : {
948 0 : rParameter.eCurveStyle = CurveStyle_LINES;
949 :
950 0 : if( rParameter.nSubTypeIndex>3 )
951 0 : rParameter.nSubTypeIndex = 1;
952 0 : switch( rParameter.nSubTypeIndex )
953 : {
954 : case 2:
955 0 : rParameter.eStackMode=GlobalStackMode_STACK_Y;
956 0 : break;
957 : case 3:
958 0 : rParameter.eStackMode=GlobalStackMode_STACK_Y_PERCENT;
959 0 : break;
960 : default:
961 0 : if( rParameter.b3DLook )
962 0 : rParameter.eStackMode=GlobalStackMode_STACK_Z;
963 : else
964 0 : rParameter.eStackMode=GlobalStackMode_NONE;
965 0 : break;
966 : }
967 0 : }
968 0 : void AreaChartDialogController::adjustParameterToMainType( ChartTypeParameter& rParameter )
969 : {
970 0 : if( rParameter.b3DLook && rParameter.eStackMode == GlobalStackMode_NONE )
971 0 : rParameter.eStackMode = GlobalStackMode_STACK_Z;
972 :
973 0 : ChartTypeDialogController::adjustParameterToMainType( rParameter );
974 0 : }
975 0 : NetChartDialogController::NetChartDialogController()
976 : {
977 0 : bSupports3D = false;
978 0 : }
979 0 : NetChartDialogController::~NetChartDialogController()
980 : {
981 0 : }
982 0 : OUString NetChartDialogController::getName()
983 : {
984 0 : return SCH_RESSTR(STR_TYPE_NET);
985 : }
986 0 : Image NetChartDialogController::getImage()
987 : {
988 0 : return Image( SchResId( IMG_TYPE_NET ));
989 : }
990 0 : bool NetChartDialogController::shouldShow_StackingControl() const
991 : {
992 0 : return true;
993 : }
994 0 : const tTemplateServiceChartTypeParameterMap& NetChartDialogController::getTemplateMap() const
995 : {
996 : static tTemplateServiceChartTypeParameterMap m_aTemplateMap =
997 : tTemplateServiceChartTypeParameterMap
998 : //@todo need templates with symbols only
999 : ( "com.sun.star.chart2.template.NetSymbol" , ChartTypeParameter(1,false,false,GlobalStackMode_NONE,true,false) )
1000 0 : ( "com.sun.star.chart2.template.StackedNetSymbol" , ChartTypeParameter(1,false,false,GlobalStackMode_STACK_Y,true,false) )
1001 0 : ( "com.sun.star.chart2.template.PercentStackedNetSymbol" ,ChartTypeParameter(1,false,false,GlobalStackMode_STACK_Y_PERCENT,true,false) )
1002 :
1003 0 : ( "com.sun.star.chart2.template.Net" , ChartTypeParameter(2,false,false,GlobalStackMode_NONE,true,true) )
1004 0 : ( "com.sun.star.chart2.template.StackedNet" , ChartTypeParameter(2,false,false,GlobalStackMode_STACK_Y,true,true) )
1005 0 : ( "com.sun.star.chart2.template.PercentStackedNet" , ChartTypeParameter(2,false,false,GlobalStackMode_STACK_Y_PERCENT,true,true) )
1006 :
1007 0 : ( "com.sun.star.chart2.template.NetLine" , ChartTypeParameter(3,false,false,GlobalStackMode_NONE,false,true) )
1008 0 : ( "com.sun.star.chart2.template.StackedNetLine" , ChartTypeParameter(3,false,false,GlobalStackMode_STACK_Y,false,true) )
1009 0 : ( "com.sun.star.chart2.template.PercentStackedNetLine" , ChartTypeParameter(3,false,false,GlobalStackMode_STACK_Y_PERCENT,false,true) )
1010 :
1011 0 : ( "com.sun.star.chart2.template.FilledNet" , ChartTypeParameter(4,false,false,GlobalStackMode_NONE,false,false) )
1012 0 : ( "com.sun.star.chart2.template.StackedFilledNet" , ChartTypeParameter(4,false,false,GlobalStackMode_STACK_Y,false,false) )
1013 0 : ( "com.sun.star.chart2.template.PercentStackedFilledNet" ,ChartTypeParameter(4,false,false,GlobalStackMode_STACK_Y_PERCENT,false,false) )
1014 : ;
1015 0 : return m_aTemplateMap;
1016 : }
1017 0 : void NetChartDialogController::fillSubTypeList( ValueSet& rSubTypeList, const ChartTypeParameter& rParameter )
1018 : {
1019 0 : rSubTypeList.Clear();
1020 :
1021 0 : if( GlobalStackMode_NONE == rParameter.eStackMode )
1022 : {
1023 0 : rSubTypeList.InsertItem(1, Image(Bitmap(SchResId(BMP_NET_SYMB))));
1024 0 : rSubTypeList.InsertItem(2, Image(Bitmap(SchResId(BMP_NET_LINESYMB))));
1025 0 : rSubTypeList.InsertItem(3, Image(Bitmap(SchResId(BMP_NET))));
1026 0 : rSubTypeList.InsertItem(4, Image(Bitmap(SchResId(BMP_NET_FILL))));
1027 : }
1028 : else
1029 : {
1030 0 : rSubTypeList.InsertItem(1, Image(Bitmap(SchResId(BMP_NET_SYMB_STACK))));
1031 0 : rSubTypeList.InsertItem(2, Image(Bitmap(SchResId(BMP_NET_LINESYMB_STACK))));
1032 0 : rSubTypeList.InsertItem(3, Image(Bitmap(SchResId(BMP_NET_STACK))));
1033 0 : rSubTypeList.InsertItem(4, Image(Bitmap(SchResId(BMP_NET_FILL_STACK))));
1034 : }
1035 :
1036 0 : rSubTypeList.SetItemText( 1, SCH_RESSTR( STR_POINTS_ONLY ) );
1037 0 : rSubTypeList.SetItemText( 2, SCH_RESSTR( STR_POINTS_AND_LINES ) );
1038 0 : rSubTypeList.SetItemText( 3, SCH_RESSTR( STR_LINES_ONLY ) );
1039 0 : rSubTypeList.SetItemText( 4, SCH_RESSTR( STR_FILLED ) );
1040 0 : }
1041 0 : void NetChartDialogController::adjustParameterToSubType( ChartTypeParameter& rParameter )
1042 : {
1043 0 : rParameter.b3DLook = false;
1044 0 : if(rParameter.eStackMode==GlobalStackMode_STACK_Z)
1045 0 : rParameter.eStackMode = GlobalStackMode_NONE;
1046 :
1047 0 : switch( rParameter.nSubTypeIndex )
1048 : {
1049 : case 2:
1050 0 : rParameter.bSymbols = true;
1051 0 : rParameter.bLines = true;
1052 0 : break;
1053 : case 3:
1054 0 : rParameter.bSymbols = false;
1055 0 : rParameter.bLines = true;
1056 0 : break;
1057 : case 4:
1058 0 : rParameter.bSymbols = false;
1059 0 : rParameter.bLines = false;
1060 0 : break;
1061 : default:
1062 0 : rParameter.bSymbols = true;
1063 0 : rParameter.bLines = false;
1064 0 : break;
1065 : }
1066 0 : }
1067 0 : StockChartDialogController::StockChartDialogController()
1068 : {
1069 0 : bSupports3D = false;
1070 0 : }
1071 :
1072 0 : StockChartDialogController::~StockChartDialogController()
1073 : {
1074 0 : }
1075 :
1076 0 : OUString StockChartDialogController::getName()
1077 : {
1078 0 : return SCH_RESSTR(STR_TYPE_STOCK);
1079 : }
1080 0 : Image StockChartDialogController::getImage()
1081 : {
1082 0 : return Image( SchResId( IMG_TYPE_STOCK ));
1083 : }
1084 :
1085 0 : const tTemplateServiceChartTypeParameterMap& StockChartDialogController::getTemplateMap() const
1086 : {
1087 : static tTemplateServiceChartTypeParameterMap m_aTemplateMap =
1088 : tTemplateServiceChartTypeParameterMap
1089 : ( "com.sun.star.chart2.template.StockLowHighClose" , ChartTypeParameter(1) )
1090 0 : ( "com.sun.star.chart2.template.StockOpenLowHighClose" , ChartTypeParameter(2) )
1091 0 : ( "com.sun.star.chart2.template.StockVolumeLowHighClose" , ChartTypeParameter(3) )
1092 0 : ( "com.sun.star.chart2.template.StockVolumeOpenLowHighClose" ,ChartTypeParameter(4) )
1093 : ;
1094 0 : return m_aTemplateMap;
1095 : }
1096 :
1097 0 : void StockChartDialogController::fillSubTypeList( ValueSet& rSubTypeList, const ChartTypeParameter& /*rParameter*/ )
1098 : {
1099 0 : rSubTypeList.Clear();
1100 0 : rSubTypeList.InsertItem(1, Image(Bitmap(SchResId(BMP_STOCK_1))));
1101 0 : rSubTypeList.InsertItem(2, Image(Bitmap(SchResId(BMP_STOCK_2))));
1102 0 : rSubTypeList.InsertItem(3, Image(Bitmap(SchResId(BMP_STOCK_3))));
1103 0 : rSubTypeList.InsertItem(4, Image(Bitmap(SchResId(BMP_STOCK_4))));
1104 :
1105 0 : rSubTypeList.SetItemText( 1, SCH_RESSTR(STR_STOCK_1) );
1106 0 : rSubTypeList.SetItemText( 2, SCH_RESSTR(STR_STOCK_2) );
1107 0 : rSubTypeList.SetItemText( 3, SCH_RESSTR(STR_STOCK_3) );
1108 0 : rSubTypeList.SetItemText( 4, SCH_RESSTR(STR_STOCK_4) );
1109 0 : }
1110 :
1111 0 : void StockChartDialogController::adjustParameterToSubType( ChartTypeParameter& rParameter )
1112 : {
1113 0 : rParameter.b3DLook = false;
1114 0 : rParameter.eStackMode = GlobalStackMode_NONE;
1115 0 : }
1116 :
1117 0 : CombiColumnLineChartDialogController::CombiColumnLineChartDialogController()
1118 : : m_pFT_NumberOfLines(0)
1119 0 : , m_pMF_NumberOfLines(0)
1120 : {
1121 0 : bSupports3D = false;
1122 0 : }
1123 :
1124 0 : OUString CombiColumnLineChartDialogController::getName()
1125 : {
1126 0 : return SCH_RESSTR(STR_TYPE_COMBI_COLUMN_LINE);
1127 : }
1128 :
1129 0 : Image CombiColumnLineChartDialogController::getImage( )
1130 : {
1131 0 : return Image( SchResId( IMG_TYPE_COLUMN_LINE ) );
1132 : }
1133 :
1134 0 : const tTemplateServiceChartTypeParameterMap& CombiColumnLineChartDialogController::getTemplateMap() const
1135 : {
1136 : static tTemplateServiceChartTypeParameterMap m_aTemplateMap =
1137 : tTemplateServiceChartTypeParameterMap
1138 : ( "com.sun.star.chart2.template.ColumnWithLine" , ChartTypeParameter(1) )
1139 0 : ( "com.sun.star.chart2.template.StackedColumnWithLine" , ChartTypeParameter(2,false,false,GlobalStackMode_STACK_Y) )
1140 : ;
1141 0 : return m_aTemplateMap;
1142 : }
1143 :
1144 0 : void CombiColumnLineChartDialogController::fillSubTypeList( ValueSet& rSubTypeList, const ChartTypeParameter& /*rParameter*/ )
1145 : {
1146 0 : rSubTypeList.Clear();
1147 0 : rSubTypeList.InsertItem(1, Image(Bitmap(SchResId(BMP_COLUMN_LINE))));
1148 0 : rSubTypeList.InsertItem(2, Image(Bitmap(SchResId(BMP_COLUMN_LINE_STACKED))));
1149 :
1150 0 : rSubTypeList.SetItemText(1, SCH_RESSTR(STR_LINE_COLUMN));
1151 0 : rSubTypeList.SetItemText(2, SCH_RESSTR(STR_LINE_STACKEDCOLUMN));
1152 0 : }
1153 :
1154 0 : void CombiColumnLineChartDialogController::showExtraControls( VclBuilderContainer* pParent )
1155 : {
1156 0 : if (!m_pFT_NumberOfLines)
1157 : {
1158 0 : pParent->get(m_pFT_NumberOfLines, "nolinesft");
1159 : }
1160 0 : if (!m_pMF_NumberOfLines)
1161 : {
1162 0 : pParent->get(m_pMF_NumberOfLines, "nolines");
1163 :
1164 0 : m_pMF_NumberOfLines->SetSpinSize(1);
1165 0 : m_pMF_NumberOfLines->SetFirst( 1 );
1166 0 : m_pMF_NumberOfLines->SetLast( 100 );
1167 0 : m_pMF_NumberOfLines->SetMin( 1 );
1168 0 : m_pMF_NumberOfLines->SetMax( 100 );
1169 :
1170 0 : m_pMF_NumberOfLines->SetModifyHdl( LINK( this, CombiColumnLineChartDialogController, ChangeLineCountHdl ) );
1171 : }
1172 :
1173 0 : m_pFT_NumberOfLines->Show();
1174 0 : m_pMF_NumberOfLines->Show();
1175 0 : }
1176 :
1177 0 : void CombiColumnLineChartDialogController::hideExtraControls() const
1178 : {
1179 0 : if(m_pFT_NumberOfLines)
1180 0 : m_pFT_NumberOfLines->Hide();
1181 0 : if(m_pMF_NumberOfLines)
1182 0 : m_pMF_NumberOfLines->Hide();
1183 0 : }
1184 :
1185 0 : void CombiColumnLineChartDialogController::fillExtraControls( const ChartTypeParameter& /*rParameter*/
1186 : , const uno::Reference< XChartDocument >& xChartModel
1187 : , const uno::Reference< beans::XPropertySet >& xTemplateProps ) const
1188 : {
1189 0 : if(!m_pMF_NumberOfLines)
1190 0 : return;
1191 :
1192 0 : uno::Reference< frame::XModel > xModel( xChartModel, uno::UNO_QUERY );
1193 :
1194 0 : uno::Reference< XDiagram > xDiagram = ChartModelHelper::findDiagram( xModel );
1195 0 : if(!xDiagram.is())
1196 0 : return;
1197 :
1198 0 : sal_Int32 nNumLines = 0;
1199 :
1200 0 : if(xTemplateProps.is())
1201 : {
1202 : try
1203 : {
1204 0 : xTemplateProps->getPropertyValue( "NumberOfLines" ) >>= nNumLines;
1205 : }
1206 0 : catch( const uno::Exception & ex )
1207 : {
1208 : ASSERT_EXCEPTION( ex );
1209 : }
1210 : }
1211 0 : if( nNumLines < 0 )
1212 0 : nNumLines = 0;
1213 0 : m_pMF_NumberOfLines->SetValue( nNumLines );
1214 :
1215 0 : sal_Int32 nMaxLines = ChartModelHelper::getDataSeries( xModel ).size() - 1;
1216 0 : if( nMaxLines < 0 )
1217 0 : nMaxLines = 0;
1218 0 : m_pMF_NumberOfLines->SetLast( nMaxLines );
1219 0 : m_pMF_NumberOfLines->SetMax( nMaxLines );
1220 : }
1221 0 : void CombiColumnLineChartDialogController::setTemplateProperties( const uno::Reference< beans::XPropertySet >& xTemplateProps ) const throw (uno::RuntimeException)
1222 : {
1223 0 : if( xTemplateProps.is() )
1224 : {
1225 0 : sal_Int32 nNumLines = static_cast< sal_Int32 >( m_pMF_NumberOfLines->GetValue());
1226 0 : xTemplateProps->setPropertyValue( "NumberOfLines" , uno::makeAny(nNumLines) );
1227 : }
1228 0 : }
1229 :
1230 0 : IMPL_LINK_NOARG(CombiColumnLineChartDialogController, ChangeLineCountHdl)
1231 : {
1232 0 : if( m_pChangeListener )
1233 0 : m_pChangeListener->stateChanged(this);
1234 0 : return 0;
1235 : }
1236 0 : void CombiColumnLineChartDialogController::adjustParameterToSubType( ChartTypeParameter& rParameter )
1237 : {
1238 0 : rParameter.b3DLook = false;
1239 0 : if(rParameter.eStackMode==GlobalStackMode_STACK_Z)
1240 0 : rParameter.eStackMode = GlobalStackMode_NONE;
1241 :
1242 0 : switch( rParameter.nSubTypeIndex )
1243 : {
1244 : case 2:
1245 0 : rParameter.eStackMode=GlobalStackMode_STACK_Y;
1246 0 : break;
1247 : default:
1248 0 : rParameter.eStackMode=GlobalStackMode_NONE;
1249 0 : break;
1250 : }
1251 0 : }
1252 0 : BubbleChartDialogController::BubbleChartDialogController()
1253 : {
1254 0 : }
1255 0 : BubbleChartDialogController::~BubbleChartDialogController()
1256 : {
1257 0 : }
1258 0 : OUString BubbleChartDialogController::getName()
1259 : {
1260 0 : return SCH_RESSTR(STR_TYPE_BUBBLE);
1261 : }
1262 0 : Image BubbleChartDialogController::getImage()
1263 : {
1264 0 : return Image( SchResId( IMG_TYPE_BUBBLE ));
1265 : }
1266 0 : const tTemplateServiceChartTypeParameterMap& BubbleChartDialogController::getTemplateMap() const
1267 : {
1268 : static tTemplateServiceChartTypeParameterMap m_aTemplateMap =
1269 : tTemplateServiceChartTypeParameterMap
1270 0 : ( "com.sun.star.chart2.template.Bubble" , ChartTypeParameter(1,true) ) ;
1271 0 : return m_aTemplateMap;
1272 : }
1273 0 : void BubbleChartDialogController::fillSubTypeList( ValueSet& rSubTypeList, const ChartTypeParameter& /*rParameter*/ )
1274 : {
1275 0 : rSubTypeList.Clear();
1276 0 : rSubTypeList.InsertItem(1, Image(Bitmap(SchResId(BMP_BUBBLE_1))));
1277 :
1278 0 : rSubTypeList.SetItemText( 1, SCH_RESSTR(STR_BUBBLE_1) );
1279 0 : }
1280 0 : void BubbleChartDialogController::adjustParameterToSubType( ChartTypeParameter& rParameter )
1281 : {
1282 0 : rParameter.b3DLook = false;
1283 0 : rParameter.eStackMode = GlobalStackMode_NONE;
1284 0 : }
1285 57 : } //namespace chart
1286 :
1287 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|