LCOV - code coverage report
Current view: top level - chart2/source/controller/dialogs - ChartTypeDialogController.cxx (source / functions) Hit Total Coverage
Test: commit 0e63ca4fde4e446f346e35849c756a30ca294aab Lines: 0 719 0.0 %
Date: 2014-04-11 Functions: 0 128 0.0 %
Legend: Lines: hit not hit

          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( Application::GetSettings().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             : 
     871           0 :     switch( rParameter.nSubTypeIndex )
     872             :     {
     873             :         case 2:
     874           0 :             rParameter.bSymbols = true;
     875           0 :             rParameter.bLines = true;
     876           0 :             break;
     877             :         case 3:
     878           0 :             rParameter.bSymbols = false;
     879           0 :             rParameter.bLines = true;
     880           0 :             break;
     881             :         case 4:
     882           0 :             rParameter.bSymbols = false;
     883           0 :             rParameter.bLines = true;
     884           0 :             rParameter.b3DLook = true;
     885           0 :             rParameter.eStackMode=GlobalStackMode_STACK_Z;
     886           0 :             break;
     887             :         default:
     888           0 :             rParameter.bSymbols = true;
     889           0 :             rParameter.bLines = false;
     890           0 :             break;
     891             :     }
     892           0 : }
     893           0 : AreaChartDialogController::AreaChartDialogController()
     894             : {
     895           0 : }
     896           0 : AreaChartDialogController::~AreaChartDialogController()
     897             : {
     898           0 : }
     899           0 : OUString AreaChartDialogController::getName()
     900             : {
     901           0 :     return SCH_RESSTR(STR_TYPE_AREA);
     902             : }
     903           0 : Image AreaChartDialogController::getImage()
     904             : {
     905           0 :     return Image( SchResId( IMG_TYPE_AREA ));
     906             : }
     907           0 : bool AreaChartDialogController::shouldShow_3DLookControl() const
     908             : {
     909           0 :     return true;
     910             : }
     911           0 : const tTemplateServiceChartTypeParameterMap& AreaChartDialogController::getTemplateMap() const
     912             : {
     913             :     static tTemplateServiceChartTypeParameterMap m_aTemplateMap =
     914             :     tTemplateServiceChartTypeParameterMap
     915             :     ( "com.sun.star.chart2.template.Area" ,                     ChartTypeParameter(1,false,false,GlobalStackMode_NONE) )
     916           0 :     ( "com.sun.star.chart2.template.ThreeDArea" ,               ChartTypeParameter(1,false,true,GlobalStackMode_STACK_Z) )
     917           0 :     ( "com.sun.star.chart2.template.StackedArea" ,              ChartTypeParameter(2,false,false,GlobalStackMode_STACK_Y) )
     918           0 :     ( "com.sun.star.chart2.template.StackedThreeDArea" ,        ChartTypeParameter(2,false,true,GlobalStackMode_STACK_Y) )
     919           0 :     ( "com.sun.star.chart2.template.PercentStackedArea" ,       ChartTypeParameter(3,false,false,GlobalStackMode_STACK_Y_PERCENT) )
     920           0 :     ( "com.sun.star.chart2.template.PercentStackedThreeDArea" , ChartTypeParameter(3,false,true,GlobalStackMode_STACK_Y_PERCENT) )
     921             :     ;
     922           0 :     return m_aTemplateMap;
     923             : }
     924           0 : void AreaChartDialogController::fillSubTypeList( ValueSet& rSubTypeList, const ChartTypeParameter& rParameter )
     925             : {
     926           0 :     rSubTypeList.Clear();
     927             : 
     928           0 :     if( rParameter.b3DLook )
     929             :     {
     930           0 :         rSubTypeList.InsertItem(1, Image(Bitmap(SchResId(BMP_AREAS_3D))));
     931           0 :         rSubTypeList.InsertItem(2, Image(Bitmap(SchResId(BMP_AREAS_3D_1))));
     932           0 :         rSubTypeList.InsertItem(3, Image(Bitmap(SchResId(BMP_AREAS_3D_2))));
     933             :     }
     934             :     else
     935             :     {
     936           0 :         rSubTypeList.InsertItem(1, Image(Bitmap(SchResId(BMP_AREAS_2D_1))));
     937           0 :         rSubTypeList.InsertItem(2, Image(Bitmap(SchResId(BMP_AREAS_2D))));
     938           0 :         rSubTypeList.InsertItem(3, Image(Bitmap(SchResId(BMP_AREAS_2D_3))));
     939             :     }
     940             : 
     941           0 :     rSubTypeList.SetItemText( 1, SCH_RESSTR( rParameter.b3DLook ? STR_DEEP : STR_NORMAL ) );
     942           0 :     rSubTypeList.SetItemText( 2, SCH_RESSTR( STR_STACKED ) );
     943           0 :     rSubTypeList.SetItemText( 3, SCH_RESSTR( STR_PERCENT ) );
     944           0 : }
     945           0 : void AreaChartDialogController::adjustParameterToSubType( ChartTypeParameter& rParameter )
     946             : {
     947           0 :     rParameter.eCurveStyle = CurveStyle_LINES;
     948             : 
     949           0 :     if( rParameter.nSubTypeIndex>3 )
     950           0 :         rParameter.nSubTypeIndex = 1;
     951           0 :     switch( rParameter.nSubTypeIndex )
     952             :     {
     953             :         case 2:
     954           0 :             rParameter.eStackMode=GlobalStackMode_STACK_Y;
     955           0 :             break;
     956             :         case 3:
     957           0 :             rParameter.eStackMode=GlobalStackMode_STACK_Y_PERCENT;
     958           0 :             break;
     959             :         default:
     960           0 :             if( rParameter.b3DLook )
     961           0 :                 rParameter.eStackMode=GlobalStackMode_STACK_Z;
     962             :             else
     963           0 :                 rParameter.eStackMode=GlobalStackMode_NONE;
     964           0 :             break;
     965             :     }
     966           0 : }
     967           0 : void AreaChartDialogController::adjustParameterToMainType( ChartTypeParameter& rParameter )
     968             : {
     969           0 :     if( rParameter.b3DLook && rParameter.eStackMode == GlobalStackMode_NONE )
     970           0 :         rParameter.eStackMode = GlobalStackMode_STACK_Z;
     971             : 
     972           0 :     ChartTypeDialogController::adjustParameterToMainType( rParameter );
     973           0 : }
     974           0 : NetChartDialogController::NetChartDialogController()
     975             : {
     976           0 :     bSupports3D = false;
     977           0 : }
     978           0 : NetChartDialogController::~NetChartDialogController()
     979             : {
     980           0 : }
     981           0 : OUString NetChartDialogController::getName()
     982             : {
     983           0 :     return SCH_RESSTR(STR_TYPE_NET);
     984             : }
     985           0 : Image NetChartDialogController::getImage()
     986             : {
     987           0 :     return Image( SchResId( IMG_TYPE_NET ));
     988             : }
     989           0 : bool NetChartDialogController::shouldShow_StackingControl() const
     990             : {
     991           0 :     return true;
     992             : }
     993           0 : const tTemplateServiceChartTypeParameterMap& NetChartDialogController::getTemplateMap() const
     994             : {
     995             :     static tTemplateServiceChartTypeParameterMap m_aTemplateMap =
     996             :     tTemplateServiceChartTypeParameterMap
     997             :     //@todo need templates with symbols only
     998             :     ( "com.sun.star.chart2.template.NetSymbol" ,              ChartTypeParameter(1,false,false,GlobalStackMode_NONE,true,false) )
     999           0 :     ( "com.sun.star.chart2.template.StackedNetSymbol" ,       ChartTypeParameter(1,false,false,GlobalStackMode_STACK_Y,true,false) )
    1000           0 :     ( "com.sun.star.chart2.template.PercentStackedNetSymbol" ,ChartTypeParameter(1,false,false,GlobalStackMode_STACK_Y_PERCENT,true,false) )
    1001             : 
    1002           0 :     ( "com.sun.star.chart2.template.Net" ,                    ChartTypeParameter(2,false,false,GlobalStackMode_NONE,true,true) )
    1003           0 :     ( "com.sun.star.chart2.template.StackedNet" ,             ChartTypeParameter(2,false,false,GlobalStackMode_STACK_Y,true,true) )
    1004           0 :     ( "com.sun.star.chart2.template.PercentStackedNet" ,      ChartTypeParameter(2,false,false,GlobalStackMode_STACK_Y_PERCENT,true,true) )
    1005             : 
    1006           0 :     ( "com.sun.star.chart2.template.NetLine" ,                ChartTypeParameter(3,false,false,GlobalStackMode_NONE,false,true) )
    1007           0 :     ( "com.sun.star.chart2.template.StackedNetLine" ,         ChartTypeParameter(3,false,false,GlobalStackMode_STACK_Y,false,true) )
    1008           0 :     ( "com.sun.star.chart2.template.PercentStackedNetLine" ,  ChartTypeParameter(3,false,false,GlobalStackMode_STACK_Y_PERCENT,false,true) )
    1009             : 
    1010           0 :     ( "com.sun.star.chart2.template.FilledNet" ,              ChartTypeParameter(4,false,false,GlobalStackMode_NONE,false,false) )
    1011           0 :     ( "com.sun.star.chart2.template.StackedFilledNet" ,       ChartTypeParameter(4,false,false,GlobalStackMode_STACK_Y,false,false) )
    1012           0 :     ( "com.sun.star.chart2.template.PercentStackedFilledNet" ,ChartTypeParameter(4,false,false,GlobalStackMode_STACK_Y_PERCENT,false,false) )
    1013             :     ;
    1014           0 :     return m_aTemplateMap;
    1015             : }
    1016           0 : void NetChartDialogController::fillSubTypeList( ValueSet& rSubTypeList, const ChartTypeParameter& rParameter )
    1017             : {
    1018           0 :     rSubTypeList.Clear();
    1019             : 
    1020           0 :     if( GlobalStackMode_NONE == rParameter.eStackMode )
    1021             :     {
    1022           0 :         rSubTypeList.InsertItem(1, Image(Bitmap(SchResId(BMP_NET_SYMB))));
    1023           0 :         rSubTypeList.InsertItem(2, Image(Bitmap(SchResId(BMP_NET_LINESYMB))));
    1024           0 :         rSubTypeList.InsertItem(3, Image(Bitmap(SchResId(BMP_NET))));
    1025           0 :         rSubTypeList.InsertItem(4, Image(Bitmap(SchResId(BMP_NET_FILL))));
    1026             :     }
    1027             :     else
    1028             :     {
    1029           0 :         rSubTypeList.InsertItem(1, Image(Bitmap(SchResId(BMP_NET_SYMB_STACK))));
    1030           0 :         rSubTypeList.InsertItem(2, Image(Bitmap(SchResId(BMP_NET_LINESYMB_STACK))));
    1031           0 :         rSubTypeList.InsertItem(3, Image(Bitmap(SchResId(BMP_NET_STACK))));
    1032           0 :         rSubTypeList.InsertItem(4, Image(Bitmap(SchResId(BMP_NET_FILL_STACK))));
    1033             :     }
    1034             : 
    1035           0 :     rSubTypeList.SetItemText( 1, SCH_RESSTR( STR_POINTS_ONLY ) );
    1036           0 :     rSubTypeList.SetItemText( 2, SCH_RESSTR( STR_POINTS_AND_LINES ) );
    1037           0 :     rSubTypeList.SetItemText( 3, SCH_RESSTR( STR_LINES_ONLY ) );
    1038           0 :     rSubTypeList.SetItemText( 4, SCH_RESSTR( STR_FILLED ) );
    1039           0 : }
    1040           0 : void NetChartDialogController::adjustParameterToSubType( ChartTypeParameter& rParameter )
    1041             : {
    1042           0 :     rParameter.b3DLook = false;
    1043           0 :     if(rParameter.eStackMode==GlobalStackMode_STACK_Z)
    1044           0 :         rParameter.eStackMode = GlobalStackMode_NONE;
    1045             : 
    1046           0 :     switch( rParameter.nSubTypeIndex )
    1047             :     {
    1048             :         case 2:
    1049           0 :             rParameter.bSymbols = true;
    1050           0 :             rParameter.bLines = true;
    1051           0 :             break;
    1052             :         case 3:
    1053           0 :             rParameter.bSymbols = false;
    1054           0 :             rParameter.bLines = true;
    1055           0 :             break;
    1056             :         case 4:
    1057           0 :             rParameter.bSymbols = false;
    1058           0 :             rParameter.bLines = false;
    1059           0 :             break;
    1060             :         default:
    1061           0 :             rParameter.bSymbols = true;
    1062           0 :             rParameter.bLines = false;
    1063           0 :             break;
    1064             :     }
    1065           0 : }
    1066           0 : StockChartDialogController::StockChartDialogController()
    1067             : {
    1068           0 :     bSupports3D = false;
    1069           0 : }
    1070             : 
    1071           0 : StockChartDialogController::~StockChartDialogController()
    1072             : {
    1073           0 : }
    1074             : 
    1075           0 : OUString StockChartDialogController::getName()
    1076             : {
    1077           0 :     return SCH_RESSTR(STR_TYPE_STOCK);
    1078             : }
    1079           0 : Image StockChartDialogController::getImage()
    1080             : {
    1081           0 :     return Image( SchResId( IMG_TYPE_STOCK ));
    1082             : }
    1083             : 
    1084           0 : const tTemplateServiceChartTypeParameterMap& StockChartDialogController::getTemplateMap() const
    1085             : {
    1086             :     static tTemplateServiceChartTypeParameterMap m_aTemplateMap =
    1087             :     tTemplateServiceChartTypeParameterMap
    1088             :     ( "com.sun.star.chart2.template.StockLowHighClose" ,          ChartTypeParameter(1) )
    1089           0 :     ( "com.sun.star.chart2.template.StockOpenLowHighClose" ,      ChartTypeParameter(2) )
    1090           0 :     ( "com.sun.star.chart2.template.StockVolumeLowHighClose" ,    ChartTypeParameter(3) )
    1091           0 :     ( "com.sun.star.chart2.template.StockVolumeOpenLowHighClose" ,ChartTypeParameter(4) )
    1092             :     ;
    1093           0 :     return m_aTemplateMap;
    1094             : }
    1095             : 
    1096           0 : void StockChartDialogController::fillSubTypeList( ValueSet& rSubTypeList, const ChartTypeParameter& /*rParameter*/ )
    1097             : {
    1098           0 :     rSubTypeList.Clear();
    1099           0 :     rSubTypeList.InsertItem(1, Image(Bitmap(SchResId(BMP_STOCK_1))));
    1100           0 :     rSubTypeList.InsertItem(2, Image(Bitmap(SchResId(BMP_STOCK_2))));
    1101           0 :     rSubTypeList.InsertItem(3, Image(Bitmap(SchResId(BMP_STOCK_3))));
    1102           0 :     rSubTypeList.InsertItem(4, Image(Bitmap(SchResId(BMP_STOCK_4))));
    1103             : 
    1104           0 :     rSubTypeList.SetItemText( 1, SCH_RESSTR(STR_STOCK_1) );
    1105           0 :     rSubTypeList.SetItemText( 2, SCH_RESSTR(STR_STOCK_2) );
    1106           0 :     rSubTypeList.SetItemText( 3, SCH_RESSTR(STR_STOCK_3) );
    1107           0 :     rSubTypeList.SetItemText( 4, SCH_RESSTR(STR_STOCK_4) );
    1108           0 : }
    1109             : 
    1110           0 : void StockChartDialogController::adjustParameterToSubType( ChartTypeParameter& rParameter )
    1111             : {
    1112           0 :     rParameter.b3DLook = false;
    1113           0 :     rParameter.eStackMode = GlobalStackMode_NONE;
    1114           0 : }
    1115             : 
    1116           0 : CombiColumnLineChartDialogController::CombiColumnLineChartDialogController()
    1117             :     : m_pFT_NumberOfLines(0)
    1118           0 :     , m_pMF_NumberOfLines(0)
    1119             : {
    1120           0 :     bSupports3D = false;
    1121           0 : }
    1122             : 
    1123           0 : OUString CombiColumnLineChartDialogController::getName()
    1124             : {
    1125           0 :     return SCH_RESSTR(STR_TYPE_COMBI_COLUMN_LINE);
    1126             : }
    1127             : 
    1128           0 : Image CombiColumnLineChartDialogController::getImage( )
    1129             : {
    1130           0 :     return Image( SchResId( IMG_TYPE_COLUMN_LINE ) );
    1131             : }
    1132             : 
    1133           0 : const tTemplateServiceChartTypeParameterMap& CombiColumnLineChartDialogController::getTemplateMap() const
    1134             : {
    1135             :     static tTemplateServiceChartTypeParameterMap m_aTemplateMap =
    1136             :     tTemplateServiceChartTypeParameterMap
    1137             :     ( "com.sun.star.chart2.template.ColumnWithLine" ,             ChartTypeParameter(1) )
    1138           0 :     ( "com.sun.star.chart2.template.StackedColumnWithLine" ,      ChartTypeParameter(2,false,false,GlobalStackMode_STACK_Y) )
    1139             :     ;
    1140           0 :     return m_aTemplateMap;
    1141             : }
    1142             : 
    1143           0 : void CombiColumnLineChartDialogController::fillSubTypeList( ValueSet& rSubTypeList, const ChartTypeParameter& /*rParameter*/ )
    1144             : {
    1145           0 :     rSubTypeList.Clear();
    1146           0 :     rSubTypeList.InsertItem(1, Image(Bitmap(SchResId(BMP_COLUMN_LINE))));
    1147           0 :     rSubTypeList.InsertItem(2, Image(Bitmap(SchResId(BMP_COLUMN_LINE_STACKED))));
    1148             : 
    1149           0 :     rSubTypeList.SetItemText(1, SCH_RESSTR(STR_LINE_COLUMN));
    1150           0 :     rSubTypeList.SetItemText(2, SCH_RESSTR(STR_LINE_STACKEDCOLUMN));
    1151           0 : }
    1152             : 
    1153           0 : void CombiColumnLineChartDialogController::showExtraControls( VclBuilderContainer* pParent )
    1154             : {
    1155           0 :     if (!m_pFT_NumberOfLines)
    1156             :     {
    1157           0 :         pParent->get(m_pFT_NumberOfLines, "nolinesft");
    1158             :     }
    1159           0 :     if (!m_pMF_NumberOfLines)
    1160             :     {
    1161           0 :         pParent->get(m_pMF_NumberOfLines, "nolines");
    1162             : 
    1163           0 :         m_pMF_NumberOfLines->SetSpinSize(1);
    1164           0 :         m_pMF_NumberOfLines->SetFirst( 1 );
    1165           0 :         m_pMF_NumberOfLines->SetLast( 100 );
    1166           0 :         m_pMF_NumberOfLines->SetMin( 1 );
    1167           0 :         m_pMF_NumberOfLines->SetMax( 100 );
    1168             : 
    1169           0 :         m_pMF_NumberOfLines->SetModifyHdl( LINK( this, CombiColumnLineChartDialogController, ChangeLineCountHdl ) );
    1170             :     }
    1171             : 
    1172           0 :     m_pFT_NumberOfLines->Show();
    1173           0 :     m_pMF_NumberOfLines->Show();
    1174           0 : }
    1175             : 
    1176           0 : void CombiColumnLineChartDialogController::hideExtraControls() const
    1177             : {
    1178           0 :     if(m_pFT_NumberOfLines)
    1179           0 :         m_pFT_NumberOfLines->Hide();
    1180           0 :     if(m_pMF_NumberOfLines)
    1181           0 :         m_pMF_NumberOfLines->Hide();
    1182           0 : }
    1183             : 
    1184           0 : void CombiColumnLineChartDialogController::fillExtraControls( const ChartTypeParameter& /*rParameter*/
    1185             :                 , const uno::Reference< XChartDocument >& xChartModel
    1186             :                 , const uno::Reference< beans::XPropertySet >& xTemplateProps ) const
    1187             : {
    1188           0 :     if(!m_pMF_NumberOfLines)
    1189           0 :         return;
    1190             : 
    1191           0 :     uno::Reference< frame::XModel > xModel( xChartModel, uno::UNO_QUERY );
    1192             : 
    1193           0 :     uno::Reference< XDiagram > xDiagram = ChartModelHelper::findDiagram( xModel );
    1194           0 :     if(!xDiagram.is())
    1195           0 :         return;
    1196             : 
    1197           0 :     sal_Int32 nNumLines = 0;
    1198             : 
    1199           0 :     if(xTemplateProps.is())
    1200             :     {
    1201             :         try
    1202             :         {
    1203           0 :             xTemplateProps->getPropertyValue( "NumberOfLines" ) >>= nNumLines;
    1204             :         }
    1205           0 :         catch( const uno::Exception & ex )
    1206             :         {
    1207             :             ASSERT_EXCEPTION( ex );
    1208             :         }
    1209             :     }
    1210           0 :     if( nNumLines < 0 )
    1211           0 :         nNumLines = 0;
    1212           0 :     m_pMF_NumberOfLines->SetValue( nNumLines );
    1213             : 
    1214           0 :     sal_Int32 nMaxLines = ChartModelHelper::getDataSeries( xModel ).size() - 1;
    1215           0 :     if( nMaxLines < 0 )
    1216           0 :         nMaxLines = 0;
    1217           0 :     m_pMF_NumberOfLines->SetLast( nMaxLines );
    1218           0 :     m_pMF_NumberOfLines->SetMax( nMaxLines );
    1219             : }
    1220           0 : void CombiColumnLineChartDialogController::setTemplateProperties( const uno::Reference< beans::XPropertySet >& xTemplateProps ) const throw (uno::RuntimeException)
    1221             : {
    1222           0 :     if( xTemplateProps.is() )
    1223             :     {
    1224           0 :         sal_Int32 nNumLines = static_cast< sal_Int32 >( m_pMF_NumberOfLines->GetValue());
    1225           0 :         xTemplateProps->setPropertyValue( "NumberOfLines" , uno::makeAny(nNumLines) );
    1226             :     }
    1227           0 : }
    1228             : 
    1229           0 : IMPL_LINK_NOARG(CombiColumnLineChartDialogController, ChangeLineCountHdl)
    1230             : {
    1231           0 :     if( m_pChangeListener )
    1232           0 :         m_pChangeListener->stateChanged(this);
    1233           0 :     return 0;
    1234             : }
    1235           0 : void CombiColumnLineChartDialogController::adjustParameterToSubType( ChartTypeParameter& rParameter )
    1236             : {
    1237           0 :     rParameter.b3DLook = false;
    1238           0 :     if(rParameter.eStackMode==GlobalStackMode_STACK_Z)
    1239           0 :         rParameter.eStackMode = GlobalStackMode_NONE;
    1240             : 
    1241           0 :     switch( rParameter.nSubTypeIndex )
    1242             :     {
    1243             :         case 2:
    1244           0 :             rParameter.eStackMode=GlobalStackMode_STACK_Y;
    1245           0 :             break;
    1246             :         default:
    1247           0 :             rParameter.eStackMode=GlobalStackMode_NONE;
    1248           0 :             break;
    1249             :     }
    1250           0 : }
    1251           0 : BubbleChartDialogController::BubbleChartDialogController()
    1252             : {
    1253           0 : }
    1254           0 : BubbleChartDialogController::~BubbleChartDialogController()
    1255             : {
    1256           0 : }
    1257           0 : OUString BubbleChartDialogController::getName()
    1258             : {
    1259           0 :     return SCH_RESSTR(STR_TYPE_BUBBLE);
    1260             : }
    1261           0 : Image BubbleChartDialogController::getImage()
    1262             : {
    1263           0 :     return Image( SchResId( IMG_TYPE_BUBBLE ));
    1264             : }
    1265           0 : const tTemplateServiceChartTypeParameterMap& BubbleChartDialogController::getTemplateMap() const
    1266             : {
    1267             :     static tTemplateServiceChartTypeParameterMap m_aTemplateMap =
    1268             :     tTemplateServiceChartTypeParameterMap
    1269           0 :         ( "com.sun.star.chart2.template.Bubble" ,          ChartTypeParameter(1,true) ) ;
    1270           0 :     return m_aTemplateMap;
    1271             : }
    1272           0 : void BubbleChartDialogController::fillSubTypeList( ValueSet& rSubTypeList, const ChartTypeParameter& /*rParameter*/ )
    1273             : {
    1274           0 :     rSubTypeList.Clear();
    1275           0 :     rSubTypeList.InsertItem(1, Image(Bitmap(SchResId(BMP_BUBBLE_1))));
    1276             : 
    1277           0 :     rSubTypeList.SetItemText( 1, SCH_RESSTR(STR_BUBBLE_1) );
    1278           0 : }
    1279           0 : void BubbleChartDialogController::adjustParameterToSubType( ChartTypeParameter& rParameter )
    1280             : {
    1281           0 :     rParameter.b3DLook = false;
    1282           0 :     rParameter.eStackMode = GlobalStackMode_NONE;
    1283           0 : }
    1284             : } //namespace chart
    1285             : 
    1286             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10