1 /************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27 28 #include "oox/drawingml/table/tablestylelistfragmenthandler.hxx" 29 #include "oox/drawingml/table/tablestylecontext.hxx" 30 31 using ::rtl::OUString; 32 using namespace ::oox::core; 33 34 using rtl::OUString; 35 using namespace ::com::sun::star; 36 using namespace ::oox::core; 37 using namespace ::oox::drawingml; 38 using namespace ::com::sun::star::uno; 39 using namespace ::com::sun::star::xml::sax; 40 41 namespace oox { 42 namespace drawingml { 43 namespace table { 44 45 // ============================================================================ 46 47 TableStyleListFragmentHandler::TableStyleListFragmentHandler( XmlFilterBase& rFilter, const OUString& rFragmentPath, TableStyleList& rTableStyleList ): 48 FragmentHandler2( rFilter, rFragmentPath ), 49 mrTableStyleList( rTableStyleList ) 50 { 51 } 52 53 TableStyleListFragmentHandler::~TableStyleListFragmentHandler() 54 { 55 } 56 57 // CT_TableStyleList 58 Reference< XFastContextHandler > TableStyleListFragmentHandler::createFastChildContext( 59 sal_Int32 aElementToken, const Reference< XFastAttributeList >& xAttribs ) 60 throw ( SAXException, RuntimeException ) 61 { 62 Reference< XFastContextHandler > xRet; 63 switch( aElementToken ) 64 { 65 case A_TOKEN( tblStyleLst ): // CT_TableStyleList 66 mrTableStyleList.getDefaultStyleId() = xAttribs->getOptionalValue( XML_def ); 67 break; 68 case A_TOKEN( tblStyle ): // CT_TableStyle 69 std::vector< TableStyle >& rTableStyles = mrTableStyleList.getTableStyles(); 70 rTableStyles.resize( rTableStyles.size() + 1 ); 71 xRet = new TableStyleContext( *this, xAttribs, rTableStyles.back() ); 72 break; 73 } 74 if ( !xRet.is() ) 75 xRet = getFastContextHandler(); 76 return xRet; 77 } 78 79 // ============================================================================ 80 81 } // namespace table 82 } // namespace drawingml 83 } // namespace oox 84 85