1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: XMLSectionImportContext.hxx,v $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 #ifndef _XMLOFF_XMLSECTIONIMPORTCONTEXT_HXX_
32 #define _XMLOFF_XMLSECTIONIMPORTCONTEXT_HXX_
34 #include <xmloff/xmlictxt.hxx>
35 #include <com/sun/star/uno/Reference.h>
36 #include <com/sun/star/uno/Sequence.h>
38 namespace com
{ namespace sun
{ namespace star
{
39 namespace text
{ class XTextRange
; }
40 namespace beans
{ class XPropertySet
; }
41 namespace xml
{ namespace sax
{ class XAttributeList
; } }
43 namespace rtl
{ class OUString
; }
44 class XMLTextImportHelper
;
48 * Import text sections.
50 * This context may *also* be used for index header sections. The
51 * differentiates its behaviour based on GetLocalName().
53 class XMLSectionImportContext
: public SvXMLImportContext
55 /// start position; ranges aquired via getStart(),getEnd() don't move
56 ::com::sun::star::uno::Reference
<
57 ::com::sun::star::text::XTextRange
> xStartRange
;
60 ::com::sun::star::uno::Reference
<
61 ::com::sun::star::text::XTextRange
> xEndRange
;
63 /// TextSection (as XPropertySet) for passing down to data source elements
64 ::com::sun::star::uno::Reference
<
65 ::com::sun::star::beans::XPropertySet
> xSectionPropertySet
;
67 const ::rtl::OUString sTextSection
;
68 const ::rtl::OUString sIndexHeaderSection
;
69 const ::rtl::OUString sCondition
;
70 const ::rtl::OUString sIsVisible
;
71 const ::rtl::OUString sProtectionKey
;
72 const ::rtl::OUString sIsProtected
;
73 const ::rtl::OUString sIsCurrentlyVisible
;
74 const ::rtl::OUString sEmpty
;
76 ::rtl::OUString sXmlId
;
77 ::rtl::OUString sStyleName
;
78 ::rtl::OUString sName
;
79 ::rtl::OUString sCond
;
80 ::com::sun::star::uno::Sequence
<sal_Int8
> aSequence
;
86 sal_Bool bIsCurrentlyVisible
;
87 sal_Bool bIsCurrentlyVisibleOK
;
95 XMLSectionImportContext(
98 const ::rtl::OUString
& rLocalName
);
100 ~XMLSectionImportContext();
104 virtual void StartElement(
105 const ::com::sun::star::uno::Reference
<
106 ::com::sun::star::xml::sax::XAttributeList
> & xAttrList
);
108 virtual void EndElement();
110 virtual SvXMLImportContext
*CreateChildContext(
112 const ::rtl::OUString
& rLocalName
,
113 const ::com::sun::star::uno::Reference
<
114 ::com::sun::star::xml::sax::XAttributeList
> & xAttrList
);
116 void ProcessAttributes(
117 const ::com::sun::star::uno::Reference
<
118 ::com::sun::star::xml::sax::XAttributeList
> & xAttrList
);