diff options
author | Rüdiger Timm <rt@openoffice.org> | 2004-07-13 07:44:41 +0000 |
---|---|---|
committer | Rüdiger Timm <rt@openoffice.org> | 2004-07-13 07:44:41 +0000 |
commit | f644ff2f0d263aae37cc28b20fe4cfa95bc7a4b9 (patch) | |
tree | a936b844cb276902eb68176f81965fcbcead6960 /xmloff/source/transform/ChartPlotAreaOASISTContext.cxx | |
parent | 2924cf9dc9272e4326b25b399f59c3dd698b49f3 (diff) |
INTEGRATION: CWS oasis (1.1.2); FILE ADDED
2004/06/24 17:09:41 bm 1.1.2.4: always return a context in CreateChildContext
ExportCategories no longer returns a bool
2004/06/24 15:47:07 sab 1.1.2.3: #i20153#; oasis changes
2004/06/23 16:01:11 mib 1.1.2.2: #i20153#: redline protection key, bug fixes
2004/06/22 15:55:37 bm 1.1.2.1: categories element moved from plot-area to axis in Oasis
Diffstat (limited to 'xmloff/source/transform/ChartPlotAreaOASISTContext.cxx')
-rw-r--r-- | xmloff/source/transform/ChartPlotAreaOASISTContext.cxx | 193 |
1 files changed, 193 insertions, 0 deletions
diff --git a/xmloff/source/transform/ChartPlotAreaOASISTContext.cxx b/xmloff/source/transform/ChartPlotAreaOASISTContext.cxx new file mode 100644 index 000000000000..e726c6a9063b --- /dev/null +++ b/xmloff/source/transform/ChartPlotAreaOASISTContext.cxx @@ -0,0 +1,193 @@ +/************************************************************************* + * + * $RCSfile: ChartPlotAreaOASISTContext.cxx,v $ + * + * $Revision: 1.2 $ + * + * last change: $Author: rt $ $Date: 2004-07-13 08:44:41 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2003 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ +#include "ChartPlotAreaOASISTContext.hxx" + +#ifndef _XMLOFF_TRANSFORMER_BASE_HXX +#include "TransformerBase.hxx" +#endif +#ifndef _XMLOFF_NMSPMAP_HXX +#include "nmspmap.hxx" +#endif +#ifndef _XMLOFF_XMLNMSPE_HXX +#include "xmlnmspe.hxx" +#endif +#ifndef _XMLOFF_XMLTOKEN_HXX +#include "xmltoken.hxx" +#endif +#ifndef _XMLOFF_DEEPTCONTEXT_HXX +#include "DeepTContext.hxx" +#endif +#ifndef _XMLOFF_ACTIONMAPTYPESOASIS_HXX +#include "ActionMapTypesOASIS.hxx" +#endif + +using namespace ::com::sun::star; + +using ::com::sun::star::uno::Reference; +using ::rtl::OUString; + +class XMLAxisOASISContext : public XMLTransformerContext +{ +public: + TYPEINFO(); + + XMLAxisOASISContext( XMLTransformerBase& rTransformer, + const ::rtl::OUString& rQName, + ::rtl::Reference< XMLPersAttrListTContext > & rOutCategoriesContext ); + ~XMLAxisOASISContext(); + + virtual XMLTransformerContext *CreateChildContext( + sal_uInt16 nPrefix, + const ::rtl::OUString& rLocalName, + const ::rtl::OUString& rQName, + const Reference< xml::sax::XAttributeList >& xAttrList ); + +private: + ::rtl::Reference< XMLPersAttrListTContext > & m_rCategoriesContext; +}; + +TYPEINIT1( XMLAxisOASISContext, XMLTransformerContext ); + +XMLAxisOASISContext::XMLAxisOASISContext( + XMLTransformerBase& rTransformer, + const ::rtl::OUString& rQName, + ::rtl::Reference< XMLPersAttrListTContext > & rOutCategoriesContext ) : + XMLTransformerContext( rTransformer, rQName ), + m_rCategoriesContext( rOutCategoriesContext ) +{} + +XMLAxisOASISContext::~XMLAxisOASISContext() +{} + +XMLTransformerContext * XMLAxisOASISContext::CreateChildContext( + sal_uInt16 nPrefix, + const ::rtl::OUString& rLocalName, + const ::rtl::OUString& rQName, + const Reference< xml::sax::XAttributeList >& xAttrList ) +{ + XMLTransformerContext * pContext = 0; + + if( XML_NAMESPACE_CHART == nPrefix && + ::xmloff::token::IsXMLToken( rLocalName, ::xmloff::token::XML_CATEGORIES ) ) + { + // store categories element at parent + m_rCategoriesContext.set( new XMLPersAttrListTContext( GetTransformer(), rQName )); + pContext = m_rCategoriesContext.get(); + } + else + { + pContext = XMLTransformerContext::CreateChildContext( + nPrefix, rLocalName, rQName, xAttrList ); + } + + return pContext; +} + +TYPEINIT1( XMLChartPlotAreaOASISTContext, XMLProcAttrTransformerContext ); + +XMLChartPlotAreaOASISTContext::XMLChartPlotAreaOASISTContext( + XMLTransformerBase & rTransformer, const ::rtl::OUString & rQName ) : + XMLProcAttrTransformerContext( rTransformer, rQName, OASIS_SHAPE_ACTIONS ) +{ +} + +XMLChartPlotAreaOASISTContext::~XMLChartPlotAreaOASISTContext() +{} + +XMLTransformerContext * XMLChartPlotAreaOASISTContext::CreateChildContext( + sal_uInt16 nPrefix, + const ::rtl::OUString& rLocalName, + const ::rtl::OUString& rQName, + const uno::Reference< xml::sax::XAttributeList >& xAttrList ) +{ + XMLTransformerContext *pContext = 0; + + if( XML_NAMESPACE_CHART == nPrefix && + ::xmloff::token::IsXMLToken( rLocalName, ::xmloff::token::XML_AXIS ) ) + { + pContext = new XMLAxisOASISContext( GetTransformer(), rQName, m_rCategoriesContext ); + } + else + { + // export (and forget) categories if found in an axis-element + // otherwise export regularly + ExportCategories(); + pContext = XMLProcAttrTransformerContext::CreateChildContext( + nPrefix, rLocalName, rQName, xAttrList ); + } + + return pContext; +} + +void XMLChartPlotAreaOASISTContext::EndElement() +{ + ExportCategories(); + XMLProcAttrTransformerContext::EndElement(); +} + +void XMLChartPlotAreaOASISTContext::ExportCategories() +{ + if( m_rCategoriesContext.is()) + { + m_rCategoriesContext->Export(); + m_rCategoriesContext.clear(); + } +} |