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