1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski 
24*b1cdbd2cSJim Jagielski // MARKER(update_precomp.py): autogen include statement, do not remove
25*b1cdbd2cSJim Jagielski #include "precompiled_chart2.hxx"
26*b1cdbd2cSJim Jagielski 
27*b1cdbd2cSJim Jagielski #include "TitleDialogData.hxx"
28*b1cdbd2cSJim Jagielski #include "TitleHelper.hxx"
29*b1cdbd2cSJim Jagielski #include "ChartModelHelper.hxx"
30*b1cdbd2cSJim Jagielski #include "AxisHelper.hxx"
31*b1cdbd2cSJim Jagielski 
32*b1cdbd2cSJim Jagielski //.............................................................................
33*b1cdbd2cSJim Jagielski namespace chart
34*b1cdbd2cSJim Jagielski {
35*b1cdbd2cSJim Jagielski //.............................................................................
36*b1cdbd2cSJim Jagielski using namespace ::com::sun::star;
37*b1cdbd2cSJim Jagielski using namespace ::com::sun::star::chart2;
38*b1cdbd2cSJim Jagielski 
TitleDialogData(::std::auto_ptr<ReferenceSizeProvider> apRefSizeProvider)39*b1cdbd2cSJim Jagielski TitleDialogData::TitleDialogData( ::std::auto_ptr< ReferenceSizeProvider > apRefSizeProvider )
40*b1cdbd2cSJim Jagielski         : aPossibilityList(7)
41*b1cdbd2cSJim Jagielski         , aExistenceList(7)
42*b1cdbd2cSJim Jagielski         , aTextList(7)
43*b1cdbd2cSJim Jagielski         , apReferenceSizeProvider( apRefSizeProvider )
44*b1cdbd2cSJim Jagielski {
45*b1cdbd2cSJim Jagielski     sal_Int32 nN = 0;
46*b1cdbd2cSJim Jagielski     for(nN=7;nN--;)
47*b1cdbd2cSJim Jagielski         aPossibilityList[nN]=sal_True;
48*b1cdbd2cSJim Jagielski     for(nN=7;nN--;)
49*b1cdbd2cSJim Jagielski         aExistenceList[nN]=sal_False;
50*b1cdbd2cSJim Jagielski }
51*b1cdbd2cSJim Jagielski 
readFromModel(const uno::Reference<frame::XModel> & xChartModel)52*b1cdbd2cSJim Jagielski void TitleDialogData::readFromModel( const uno::Reference< frame::XModel>& xChartModel )
53*b1cdbd2cSJim Jagielski {
54*b1cdbd2cSJim Jagielski     uno::Reference< XDiagram > xDiagram = ChartModelHelper::findDiagram(xChartModel);
55*b1cdbd2cSJim Jagielski 
56*b1cdbd2cSJim Jagielski     //get possibilities
57*b1cdbd2cSJim Jagielski     uno::Sequence< sal_Bool > aAxisPossibilityList;
58*b1cdbd2cSJim Jagielski     AxisHelper::getAxisOrGridPossibilities( aAxisPossibilityList, xDiagram );
59*b1cdbd2cSJim Jagielski     this->aPossibilityList[2]=aAxisPossibilityList[0];//x axis title
60*b1cdbd2cSJim Jagielski     this->aPossibilityList[3]=aAxisPossibilityList[1];//y axis title
61*b1cdbd2cSJim Jagielski     this->aPossibilityList[4]=aAxisPossibilityList[2];//z axis title
62*b1cdbd2cSJim Jagielski     this->aPossibilityList[5]=aAxisPossibilityList[3];//secondary x axis title
63*b1cdbd2cSJim Jagielski     this->aPossibilityList[6]=aAxisPossibilityList[4];//secondary y axis title
64*b1cdbd2cSJim Jagielski 
65*b1cdbd2cSJim Jagielski     //find out which title exsist and get their text
66*b1cdbd2cSJim Jagielski     //main title:
67*b1cdbd2cSJim Jagielski     for( sal_Int32 nTitleIndex = static_cast< sal_Int32 >( TitleHelper::TITLE_BEGIN);
68*b1cdbd2cSJim Jagielski          nTitleIndex < static_cast< sal_Int32 >( TitleHelper::NORMAL_TITLE_END );
69*b1cdbd2cSJim Jagielski          nTitleIndex++)
70*b1cdbd2cSJim Jagielski     {
71*b1cdbd2cSJim Jagielski         uno::Reference< XTitle > xTitle =  TitleHelper::getTitle(
72*b1cdbd2cSJim Jagielski             static_cast< TitleHelper::eTitleType >( nTitleIndex ), xChartModel );
73*b1cdbd2cSJim Jagielski         this->aExistenceList[nTitleIndex] = xTitle.is();
74*b1cdbd2cSJim Jagielski         this->aTextList[nTitleIndex]=TitleHelper::getCompleteString( xTitle );
75*b1cdbd2cSJim Jagielski     }
76*b1cdbd2cSJim Jagielski }
77*b1cdbd2cSJim Jagielski 
writeDifferenceToModel(const uno::Reference<frame::XModel> & xChartModel,const uno::Reference<uno::XComponentContext> & xContext,TitleDialogData * pOldState)78*b1cdbd2cSJim Jagielski bool TitleDialogData::writeDifferenceToModel(
79*b1cdbd2cSJim Jagielski                           const uno::Reference< frame::XModel >& xChartModel
80*b1cdbd2cSJim Jagielski                         , const uno::Reference< uno::XComponentContext >& xContext
81*b1cdbd2cSJim Jagielski                         , TitleDialogData* pOldState )
82*b1cdbd2cSJim Jagielski {
83*b1cdbd2cSJim Jagielski     bool bChanged = false;
84*b1cdbd2cSJim Jagielski     for( sal_Int32 nN = static_cast< sal_Int32 >( TitleHelper::TITLE_BEGIN );
85*b1cdbd2cSJim Jagielski          nN < static_cast< sal_Int32 >( TitleHelper::NORMAL_TITLE_END );
86*b1cdbd2cSJim Jagielski          nN++)
87*b1cdbd2cSJim Jagielski     {
88*b1cdbd2cSJim Jagielski         if( !pOldState || ( pOldState->aExistenceList[nN] != this->aExistenceList[nN] ) )
89*b1cdbd2cSJim Jagielski         {
90*b1cdbd2cSJim Jagielski             if(this->aExistenceList[nN])
91*b1cdbd2cSJim Jagielski             {
92*b1cdbd2cSJim Jagielski                 TitleHelper::createTitle(
93*b1cdbd2cSJim Jagielski                     static_cast< TitleHelper::eTitleType >( nN ), this->aTextList[nN], xChartModel, xContext,
94*b1cdbd2cSJim Jagielski                     apReferenceSizeProvider.get() );
95*b1cdbd2cSJim Jagielski                 bChanged = true;
96*b1cdbd2cSJim Jagielski             }
97*b1cdbd2cSJim Jagielski             else
98*b1cdbd2cSJim Jagielski             {
99*b1cdbd2cSJim Jagielski                 TitleHelper::removeTitle( static_cast< TitleHelper::eTitleType >( nN ), xChartModel );
100*b1cdbd2cSJim Jagielski                 bChanged = true;
101*b1cdbd2cSJim Jagielski             }
102*b1cdbd2cSJim Jagielski         }
103*b1cdbd2cSJim Jagielski         else if( !pOldState || ( pOldState->aTextList[nN] != this->aTextList[nN] ) )
104*b1cdbd2cSJim Jagielski         {
105*b1cdbd2cSJim Jagielski             //change content
106*b1cdbd2cSJim Jagielski             uno::Reference< XTitle > xTitle(
107*b1cdbd2cSJim Jagielski                 TitleHelper::getTitle( static_cast< TitleHelper::eTitleType >( nN ), xChartModel ) );
108*b1cdbd2cSJim Jagielski             if(xTitle.is())
109*b1cdbd2cSJim Jagielski             {
110*b1cdbd2cSJim Jagielski                 TitleHelper::setCompleteString( this->aTextList[nN], xTitle, xContext );
111*b1cdbd2cSJim Jagielski                 bChanged = true;
112*b1cdbd2cSJim Jagielski             }
113*b1cdbd2cSJim Jagielski         }
114*b1cdbd2cSJim Jagielski     }
115*b1cdbd2cSJim Jagielski     return bChanged;
116*b1cdbd2cSJim Jagielski }
117*b1cdbd2cSJim Jagielski 
118*b1cdbd2cSJim Jagielski //.............................................................................
119*b1cdbd2cSJim Jagielski } //namespace chart
120*b1cdbd2cSJim Jagielski //.............................................................................
121