Branch data Line data Source code
1 : : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : : /*************************************************************************
3 : : *
4 : : * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 : : *
6 : : * Copyright 2000, 2010 Oracle and/or its affiliates.
7 : : *
8 : : * OpenOffice.org - a multi-platform office productivity suite
9 : : *
10 : : * This file is part of OpenOffice.org.
11 : : *
12 : : * OpenOffice.org is free software: you can redistribute it and/or modify
13 : : * it under the terms of the GNU Lesser General Public License version 3
14 : : * only, as published by the Free Software Foundation.
15 : : *
16 : : * OpenOffice.org is distributed in the hope that it will be useful,
17 : : * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 : : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 : : * GNU Lesser General Public License version 3 for more details
20 : : * (a copy is included in the LICENSE file that accompanied this code).
21 : : *
22 : : * You should have received a copy of the GNU Lesser General Public License
23 : : * version 3 along with OpenOffice.org. If not, see
24 : : * <http://www.openoffice.org/license.html>
25 : : * for a copy of the LGPLv3 License.
26 : : *
27 : : ************************************************************************/
28 : :
29 : : #include "SchXMLAutoStylePoolP.hxx"
30 : : #include "PropertyMap.hxx"
31 : : #include "SchXMLExport.hxx"
32 : : #include "XMLChartPropertySetMapper.hxx"
33 : : #include <xmloff/families.hxx>
34 : : #include <xmloff/nmspmap.hxx>
35 : : #include <xmloff/xmltoken.hxx>
36 : :
37 : : using ::xmloff::token::GetXMLToken;
38 : : using ::xmloff::token::XML_CDATA;
39 : :
40 : 27 : SchXMLAutoStylePoolP::SchXMLAutoStylePoolP( SchXMLExport& rSchXMLExport ) :
41 : : SvXMLAutoStylePoolP( rSchXMLExport ),
42 : 27 : mrSchXMLExport( rSchXMLExport )
43 : 27 : {}
44 : :
45 : 27 : SchXMLAutoStylePoolP::~SchXMLAutoStylePoolP()
46 [ - + ]: 27 : {}
47 : :
48 : 109 : void SchXMLAutoStylePoolP::exportStyleAttributes(
49 : : SvXMLAttributeList& rAttrList,
50 : : sal_Int32 nFamily,
51 : : const ::std::vector< XMLPropertyState >& rProperties,
52 : : const SvXMLExportPropertyMapper& rPropExp
53 : : , const SvXMLUnitConverter& rUnitConverter,
54 : : const SvXMLNamespaceMap& rNamespaceMap
55 : : ) const
56 : : {
57 [ + - ]: 109 : const rtl::OUString sCDATA( GetXMLToken( XML_CDATA ));
58 : : SvXMLAutoStylePoolP::exportStyleAttributes( rAttrList, nFamily, rProperties,
59 [ + - ]: 109 : rPropExp, rUnitConverter, rNamespaceMap );
60 : :
61 [ + - ]: 109 : if( nFamily == XML_STYLE_FAMILY_SCH_CHART_ID )
62 : : {
63 [ + - ][ + + ]: 1670 : for( ::std::vector< XMLPropertyState >::const_iterator iter = rProperties.begin();
64 : 835 : (iter != rProperties.end()); ++iter )
65 : : {
66 [ + + ]: 726 : if( iter->mnIndex == -1 )
67 : 90 : continue;
68 : :
69 : : UniReference< XMLPropertySetMapper > aPropMapper =
70 [ + - ]: 636 : mrSchXMLExport.GetPropertySetMapper();
71 [ + - ][ + - ]: 636 : sal_Int16 nContextID = aPropMapper->GetEntryContextId( iter->mnIndex );
72 [ + + ]: 636 : if( nContextID == XML_SCH_CONTEXT_SPECIAL_NUMBER_FORMAT )
73 : : {
74 : 55 : sal_Int32 nNumberFormat = -1;
75 [ + - ][ + - ]: 55 : if( ( iter->maValue >>= nNumberFormat ) &&
[ + - ]
76 : : ( nNumberFormat != -1 ))
77 : : {
78 [ + - ]: 55 : rtl::OUString sAttrValue = mrSchXMLExport.getDataStyleName( nNumberFormat );
79 [ + - ]: 55 : if( !sAttrValue.isEmpty() )
80 : : {
81 : : mrSchXMLExport.AddAttribute(
82 [ + - ][ + - ]: 55 : aPropMapper->GetEntryNameSpace( iter->mnIndex ),
83 [ + - ][ + - ]: 55 : aPropMapper->GetEntryXMLName( iter->mnIndex ),
84 [ + - ]: 55 : sAttrValue );
85 : 55 : }
86 : : }
87 : : }
88 [ + - ]: 636 : }
89 : 109 : }
90 : 109 : }
91 : :
92 : : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|