xref: /trunk/main/sc/source/ui/vba/vbaaxis.cxx (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 
28 #include "vbaaxis.hxx"
29 #include <ooo/vba/excel/XlAxisCrosses.hpp>
30 #include <ooo/vba/excel/XlAxisType.hpp>
31 #include <ooo/vba/excel/XlScaleType.hpp>
32 #include "vbaaxistitle.hxx"
33 #include "vbachart.hxx"
34 using namespace ::com::sun::star;
35 using namespace ::ooo::vba;
36 using namespace ::ooo::vba::excel::XlAxisCrosses;
37 using namespace ::ooo::vba::excel::XlAxisType;
38 using namespace ::ooo::vba::excel::XlScaleType;
39 
40 const rtl::OUString ORIGIN( RTL_CONSTASCII_USTRINGPARAM("Origin") );
41 const rtl::OUString AUTOORIGIN( RTL_CONSTASCII_USTRINGPARAM("AutoOrigin") );
42 const rtl::OUString VBA_MIN( RTL_CONSTASCII_USTRINGPARAM("Max") );
43 const rtl::OUString VBA_MAX( RTL_CONSTASCII_USTRINGPARAM("Min") );
44 ScVbaChart*
45 ScVbaAxis::getChartPtr() throw( uno::RuntimeException )
46 {
47     ScVbaChart* pChart = static_cast< ScVbaChart* >( moChartParent.get() );
48     if ( !pChart )
49         throw uno::RuntimeException( rtl::OUString::createFromAscii("Can't access parent chart impl"), uno::Reference< uno::XInterface >() );
50     return pChart;
51 }
52 
53 sal_Bool
54 ScVbaAxis::isValueAxis() throw( script::BasicErrorException )
55 {
56     if ( getType() == xlCategory )
57     {
58         DebugHelper::exception(SbERR_METHOD_FAILED, rtl::OUString());
59     }
60     return sal_True;
61 }
62 
63 ScVbaAxis::ScVbaAxis( const uno::Reference< XHelperInterface >& xParent,const uno::Reference< uno::XComponentContext > & xContext, const uno::Reference< beans::XPropertySet >& _xPropertySet, sal_Int32 _nType, sal_Int32 _nGroup  ) : ScVbaAxis_BASE( xParent, xContext ), mxPropertySet( _xPropertySet ), mnType( _nType ), mnGroup( _nGroup ), bCrossesAreCustomized( sal_False )
64 {
65     oShapeHelper.reset( new ShapeHelper( uno::Reference< drawing::XShape >( mxPropertySet, uno::UNO_QUERY ) ) );
66     moChartParent.set( xParent, uno::UNO_QUERY_THROW  );
67     setType(_nType);
68     setCrosses(xlAxisCrossesAutomatic);
69 }
70 
71 void SAL_CALL
72 ScVbaAxis::Delete(  ) throw (script::BasicErrorException, uno::RuntimeException)
73 {
74     uno::Reference< lang::XComponent > xComponent( mxPropertySet, uno::UNO_QUERY_THROW );
75     xComponent->dispose();
76 }
77 
78  uno::Reference< ::ooo::vba::excel::XAxisTitle > SAL_CALL
79 ScVbaAxis::getAxisTitle(  ) throw (script::BasicErrorException, uno::RuntimeException)
80 {
81     uno::Reference< excel::XAxisTitle > xAxisTitle;
82     try
83     {
84         ScVbaChart* pChart = getChartPtr();
85 
86         if (getHasTitle() )
87         {
88             int nType = getType();
89             switch(nType)
90             {
91                 case xlCategory:
92                     xAxisTitle =  new ScVbaAxisTitle(this, mxContext, pChart->xAxisXSupplier->getXAxisTitle());
93                     break;
94                 case xlSeriesAxis:
95                     xAxisTitle = new ScVbaAxisTitle(this, mxContext, pChart->xAxisZSupplier->getZAxisTitle());
96                     break;
97                 default: // xlValue:
98                     xAxisTitle = new ScVbaAxisTitle(this, mxContext, pChart->xAxisYSupplier->getYAxisTitle());
99                     break;
100             }
101         }
102     }
103     catch (uno::Exception& e)
104     {
105         DebugHelper::exception(e);
106     }
107     return xAxisTitle;
108 
109 }
110 
111 void SAL_CALL
112 ScVbaAxis::setDisplayUnit( ::sal_Int32 /*DisplayUnit*/ ) throw (script::BasicErrorException, uno::RuntimeException)
113 {
114     DebugHelper::exception(SbERR_NOT_IMPLEMENTED, rtl::OUString());
115 }
116 
117 ::sal_Int32 SAL_CALL
118 ScVbaAxis::getDisplayUnit(  ) throw (script::BasicErrorException, uno::RuntimeException)
119 {
120     DebugHelper::exception(SbERR_NOT_IMPLEMENTED, rtl::OUString());
121     return -1;
122 }
123 
124 void SAL_CALL
125 ScVbaAxis::setCrosses( ::sal_Int32 _nCrosses ) throw (script::BasicErrorException, uno::RuntimeException)
126 {
127     try
128     {
129         double fNum = 0.0;
130         switch (_nCrosses)
131         {
132             case  xlAxisCrossesAutomatic:       //Microsoft Excel sets the axis crossing point.
133                 mxPropertySet->setPropertyValue(AUTOORIGIN, uno::makeAny( sal_True ) );
134                 bCrossesAreCustomized = sal_False;
135                 return;
136             case xlAxisCrossesMinimum:                     // The axis crosses at the minimum value.
137                 mxPropertySet->getPropertyValue(VBA_MIN) >>= fNum;
138                 setCrossesAt( fNum );
139                 bCrossesAreCustomized = sal_False;
140                 break;
141             case xlAxisCrossesMaximum:                     // The axis crosses at the maximum value.
142                 mxPropertySet->getPropertyValue(VBA_MAX) >>= fNum;
143                 setCrossesAt(fNum);
144                 bCrossesAreCustomized = sal_False;
145                 break;
146             default: //xlAxisCrossesCustom
147                 bCrossesAreCustomized = sal_True;
148                 break;
149         }
150         mxPropertySet->setPropertyValue(AUTOORIGIN, uno::makeAny(sal_False) );
151     }
152     catch (uno::Exception& )
153     {
154         DebugHelper::exception(SbERR_METHOD_FAILED, rtl::OUString());
155     }
156 }
157 ::sal_Int32 SAL_CALL
158 ScVbaAxis::getCrosses(  ) throw (script::BasicErrorException, uno::RuntimeException)
159 {
160     sal_Int32 nCrosses = xlAxisCrossesCustom;
161     try
162     {
163         sal_Bool bisAutoOrigin = sal_False;
164         mxPropertySet->getPropertyValue(AUTOORIGIN) >>= bisAutoOrigin;
165         if (bisAutoOrigin)
166             nCrosses = xlAxisCrossesAutomatic;
167         else
168         {
169             if (bCrossesAreCustomized)
170                 nCrosses = xlAxisCrossesCustom;
171             else
172             {
173                 double forigin = 0.0;
174                 mxPropertySet->getPropertyValue(ORIGIN) >>= forigin;
175 //obsolete      double fmax = AnyConverter.toDouble(mxPropertySet.getPropertyValue("Max"));
176                 double fmin = 0.0;
177                 mxPropertySet->getPropertyValue(VBA_MIN) >>= fmin;
178                 if (forigin == fmin)
179                     nCrosses = xlAxisCrossesMinimum;
180                 else
181                     nCrosses = xlAxisCrossesMaximum;
182             }
183         }
184     }
185     catch (uno::Exception& )
186     {
187         DebugHelper::exception(SbERR_METHOD_FAILED, rtl::OUString() );
188     }
189     return nCrosses;
190 }
191 
192  void SAL_CALL
193 ScVbaAxis::setCrossesAt( double _fCrossesAt ) throw (script::BasicErrorException, uno::RuntimeException)
194 {
195     try
196     {
197 //        if (getCrosses() == xlAxisCrossesCustom){
198         setMaximumScaleIsAuto( sal_False );
199         setMinimumScaleIsAuto( sal_False );
200         mxPropertySet->setPropertyValue(ORIGIN, uno::makeAny(_fCrossesAt));
201 //        }
202     }
203     catch (uno::Exception& e)
204     {
205         DebugHelper::exception(e);
206     }
207 }
208 
209  double SAL_CALL
210 ScVbaAxis::getCrossesAt(  ) throw (script::BasicErrorException, uno::RuntimeException)
211 {
212     double fCrosses = 0.0;
213     try
214     {
215         mxPropertySet->getPropertyValue(ORIGIN) >>= fCrosses;
216     }
217     catch (uno::Exception& )
218     {
219         DebugHelper::exception(SbERR_METHOD_FAILED, rtl::OUString());
220     }
221     return fCrosses;
222 }
223 
224 void SAL_CALL
225 ScVbaAxis::setType( ::sal_Int32 _nType ) throw (script::BasicErrorException, uno::RuntimeException)
226 {
227     mnType = _nType;
228 }
229 
230 ::sal_Int32 SAL_CALL
231 ScVbaAxis::getType(  ) throw (script::BasicErrorException, uno::RuntimeException)
232 {
233     return mnType;
234 }
235 
236 void SAL_CALL
237 ScVbaAxis::setHasTitle( ::sal_Bool _bHasTitle ) throw (script::BasicErrorException, uno::RuntimeException)
238 {
239     try
240     {
241         ScVbaChart* pChart = getChartPtr();
242         sal_Int32 nType = getType();
243         switch(nType)
244         {
245             case xlCategory:
246                 pChart->mxDiagramPropertySet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("HasXAxisTitle")), uno::makeAny(_bHasTitle));
247                 break;
248             case xlSeriesAxis:
249                 pChart->mxDiagramPropertySet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("HasZAxisTitle")), uno::makeAny(_bHasTitle));
250                 break;
251             default: // xlValue:
252                 pChart->mxDiagramPropertySet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("HasYAxisTitle")), uno::makeAny(_bHasTitle));
253         }
254 
255     }
256     catch (uno::Exception& e)
257     {
258         DebugHelper::exception(e);
259     }
260 }
261 
262  ::sal_Bool SAL_CALL
263 ScVbaAxis::getHasTitle(  ) throw (script::BasicErrorException, uno::RuntimeException)
264 {
265     sal_Bool bHasTitle = sal_False;
266     try
267     {
268         ScVbaChart* pChart = getChartPtr();
269         int nType = getType();
270         switch(nType)
271         {
272             case xlCategory:
273                 pChart->mxDiagramPropertySet->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("HasXAxisTitle")) ) >>= bHasTitle;
274                 break;
275             case xlSeriesAxis:
276                 pChart->mxDiagramPropertySet->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("HasZAxisTitle")) ) >>= bHasTitle;
277                 break;
278             default: // xlValue:
279                 pChart->mxDiagramPropertySet->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("HasYAxisTitle")) ) >>= bHasTitle;
280         }
281     }
282     catch (uno::Exception& e)
283     {
284         DebugHelper::exception(e);
285     }
286     return bHasTitle;
287 }
288 
289 void SAL_CALL
290 ScVbaAxis::setMinorUnit( double _fMinorUnit ) throw (script::BasicErrorException, uno::RuntimeException)
291 {
292     try
293     {
294         if (isValueAxis())
295             mxPropertySet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("StepHelp") ), uno::makeAny(_fMinorUnit));
296     }
297     catch (uno::Exception& )
298     {
299         DebugHelper::exception(SbERR_METHOD_FAILED, rtl::OUString());
300     }
301 }
302 
303 double SAL_CALL
304 ScVbaAxis::getMinorUnit(  ) throw (script::BasicErrorException, uno::RuntimeException)
305 {
306     double fMinor = 1.0;
307     try
308     {
309         if (isValueAxis())
310             mxPropertySet->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("StepHelp"))) >>= fMinor;
311     }
312     catch (uno::Exception& )
313     {
314         DebugHelper::exception(SbERR_METHOD_FAILED, rtl::OUString());
315     }
316     return fMinor;
317 }
318 
319 void SAL_CALL
320 ScVbaAxis::setMinorUnitIsAuto( ::sal_Bool _bMinorUnitIsAuto ) throw (script::BasicErrorException, uno::RuntimeException)
321 {
322     try
323     {
324         if (isValueAxis())
325             mxPropertySet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "AutoStepHelp" ) ), uno::makeAny(_bMinorUnitIsAuto));
326     }
327     catch (uno::Exception& )
328     {
329         DebugHelper::exception(SbERR_METHOD_FAILED, rtl::OUString() );
330     }
331 }
332 
333  ::sal_Bool SAL_CALL
334 ScVbaAxis::getMinorUnitIsAuto(  ) throw (script::BasicErrorException, uno::RuntimeException)
335 {
336     sal_Bool bIsAuto = sal_False;
337     try
338     {
339         if (isValueAxis())
340         {
341             mxPropertySet->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "AutoStepHelp")) ) >>= bIsAuto;
342         }
343     }
344     catch (uno::Exception& )
345     {
346         DebugHelper::exception(SbERR_METHOD_FAILED, rtl::OUString());
347     }
348     return bIsAuto;
349 }
350 
351 void SAL_CALL
352 ScVbaAxis::setReversePlotOrder( ::sal_Bool /*ReversePlotOrder*/ ) throw (script::BasicErrorException, uno::RuntimeException)
353 {
354     DebugHelper::exception(SbERR_NOT_IMPLEMENTED, rtl::OUString());
355 }
356 
357 ::sal_Bool SAL_CALL
358 ScVbaAxis::getReversePlotOrder(  ) throw (script::BasicErrorException, uno::RuntimeException)
359 {
360     DebugHelper::exception(SbERR_NOT_IMPLEMENTED, rtl::OUString());
361     return sal_False;
362 }
363 
364 void SAL_CALL
365 ScVbaAxis::setMajorUnit( double _fMajorUnit ) throw (script::BasicErrorException, uno::RuntimeException)
366 {
367     try
368     {
369         if (isValueAxis())
370         {
371             mxPropertySet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("StepMain")), uno::makeAny(_fMajorUnit));
372         }
373     }
374     catch (uno::Exception& )
375     {
376         DebugHelper::exception(SbERR_METHOD_FAILED, rtl::OUString());
377     }
378 }
379 
380 double SAL_CALL
381 ScVbaAxis::getMajorUnit(  ) throw (script::BasicErrorException, uno::RuntimeException)
382 {
383     double fMax = 1.0;
384     try
385     {
386         if (isValueAxis())
387             mxPropertySet->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("StepMain"))) >>= fMax;
388     }
389     catch (uno::Exception& )
390     {
391         DebugHelper::exception(SbERR_METHOD_FAILED, rtl::OUString() );
392     }
393     return fMax;
394 }
395 
396 void SAL_CALL
397 ScVbaAxis::setMajorUnitIsAuto( ::sal_Bool _bMajorUnitIsAuto ) throw (script::BasicErrorException, uno::RuntimeException)
398 {
399     try
400     {
401         if (isValueAxis())
402         {
403             mxPropertySet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "AutoStepMain" ) ), uno::makeAny( _bMajorUnitIsAuto ));
404         }
405     }
406     catch (uno::Exception& )
407     {
408         DebugHelper::exception(SbERR_METHOD_FAILED, rtl::OUString());
409     }
410 }
411 
412 ::sal_Bool SAL_CALL
413 ScVbaAxis::getMajorUnitIsAuto(  ) throw (script::BasicErrorException, uno::RuntimeException)
414 {
415     sal_Bool bIsAuto = sal_False;
416     try
417     {
418         if (isValueAxis())
419         {
420             mxPropertySet->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "AutoStepMain"))) >>= bIsAuto;
421         }
422     }
423     catch (uno::Exception& )
424     {
425         DebugHelper::exception(SbERR_METHOD_FAILED, rtl::OUString());
426     }
427     return bIsAuto;
428 }
429 
430 void SAL_CALL
431 ScVbaAxis::setMaximumScale( double _fMaximumScale ) throw (script::BasicErrorException, uno::RuntimeException)
432 {
433     try
434     {
435         if ( isValueAxis() )
436         {
437             mxPropertySet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Max" ) ), uno::makeAny(_fMaximumScale));
438         }
439     }
440     catch ( uno::Exception& )
441     {
442         DebugHelper::exception(SbERR_METHOD_FAILED, rtl::OUString());
443     }
444 }
445 
446 double SAL_CALL
447 ScVbaAxis::getMaximumScale(  ) throw (script::BasicErrorException, uno::RuntimeException)
448 {
449     double fMax = 1.0;
450     try
451     {
452         if (isValueAxis())
453         {
454             mxPropertySet->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Max" ))) >>= fMax;
455         }
456     }
457     catch (uno::Exception& )
458     {
459         DebugHelper::exception(SbERR_METHOD_FAILED, rtl::OUString());
460     }
461     return fMax;
462 
463 }
464 
465 void SAL_CALL
466 ScVbaAxis::setMaximumScaleIsAuto( ::sal_Bool _bMaximumScaleIsAuto ) throw (script::BasicErrorException, uno::RuntimeException)
467 {
468     try
469     {
470         if ( isValueAxis() )
471             mxPropertySet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "AutoMax" ) ), uno::makeAny( _bMaximumScaleIsAuto ));
472 
473     }
474     catch ( uno::Exception& )
475     {
476         DebugHelper::exception(SbERR_METHOD_FAILED, rtl::OUString());
477     }
478 }
479 
480 
481 ::sal_Bool SAL_CALL
482 ScVbaAxis::getMaximumScaleIsAuto(  ) throw (script::BasicErrorException, uno::RuntimeException)
483 {
484     sal_Bool bIsAuto = sal_False;
485     try
486     {
487         if (isValueAxis())
488             mxPropertySet->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "AutoMax" )) ) >>= bIsAuto;
489     }
490     catch ( uno::Exception& )
491     {
492         DebugHelper::exception( SbERR_METHOD_FAILED, rtl::OUString() );
493     }
494     return bIsAuto;
495 }
496 
497 void SAL_CALL
498 ScVbaAxis::setMinimumScale( double _fMinimumScale ) throw (script::BasicErrorException, uno::RuntimeException)
499 {
500     try
501     {
502         if (isValueAxis())
503             mxPropertySet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Min") ), uno::makeAny( _fMinimumScale )  );
504     }
505     catch ( uno::Exception& )
506     {
507         DebugHelper::exception(SbERR_METHOD_FAILED, rtl::OUString() );
508     }
509 }
510 
511 double SAL_CALL
512 ScVbaAxis::getMinimumScale(  ) throw (script::BasicErrorException, uno::RuntimeException)
513 {
514     double fMin = 0.0;
515     try
516     {
517         if (isValueAxis())
518             mxPropertySet->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Min") )) >>= fMin;
519     }
520     catch (uno::Exception& e)
521     {
522         DebugHelper::exception(e);
523     }
524     return fMin;
525 }
526 
527 void SAL_CALL
528 ScVbaAxis::setMinimumScaleIsAuto( ::sal_Bool _bMinimumScaleIsAuto ) throw (script::BasicErrorException, uno::RuntimeException)
529 {
530     try
531     {
532         if (isValueAxis())
533         {
534             mxPropertySet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("AutoMin") ), uno::makeAny(_bMinimumScaleIsAuto));
535         }
536     }
537     catch (uno::Exception& )
538     {
539         DebugHelper::exception(SbERR_METHOD_FAILED, rtl::OUString());
540     }
541 }
542 
543 ::sal_Bool SAL_CALL
544 ScVbaAxis::getMinimumScaleIsAuto(  ) throw (script::BasicErrorException, uno::RuntimeException)
545 {
546     sal_Bool bIsAuto = sal_False;
547     try
548     {
549         if (isValueAxis())
550         {
551             mxPropertySet->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("AutoMin")) ) >>= bIsAuto;
552         }
553     }
554     catch (uno::Exception& )
555     {
556         DebugHelper::exception(SbERR_METHOD_FAILED, rtl::OUString());
557     }
558     return bIsAuto;
559 }
560 
561 ::sal_Int32 SAL_CALL
562 ScVbaAxis::getAxisGroup(  ) throw (uno::RuntimeException)
563 {
564     return mnGroup;
565 }
566 
567 void SAL_CALL
568 ScVbaAxis::setScaleType( ::sal_Int32 _nScaleType ) throw (script::BasicErrorException, uno::RuntimeException)
569 {
570     try
571     {
572         if (isValueAxis())
573         {
574             switch (_nScaleType)
575             {
576                 case xlScaleLinear:
577                     mxPropertySet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Logarithmic" ) ), uno::makeAny( sal_False ) );
578                     break;
579                 case xlScaleLogarithmic:
580                     mxPropertySet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Logarithmic" ) ), uno::makeAny( sal_True ) );
581                     break;
582                 default:
583                     // According to MS the paramenter is ignored and no Error is thrown
584                     break;
585             }
586         }
587     }
588     catch (uno::Exception& )
589     {
590         DebugHelper::exception(SbERR_METHOD_FAILED, rtl::OUString() );
591     }
592 }
593 
594 ::sal_Int32 SAL_CALL
595 ScVbaAxis::getScaleType(  ) throw (script::BasicErrorException, uno::RuntimeException)
596 {
597     sal_Int32 nScaleType = xlScaleLinear;
598     try
599     {
600         if (isValueAxis())
601         {
602             sal_Bool bisLogarithmic = sal_False;
603             mxPropertySet->getPropertyValue( rtl::OUString( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Logarithmic"))) ) >>= bisLogarithmic;
604             if (bisLogarithmic)
605                 nScaleType = xlScaleLogarithmic;
606             else
607                 nScaleType = xlScaleLinear;
608         }
609     }
610     catch (uno::Exception& )
611     {
612         DebugHelper::exception(SbERR_METHOD_FAILED, rtl::OUString());
613     }
614     return nScaleType;
615 }
616 
617 double SAL_CALL
618 ScVbaAxis::getHeight(  ) throw (css::script::BasicErrorException, css::uno::RuntimeException)
619 {
620     return oShapeHelper->getHeight();
621 }
622 
623 void SAL_CALL ScVbaAxis::setHeight( double height ) throw (css::script::BasicErrorException, css::uno::RuntimeException)
624 {
625     oShapeHelper->setHeight( height );
626 }
627 double SAL_CALL ScVbaAxis::getWidth(  ) throw (css::script::BasicErrorException, css::uno::RuntimeException)
628 {
629     return oShapeHelper->getWidth( );
630 }
631 void SAL_CALL ScVbaAxis::setWidth( double width ) throw (css::script::BasicErrorException, css::uno::RuntimeException)
632 {
633     oShapeHelper->setWidth( width );
634 }
635 double SAL_CALL ScVbaAxis::getTop(  ) throw (css::script::BasicErrorException, css::uno::RuntimeException)
636 {
637     return oShapeHelper->getTop( );
638 }
639 void SAL_CALL ScVbaAxis::setTop( double top ) throw (css::script::BasicErrorException, css::uno::RuntimeException)
640 {
641     oShapeHelper->setTop( top );
642 }
643 double SAL_CALL ScVbaAxis::getLeft(  ) throw (css::script::BasicErrorException, css::uno::RuntimeException)
644 {
645     return oShapeHelper->getLeft( );
646 }
647 void SAL_CALL ScVbaAxis::setLeft( double left ) throw (css::script::BasicErrorException, css::uno::RuntimeException)
648 {
649     oShapeHelper->setLeft( left );
650 }
651 
652 rtl::OUString&
653 ScVbaAxis::getServiceImplName()
654 {
655     static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("ScVbaAxis") );
656     return sImplName;
657 }
658 
659 uno::Sequence< rtl::OUString >
660 ScVbaAxis::getServiceNames()
661 {
662     static uno::Sequence< rtl::OUString > aServiceNames;
663     if ( aServiceNames.getLength() == 0 )
664     {
665         aServiceNames.realloc( 1 );
666         aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.excel.Axis" ) );
667     }
668     return aServiceNames;
669 }
670 
671