xref: /AOO41X/main/xmloff/source/chart/SchXMLAutoStylePoolP.cxx (revision 63bba73cc51e0afb45f8a8d578158724bb5afee8)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 // MARKER(update_precomp.py): autogen include statement, do not remove
25 #include "precompiled_xmloff.hxx"
26 #include "SchXMLAutoStylePoolP.hxx"
27 #include "PropertyMap.hxx"
28 #include "SchXMLExport.hxx"
29 #include "XMLChartPropertySetMapper.hxx"
30 #include <xmloff/families.hxx>
31 #include <xmloff/nmspmap.hxx>
32 #include <xmloff/xmltoken.hxx>
33 
34 using ::xmloff::token::GetXMLToken;
35 using ::xmloff::token::XML_CDATA;
36 
SchXMLAutoStylePoolP(SchXMLExport & rSchXMLExport)37 SchXMLAutoStylePoolP::SchXMLAutoStylePoolP( SchXMLExport& rSchXMLExport ) :
38         SvXMLAutoStylePoolP( rSchXMLExport ),
39         mrSchXMLExport( rSchXMLExport )
40 {}
41 
~SchXMLAutoStylePoolP()42 SchXMLAutoStylePoolP::~SchXMLAutoStylePoolP()
43 {}
44 
exportStyleAttributes(SvXMLAttributeList & rAttrList,sal_Int32 nFamily,const::std::vector<XMLPropertyState> & rProperties,const SvXMLExportPropertyMapper & rPropExp,const SvXMLUnitConverter & rUnitConverter,const SvXMLNamespaceMap & rNamespaceMap) const45 void SchXMLAutoStylePoolP::exportStyleAttributes(
46     SvXMLAttributeList& rAttrList,
47     sal_Int32 nFamily,
48     const ::std::vector< XMLPropertyState >& rProperties,
49     const SvXMLExportPropertyMapper& rPropExp
50     , const SvXMLUnitConverter& rUnitConverter,
51     const SvXMLNamespaceMap& rNamespaceMap
52     ) const
53 {
54     const rtl::OUString sCDATA( GetXMLToken( XML_CDATA ));
55     SvXMLAutoStylePoolP::exportStyleAttributes( rAttrList, nFamily, rProperties,
56                                                 rPropExp, rUnitConverter, rNamespaceMap );
57 
58     if( nFamily == XML_STYLE_FAMILY_SCH_CHART_ID )
59     {
60         for( ::std::vector< XMLPropertyState >::const_iterator iter = rProperties.begin();
61              (iter != rProperties.end()); iter++ )
62         {
63             if( iter->mnIndex == -1 )
64                 continue;
65 
66             UniReference< XMLPropertySetMapper > aPropMapper =
67                 mrSchXMLExport.GetPropertySetMapper();
68             sal_Int16 nContextID = aPropMapper->GetEntryContextId( iter->mnIndex );
69             if( nContextID == XML_SCH_CONTEXT_SPECIAL_NUMBER_FORMAT )
70             {
71                 sal_Int32 nNumberFormat = -1;
72                 if( ( iter->maValue >>= nNumberFormat ) &&
73                     ( nNumberFormat != -1 ))
74                 {
75                     rtl::OUString sAttrValue = mrSchXMLExport.getDataStyleName( nNumberFormat );
76                     if( sAttrValue.getLength() )
77                     {
78                         mrSchXMLExport.AddAttribute(
79                             aPropMapper->GetEntryNameSpace( iter->mnIndex ),
80                             aPropMapper->GetEntryXMLName( iter->mnIndex ),
81                             sAttrValue );
82                     }
83                 }
84             }
85         }
86     }
87 }
88