2000-12-05 22:31:17 +00:00
|
|
|
/*************************************************************************
|
|
|
|
*
|
|
|
|
* $RCSfile: sdxmlimp_impl.hxx,v $
|
|
|
|
*
|
2004-05-03 12:34:30 +00:00
|
|
|
* $Revision: 1.21 $
|
2000-12-05 22:31:17 +00:00
|
|
|
*
|
2004-05-03 12:34:30 +00:00
|
|
|
* last change: $Author: rt $ $Date: 2004-05-03 13:34:30 $
|
2000-12-05 22:31:17 +00:00
|
|
|
*
|
|
|
|
* 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: 2000 by Sun Microsystems, Inc.
|
|
|
|
*
|
|
|
|
* All Rights Reserved.
|
|
|
|
*
|
|
|
|
* Contributor(s): _______________________________________
|
|
|
|
*
|
|
|
|
*
|
|
|
|
************************************************************************/
|
|
|
|
|
|
|
|
#ifndef _SDXMLIMP_IMPL_HXX
|
|
|
|
#define _SDXMLIMP_IMPL_HXX
|
|
|
|
|
2000-12-19 15:23:48 +00:00
|
|
|
#ifndef _COM_SUN_STAR_DRAWING_XDRAWPAGE_HPP_
|
|
|
|
#include <com/sun/star/drawing/XDrawPage.hpp>
|
|
|
|
#endif
|
|
|
|
|
2000-12-05 22:31:17 +00:00
|
|
|
#ifndef _COM_SUN_STAR_FRAME_XMODEL_HPP_
|
|
|
|
#include <com/sun/star/frame/XModel.hpp>
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef _COM_SUN_STAR_TASK_XSTATUSINDICATOR_HPP_
|
|
|
|
#include <com/sun/star/task/XStatusIndicator.hpp>
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef _XMLOFF_XMLTKMAP_HXX
|
|
|
|
#include "xmltkmap.hxx"
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef _COM_SUN_STAR_CONTAINER_XNAMEACCESS_HPP_
|
|
|
|
#include <com/sun/star/container/XNameAccess.hpp>
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef __SGI_STL_VECTOR
|
2001-02-01 15:23:07 +00:00
|
|
|
#include <vector>
|
2000-12-05 22:31:17 +00:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef _XMLOFF_XMLIMP_HXX
|
|
|
|
#include "xmlimp.hxx"
|
|
|
|
#endif
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
enum SdXMLDocElemTokenMap
|
|
|
|
{
|
|
|
|
XML_TOK_DOC_STYLES,
|
|
|
|
XML_TOK_DOC_AUTOSTYLES,
|
|
|
|
XML_TOK_DOC_MASTERSTYLES,
|
|
|
|
XML_TOK_DOC_META,
|
|
|
|
XML_TOK_DOC_BODY,
|
2000-12-12 13:38:12 +00:00
|
|
|
XML_TOK_DOC_SCRIPT,
|
2001-03-27 21:03:08 +00:00
|
|
|
XML_TOK_DOC_SETTINGS,
|
2000-12-05 22:31:17 +00:00
|
|
|
XML_TOK_OFFICE_END = XML_TOK_UNKNOWN
|
|
|
|
};
|
|
|
|
|
|
|
|
enum SdXMLBodyElemTokenMap
|
|
|
|
{
|
2000-12-19 15:23:48 +00:00
|
|
|
XML_TOK_BODY_PAGE,
|
2001-02-15 16:35:27 +00:00
|
|
|
XML_TOK_BODY_SETTINGS
|
2000-12-05 22:31:17 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
enum SdXMLStylesElemTokenMap
|
|
|
|
{
|
|
|
|
XML_TOK_STYLES_MASTER_PAGE,
|
|
|
|
XML_TOK_STYLES_STYLE,
|
|
|
|
XML_TOK_STYLES_PAGE_MASTER,
|
2003-03-27 17:21:03 +00:00
|
|
|
XML_TOK_STYLES_PRESENTATION_PAGE_LAYOUT
|
2000-12-05 22:31:17 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
enum SdXMLAutoStylesElemTokenMap
|
|
|
|
{
|
|
|
|
XML_TOK_AUTOSTYLES_STYLE
|
|
|
|
};
|
|
|
|
|
|
|
|
enum SdXMLMasterPageElemTokenMap
|
|
|
|
{
|
|
|
|
XML_TOK_MASTERPAGE_STYLE,
|
|
|
|
XML_TOK_MASTERPAGE_NOTES
|
|
|
|
};
|
|
|
|
|
|
|
|
enum SdXMLMasterPageAttrTokenMap
|
|
|
|
{
|
|
|
|
XML_TOK_MASTERPAGE_NAME,
|
|
|
|
XML_TOK_MASTERPAGE_PAGE_MASTER_NAME,
|
2001-05-28 12:32:20 +00:00
|
|
|
XML_TOK_MASTERPAGE_STYLE_NAME,
|
|
|
|
XML_TOK_MASTERPAGE_PAGE_LAYOUT_NAME
|
2000-12-05 22:31:17 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
enum SdXMLPageMasterAttrTokenMap
|
|
|
|
{
|
|
|
|
XML_TOK_PAGEMASTER_NAME
|
|
|
|
};
|
|
|
|
|
|
|
|
enum SdXMLPageMasterStyleAttrTokenMap
|
|
|
|
{
|
|
|
|
XML_TOK_PAGEMASTERSTYLE_MARGIN_TOP,
|
|
|
|
XML_TOK_PAGEMASTERSTYLE_MARGIN_BOTTOM,
|
|
|
|
XML_TOK_PAGEMASTERSTYLE_MARGIN_LEFT,
|
|
|
|
XML_TOK_PAGEMASTERSTYLE_MARGIN_RIGHT,
|
|
|
|
XML_TOK_PAGEMASTERSTYLE_PAGE_WIDTH,
|
|
|
|
XML_TOK_PAGEMASTERSTYLE_PAGE_HEIGHT,
|
|
|
|
XML_TOK_PAGEMASTERSTYLE_PAGE_ORIENTATION
|
|
|
|
};
|
|
|
|
|
|
|
|
enum SdXMLDocStyleAttrTokenMap
|
|
|
|
{
|
|
|
|
XML_TOK_DOCSTYLE_NAME,
|
|
|
|
XML_TOK_DOCSTYLE_FAMILY,
|
|
|
|
XML_TOK_DOCSTYLE_PARENT_STYLE_NAME,
|
|
|
|
XML_TOK_DOCSTYLE_AUTOMATIC
|
|
|
|
};
|
|
|
|
|
|
|
|
enum SdXMLDocStyleElemTokenMap
|
|
|
|
{
|
|
|
|
XML_TOK_DOCSTYLE_PROPERTIES,
|
|
|
|
XML_TOK_DOCSTYLE_PRESENTATION_PLACEHOLDER
|
|
|
|
};
|
|
|
|
|
|
|
|
enum SdXMLDrawPageAttrTokenMap
|
|
|
|
{
|
|
|
|
XML_TOK_DRAWPAGE_NAME,
|
|
|
|
XML_TOK_DRAWPAGE_STYLE_NAME,
|
|
|
|
XML_TOK_DRAWPAGE_MASTER_PAGE_NAME,
|
2000-12-19 15:23:48 +00:00
|
|
|
XML_TOK_DRAWPAGE_PAGE_LAYOUT_NAME,
|
2001-12-17 14:54:45 +00:00
|
|
|
XML_TOK_DRAWPAGE_ID,
|
|
|
|
XML_TOK_DRAWPAGE_HREF
|
2000-12-05 22:31:17 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
enum SdXMLDrawPageElemTokenMap
|
|
|
|
{
|
|
|
|
XML_TOK_DRAWPAGE_NOTES
|
|
|
|
};
|
|
|
|
|
|
|
|
enum SdXMLPresentationPlaceholderAttrTokenMap
|
|
|
|
{
|
|
|
|
XML_TOK_PRESENTATIONPLACEHOLDER_OBJECTNAME,
|
|
|
|
XML_TOK_PRESENTATIONPLACEHOLDER_X,
|
|
|
|
XML_TOK_PRESENTATIONPLACEHOLDER_Y,
|
|
|
|
XML_TOK_PRESENTATIONPLACEHOLDER_WIDTH,
|
|
|
|
XML_TOK_PRESENTATIONPLACEHOLDER_HEIGHT
|
|
|
|
};
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
2000-12-19 15:23:48 +00:00
|
|
|
struct SdXMLltXDrawPageId
|
|
|
|
{
|
|
|
|
bool operator()(sal_Int32 nId1, sal_Int32 nId2 ) const
|
|
|
|
{
|
|
|
|
return nId1 < nId2;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
typedef std::map< sal_Int32, com::sun::star::uno::Reference< com::sun::star::drawing::XDrawPage >, SdXMLltXDrawPageId > DrawPageIdMap;
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
2000-12-05 22:31:17 +00:00
|
|
|
class SvXMLUnitConverter;
|
|
|
|
class SvXMLTokenMap;
|
|
|
|
class XMLSdPropHdlFactory;
|
|
|
|
class XMLPropertySetMapper;
|
|
|
|
class XMLPropStyleContext;
|
|
|
|
class SdXMLStylesContext;
|
|
|
|
class SdXMLMasterStylesContext;
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
class SdXMLImport: public SvXMLImport
|
|
|
|
{
|
|
|
|
com::sun::star::uno::Reference< com::sun::star::container::XNameAccess > mxDocStyleFamilies;
|
|
|
|
com::sun::star::uno::Reference< com::sun::star::container::XIndexAccess > mxDocMasterPages;
|
|
|
|
com::sun::star::uno::Reference< com::sun::star::container::XIndexAccess > mxDocDrawPages;
|
2001-03-20 19:08:37 +00:00
|
|
|
com::sun::star::uno::Reference< com::sun::star::container::XNameAccess > mxPageLayouts;
|
2000-12-05 22:31:17 +00:00
|
|
|
|
|
|
|
// contexts for Style and AutoStyle import
|
|
|
|
SdXMLMasterStylesContext* mpMasterStylesContext;
|
|
|
|
|
|
|
|
// token map lists
|
|
|
|
SvXMLTokenMap* mpDocElemTokenMap;
|
|
|
|
SvXMLTokenMap* mpBodyElemTokenMap;
|
|
|
|
SvXMLTokenMap* mpStylesElemTokenMap;
|
|
|
|
SvXMLTokenMap* mpAutoStylesElemTokenMap;
|
|
|
|
SvXMLTokenMap* mpMasterPageElemTokenMap;
|
|
|
|
SvXMLTokenMap* mpMasterPageAttrTokenMap;
|
|
|
|
SvXMLTokenMap* mpPageMasterAttrTokenMap;
|
|
|
|
SvXMLTokenMap* mpPageMasterStyleAttrTokenMap;
|
|
|
|
SvXMLTokenMap* mpDocStyleAttrTokenMap;
|
|
|
|
SvXMLTokenMap* mpDocStyleElemTokenMap;
|
|
|
|
SvXMLTokenMap* mpDrawPageAttrTokenMap;
|
|
|
|
SvXMLTokenMap* mpDrawPageElemTokenMap;
|
|
|
|
SvXMLTokenMap* mpPresentationPlaceholderAttrTokenMap;
|
|
|
|
|
|
|
|
sal_uInt16 mnStyleFamilyMask;
|
|
|
|
|
|
|
|
sal_Int32 mnNewPageCount;
|
|
|
|
sal_Int32 mnNewMasterPageCount;
|
|
|
|
|
|
|
|
sal_Bool mbIsDraw;
|
|
|
|
sal_Bool mbLoadDoc;
|
2001-08-24 12:05:27 +00:00
|
|
|
sal_Bool mbPreview;
|
2000-12-05 22:31:17 +00:00
|
|
|
|
2000-12-19 15:23:48 +00:00
|
|
|
DrawPageIdMap maDrawPageIds;
|
|
|
|
|
2001-03-20 19:08:37 +00:00
|
|
|
::rtl::OUString msPageLayouts;
|
2001-08-24 12:05:27 +00:00
|
|
|
::rtl::OUString msPreview;
|
2001-03-20 19:08:37 +00:00
|
|
|
|
2000-12-05 22:31:17 +00:00
|
|
|
protected:
|
|
|
|
// This method is called after the namespace map has been updated, but
|
|
|
|
// before a context for the current element has been pushed.
|
|
|
|
virtual SvXMLImportContext *CreateContext(sal_uInt16 nPrefix,
|
|
|
|
const rtl::OUString& rLocalName,
|
|
|
|
const com::sun::star::uno::Reference<
|
|
|
|
com::sun::star::xml::sax::XAttributeList>& xAttrList);
|
|
|
|
|
|
|
|
public:
|
2004-05-03 12:34:30 +00:00
|
|
|
// #110680#
|
|
|
|
SdXMLImport(
|
|
|
|
const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory,
|
|
|
|
sal_Bool bIsDraw, sal_uInt16 nImportFlags = IMPORT_ALL );
|
2001-09-12 09:33:50 +00:00
|
|
|
~SdXMLImport() throw ();
|
2000-12-05 22:31:17 +00:00
|
|
|
|
2001-01-12 15:16:13 +00:00
|
|
|
// XImporter
|
|
|
|
virtual void SAL_CALL setTargetDocument( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent >& xDoc ) throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
|
|
|
|
|
2001-03-20 19:08:37 +00:00
|
|
|
// XInitialization
|
|
|
|
virtual void SAL_CALL initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ) throw(::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
|
|
|
|
|
2000-12-05 22:31:17 +00:00
|
|
|
void SetProgress(sal_Int32 nProg);
|
|
|
|
|
2001-03-27 21:03:08 +00:00
|
|
|
virtual void SetViewSettings(const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>& aViewProps);
|
|
|
|
virtual void SetConfigurationSettings(const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>& aConfigProps);
|
|
|
|
|
2000-12-05 22:31:17 +00:00
|
|
|
// namespace office
|
|
|
|
SvXMLImportContext* CreateMetaContext(const rtl::OUString& rLocalName,
|
|
|
|
const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList >& xAttrList);
|
2000-12-12 13:38:12 +00:00
|
|
|
SvXMLImportContext* CreateScriptContext( const ::rtl::OUString& rLocalName );
|
2000-12-05 22:31:17 +00:00
|
|
|
SvXMLImportContext* CreateBodyContext(const rtl::OUString& rLocalName,
|
|
|
|
const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList >& xAttrList);
|
|
|
|
SvXMLStylesContext* CreateStylesContext(const rtl::OUString& rLocalName,
|
|
|
|
const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList >& xAttrList);
|
|
|
|
SvXMLStylesContext* CreateAutoStylesContext(const rtl::OUString& rLocalName,
|
|
|
|
const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList >& xAttrList);
|
|
|
|
SvXMLImportContext* CreateMasterStylesContext(const rtl::OUString& rLocalName,
|
|
|
|
const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList >& xAttrList);
|
|
|
|
|
|
|
|
// Styles and AutoStyles contexts
|
|
|
|
const SdXMLMasterStylesContext* GetMasterStylesContext() const { return mpMasterStylesContext; }
|
|
|
|
|
|
|
|
sal_uInt16 GetStyleFamilyMask() const { return mnStyleFamilyMask; }
|
|
|
|
sal_Bool IsStylesOnlyMode() const { return !mbLoadDoc; }
|
|
|
|
|
|
|
|
const SvXMLTokenMap& GetDocElemTokenMap();
|
|
|
|
const SvXMLTokenMap& GetBodyElemTokenMap();
|
|
|
|
const SvXMLTokenMap& GetStylesElemTokenMap();
|
|
|
|
const SvXMLTokenMap& GetMasterPageElemTokenMap();
|
|
|
|
const SvXMLTokenMap& GetMasterPageAttrTokenMap();
|
|
|
|
const SvXMLTokenMap& GetPageMasterAttrTokenMap();
|
|
|
|
const SvXMLTokenMap& GetPageMasterStyleAttrTokenMap();
|
|
|
|
const SvXMLTokenMap& GetDrawPageAttrTokenMap();
|
|
|
|
const SvXMLTokenMap& GetDrawPageElemTokenMap();
|
|
|
|
const SvXMLTokenMap& GetPresentationPlaceholderAttrTokenMap();
|
|
|
|
|
|
|
|
// export local parameters concerning page access and similar
|
|
|
|
const com::sun::star::uno::Reference<
|
|
|
|
com::sun::star::container::XNameAccess >& GetLocalDocStyleFamilies() const { return mxDocStyleFamilies; }
|
|
|
|
const com::sun::star::uno::Reference<
|
|
|
|
com::sun::star::container::XIndexAccess >& GetLocalMasterPages() const { return mxDocMasterPages; }
|
|
|
|
const com::sun::star::uno::Reference<
|
|
|
|
com::sun::star::container::XIndexAccess >& GetLocalDrawPages() const { return mxDocDrawPages; }
|
|
|
|
|
|
|
|
sal_Int32 GetNewPageCount() const { return mnNewPageCount; }
|
|
|
|
void IncrementNewPageCount() { mnNewPageCount++; }
|
|
|
|
sal_Int32 GetNewMasterPageCount() const { return mnNewMasterPageCount; }
|
|
|
|
void IncrementNewMasterPageCount() { mnNewMasterPageCount++; }
|
|
|
|
|
2001-03-20 19:08:37 +00:00
|
|
|
com::sun::star::uno::Reference< com::sun::star::container::XNameAccess > getPageLayouts() const { return mxPageLayouts; }
|
|
|
|
|
2000-12-05 22:31:17 +00:00
|
|
|
sal_Bool IsDraw() const { return mbIsDraw; }
|
|
|
|
sal_Bool IsImpress() const { return !mbIsDraw; }
|
|
|
|
|
|
|
|
// import pool defaults. Parameter contains pool defaults read
|
|
|
|
// from input data. These data needs to be set at the model.
|
|
|
|
void ImportPoolDefaults(const XMLPropStyleContext* pPool);
|
2000-12-19 15:23:48 +00:00
|
|
|
|
|
|
|
void setDrawPageId( sal_Int32 nId, com::sun::star::uno::Reference< com::sun::star::drawing::XDrawPage > );
|
|
|
|
com::sun::star::uno::Reference< com::sun::star::drawing::XDrawPage > getDrawPageForId( sal_Int32 nId );
|
2001-07-31 15:31:45 +00:00
|
|
|
|
|
|
|
// #80365#
|
|
|
|
virtual void SetStatisticAttributes(const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList > & xAttribs);
|
2001-08-24 12:05:27 +00:00
|
|
|
|
|
|
|
sal_Bool IsPreview() const { return mbPreview; }
|
2001-09-14 10:24:06 +00:00
|
|
|
|
|
|
|
// XServiceInfo ( : SvXMLExport )
|
|
|
|
virtual ::rtl::OUString SAL_CALL getImplementationName() throw( ::com::sun::star::uno::RuntimeException );
|
2000-12-05 22:31:17 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif // _SDXMLIMP_HXX
|