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 #ifndef XMLTABLEIMPORT_HXX_ 25 #define XMLTABLEIMPORT_HXX_ 26 27 #include <com/sun/star/table/XColumnRowRange.hpp> 28 29 #include "xmloff/dllapi.h" 30 #include "xmloff/xmlictxt.hxx" 31 #include "xmloff/uniref.hxx" 32 #include "xmloff/xmlimppr.hxx" 33 #include "xmloff/prhdlfac.hxx" 34 35 #include <rtl/ref.hxx> 36 37 #include <boost/shared_ptr.hpp> 38 #include <map> 39 40 class SvXMLStyleContext; 41 42 typedef std::map< ::rtl::OUString, ::rtl::OUString > XMLTableTemplate; 43 typedef std::map < ::rtl::OUString, boost::shared_ptr< XMLTableTemplate > > XMLTableTemplateMap; 44 45 class XMLTableImport : public UniRefBase 46 { 47 friend class XMLTableImportContext; 48 49 public: 50 XMLTableImport( SvXMLImport& rImport, const rtl::Reference< XMLPropertySetMapper >& xCellPropertySetMapper, const rtl::Reference< XMLPropertyHandlerFactory >& xFactoryRef ); 51 virtual ~XMLTableImport(); 52 53 SvXMLImportContext* CreateTableContext( sal_uInt16 nPrfx, const ::rtl::OUString& rLName, 54 ::com::sun::star::uno::Reference< ::com::sun::star::table::XColumnRowRange >& xColumnRowRange ); 55 56 SvXMLStyleContext* CreateTableTemplateContext( sal_uInt16 nPrfx, const ::rtl::OUString& rLName, const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList ); 57 GetCellImportPropertySetMapper() const58 rtl::Reference< SvXMLImportPropertyMapper > GetCellImportPropertySetMapper() const { return mxCellImportPropertySetMapper; } GetRowImportPropertySetMapper() const59 rtl::Reference< SvXMLImportPropertyMapper > GetRowImportPropertySetMapper() const { return mxRowImportPropertySetMapper; } GetColumnImportPropertySetMapper() const60 rtl::Reference< SvXMLImportPropertyMapper > GetColumnImportPropertySetMapper() const { return mxColumnImportPropertySetMapper; } 61 62 void addTableTemplate( const rtl::OUString& rsStyleName, XMLTableTemplate& xTableTemplate ); 63 void finishStyles(); 64 65 private: 66 SvXMLImport& mrImport; 67 rtl::Reference< SvXMLImportPropertyMapper > mxCellImportPropertySetMapper; 68 rtl::Reference< SvXMLImportPropertyMapper > mxRowImportPropertySetMapper; 69 rtl::Reference< SvXMLImportPropertyMapper > mxColumnImportPropertySetMapper; 70 71 XMLTableTemplateMap maTableTemplates; 72 }; 73 74 #endif /*XMLTABLEIMPORT_HXX_*/ 75